Class: RubyVM::AbstractSyntaxTree::Node
Overview
Node
instances are created by parse methods in ::RubyVM::AbstractSyntaxTree
.
This class is MRI specific.
Instance Method Summary
-
#children ⇒ Array
Returns AST nodes under this one.
-
#first_column ⇒ Integer
The column number in the source code where this AST’s text began.
-
#first_lineno ⇒ Integer
The line number in the source code where this AST’s text began.
-
#inspect ⇒ String
Returns debugging information about this node as a string.
-
#last_column ⇒ Integer
The column number in the source code where this AST’s text ended.
-
#last_lineno ⇒ Integer
The line number in the source code where this AST’s text ended.
-
#node_id ⇒ Integer
Returns an internal node_id number.
-
#script_lines ⇒ Array
Returns the original source code as an array of lines.
-
#source ⇒ String
Returns the code fragment that corresponds to this AST.
-
#type ⇒ Symbol
Returns the type of this node as a symbol.
Instance Method Details
#children ⇒ Array
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 131
def children Primitive.ast_node_children end
#first_column ⇒ Integer
The column number in the source code where this AST’s text began.
# File 'ast.rb', line 104
def first_column Primitive.ast_node_first_column end
#first_lineno ⇒ Integer
The line number in the source code where this AST’s text began.
# File 'ast.rb', line 96
def first_lineno Primitive.ast_node_first_lineno end
#inspect ⇒ String
Returns debugging information about this node as a string.
# File 'ast.rb', line 139
def inspect Primitive.ast_node_inspect end
#last_column ⇒ Integer
The column number in the source code where this AST’s text ended.
# File 'ast.rb', line 120
def last_column Primitive.ast_node_last_column end
#last_lineno ⇒ Integer
The line number in the source code where this AST’s text ended.
# File 'ast.rb', line 112
def last_lineno Primitive.ast_node_last_lineno end
#node_id ⇒ Integer
Returns an internal node_id number. Note that this is an API for ruby internal use, debugging, and research. Do not use this for any other purpose. The compatibility is not guaranteed.
# File 'ast.rb', line 150
def node_id Primitive.ast_node_node_id end
#script_lines ⇒ Array
Returns the original source code as an array of lines.
Note that this is an API for ruby internal use, debugging, and research. Do not use this for any other purpose. The compatibility is not guaranteed.
# File 'ast.rb', line 162
def script_lines Primitive.ast_node_script_lines end
#source ⇒ String
Returns the code fragment that corresponds to this AST.
Note that this is an API for ruby internal use, debugging, and research. Do not use this for any other purpose. The compatibility is not guaranteed.
Also note that this API may return an incomplete code fragment that does not parse; for example, a here document following an expression may be dropped.
# File 'ast.rb', line 178
def source lines = script_lines if lines lines = lines[first_lineno - 1 .. last_lineno - 1] lines[-1] = lines[-1][0...last_column] lines[0] = lines[0][first_column..-1] lines.join else nil end end
#type ⇒ Symbol
# File 'ast.rb', line 88
def type Primitive.ast_node_type end