123456789_123456789_123456789_123456789_123456789_

Class: RubyVM::AbstractSyntaxTree::Node

Relationships & Source Files
Inherits: Object
Defined in: ast.rb,
ast.c

Overview

Node instances are created by parse methods in ::RubyVM::AbstractSyntaxTree.

This class is MRI specific.

Instance Method Summary

Instance Method Details

#childrenArray

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.

[ GitHub ]

  
# File 'ast.rb', line 133

def children
  Primitive.ast_node_children
end

#first_columnInteger

The column number in the source code where this AST’s text began.

[ GitHub ]

  
# File 'ast.rb', line 106

def first_column
  Primitive.ast_node_first_column
end

#first_linenoInteger

The line number in the source code where this AST’s text began.

[ GitHub ]

  
# File 'ast.rb', line 98

def first_lineno
  Primitive.ast_node_first_lineno
end

#inspectString

Returns debugging information about this node as a string.

[ GitHub ]

  
# File 'ast.rb', line 141

def inspect
  Primitive.ast_node_inspect
end

#last_columnInteger

The column number in the source code where this AST’s text ended.

[ GitHub ]

  
# File 'ast.rb', line 122

def last_column
  Primitive.ast_node_last_column
end

#last_linenoInteger

The line number in the source code where this AST’s text ended.

[ GitHub ]

  
# File 'ast.rb', line 114

def last_lineno
  Primitive.ast_node_last_lineno
end

#typeSymbol

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
[ GitHub ]

  
# File 'ast.rb', line 90

def type
  Primitive.ast_node_type
end