Class: Node::CREF
- Defined in:
- ext/cached/ruby-1.8.4/internal/node/nodeinfo.c,
ext/cached/ruby-1.8.4/internal/node/nodeinfo.c,
ext/cached/ruby-1.8.5/internal/node/nodeinfo.c,
ext/cached/ruby-1.8.5/internal/node/nodeinfo.c,
ext/cached/ruby-1.8.6/internal/node/nodeinfo.c,
ext/cached/ruby-1.8.6/internal/node/nodeinfo.c,
ext/cached/ruby-1.8.7/internal/node/nodeinfo.c,
ext/cached/ruby-1.8.7/internal/node/nodeinfo.c
Overview
A temporary node used to store the value of ruby_cref or ruby_top_cref and later restore it. The cref holds a reference to the cbase, which, among other things, is used for constant and class variable lookup.
It should never be evaluated as an expression.
Class Method Summary collapse
-
.members ⇒ Array
Return an array of strings containing the names of the node class’s members.
Instance Method Summary collapse
-
#body ⇒ Object
Return the Node’s body member.
-
#clss ⇒ Object
Return the Node’s clss member.
-
#next ⇒ Object
Return the Node’s next member.
Methods inherited from Node
#[], #_dump, _load, #address, #as_code, #as_expression, #as_paren_expression, #bytecode_compile, compile_string, define_code, define_expression, #eval, #flags, #inspect, #members, #nd_file, #nd_line, #nd_type, #obfusc, #pretty_print, #swap, #to_a, #tree, type
Class Method Details
.members ⇒ Array
Return an array of strings containing the names of the node class’s members.
2897 2898 2899 2900 |
# File 'ext/cached/ruby-1.8.4/internal/node/nodeinfo.c', line 2897
VALUE node_s_members(VALUE klass)
{
return rb_iv_get(klass, "__member__");
}
|
Instance Method Details
#body ⇒ Object
Return the Node’s body member. The return type is either a Node or an Object.
2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 |
# File 'ext/cached/ruby-1.8.4/internal/node/nodeinfo.c', line 2137
static VALUE node_body(VALUE self)
{
NODE * n;
Data_Get_Struct(self, NODE, n);
if(TYPE(n->nd_body) == T_NODE)
{
if(0 && nd_type(n) == NODE_OP_ASGN2)
{
return wrap_node_as(
(NODE *)n->nd_body,
rb_cNodeSubclass[NODE_OP_ASGN2_ARG]);
}
else
{
return wrap_node((NODE *)n->nd_body);
}
}
else
{
return (VALUE)n->nd_body;
}
}
|
#clss ⇒ Object
Return the Node’s clss member. The return type is either a Node or an Object.
2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 |
# File 'ext/cached/ruby-1.8.4/internal/node/nodeinfo.c', line 2180
static VALUE node_clss(VALUE self)
{
NODE * n;
Data_Get_Struct(self, NODE, n);
if(TYPE(n->nd_clss) == T_NODE)
{
if(0 && nd_type(n) == NODE_OP_ASGN2)
{
return wrap_node_as(
(NODE *)n->nd_clss,
rb_cNodeSubclass[NODE_OP_ASGN2_ARG]);
}
else
{
return wrap_node((NODE *)n->nd_clss);
}
}
else
{
return (VALUE)n->nd_clss;
}
}
|
#next ⇒ Object
Return the Node’s next member. The return type is either a Node or an Object.
2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 |
# File 'ext/cached/ruby-1.8.4/internal/node/nodeinfo.c', line 2525
static VALUE node_next(VALUE self)
{
NODE * n;
Data_Get_Struct(self, NODE, n);
if(TYPE(n->nd_next) == T_NODE)
{
if(1 && nd_type(n) == NODE_OP_ASGN2)
{
return wrap_node_as(
(NODE *)n->nd_next,
rb_cNodeSubclass[NODE_OP_ASGN2_ARG]);
}
else
{
return wrap_node((NODE *)n->nd_next);
}
}
else
{
return (VALUE)n->nd_next;
}
}
|