Class: RubyVM::AbstractSyntaxTree::Node
Overview
Node
instances are created by parse methods in ::RubyVM::AbstractSyntaxTree
.
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.
-
#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.c', line 640
static VALUE rb_ast_node_children(VALUE self) { struct ASTNodeData *data; TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data); return node_children(data->ast, data->node); }
#first_column ⇒ Integer
The column number in the source code where this AST’s text began.
# File 'ast.c', line 670
static VALUE rb_ast_node_first_column(VALUE self) { struct ASTNodeData *data; TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data); return INT2NUM(nd_first_column(data->node)); }
#first_lineno ⇒ Integer
The line number in the source code where this AST’s text began.
# File 'ast.c', line 655
static VALUE rb_ast_node_first_lineno(VALUE self) { struct ASTNodeData *data; TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data); return INT2NUM(nd_first_lineno(data->node)); }
#inspect ⇒ String
Returns debugging information about this node as a string.
# File 'ast.c', line 715
static VALUE rb_ast_node_inspect(VALUE self) { VALUE str; VALUE cname; struct ASTNodeData *data; TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data); cname = rb_class_path(rb_obj_class(self)); str = rb_str_new2("#<"); rb_str_append(str, cname); rb_str_catf(str, ":%s@%d:%d-%d:%d>", node_type_to_str(data->node), nd_first_lineno(data->node), nd_first_column(data->node), nd_last_lineno(data->node), nd_last_column(data->node)); return str; }
#last_column ⇒ Integer
The column number in the source code where this AST’s text ended.
# File 'ast.c', line 700
static VALUE rb_ast_node_last_column(VALUE self) { struct ASTNodeData *data; TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data); return INT2NUM(nd_last_column(data->node)); }
#last_lineno ⇒ Integer
The line number in the source code where this AST’s text ended.
# File 'ast.c', line 685
static VALUE rb_ast_node_last_lineno(VALUE self) { struct ASTNodeData *data; TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data); return INT2NUM(nd_last_lineno(data->node)); }
#type ⇒ Symbol
# File 'ast.c', line 281
static VALUE rb_ast_node_type(VALUE self) { struct ASTNodeData *data; TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data); return rb_sym_intern_ascii_cstr(node_type_to_str(data->node)); }