class Maccro::DSL::Node

Attributes

first_column[R]
first_lineno[R]
last_column[R]
last_lineno[R]
name[R]

Public Class Methods

new(name, code_range) click to toggle source
# File lib/maccro/dsl/node.rb, line 42
def initialize(name, code_range)
  @name = name
  @code_range = code_range
  @first_lineno = code_range.first_lineno
  @first_column = code_range.first_column
  @last_lineno = code_range.last_lineno
  @last_column = code_range.last_column
end

Public Instance Methods

capture(ast, placeholders) click to toggle source
# File lib/maccro/dsl/node.rb, line 74
def capture(ast, placeholders)
  placeholders[@name] = ast.to_code_range
end
children() click to toggle source
# File lib/maccro/dsl/node.rb, line 59
def children
  []
end
match?(node) click to toggle source
Calls superclass method Maccro::DSL::ASTNodeWrapper#match?
# File lib/maccro/dsl/node.rb, line 63
def match?(node)
  # literals are not Node in any cases
  return false unless node.respond_to?(:type)

  if self.class.respond_to?(:match?)
    self.class.match?(node)
  else
    super
  end
end
to_code_range() click to toggle source
# File lib/maccro/dsl/node.rb, line 51
def to_code_range
  @code_range
end
type() click to toggle source
# File lib/maccro/dsl/node.rb, line 55
def type
  :MACCRO_NODE
end