class RubyVM::AbstractSyntaxTree::Node
RubyVM::AbstractSyntaxTree::Node
instances are created by parse methods in RubyVM::AbstractSyntaxTree
.
This class is MRI specific.
Public Instance Methods
children → array
click to toggle source
Returns AST nodes under this one. Each kind of node has different children, depending on what kind of node it is.
The returned array may contain other nodes or nil
.
# File ast.rb, line 133 def children Primitive.ast_node_children end
first_column → integer
click to toggle source
The column number in the source code where this AST's text began.
# File ast.rb, line 106 def first_column Primitive.ast_node_first_column end
first_lineno → integer
click to toggle source
The line number in the source code where this AST's text began.
# File ast.rb, line 98 def first_lineno Primitive.ast_node_first_lineno end
inspect → string
click to toggle source
Returns debugging information about this node as a string.
# File ast.rb, line 141 def inspect Primitive.ast_node_inspect end
last_column → integer
click to toggle source
The column number in the source code where this AST's text ended.
# File ast.rb, line 122 def last_column Primitive.ast_node_last_column end
last_lineno → integer
click to toggle source
The line number in the source code where this AST's text ended.
# File ast.rb, line 114 def last_lineno Primitive.ast_node_last_lineno end
pretty_print(q)
click to toggle source
# File lib/pp.rb, line 547 def pretty_print(q) q.group(1, "(#{type}@#{first_lineno}:#{first_column}-#{last_lineno}:#{last_column}", ")") { case type when :SCOPE pretty_print_children(q, %w"tbl args body") when :ARGS pretty_print_children(q, %w[pre_num pre_init opt first_post post_num post_init rest kw kwrest block]) when :DEFN pretty_print_children(q, %w[mid body]) when :ARYPTN pretty_print_children(q, %w[const pre rest post]) when :HSHPTN pretty_print_children(q, %w[const kw kwrest]) else pretty_print_children(q) end } end
pretty_print_children(q, names = [])
click to toggle source
# File lib/pp.rb, line 534 def pretty_print_children(q, names = []) children.zip(names) do |c, n| if n q.breakable q.text "#{n}:" end q.group(2) do q.breakable q.pp c end end end
type → symbol
click to toggle source
Returns the type of this node as a symbol.
root = RubyVM::AbstractSyntaxTree.parse("x = 1 + 2") root.type # => :SCOPE lasgn = root.children[2] lasgn.type # => :LASGN call = lasgn.children[1] call.type # => :OPCALL
# File ast.rb, line 90 def type Primitive.ast_node_type end