Ruby  2.0.0p247(2013-06-27revision41674)
Data Structures | Defines | Typedefs | Enumerations | Functions
node.h File Reference

Go to the source code of this file.

Data Structures

struct  RNode
struct  rb_global_entry
struct  rb_args_info

Defines

#define NODE_SCOPE   NODE_SCOPE
#define NODE_BLOCK   NODE_BLOCK
#define NODE_IF   NODE_IF
#define NODE_CASE   NODE_CASE
#define NODE_WHEN   NODE_WHEN
#define NODE_OPT_N   NODE_OPT_N
#define NODE_WHILE   NODE_WHILE
#define NODE_UNTIL   NODE_UNTIL
#define NODE_ITER   NODE_ITER
#define NODE_FOR   NODE_FOR
#define NODE_BREAK   NODE_BREAK
#define NODE_NEXT   NODE_NEXT
#define NODE_REDO   NODE_REDO
#define NODE_RETRY   NODE_RETRY
#define NODE_BEGIN   NODE_BEGIN
#define NODE_RESCUE   NODE_RESCUE
#define NODE_RESBODY   NODE_RESBODY
#define NODE_ENSURE   NODE_ENSURE
#define NODE_AND   NODE_AND
#define NODE_OR   NODE_OR
#define NODE_MASGN   NODE_MASGN
#define NODE_LASGN   NODE_LASGN
#define NODE_DASGN   NODE_DASGN
#define NODE_DASGN_CURR   NODE_DASGN_CURR
#define NODE_GASGN   NODE_GASGN
#define NODE_IASGN   NODE_IASGN
#define NODE_IASGN2   NODE_IASGN2
#define NODE_CDECL   NODE_CDECL
#define NODE_CVASGN   NODE_CVASGN
#define NODE_CVDECL   NODE_CVDECL
#define NODE_OP_ASGN1   NODE_OP_ASGN1
#define NODE_OP_ASGN2   NODE_OP_ASGN2
#define NODE_OP_ASGN_AND   NODE_OP_ASGN_AND
#define NODE_OP_ASGN_OR   NODE_OP_ASGN_OR
#define NODE_OP_CDECL   NODE_OP_CDECL
#define NODE_CALL   NODE_CALL
#define NODE_FCALL   NODE_FCALL
#define NODE_VCALL   NODE_VCALL
#define NODE_SUPER   NODE_SUPER
#define NODE_ZSUPER   NODE_ZSUPER
#define NODE_ARRAY   NODE_ARRAY
#define NODE_ZARRAY   NODE_ZARRAY
#define NODE_VALUES   NODE_VALUES
#define NODE_HASH   NODE_HASH
#define NODE_RETURN   NODE_RETURN
#define NODE_YIELD   NODE_YIELD
#define NODE_LVAR   NODE_LVAR
#define NODE_DVAR   NODE_DVAR
#define NODE_GVAR   NODE_GVAR
#define NODE_IVAR   NODE_IVAR
#define NODE_CONST   NODE_CONST
#define NODE_CVAR   NODE_CVAR
#define NODE_NTH_REF   NODE_NTH_REF
#define NODE_BACK_REF   NODE_BACK_REF
#define NODE_MATCH   NODE_MATCH
#define NODE_MATCH2   NODE_MATCH2
#define NODE_MATCH3   NODE_MATCH3
#define NODE_LIT   NODE_LIT
#define NODE_STR   NODE_STR
#define NODE_DSTR   NODE_DSTR
#define NODE_XSTR   NODE_XSTR
#define NODE_DXSTR   NODE_DXSTR
#define NODE_EVSTR   NODE_EVSTR
#define NODE_DREGX   NODE_DREGX
#define NODE_DREGX_ONCE   NODE_DREGX_ONCE
#define NODE_ARGS   NODE_ARGS
#define NODE_ARGS_AUX   NODE_ARGS_AUX
#define NODE_OPT_ARG   NODE_OPT_ARG
#define NODE_KW_ARG   NODE_KW_ARG
#define NODE_POSTARG   NODE_POSTARG
#define NODE_ARGSCAT   NODE_ARGSCAT
#define NODE_ARGSPUSH   NODE_ARGSPUSH
#define NODE_SPLAT   NODE_SPLAT
#define NODE_TO_ARY   NODE_TO_ARY
#define NODE_BLOCK_ARG   NODE_BLOCK_ARG
#define NODE_BLOCK_PASS   NODE_BLOCK_PASS
#define NODE_DEFN   NODE_DEFN
#define NODE_DEFS   NODE_DEFS
#define NODE_ALIAS   NODE_ALIAS
#define NODE_VALIAS   NODE_VALIAS
#define NODE_UNDEF   NODE_UNDEF
#define NODE_CLASS   NODE_CLASS
#define NODE_MODULE   NODE_MODULE
#define NODE_SCLASS   NODE_SCLASS
#define NODE_COLON2   NODE_COLON2
#define NODE_COLON3   NODE_COLON3
#define NODE_CREF   NODE_CREF
#define NODE_DOT2   NODE_DOT2
#define NODE_DOT3   NODE_DOT3
#define NODE_FLIP2   NODE_FLIP2
#define NODE_FLIP3   NODE_FLIP3
#define NODE_SELF   NODE_SELF
#define NODE_NIL   NODE_NIL
#define NODE_TRUE   NODE_TRUE
#define NODE_FALSE   NODE_FALSE
#define NODE_ERRINFO   NODE_ERRINFO
#define NODE_DEFINED   NODE_DEFINED
#define NODE_POSTEXE   NODE_POSTEXE
#define NODE_ALLOCA   NODE_ALLOCA
#define NODE_BMETHOD   NODE_BMETHOD
#define NODE_MEMO   NODE_MEMO
#define NODE_IFUNC   NODE_IFUNC
#define NODE_DSYM   NODE_DSYM
#define NODE_ATTRASGN   NODE_ATTRASGN
#define NODE_PRELUDE   NODE_PRELUDE
#define NODE_LAMBDA   NODE_LAMBDA
#define NODE_LAST   NODE_LAST
#define RNODE(obj)   (R_CAST(RNode)(obj))
#define NODE_FL_NEWLINE   (((VALUE)1)<<7)
#define NODE_FL_CREF_PUSHED_BY_EVAL   NODE_FL_NEWLINE
#define NODE_FL_CREF_OMOD_SHARED   (((VALUE)1)<<6)
#define NODE_TYPESHIFT   8
#define NODE_TYPEMASK   (((VALUE)0x7f)<<NODE_TYPESHIFT)
#define nd_type(n)   ((int) (((RNODE(n))->flags & NODE_TYPEMASK)>>NODE_TYPESHIFT))
#define nd_set_type(n, t)   RNODE(n)->flags=((RNODE(n)->flags&~NODE_TYPEMASK)|((((unsigned long)(t))<<NODE_TYPESHIFT)&NODE_TYPEMASK))
#define NODE_LSHIFT   (NODE_TYPESHIFT+7)
#define NODE_LMASK   (((SIGNED_VALUE)1<<(sizeof(VALUE)*CHAR_BIT-NODE_LSHIFT))-1)
#define nd_line(n)   (int)(RNODE(n)->flags>>NODE_LSHIFT)
#define nd_set_line(n, l)   RNODE(n)->flags=((RNODE(n)->flags&~(-1<<NODE_LSHIFT))|(((l)&NODE_LMASK)<<NODE_LSHIFT))
#define nd_refinements   nd_reserved
#define nd_head   u1.node
#define nd_alen   u2.argc
#define nd_next   u3.node
#define nd_cond   u1.node
#define nd_body   u2.node
#define nd_else   u3.node
#define nd_orig   u3.value
#define nd_resq   u2.node
#define nd_ensr   u3.node
#define nd_1st   u1.node
#define nd_2nd   u2.node
#define nd_stts   u1.node
#define nd_entry   u3.entry
#define nd_vid   u1.id
#define nd_cflag   u2.id
#define nd_cval   u3.value
#define nd_oid   u1.id
#define nd_cnt   u3.cnt
#define nd_tbl   u1.tbl
#define nd_var   u1.node
#define nd_iter   u3.node
#define nd_value   u2.node
#define nd_aid   u3.id
#define nd_lit   u1.value
#define nd_frml   u2.argc
#define nd_rest   u1.id
#define nd_opt   u1.node
#define nd_pid   u1.id
#define nd_plen   u2.argc
#define nd_recv   u1.node
#define nd_mid   u2.id
#define nd_args   u3.node
#define nd_ainfo   u3.args
#define nd_noex   u3.id
#define nd_defn   u3.node
#define nd_cfnc   u1.cfunc
#define nd_argc   u2.argc
#define nd_cpath   u1.node
#define nd_super   u3.node
#define nd_modl   u1.id
#define nd_clss   u1.value
#define nd_beg   u1.node
#define nd_end   u2.node
#define nd_state   u3.state
#define nd_rval   u2.value
#define nd_nth   u2.argc
#define nd_tag   u1.id
#define nd_tval   u2.value
#define nd_visi   u2.argc
#define NEW_NODE(t, a0, a1, a2)   rb_node_newnode((t),(VALUE)(a0),(VALUE)(a1),(VALUE)(a2))
#define NEW_DEFN(i, a, d, p)   NEW_NODE(NODE_DEFN,0,i,NEW_SCOPE(a,d))
#define NEW_DEFS(r, i, a, d)   NEW_NODE(NODE_DEFS,r,i,NEW_SCOPE(a,d))
#define NEW_IFUNC(f, c)   NEW_NODE(NODE_IFUNC,f,c,0)
#define NEW_SCOPE(a, b)   NEW_NODE(NODE_SCOPE,local_tbl(),b,a)
#define NEW_BLOCK(a)   NEW_NODE(NODE_BLOCK,a,0,0)
#define NEW_IF(c, t, e)   NEW_NODE(NODE_IF,c,t,e)
#define NEW_UNLESS(c, t, e)   NEW_IF(c,e,t)
#define NEW_CASE(h, b)   NEW_NODE(NODE_CASE,h,b,0)
#define NEW_WHEN(c, t, e)   NEW_NODE(NODE_WHEN,c,t,e)
#define NEW_OPT_N(b)   NEW_NODE(NODE_OPT_N,0,b,0)
#define NEW_WHILE(c, b, n)   NEW_NODE(NODE_WHILE,c,b,n)
#define NEW_UNTIL(c, b, n)   NEW_NODE(NODE_UNTIL,c,b,n)
#define NEW_FOR(v, i, b)   NEW_NODE(NODE_FOR,v,b,i)
#define NEW_ITER(a, b)   NEW_NODE(NODE_ITER,0,NEW_SCOPE(a,b),0)
#define NEW_LAMBDA(a, b)   NEW_NODE(NODE_LAMBDA,0,NEW_SCOPE(a,b),0)
#define NEW_BREAK(s)   NEW_NODE(NODE_BREAK,s,0,0)
#define NEW_NEXT(s)   NEW_NODE(NODE_NEXT,s,0,0)
#define NEW_REDO()   NEW_NODE(NODE_REDO,0,0,0)
#define NEW_RETRY()   NEW_NODE(NODE_RETRY,0,0,0)
#define NEW_BEGIN(b)   NEW_NODE(NODE_BEGIN,0,b,0)
#define NEW_RESCUE(b, res, e)   NEW_NODE(NODE_RESCUE,b,res,e)
#define NEW_RESBODY(a, ex, n)   NEW_NODE(NODE_RESBODY,n,ex,a)
#define NEW_ENSURE(b, en)   NEW_NODE(NODE_ENSURE,b,0,en)
#define NEW_RETURN(s)   NEW_NODE(NODE_RETURN,s,0,0)
#define NEW_YIELD(a)   NEW_NODE(NODE_YIELD,a,0,0)
#define NEW_LIST(a)   NEW_ARRAY(a)
#define NEW_ARRAY(a)   NEW_NODE(NODE_ARRAY,a,1,0)
#define NEW_ZARRAY()   NEW_NODE(NODE_ZARRAY,0,0,0)
#define NEW_HASH(a)   NEW_NODE(NODE_HASH,a,0,0)
#define NEW_MASGN(l, r)   NEW_NODE(NODE_MASGN,l,0,r)
#define NEW_GASGN(v, val)   NEW_NODE(NODE_GASGN,v,val,rb_global_entry(v))
#define NEW_LASGN(v, val)   NEW_NODE(NODE_LASGN,v,val,0)
#define NEW_DASGN(v, val)   NEW_NODE(NODE_DASGN,v,val,0)
#define NEW_DASGN_CURR(v, val)   NEW_NODE(NODE_DASGN_CURR,v,val,0)
#define NEW_IASGN(v, val)   NEW_NODE(NODE_IASGN,v,val,0)
#define NEW_IASGN2(v, val)   NEW_NODE(NODE_IASGN2,v,val,0)
#define NEW_CDECL(v, val, path)   NEW_NODE(NODE_CDECL,v,val,path)
#define NEW_CVASGN(v, val)   NEW_NODE(NODE_CVASGN,v,val,0)
#define NEW_CVDECL(v, val)   NEW_NODE(NODE_CVDECL,v,val,0)
#define NEW_OP_ASGN1(p, id, a)   NEW_NODE(NODE_OP_ASGN1,p,id,a)
#define NEW_OP_ASGN2(r, i, o, val)   NEW_NODE(NODE_OP_ASGN2,r,val,NEW_OP_ASGN22(i,o))
#define NEW_OP_ASGN22(i, o)   NEW_NODE(NODE_OP_ASGN2,i,o,rb_id_attrset(i))
#define NEW_OP_ASGN_OR(i, val)   NEW_NODE(NODE_OP_ASGN_OR,i,val,0)
#define NEW_OP_ASGN_AND(i, val)   NEW_NODE(NODE_OP_ASGN_AND,i,val,0)
#define NEW_OP_CDECL(v, op, val)   NEW_NODE(NODE_OP_CDECL,v,val,op)
#define NEW_GVAR(v)   NEW_NODE(NODE_GVAR,v,0,rb_global_entry(v))
#define NEW_LVAR(v)   NEW_NODE(NODE_LVAR,v,0,0)
#define NEW_DVAR(v)   NEW_NODE(NODE_DVAR,v,0,0)
#define NEW_IVAR(v)   NEW_NODE(NODE_IVAR,v,0,0)
#define NEW_CONST(v)   NEW_NODE(NODE_CONST,v,0,0)
#define NEW_CVAR(v)   NEW_NODE(NODE_CVAR,v,0,0)
#define NEW_NTH_REF(n)   NEW_NODE(NODE_NTH_REF,0,n,0)
#define NEW_BACK_REF(n)   NEW_NODE(NODE_BACK_REF,0,n,0)
#define NEW_MATCH(c)   NEW_NODE(NODE_MATCH,c,0,0)
#define NEW_MATCH2(n1, n2)   NEW_NODE(NODE_MATCH2,n1,n2,0)
#define NEW_MATCH3(r, n2)   NEW_NODE(NODE_MATCH3,r,n2,0)
#define NEW_LIT(l)   NEW_NODE(NODE_LIT,l,0,0)
#define NEW_STR(s)   NEW_NODE(NODE_STR,s,0,0)
#define NEW_DSTR(s)   NEW_NODE(NODE_DSTR,s,1,0)
#define NEW_XSTR(s)   NEW_NODE(NODE_XSTR,s,0,0)
#define NEW_DXSTR(s)   NEW_NODE(NODE_DXSTR,s,0,0)
#define NEW_DSYM(s)   NEW_NODE(NODE_DSYM,s,0,0)
#define NEW_EVSTR(n)   NEW_NODE(NODE_EVSTR,0,(n),0)
#define NEW_CALL(r, m, a)   NEW_NODE(NODE_CALL,r,m,a)
#define NEW_FCALL(m, a)   NEW_NODE(NODE_FCALL,0,m,a)
#define NEW_VCALL(m)   NEW_NODE(NODE_VCALL,0,m,0)
#define NEW_SUPER(a)   NEW_NODE(NODE_SUPER,0,0,a)
#define NEW_ZSUPER()   NEW_NODE(NODE_ZSUPER,0,0,0)
#define NEW_ARGS_AUX(r, b)   NEW_NODE(NODE_ARGS_AUX,r,b,0)
#define NEW_OPT_ARG(i, v)   NEW_NODE(NODE_OPT_ARG,i,v,0)
#define NEW_KW_ARG(i, v)   NEW_NODE(NODE_KW_ARG,i,v,0)
#define NEW_POSTARG(i, v)   NEW_NODE(NODE_POSTARG,i,v,0)
#define NEW_ARGSCAT(a, b)   NEW_NODE(NODE_ARGSCAT,a,b,0)
#define NEW_ARGSPUSH(a, b)   NEW_NODE(NODE_ARGSPUSH,a,b,0)
#define NEW_SPLAT(a)   NEW_NODE(NODE_SPLAT,a,0,0)
#define NEW_TO_ARY(a)   NEW_NODE(NODE_TO_ARY,a,0,0)
#define NEW_BLOCK_ARG(v)   NEW_NODE(NODE_BLOCK_ARG,v,0,local_cnt(v))
#define NEW_BLOCK_PASS(b)   NEW_NODE(NODE_BLOCK_PASS,0,b,0)
#define NEW_ALIAS(n, o)   NEW_NODE(NODE_ALIAS,n,o,0)
#define NEW_VALIAS(n, o)   NEW_NODE(NODE_VALIAS,n,o,0)
#define NEW_UNDEF(i)   NEW_NODE(NODE_UNDEF,0,i,0)
#define NEW_CLASS(n, b, s)   NEW_NODE(NODE_CLASS,n,NEW_SCOPE(0,b),(s))
#define NEW_SCLASS(r, b)   NEW_NODE(NODE_SCLASS,r,NEW_SCOPE(0,b),0)
#define NEW_MODULE(n, b)   NEW_NODE(NODE_MODULE,n,NEW_SCOPE(0,b),0)
#define NEW_COLON2(c, i)   NEW_NODE(NODE_COLON2,c,i,0)
#define NEW_COLON3(i)   NEW_NODE(NODE_COLON3,0,i,0)
#define NEW_CREF(a)   NEW_NODE(NODE_CREF,a,0,0)
#define NEW_DOT2(b, e)   NEW_NODE(NODE_DOT2,b,e,0)
#define NEW_DOT3(b, e)   NEW_NODE(NODE_DOT3,b,e,0)
#define NEW_SELF()   NEW_NODE(NODE_SELF,0,0,0)
#define NEW_NIL()   NEW_NODE(NODE_NIL,0,0,0)
#define NEW_TRUE()   NEW_NODE(NODE_TRUE,0,0,0)
#define NEW_FALSE()   NEW_NODE(NODE_FALSE,0,0,0)
#define NEW_ERRINFO()   NEW_NODE(NODE_ERRINFO,0,0,0)
#define NEW_DEFINED(e)   NEW_NODE(NODE_DEFINED,e,0,0)
#define NEW_PREEXE(b)   NEW_SCOPE(b)
#define NEW_POSTEXE(b)   NEW_NODE(NODE_POSTEXE,0,b,0)
#define NEW_BMETHOD(b)   NEW_NODE(NODE_BMETHOD,0,0,b)
#define NEW_ATTRASGN(r, m, a)   NEW_NODE(NODE_ATTRASGN,r,m,a)
#define NEW_PRELUDE(p, b)   NEW_NODE(NODE_PRELUDE,p,b,0)
#define NEW_MEMO(a, b, c)   NEW_NODE(NODE_MEMO,a,b,c)
#define roomof(x, y)   ((sizeof(x) + sizeof(y) - 1) / sizeof(y))
#define MEMO_FOR(type, value)   ((type *)RARRAY_PTR(value))
#define NEW_MEMO_FOR(type, value)
#define NODE_SCOPE   NODE_SCOPE
#define NODE_BLOCK   NODE_BLOCK
#define NODE_IF   NODE_IF
#define NODE_CASE   NODE_CASE
#define NODE_WHEN   NODE_WHEN
#define NODE_OPT_N   NODE_OPT_N
#define NODE_WHILE   NODE_WHILE
#define NODE_UNTIL   NODE_UNTIL
#define NODE_ITER   NODE_ITER
#define NODE_FOR   NODE_FOR
#define NODE_BREAK   NODE_BREAK
#define NODE_NEXT   NODE_NEXT
#define NODE_REDO   NODE_REDO
#define NODE_RETRY   NODE_RETRY
#define NODE_BEGIN   NODE_BEGIN
#define NODE_RESCUE   NODE_RESCUE
#define NODE_RESBODY   NODE_RESBODY
#define NODE_ENSURE   NODE_ENSURE
#define NODE_AND   NODE_AND
#define NODE_OR   NODE_OR
#define NODE_MASGN   NODE_MASGN
#define NODE_LASGN   NODE_LASGN
#define NODE_DASGN   NODE_DASGN
#define NODE_DASGN_CURR   NODE_DASGN_CURR
#define NODE_GASGN   NODE_GASGN
#define NODE_IASGN   NODE_IASGN
#define NODE_IASGN2   NODE_IASGN2
#define NODE_CDECL   NODE_CDECL
#define NODE_CVASGN   NODE_CVASGN
#define NODE_CVDECL   NODE_CVDECL
#define NODE_OP_ASGN1   NODE_OP_ASGN1
#define NODE_OP_ASGN2   NODE_OP_ASGN2
#define NODE_OP_ASGN_AND   NODE_OP_ASGN_AND
#define NODE_OP_ASGN_OR   NODE_OP_ASGN_OR
#define NODE_OP_CDECL   NODE_OP_CDECL
#define NODE_CALL   NODE_CALL
#define NODE_FCALL   NODE_FCALL
#define NODE_VCALL   NODE_VCALL
#define NODE_SUPER   NODE_SUPER
#define NODE_ZSUPER   NODE_ZSUPER
#define NODE_ARRAY   NODE_ARRAY
#define NODE_ZARRAY   NODE_ZARRAY
#define NODE_VALUES   NODE_VALUES
#define NODE_HASH   NODE_HASH
#define NODE_RETURN   NODE_RETURN
#define NODE_YIELD   NODE_YIELD
#define NODE_LVAR   NODE_LVAR
#define NODE_DVAR   NODE_DVAR
#define NODE_GVAR   NODE_GVAR
#define NODE_IVAR   NODE_IVAR
#define NODE_CONST   NODE_CONST
#define NODE_CVAR   NODE_CVAR
#define NODE_NTH_REF   NODE_NTH_REF
#define NODE_BACK_REF   NODE_BACK_REF
#define NODE_MATCH   NODE_MATCH
#define NODE_MATCH2   NODE_MATCH2
#define NODE_MATCH3   NODE_MATCH3
#define NODE_LIT   NODE_LIT
#define NODE_STR   NODE_STR
#define NODE_DSTR   NODE_DSTR
#define NODE_XSTR   NODE_XSTR
#define NODE_DXSTR   NODE_DXSTR
#define NODE_EVSTR   NODE_EVSTR
#define NODE_DREGX   NODE_DREGX
#define NODE_DREGX_ONCE   NODE_DREGX_ONCE
#define NODE_ARGS   NODE_ARGS
#define NODE_ARGS_AUX   NODE_ARGS_AUX
#define NODE_OPT_ARG   NODE_OPT_ARG
#define NODE_KW_ARG   NODE_KW_ARG
#define NODE_POSTARG   NODE_POSTARG
#define NODE_ARGSCAT   NODE_ARGSCAT
#define NODE_ARGSPUSH   NODE_ARGSPUSH
#define NODE_SPLAT   NODE_SPLAT
#define NODE_TO_ARY   NODE_TO_ARY
#define NODE_BLOCK_ARG   NODE_BLOCK_ARG
#define NODE_BLOCK_PASS   NODE_BLOCK_PASS
#define NODE_DEFN   NODE_DEFN
#define NODE_DEFS   NODE_DEFS
#define NODE_ALIAS   NODE_ALIAS
#define NODE_VALIAS   NODE_VALIAS
#define NODE_UNDEF   NODE_UNDEF
#define NODE_CLASS   NODE_CLASS
#define NODE_MODULE   NODE_MODULE
#define NODE_SCLASS   NODE_SCLASS
#define NODE_COLON2   NODE_COLON2
#define NODE_COLON3   NODE_COLON3
#define NODE_CREF   NODE_CREF
#define NODE_DOT2   NODE_DOT2
#define NODE_DOT3   NODE_DOT3
#define NODE_FLIP2   NODE_FLIP2
#define NODE_FLIP3   NODE_FLIP3
#define NODE_SELF   NODE_SELF
#define NODE_NIL   NODE_NIL
#define NODE_TRUE   NODE_TRUE
#define NODE_FALSE   NODE_FALSE
#define NODE_ERRINFO   NODE_ERRINFO
#define NODE_DEFINED   NODE_DEFINED
#define NODE_POSTEXE   NODE_POSTEXE
#define NODE_ALLOCA   NODE_ALLOCA
#define NODE_BMETHOD   NODE_BMETHOD
#define NODE_MEMO   NODE_MEMO
#define NODE_IFUNC   NODE_IFUNC
#define NODE_DSYM   NODE_DSYM
#define NODE_ATTRASGN   NODE_ATTRASGN
#define NODE_PRELUDE   NODE_PRELUDE
#define NODE_LAMBDA   NODE_LAMBDA
#define NODE_LAST   NODE_LAST
#define RNODE(obj)   (R_CAST(RNode)(obj))
#define NODE_FL_NEWLINE   (((VALUE)1)<<7)
#define NODE_FL_CREF_PUSHED_BY_EVAL   NODE_FL_NEWLINE
#define NODE_FL_CREF_OMOD_SHARED   (((VALUE)1)<<6)
#define NODE_TYPESHIFT   8
#define NODE_TYPEMASK   (((VALUE)0x7f)<<NODE_TYPESHIFT)
#define nd_type(n)   ((int) (((RNODE(n))->flags & NODE_TYPEMASK)>>NODE_TYPESHIFT))
#define nd_set_type(n, t)   RNODE(n)->flags=((RNODE(n)->flags&~NODE_TYPEMASK)|((((unsigned long)(t))<<NODE_TYPESHIFT)&NODE_TYPEMASK))
#define NODE_LSHIFT   (NODE_TYPESHIFT+7)
#define NODE_LMASK   (((SIGNED_VALUE)1<<(sizeof(VALUE)*CHAR_BIT-NODE_LSHIFT))-1)
#define nd_line(n)   (int)(RNODE(n)->flags>>NODE_LSHIFT)
#define nd_set_line(n, l)   RNODE(n)->flags=((RNODE(n)->flags&~(-1<<NODE_LSHIFT))|(((l)&NODE_LMASK)<<NODE_LSHIFT))
#define nd_refinements   nd_reserved
#define nd_head   u1.node
#define nd_alen   u2.argc
#define nd_next   u3.node
#define nd_cond   u1.node
#define nd_body   u2.node
#define nd_else   u3.node
#define nd_orig   u3.value
#define nd_resq   u2.node
#define nd_ensr   u3.node
#define nd_1st   u1.node
#define nd_2nd   u2.node
#define nd_stts   u1.node
#define nd_entry   u3.entry
#define nd_vid   u1.id
#define nd_cflag   u2.id
#define nd_cval   u3.value
#define nd_oid   u1.id
#define nd_cnt   u3.cnt
#define nd_tbl   u1.tbl
#define nd_var   u1.node
#define nd_iter   u3.node
#define nd_value   u2.node
#define nd_aid   u3.id
#define nd_lit   u1.value
#define nd_frml   u2.argc
#define nd_rest   u1.id
#define nd_opt   u1.node
#define nd_pid   u1.id
#define nd_plen   u2.argc
#define nd_recv   u1.node
#define nd_mid   u2.id
#define nd_args   u3.node
#define nd_ainfo   u3.args
#define nd_noex   u3.id
#define nd_defn   u3.node
#define nd_cfnc   u1.cfunc
#define nd_argc   u2.argc
#define nd_cpath   u1.node
#define nd_super   u3.node
#define nd_modl   u1.id
#define nd_clss   u1.value
#define nd_beg   u1.node
#define nd_end   u2.node
#define nd_state   u3.state
#define nd_rval   u2.value
#define nd_nth   u2.argc
#define nd_tag   u1.id
#define nd_tval   u2.value
#define nd_visi   u2.argc
#define NEW_NODE(t, a0, a1, a2)   rb_node_newnode((t),(VALUE)(a0),(VALUE)(a1),(VALUE)(a2))
#define NEW_DEFN(i, a, d, p)   NEW_NODE(NODE_DEFN,0,i,NEW_SCOPE(a,d))
#define NEW_DEFS(r, i, a, d)   NEW_NODE(NODE_DEFS,r,i,NEW_SCOPE(a,d))
#define NEW_IFUNC(f, c)   NEW_NODE(NODE_IFUNC,f,c,0)
#define NEW_SCOPE(a, b)   NEW_NODE(NODE_SCOPE,local_tbl(),b,a)
#define NEW_BLOCK(a)   NEW_NODE(NODE_BLOCK,a,0,0)
#define NEW_IF(c, t, e)   NEW_NODE(NODE_IF,c,t,e)
#define NEW_UNLESS(c, t, e)   NEW_IF(c,e,t)
#define NEW_CASE(h, b)   NEW_NODE(NODE_CASE,h,b,0)
#define NEW_WHEN(c, t, e)   NEW_NODE(NODE_WHEN,c,t,e)
#define NEW_OPT_N(b)   NEW_NODE(NODE_OPT_N,0,b,0)
#define NEW_WHILE(c, b, n)   NEW_NODE(NODE_WHILE,c,b,n)
#define NEW_UNTIL(c, b, n)   NEW_NODE(NODE_UNTIL,c,b,n)
#define NEW_FOR(v, i, b)   NEW_NODE(NODE_FOR,v,b,i)
#define NEW_ITER(a, b)   NEW_NODE(NODE_ITER,0,NEW_SCOPE(a,b),0)
#define NEW_LAMBDA(a, b)   NEW_NODE(NODE_LAMBDA,0,NEW_SCOPE(a,b),0)
#define NEW_BREAK(s)   NEW_NODE(NODE_BREAK,s,0,0)
#define NEW_NEXT(s)   NEW_NODE(NODE_NEXT,s,0,0)
#define NEW_REDO()   NEW_NODE(NODE_REDO,0,0,0)
#define NEW_RETRY()   NEW_NODE(NODE_RETRY,0,0,0)
#define NEW_BEGIN(b)   NEW_NODE(NODE_BEGIN,0,b,0)
#define NEW_RESCUE(b, res, e)   NEW_NODE(NODE_RESCUE,b,res,e)
#define NEW_RESBODY(a, ex, n)   NEW_NODE(NODE_RESBODY,n,ex,a)
#define NEW_ENSURE(b, en)   NEW_NODE(NODE_ENSURE,b,0,en)
#define NEW_RETURN(s)   NEW_NODE(NODE_RETURN,s,0,0)
#define NEW_YIELD(a)   NEW_NODE(NODE_YIELD,a,0,0)
#define NEW_LIST(a)   NEW_ARRAY(a)
#define NEW_ARRAY(a)   NEW_NODE(NODE_ARRAY,a,1,0)
#define NEW_ZARRAY()   NEW_NODE(NODE_ZARRAY,0,0,0)
#define NEW_HASH(a)   NEW_NODE(NODE_HASH,a,0,0)
#define NEW_MASGN(l, r)   NEW_NODE(NODE_MASGN,l,0,r)
#define NEW_GASGN(v, val)   NEW_NODE(NODE_GASGN,v,val,rb_global_entry(v))
#define NEW_LASGN(v, val)   NEW_NODE(NODE_LASGN,v,val,0)
#define NEW_DASGN(v, val)   NEW_NODE(NODE_DASGN,v,val,0)
#define NEW_DASGN_CURR(v, val)   NEW_NODE(NODE_DASGN_CURR,v,val,0)
#define NEW_IASGN(v, val)   NEW_NODE(NODE_IASGN,v,val,0)
#define NEW_IASGN2(v, val)   NEW_NODE(NODE_IASGN2,v,val,0)
#define NEW_CDECL(v, val, path)   NEW_NODE(NODE_CDECL,v,val,path)
#define NEW_CVASGN(v, val)   NEW_NODE(NODE_CVASGN,v,val,0)
#define NEW_CVDECL(v, val)   NEW_NODE(NODE_CVDECL,v,val,0)
#define NEW_OP_ASGN1(p, id, a)   NEW_NODE(NODE_OP_ASGN1,p,id,a)
#define NEW_OP_ASGN2(r, i, o, val)   NEW_NODE(NODE_OP_ASGN2,r,val,NEW_OP_ASGN22(i,o))
#define NEW_OP_ASGN22(i, o)   NEW_NODE(NODE_OP_ASGN2,i,o,rb_id_attrset(i))
#define NEW_OP_ASGN_OR(i, val)   NEW_NODE(NODE_OP_ASGN_OR,i,val,0)
#define NEW_OP_ASGN_AND(i, val)   NEW_NODE(NODE_OP_ASGN_AND,i,val,0)
#define NEW_OP_CDECL(v, op, val)   NEW_NODE(NODE_OP_CDECL,v,val,op)
#define NEW_GVAR(v)   NEW_NODE(NODE_GVAR,v,0,rb_global_entry(v))
#define NEW_LVAR(v)   NEW_NODE(NODE_LVAR,v,0,0)
#define NEW_DVAR(v)   NEW_NODE(NODE_DVAR,v,0,0)
#define NEW_IVAR(v)   NEW_NODE(NODE_IVAR,v,0,0)
#define NEW_CONST(v)   NEW_NODE(NODE_CONST,v,0,0)
#define NEW_CVAR(v)   NEW_NODE(NODE_CVAR,v,0,0)
#define NEW_NTH_REF(n)   NEW_NODE(NODE_NTH_REF,0,n,0)
#define NEW_BACK_REF(n)   NEW_NODE(NODE_BACK_REF,0,n,0)
#define NEW_MATCH(c)   NEW_NODE(NODE_MATCH,c,0,0)
#define NEW_MATCH2(n1, n2)   NEW_NODE(NODE_MATCH2,n1,n2,0)
#define NEW_MATCH3(r, n2)   NEW_NODE(NODE_MATCH3,r,n2,0)
#define NEW_LIT(l)   NEW_NODE(NODE_LIT,l,0,0)
#define NEW_STR(s)   NEW_NODE(NODE_STR,s,0,0)
#define NEW_DSTR(s)   NEW_NODE(NODE_DSTR,s,1,0)
#define NEW_XSTR(s)   NEW_NODE(NODE_XSTR,s,0,0)
#define NEW_DXSTR(s)   NEW_NODE(NODE_DXSTR,s,0,0)
#define NEW_DSYM(s)   NEW_NODE(NODE_DSYM,s,0,0)
#define NEW_EVSTR(n)   NEW_NODE(NODE_EVSTR,0,(n),0)
#define NEW_CALL(r, m, a)   NEW_NODE(NODE_CALL,r,m,a)
#define NEW_FCALL(m, a)   NEW_NODE(NODE_FCALL,0,m,a)
#define NEW_VCALL(m)   NEW_NODE(NODE_VCALL,0,m,0)
#define NEW_SUPER(a)   NEW_NODE(NODE_SUPER,0,0,a)
#define NEW_ZSUPER()   NEW_NODE(NODE_ZSUPER,0,0,0)
#define NEW_ARGS_AUX(r, b)   NEW_NODE(NODE_ARGS_AUX,r,b,0)
#define NEW_OPT_ARG(i, v)   NEW_NODE(NODE_OPT_ARG,i,v,0)
#define NEW_KW_ARG(i, v)   NEW_NODE(NODE_KW_ARG,i,v,0)
#define NEW_POSTARG(i, v)   NEW_NODE(NODE_POSTARG,i,v,0)
#define NEW_ARGSCAT(a, b)   NEW_NODE(NODE_ARGSCAT,a,b,0)
#define NEW_ARGSPUSH(a, b)   NEW_NODE(NODE_ARGSPUSH,a,b,0)
#define NEW_SPLAT(a)   NEW_NODE(NODE_SPLAT,a,0,0)
#define NEW_TO_ARY(a)   NEW_NODE(NODE_TO_ARY,a,0,0)
#define NEW_BLOCK_ARG(v)   NEW_NODE(NODE_BLOCK_ARG,v,0,local_cnt(v))
#define NEW_BLOCK_PASS(b)   NEW_NODE(NODE_BLOCK_PASS,0,b,0)
#define NEW_ALIAS(n, o)   NEW_NODE(NODE_ALIAS,n,o,0)
#define NEW_VALIAS(n, o)   NEW_NODE(NODE_VALIAS,n,o,0)
#define NEW_UNDEF(i)   NEW_NODE(NODE_UNDEF,0,i,0)
#define NEW_CLASS(n, b, s)   NEW_NODE(NODE_CLASS,n,NEW_SCOPE(0,b),(s))
#define NEW_SCLASS(r, b)   NEW_NODE(NODE_SCLASS,r,NEW_SCOPE(0,b),0)
#define NEW_MODULE(n, b)   NEW_NODE(NODE_MODULE,n,NEW_SCOPE(0,b),0)
#define NEW_COLON2(c, i)   NEW_NODE(NODE_COLON2,c,i,0)
#define NEW_COLON3(i)   NEW_NODE(NODE_COLON3,0,i,0)
#define NEW_CREF(a)   NEW_NODE(NODE_CREF,a,0,0)
#define NEW_DOT2(b, e)   NEW_NODE(NODE_DOT2,b,e,0)
#define NEW_DOT3(b, e)   NEW_NODE(NODE_DOT3,b,e,0)
#define NEW_SELF()   NEW_NODE(NODE_SELF,0,0,0)
#define NEW_NIL()   NEW_NODE(NODE_NIL,0,0,0)
#define NEW_TRUE()   NEW_NODE(NODE_TRUE,0,0,0)
#define NEW_FALSE()   NEW_NODE(NODE_FALSE,0,0,0)
#define NEW_ERRINFO()   NEW_NODE(NODE_ERRINFO,0,0,0)
#define NEW_DEFINED(e)   NEW_NODE(NODE_DEFINED,e,0,0)
#define NEW_PREEXE(b)   NEW_SCOPE(b)
#define NEW_POSTEXE(b)   NEW_NODE(NODE_POSTEXE,0,b,0)
#define NEW_BMETHOD(b)   NEW_NODE(NODE_BMETHOD,0,0,b)
#define NEW_ATTRASGN(r, m, a)   NEW_NODE(NODE_ATTRASGN,r,m,a)
#define NEW_PRELUDE(p, b)   NEW_NODE(NODE_PRELUDE,p,b,0)
#define NEW_MEMO(a, b, c)   NEW_NODE(NODE_MEMO,a,b,c)
#define roomof(x, y)   ((sizeof(x) + sizeof(y) - 1) / sizeof(y))
#define MEMO_FOR(type, value)   ((type *)RARRAY_PTR(value))
#define NEW_MEMO_FOR(type, value)
#define NODE_SCOPE   NODE_SCOPE
#define NODE_BLOCK   NODE_BLOCK
#define NODE_IF   NODE_IF
#define NODE_CASE   NODE_CASE
#define NODE_WHEN   NODE_WHEN
#define NODE_OPT_N   NODE_OPT_N
#define NODE_WHILE   NODE_WHILE
#define NODE_UNTIL   NODE_UNTIL
#define NODE_ITER   NODE_ITER
#define NODE_FOR   NODE_FOR
#define NODE_BREAK   NODE_BREAK
#define NODE_NEXT   NODE_NEXT
#define NODE_REDO   NODE_REDO
#define NODE_RETRY   NODE_RETRY
#define NODE_BEGIN   NODE_BEGIN
#define NODE_RESCUE   NODE_RESCUE
#define NODE_RESBODY   NODE_RESBODY
#define NODE_ENSURE   NODE_ENSURE
#define NODE_AND   NODE_AND
#define NODE_OR   NODE_OR
#define NODE_MASGN   NODE_MASGN
#define NODE_LASGN   NODE_LASGN
#define NODE_DASGN   NODE_DASGN
#define NODE_DASGN_CURR   NODE_DASGN_CURR
#define NODE_GASGN   NODE_GASGN
#define NODE_IASGN   NODE_IASGN
#define NODE_IASGN2   NODE_IASGN2
#define NODE_CDECL   NODE_CDECL
#define NODE_CVASGN   NODE_CVASGN
#define NODE_CVDECL   NODE_CVDECL
#define NODE_OP_ASGN1   NODE_OP_ASGN1
#define NODE_OP_ASGN2   NODE_OP_ASGN2
#define NODE_OP_ASGN_AND   NODE_OP_ASGN_AND
#define NODE_OP_ASGN_OR   NODE_OP_ASGN_OR
#define NODE_OP_CDECL   NODE_OP_CDECL
#define NODE_CALL   NODE_CALL
#define NODE_FCALL   NODE_FCALL
#define NODE_VCALL   NODE_VCALL
#define NODE_SUPER   NODE_SUPER
#define NODE_ZSUPER   NODE_ZSUPER
#define NODE_ARRAY   NODE_ARRAY
#define NODE_ZARRAY   NODE_ZARRAY
#define NODE_VALUES   NODE_VALUES
#define NODE_HASH   NODE_HASH
#define NODE_RETURN   NODE_RETURN
#define NODE_YIELD   NODE_YIELD
#define NODE_LVAR   NODE_LVAR
#define NODE_DVAR   NODE_DVAR
#define NODE_GVAR   NODE_GVAR
#define NODE_IVAR   NODE_IVAR
#define NODE_CONST   NODE_CONST
#define NODE_CVAR   NODE_CVAR
#define NODE_NTH_REF   NODE_NTH_REF
#define NODE_BACK_REF   NODE_BACK_REF
#define NODE_MATCH   NODE_MATCH
#define NODE_MATCH2   NODE_MATCH2
#define NODE_MATCH3   NODE_MATCH3
#define NODE_LIT   NODE_LIT
#define NODE_STR   NODE_STR
#define NODE_DSTR   NODE_DSTR
#define NODE_XSTR   NODE_XSTR
#define NODE_DXSTR   NODE_DXSTR
#define NODE_EVSTR   NODE_EVSTR
#define NODE_DREGX   NODE_DREGX
#define NODE_DREGX_ONCE   NODE_DREGX_ONCE
#define NODE_ARGS   NODE_ARGS
#define NODE_ARGS_AUX   NODE_ARGS_AUX
#define NODE_OPT_ARG   NODE_OPT_ARG
#define NODE_KW_ARG   NODE_KW_ARG
#define NODE_POSTARG   NODE_POSTARG
#define NODE_ARGSCAT   NODE_ARGSCAT
#define NODE_ARGSPUSH   NODE_ARGSPUSH
#define NODE_SPLAT   NODE_SPLAT
#define NODE_TO_ARY   NODE_TO_ARY
#define NODE_BLOCK_ARG   NODE_BLOCK_ARG
#define NODE_BLOCK_PASS   NODE_BLOCK_PASS
#define NODE_DEFN   NODE_DEFN
#define NODE_DEFS   NODE_DEFS
#define NODE_ALIAS   NODE_ALIAS
#define NODE_VALIAS   NODE_VALIAS
#define NODE_UNDEF   NODE_UNDEF
#define NODE_CLASS   NODE_CLASS
#define NODE_MODULE   NODE_MODULE
#define NODE_SCLASS   NODE_SCLASS
#define NODE_COLON2   NODE_COLON2
#define NODE_COLON3   NODE_COLON3
#define NODE_CREF   NODE_CREF
#define NODE_DOT2   NODE_DOT2
#define NODE_DOT3   NODE_DOT3
#define NODE_FLIP2   NODE_FLIP2
#define NODE_FLIP3   NODE_FLIP3
#define NODE_SELF   NODE_SELF
#define NODE_NIL   NODE_NIL
#define NODE_TRUE   NODE_TRUE
#define NODE_FALSE   NODE_FALSE
#define NODE_ERRINFO   NODE_ERRINFO
#define NODE_DEFINED   NODE_DEFINED
#define NODE_POSTEXE   NODE_POSTEXE
#define NODE_ALLOCA   NODE_ALLOCA
#define NODE_BMETHOD   NODE_BMETHOD
#define NODE_MEMO   NODE_MEMO
#define NODE_IFUNC   NODE_IFUNC
#define NODE_DSYM   NODE_DSYM
#define NODE_ATTRASGN   NODE_ATTRASGN
#define NODE_PRELUDE   NODE_PRELUDE
#define NODE_LAMBDA   NODE_LAMBDA
#define NODE_LAST   NODE_LAST
#define RNODE(obj)   (R_CAST(RNode)(obj))
#define NODE_FL_NEWLINE   (((VALUE)1)<<7)
#define NODE_FL_CREF_PUSHED_BY_EVAL   NODE_FL_NEWLINE
#define NODE_FL_CREF_OMOD_SHARED   (((VALUE)1)<<6)
#define NODE_TYPESHIFT   8
#define NODE_TYPEMASK   (((VALUE)0x7f)<<NODE_TYPESHIFT)
#define nd_type(n)   ((int) (((RNODE(n))->flags & NODE_TYPEMASK)>>NODE_TYPESHIFT))
#define nd_set_type(n, t)   RNODE(n)->flags=((RNODE(n)->flags&~NODE_TYPEMASK)|((((unsigned long)(t))<<NODE_TYPESHIFT)&NODE_TYPEMASK))
#define NODE_LSHIFT   (NODE_TYPESHIFT+7)
#define NODE_LMASK   (((SIGNED_VALUE)1<<(sizeof(VALUE)*CHAR_BIT-NODE_LSHIFT))-1)
#define nd_line(n)   (int)(RNODE(n)->flags>>NODE_LSHIFT)
#define nd_set_line(n, l)   RNODE(n)->flags=((RNODE(n)->flags&~(-1<<NODE_LSHIFT))|(((l)&NODE_LMASK)<<NODE_LSHIFT))
#define nd_refinements   nd_reserved
#define nd_head   u1.node
#define nd_alen   u2.argc
#define nd_next   u3.node
#define nd_cond   u1.node
#define nd_body   u2.node
#define nd_else   u3.node
#define nd_orig   u3.value
#define nd_resq   u2.node
#define nd_ensr   u3.node
#define nd_1st   u1.node
#define nd_2nd   u2.node
#define nd_stts   u1.node
#define nd_entry   u3.entry
#define nd_vid   u1.id
#define nd_cflag   u2.id
#define nd_cval   u3.value
#define nd_oid   u1.id
#define nd_cnt   u3.cnt
#define nd_tbl   u1.tbl
#define nd_var   u1.node
#define nd_iter   u3.node
#define nd_value   u2.node
#define nd_aid   u3.id
#define nd_lit   u1.value
#define nd_frml   u2.argc
#define nd_rest   u1.id
#define nd_opt   u1.node
#define nd_pid   u1.id
#define nd_plen   u2.argc
#define nd_recv   u1.node
#define nd_mid   u2.id
#define nd_args   u3.node
#define nd_ainfo   u3.args
#define nd_noex   u3.id
#define nd_defn   u3.node
#define nd_cfnc   u1.cfunc
#define nd_argc   u2.argc
#define nd_cpath   u1.node
#define nd_super   u3.node
#define nd_modl   u1.id
#define nd_clss   u1.value
#define nd_beg   u1.node
#define nd_end   u2.node
#define nd_state   u3.state
#define nd_rval   u2.value
#define nd_nth   u2.argc
#define nd_tag   u1.id
#define nd_tval   u2.value
#define nd_visi   u2.argc
#define NEW_NODE(t, a0, a1, a2)   rb_node_newnode((t),(VALUE)(a0),(VALUE)(a1),(VALUE)(a2))
#define NEW_DEFN(i, a, d, p)   NEW_NODE(NODE_DEFN,0,i,NEW_SCOPE(a,d))
#define NEW_DEFS(r, i, a, d)   NEW_NODE(NODE_DEFS,r,i,NEW_SCOPE(a,d))
#define NEW_IFUNC(f, c)   NEW_NODE(NODE_IFUNC,f,c,0)
#define NEW_SCOPE(a, b)   NEW_NODE(NODE_SCOPE,local_tbl(),b,a)
#define NEW_BLOCK(a)   NEW_NODE(NODE_BLOCK,a,0,0)
#define NEW_IF(c, t, e)   NEW_NODE(NODE_IF,c,t,e)
#define NEW_UNLESS(c, t, e)   NEW_IF(c,e,t)
#define NEW_CASE(h, b)   NEW_NODE(NODE_CASE,h,b,0)
#define NEW_WHEN(c, t, e)   NEW_NODE(NODE_WHEN,c,t,e)
#define NEW_OPT_N(b)   NEW_NODE(NODE_OPT_N,0,b,0)
#define NEW_WHILE(c, b, n)   NEW_NODE(NODE_WHILE,c,b,n)
#define NEW_UNTIL(c, b, n)   NEW_NODE(NODE_UNTIL,c,b,n)
#define NEW_FOR(v, i, b)   NEW_NODE(NODE_FOR,v,b,i)
#define NEW_ITER(a, b)   NEW_NODE(NODE_ITER,0,NEW_SCOPE(a,b),0)
#define NEW_LAMBDA(a, b)   NEW_NODE(NODE_LAMBDA,0,NEW_SCOPE(a,b),0)
#define NEW_BREAK(s)   NEW_NODE(NODE_BREAK,s,0,0)
#define NEW_NEXT(s)   NEW_NODE(NODE_NEXT,s,0,0)
#define NEW_REDO()   NEW_NODE(NODE_REDO,0,0,0)
#define NEW_RETRY()   NEW_NODE(NODE_RETRY,0,0,0)
#define NEW_BEGIN(b)   NEW_NODE(NODE_BEGIN,0,b,0)
#define NEW_RESCUE(b, res, e)   NEW_NODE(NODE_RESCUE,b,res,e)
#define NEW_RESBODY(a, ex, n)   NEW_NODE(NODE_RESBODY,n,ex,a)
#define NEW_ENSURE(b, en)   NEW_NODE(NODE_ENSURE,b,0,en)
#define NEW_RETURN(s)   NEW_NODE(NODE_RETURN,s,0,0)
#define NEW_YIELD(a)   NEW_NODE(NODE_YIELD,a,0,0)
#define NEW_LIST(a)   NEW_ARRAY(a)
#define NEW_ARRAY(a)   NEW_NODE(NODE_ARRAY,a,1,0)
#define NEW_ZARRAY()   NEW_NODE(NODE_ZARRAY,0,0,0)
#define NEW_HASH(a)   NEW_NODE(NODE_HASH,a,0,0)
#define NEW_MASGN(l, r)   NEW_NODE(NODE_MASGN,l,0,r)
#define NEW_GASGN(v, val)   NEW_NODE(NODE_GASGN,v,val,rb_global_entry(v))
#define NEW_LASGN(v, val)   NEW_NODE(NODE_LASGN,v,val,0)
#define NEW_DASGN(v, val)   NEW_NODE(NODE_DASGN,v,val,0)
#define NEW_DASGN_CURR(v, val)   NEW_NODE(NODE_DASGN_CURR,v,val,0)
#define NEW_IASGN(v, val)   NEW_NODE(NODE_IASGN,v,val,0)
#define NEW_IASGN2(v, val)   NEW_NODE(NODE_IASGN2,v,val,0)
#define NEW_CDECL(v, val, path)   NEW_NODE(NODE_CDECL,v,val,path)
#define NEW_CVASGN(v, val)   NEW_NODE(NODE_CVASGN,v,val,0)
#define NEW_CVDECL(v, val)   NEW_NODE(NODE_CVDECL,v,val,0)
#define NEW_OP_ASGN1(p, id, a)   NEW_NODE(NODE_OP_ASGN1,p,id,a)
#define NEW_OP_ASGN2(r, i, o, val)   NEW_NODE(NODE_OP_ASGN2,r,val,NEW_OP_ASGN22(i,o))
#define NEW_OP_ASGN22(i, o)   NEW_NODE(NODE_OP_ASGN2,i,o,rb_id_attrset(i))
#define NEW_OP_ASGN_OR(i, val)   NEW_NODE(NODE_OP_ASGN_OR,i,val,0)
#define NEW_OP_ASGN_AND(i, val)   NEW_NODE(NODE_OP_ASGN_AND,i,val,0)
#define NEW_OP_CDECL(v, op, val)   NEW_NODE(NODE_OP_CDECL,v,val,op)
#define NEW_GVAR(v)   NEW_NODE(NODE_GVAR,v,0,rb_global_entry(v))
#define NEW_LVAR(v)   NEW_NODE(NODE_LVAR,v,0,0)
#define NEW_DVAR(v)   NEW_NODE(NODE_DVAR,v,0,0)
#define NEW_IVAR(v)   NEW_NODE(NODE_IVAR,v,0,0)
#define NEW_CONST(v)   NEW_NODE(NODE_CONST,v,0,0)
#define NEW_CVAR(v)   NEW_NODE(NODE_CVAR,v,0,0)
#define NEW_NTH_REF(n)   NEW_NODE(NODE_NTH_REF,0,n,0)
#define NEW_BACK_REF(n)   NEW_NODE(NODE_BACK_REF,0,n,0)
#define NEW_MATCH(c)   NEW_NODE(NODE_MATCH,c,0,0)
#define NEW_MATCH2(n1, n2)   NEW_NODE(NODE_MATCH2,n1,n2,0)
#define NEW_MATCH3(r, n2)   NEW_NODE(NODE_MATCH3,r,n2,0)
#define NEW_LIT(l)   NEW_NODE(NODE_LIT,l,0,0)
#define NEW_STR(s)   NEW_NODE(NODE_STR,s,0,0)
#define NEW_DSTR(s)   NEW_NODE(NODE_DSTR,s,1,0)
#define NEW_XSTR(s)   NEW_NODE(NODE_XSTR,s,0,0)
#define NEW_DXSTR(s)   NEW_NODE(NODE_DXSTR,s,0,0)
#define NEW_DSYM(s)   NEW_NODE(NODE_DSYM,s,0,0)
#define NEW_EVSTR(n)   NEW_NODE(NODE_EVSTR,0,(n),0)
#define NEW_CALL(r, m, a)   NEW_NODE(NODE_CALL,r,m,a)
#define NEW_FCALL(m, a)   NEW_NODE(NODE_FCALL,0,m,a)
#define NEW_VCALL(m)   NEW_NODE(NODE_VCALL,0,m,0)
#define NEW_SUPER(a)   NEW_NODE(NODE_SUPER,0,0,a)
#define NEW_ZSUPER()   NEW_NODE(NODE_ZSUPER,0,0,0)
#define NEW_ARGS_AUX(r, b)   NEW_NODE(NODE_ARGS_AUX,r,b,0)
#define NEW_OPT_ARG(i, v)   NEW_NODE(NODE_OPT_ARG,i,v,0)
#define NEW_KW_ARG(i, v)   NEW_NODE(NODE_KW_ARG,i,v,0)
#define NEW_POSTARG(i, v)   NEW_NODE(NODE_POSTARG,i,v,0)
#define NEW_ARGSCAT(a, b)   NEW_NODE(NODE_ARGSCAT,a,b,0)
#define NEW_ARGSPUSH(a, b)   NEW_NODE(NODE_ARGSPUSH,a,b,0)
#define NEW_SPLAT(a)   NEW_NODE(NODE_SPLAT,a,0,0)
#define NEW_TO_ARY(a)   NEW_NODE(NODE_TO_ARY,a,0,0)
#define NEW_BLOCK_ARG(v)   NEW_NODE(NODE_BLOCK_ARG,v,0,local_cnt(v))
#define NEW_BLOCK_PASS(b)   NEW_NODE(NODE_BLOCK_PASS,0,b,0)
#define NEW_ALIAS(n, o)   NEW_NODE(NODE_ALIAS,n,o,0)
#define NEW_VALIAS(n, o)   NEW_NODE(NODE_VALIAS,n,o,0)
#define NEW_UNDEF(i)   NEW_NODE(NODE_UNDEF,0,i,0)
#define NEW_CLASS(n, b, s)   NEW_NODE(NODE_CLASS,n,NEW_SCOPE(0,b),(s))
#define NEW_SCLASS(r, b)   NEW_NODE(NODE_SCLASS,r,NEW_SCOPE(0,b),0)
#define NEW_MODULE(n, b)   NEW_NODE(NODE_MODULE,n,NEW_SCOPE(0,b),0)
#define NEW_COLON2(c, i)   NEW_NODE(NODE_COLON2,c,i,0)
#define NEW_COLON3(i)   NEW_NODE(NODE_COLON3,0,i,0)
#define NEW_CREF(a)   NEW_NODE(NODE_CREF,a,0,0)
#define NEW_DOT2(b, e)   NEW_NODE(NODE_DOT2,b,e,0)
#define NEW_DOT3(b, e)   NEW_NODE(NODE_DOT3,b,e,0)
#define NEW_SELF()   NEW_NODE(NODE_SELF,0,0,0)
#define NEW_NIL()   NEW_NODE(NODE_NIL,0,0,0)
#define NEW_TRUE()   NEW_NODE(NODE_TRUE,0,0,0)
#define NEW_FALSE()   NEW_NODE(NODE_FALSE,0,0,0)
#define NEW_ERRINFO()   NEW_NODE(NODE_ERRINFO,0,0,0)
#define NEW_DEFINED(e)   NEW_NODE(NODE_DEFINED,e,0,0)
#define NEW_PREEXE(b)   NEW_SCOPE(b)
#define NEW_POSTEXE(b)   NEW_NODE(NODE_POSTEXE,0,b,0)
#define NEW_BMETHOD(b)   NEW_NODE(NODE_BMETHOD,0,0,b)
#define NEW_ATTRASGN(r, m, a)   NEW_NODE(NODE_ATTRASGN,r,m,a)
#define NEW_PRELUDE(p, b)   NEW_NODE(NODE_PRELUDE,p,b,0)
#define NEW_MEMO(a, b, c)   NEW_NODE(NODE_MEMO,a,b,c)
#define roomof(x, y)   ((sizeof(x) + sizeof(y) - 1) / sizeof(y))
#define MEMO_FOR(type, value)   ((type *)RARRAY_PTR(value))
#define NEW_MEMO_FOR(type, value)

Typedefs

typedef struct RNode NODE

Enumerations

enum  node_type {
  NODE_SCOPE, NODE_SCOPE, NODE_BLOCK, NODE_BLOCK,
  NODE_IF, NODE_IF, NODE_CASE, NODE_CASE,
  NODE_WHEN, NODE_WHEN, NODE_OPT_N, NODE_OPT_N,
  NODE_WHILE, NODE_WHILE, NODE_UNTIL, NODE_UNTIL,
  NODE_ITER, NODE_ITER, NODE_FOR, NODE_FOR,
  NODE_BREAK, NODE_BREAK, NODE_NEXT, NODE_NEXT,
  NODE_REDO, NODE_REDO, NODE_RETRY, NODE_RETRY,
  NODE_BEGIN, NODE_BEGIN, NODE_RESCUE, NODE_RESCUE,
  NODE_RESBODY, NODE_RESBODY, NODE_ENSURE, NODE_ENSURE,
  NODE_AND, NODE_AND, NODE_OR, NODE_OR,
  NODE_MASGN, NODE_MASGN, NODE_LASGN, NODE_LASGN,
  NODE_DASGN, NODE_DASGN, NODE_DASGN_CURR, NODE_DASGN_CURR,
  NODE_GASGN, NODE_GASGN, NODE_IASGN, NODE_IASGN,
  NODE_IASGN2, NODE_IASGN2, NODE_CDECL, NODE_CDECL,
  NODE_CVASGN, NODE_CVASGN, NODE_CVDECL, NODE_CVDECL,
  NODE_OP_ASGN1, NODE_OP_ASGN1, NODE_OP_ASGN2, NODE_OP_ASGN2,
  NODE_OP_ASGN_AND, NODE_OP_ASGN_AND, NODE_OP_ASGN_OR, NODE_OP_ASGN_OR,
  NODE_OP_CDECL, NODE_OP_CDECL, NODE_CALL, NODE_CALL,
  NODE_FCALL, NODE_FCALL, NODE_VCALL, NODE_VCALL,
  NODE_SUPER, NODE_SUPER, NODE_ZSUPER, NODE_ZSUPER,
  NODE_ARRAY, NODE_ARRAY, NODE_ZARRAY, NODE_ZARRAY,
  NODE_VALUES, NODE_VALUES, NODE_HASH, NODE_HASH,
  NODE_RETURN, NODE_RETURN, NODE_YIELD, NODE_YIELD,
  NODE_LVAR, NODE_LVAR, NODE_DVAR, NODE_DVAR,
  NODE_GVAR, NODE_GVAR, NODE_IVAR, NODE_IVAR,
  NODE_CONST, NODE_CONST, NODE_CVAR, NODE_CVAR,
  NODE_NTH_REF, NODE_NTH_REF, NODE_BACK_REF, NODE_BACK_REF,
  NODE_MATCH, NODE_MATCH, NODE_MATCH2, NODE_MATCH2,
  NODE_MATCH3, NODE_MATCH3, NODE_LIT, NODE_LIT,
  NODE_STR, NODE_STR, NODE_DSTR, NODE_DSTR,
  NODE_XSTR, NODE_XSTR, NODE_DXSTR, NODE_DXSTR,
  NODE_EVSTR, NODE_EVSTR, NODE_DREGX, NODE_DREGX,
  NODE_DREGX_ONCE, NODE_DREGX_ONCE, NODE_ARGS, NODE_ARGS,
  NODE_ARGS_AUX, NODE_ARGS_AUX, NODE_OPT_ARG, NODE_OPT_ARG,
  NODE_KW_ARG, NODE_KW_ARG, NODE_POSTARG, NODE_POSTARG,
  NODE_ARGSCAT, NODE_ARGSCAT, NODE_ARGSPUSH, NODE_ARGSPUSH,
  NODE_SPLAT, NODE_SPLAT, NODE_TO_ARY, NODE_TO_ARY,
  NODE_BLOCK_ARG, NODE_BLOCK_ARG, NODE_BLOCK_PASS, NODE_BLOCK_PASS,
  NODE_DEFN, NODE_DEFN, NODE_DEFS, NODE_DEFS,
  NODE_ALIAS, NODE_ALIAS, NODE_VALIAS, NODE_VALIAS,
  NODE_UNDEF, NODE_UNDEF, NODE_CLASS, NODE_CLASS,
  NODE_MODULE, NODE_MODULE, NODE_SCLASS, NODE_SCLASS,
  NODE_COLON2, NODE_COLON2, NODE_COLON3, NODE_COLON3,
  NODE_CREF, NODE_CREF, NODE_DOT2, NODE_DOT2,
  NODE_DOT3, NODE_DOT3, NODE_FLIP2, NODE_FLIP2,
  NODE_FLIP3, NODE_FLIP3, NODE_SELF, NODE_SELF,
  NODE_NIL, NODE_NIL, NODE_TRUE, NODE_TRUE,
  NODE_FALSE, NODE_FALSE, NODE_ERRINFO, NODE_ERRINFO,
  NODE_DEFINED, NODE_DEFINED, NODE_POSTEXE, NODE_POSTEXE,
  NODE_ALLOCA, NODE_ALLOCA, NODE_BMETHOD, NODE_BMETHOD,
  NODE_MEMO, NODE_MEMO, NODE_IFUNC, NODE_IFUNC,
  NODE_DSYM, NODE_DSYM, NODE_ATTRASGN, NODE_ATTRASGN,
  NODE_PRELUDE, NODE_PRELUDE, NODE_LAMBDA, NODE_LAMBDA
}

Functions

VALUE rb_parser_new (void)
VALUE rb_parser_end_seen_p (VALUE)
VALUE rb_parser_encoding (VALUE)
VALUE rb_parser_get_yydebug (VALUE)
VALUE rb_parser_set_yydebug (VALUE, VALUE)
VALUE rb_parser_dump_tree (NODE *node, int comment)
NODErb_parser_append_print (VALUE, NODE *)
NODErb_parser_while_loop (VALUE, NODE *, int, int)
NODErb_parser_compile_cstr (volatile VALUE, const char *, const char *, int, int)
NODErb_parser_compile_string (volatile VALUE, const char *, VALUE, int)
NODErb_parser_compile_file (volatile VALUE, const char *, VALUE, int)
NODErb_compile_cstr (const char *, const char *, int, int)
NODErb_compile_string (const char *, VALUE, int)
NODErb_compile_file (const char *, VALUE, int)
NODErb_node_newnode (enum node_type, VALUE, VALUE, VALUE)
NODErb_node_newnode_longlife (enum node_type, VALUE, VALUE, VALUE)
struct rb_global_entryrb_global_entry (ID)
VALUE rb_gvar_get (struct rb_global_entry *)
VALUE rb_gvar_set (struct rb_global_entry *, VALUE)
VALUE rb_gvar_defined (struct rb_global_entry *)
struct kwtablerb_reserved_word (const char *, unsigned int)
void * rb_parser_malloc (struct parser_params *, size_t)
void * rb_parser_realloc (struct parser_params *, void *, size_t)
void * rb_parser_calloc (struct parser_params *, size_t, size_t)
void rb_parser_free (struct parser_params *, void *)

Define Documentation

#define MEMO_FOR (   type,
  value 
)    ((type *)RARRAY_PTR(value))
#define MEMO_FOR (   type,
  value 
)    ((type *)RARRAY_PTR(value))

Definition at line 463 of file node.h.

#define MEMO_FOR (   type,
  value 
)    ((type *)RARRAY_PTR(value))
#define nd_1st   u1.node

Referenced by dump_node().

#define nd_1st   u1.node
#define nd_1st   u1.node

Definition at line 301 of file node.h.

#define nd_2nd   u2.node

Referenced by dump_node().

#define nd_2nd   u2.node
#define nd_2nd   u2.node

Definition at line 302 of file node.h.

#define nd_aid   u3.id
#define nd_aid   u3.id
#define nd_aid   u3.id

Definition at line 319 of file node.h.

#define nd_ainfo   u3.args
#define nd_ainfo   u3.args
#define nd_ainfo   u3.args

Definition at line 332 of file node.h.

#define nd_alen   u2.argc
#define nd_alen   u2.argc
#define nd_alen   u2.argc

Definition at line 289 of file node.h.

#define nd_argc   u2.argc
#define nd_argc   u2.argc
#define nd_argc   u2.argc

Definition at line 338 of file node.h.

#define nd_args   u3.node
#define nd_args   u3.node
#define nd_args   u3.node

Definition at line 331 of file node.h.

#define nd_beg   u1.node
#define nd_beg   u1.node
#define nd_beg   u1.node

Definition at line 346 of file node.h.

#define nd_body   u2.node
#define nd_body   u2.node

Definition at line 293 of file node.h.

#define nd_body   u2.node
#define nd_cflag   u2.id
#define nd_cflag   u2.id
#define nd_cflag   u2.id

Definition at line 308 of file node.h.

#define nd_cfnc   u1.cfunc
#define nd_cfnc   u1.cfunc
#define nd_cfnc   u1.cfunc

Definition at line 337 of file node.h.

#define nd_clss   u1.value
#define nd_clss   u1.value
#define nd_clss   u1.value

Definition at line 344 of file node.h.

#define nd_cnt   u3.cnt
#define nd_cnt   u3.cnt
#define nd_cnt   u3.cnt

Definition at line 312 of file node.h.

#define nd_cond   u1.node
#define nd_cond   u1.node

Definition at line 292 of file node.h.

#define nd_cond   u1.node

Referenced by dump_node().

#define nd_cpath   u1.node
#define nd_cpath   u1.node
#define nd_cpath   u1.node

Definition at line 340 of file node.h.

#define nd_cval   u3.value
#define nd_cval   u3.value
#define nd_cval   u3.value

Definition at line 309 of file node.h.

#define nd_defn   u3.node
#define nd_defn   u3.node
#define nd_defn   u3.node

Definition at line 335 of file node.h.

#define nd_else   u3.node
#define nd_else   u3.node

Definition at line 294 of file node.h.

#define nd_else   u3.node

Referenced by dump_node(), and reduce_nodes_gen().

#define nd_end   u2.node
#define nd_end   u2.node
#define nd_end   u2.node

Definition at line 347 of file node.h.

#define nd_ensr   u3.node

Referenced by dump_node().

#define nd_ensr   u3.node
#define nd_ensr   u3.node

Definition at line 299 of file node.h.

#define nd_entry   u3.entry

Referenced by dump_node().

#define nd_entry   u3.entry
#define nd_entry   u3.entry

Definition at line 306 of file node.h.

#define nd_frml   u2.argc
#define nd_frml   u2.argc
#define nd_frml   u2.argc

Definition at line 323 of file node.h.

#define nd_head   u1.node
#define nd_head   u1.node

Definition at line 288 of file node.h.

#define nd_head   u1.node

Referenced by dump_node(), and reduce_nodes_gen().

#define nd_iter   u3.node

Referenced by dump_node(), and yyparse().

#define nd_iter   u3.node
#define nd_iter   u3.node

Definition at line 316 of file node.h.

#define nd_line (   n)    (int)(RNODE(n)->flags>>NODE_LSHIFT)
#define nd_line (   n)    (int)(RNODE(n)->flags>>NODE_LSHIFT)

Definition at line 282 of file node.h.

#define nd_line (   n)    (int)(RNODE(n)->flags>>NODE_LSHIFT)
#define nd_lit   u1.value

Referenced by yyparse().

#define nd_lit   u1.value
#define nd_lit   u1.value

Definition at line 321 of file node.h.

#define nd_mid   u2.id
#define nd_mid   u2.id
#define nd_mid   u2.id

Definition at line 330 of file node.h.

#define nd_modl   u1.id
#define nd_modl   u1.id
#define nd_modl   u1.id

Definition at line 343 of file node.h.

#define nd_next   u3.node
#define nd_next   u3.node

Definition at line 290 of file node.h.

#define nd_next   u3.node
#define nd_noex   u3.id
#define nd_noex   u3.id
#define nd_noex   u3.id

Definition at line 334 of file node.h.

#define nd_nth   u2.argc
#define nd_nth   u2.argc
#define nd_nth   u2.argc

Definition at line 351 of file node.h.

#define nd_oid   u1.id
#define nd_oid   u1.id
#define nd_oid   u1.id

Definition at line 311 of file node.h.

#define nd_opt   u1.node
#define nd_opt   u1.node
#define nd_opt   u1.node

Definition at line 325 of file node.h.

#define nd_orig   u3.value
#define nd_orig   u3.value

Definition at line 296 of file node.h.

#define nd_orig   u3.value
#define nd_pid   u1.id
#define nd_pid   u1.id
#define nd_pid   u1.id

Definition at line 326 of file node.h.

#define nd_plen   u2.argc

Referenced by yyparse().

#define nd_plen   u2.argc
#define nd_plen   u2.argc

Definition at line 327 of file node.h.

#define nd_recv   u1.node

Referenced by dump_node().

#define nd_recv   u1.node
#define nd_recv   u1.node

Definition at line 329 of file node.h.

#define nd_refinements   nd_reserved
#define nd_refinements   nd_reserved

Definition at line 286 of file node.h.

#define nd_refinements   nd_reserved
#define nd_resq   u2.node

Referenced by dump_node(), and reduce_nodes_gen().

#define nd_resq   u2.node
#define nd_resq   u2.node

Definition at line 298 of file node.h.

#define nd_rest   u1.id
#define nd_rest   u1.id
#define nd_rest   u1.id

Definition at line 324 of file node.h.

#define nd_rval   u2.value
#define nd_rval   u2.value
#define nd_rval   u2.value

Definition at line 349 of file node.h.

#define nd_set_line (   n,
 
)    RNODE(n)->flags=((RNODE(n)->flags&~(-1<<NODE_LSHIFT))|(((l)&NODE_LMASK)<<NODE_LSHIFT))
#define nd_set_line (   n,
 
)    RNODE(n)->flags=((RNODE(n)->flags&~(-1<<NODE_LSHIFT))|(((l)&NODE_LMASK)<<NODE_LSHIFT))

Definition at line 283 of file node.h.

#define nd_set_line (   n,
 
)    RNODE(n)->flags=((RNODE(n)->flags&~(-1<<NODE_LSHIFT))|(((l)&NODE_LMASK)<<NODE_LSHIFT))
#define nd_set_type (   n,
 
)    RNODE(n)->flags=((RNODE(n)->flags&~NODE_TYPEMASK)|((((unsigned long)(t))<<NODE_TYPESHIFT)&NODE_TYPEMASK))
#define nd_set_type (   n,
 
)    RNODE(n)->flags=((RNODE(n)->flags&~NODE_TYPEMASK)|((((unsigned long)(t))<<NODE_TYPESHIFT)&NODE_TYPEMASK))

Definition at line 277 of file node.h.

#define nd_set_type (   n,
 
)    RNODE(n)->flags=((RNODE(n)->flags&~NODE_TYPEMASK)|((((unsigned long)(t))<<NODE_TYPESHIFT)&NODE_TYPEMASK))
#define nd_state   u3.state

Referenced by dump_node().

#define nd_state   u3.state
#define nd_state   u3.state

Definition at line 348 of file node.h.

#define nd_stts   u1.node

Referenced by dump_node().

#define nd_stts   u1.node
#define nd_stts   u1.node

Definition at line 304 of file node.h.

#define nd_super   u3.node
#define nd_super   u3.node
#define nd_super   u3.node

Definition at line 341 of file node.h.

#define nd_tag   u1.id
#define nd_tag   u1.id
#define nd_tag   u1.id

Definition at line 353 of file node.h.

#define nd_tbl   u1.tbl
#define nd_tbl   u1.tbl
#define nd_tbl   u1.tbl

Definition at line 313 of file node.h.

#define nd_tval   u2.value
#define nd_tval   u2.value
#define nd_tval   u2.value

Definition at line 354 of file node.h.

#define nd_type (   n)    ((int) (((RNODE(n))->flags & NODE_TYPEMASK)>>NODE_TYPESHIFT))
#define nd_type (   n)    ((int) (((RNODE(n))->flags & NODE_TYPEMASK)>>NODE_TYPESHIFT))

Definition at line 276 of file node.h.

#define nd_type (   n)    ((int) (((RNODE(n))->flags & NODE_TYPEMASK)>>NODE_TYPESHIFT))
#define nd_value   u2.node
#define nd_value   u2.node
#define nd_value   u2.node

Definition at line 318 of file node.h.

#define nd_var   u1.node
#define nd_var   u1.node
#define nd_var   u1.node

Definition at line 315 of file node.h.

#define nd_vid   u1.id

Referenced by dump_node().

#define nd_vid   u1.id
#define nd_vid   u1.id

Definition at line 307 of file node.h.

#define nd_visi   u2.argc
#define nd_visi   u2.argc
#define nd_visi   u2.argc

Definition at line 356 of file node.h.

#define NEW_ALIAS (   n,
 
)    NEW_NODE(NODE_ALIAS,n,o,0)

Definition at line 438 of file node.h.

#define NEW_ALIAS (   n,
 
)    NEW_NODE(NODE_ALIAS,n,o,0)
#define NEW_ALIAS (   n,
 
)    NEW_NODE(NODE_ALIAS,n,o,0)

Referenced by yyparse().

#define NEW_ARGS_AUX (   r,
 
)    NEW_NODE(NODE_ARGS_AUX,r,b,0)

Definition at line 428 of file node.h.

#define NEW_ARGS_AUX (   r,
 
)    NEW_NODE(NODE_ARGS_AUX,r,b,0)
#define NEW_ARGS_AUX (   r,
 
)    NEW_NODE(NODE_ARGS_AUX,r,b,0)

Referenced by yyparse().

#define NEW_ARGSCAT (   a,
 
)    NEW_NODE(NODE_ARGSCAT,a,b,0)

Definition at line 432 of file node.h.

#define NEW_ARGSCAT (   a,
 
)    NEW_NODE(NODE_ARGSCAT,a,b,0)
#define NEW_ARGSCAT (   a,
 
)    NEW_NODE(NODE_ARGSCAT,a,b,0)

Referenced by arg_concat_gen(), and yyparse().

#define NEW_ARGSPUSH (   a,
 
)    NEW_NODE(NODE_ARGSPUSH,a,b,0)

Definition at line 433 of file node.h.

#define NEW_ARGSPUSH (   a,
 
)    NEW_NODE(NODE_ARGSPUSH,a,b,0)
#define NEW_ARGSPUSH (   a,
 
)    NEW_NODE(NODE_ARGSPUSH,a,b,0)

Referenced by arg_append_gen().

#define NEW_ARRAY (   a)    NEW_NODE(NODE_ARRAY,a,1,0)
#define NEW_ARRAY (   a)    NEW_NODE(NODE_ARRAY,a,1,0)

Referenced by rb_parser_append_print().

#define NEW_ARRAY (   a)    NEW_NODE(NODE_ARRAY,a,1,0)

Definition at line 386 of file node.h.

#define NEW_ATTRASGN (   r,
  m,
 
)    NEW_NODE(NODE_ATTRASGN,r,m,a)

Referenced by aryset_gen(), and attrset_gen().

#define NEW_ATTRASGN (   r,
  m,
 
)    NEW_NODE(NODE_ATTRASGN,r,m,a)

Definition at line 458 of file node.h.

#define NEW_ATTRASGN (   r,
  m,
 
)    NEW_NODE(NODE_ATTRASGN,r,m,a)
#define NEW_BACK_REF (   n)    NEW_NODE(NODE_BACK_REF,0,n,0)
#define NEW_BACK_REF (   n)    NEW_NODE(NODE_BACK_REF,0,n,0)

Referenced by parser_yylex().

#define NEW_BACK_REF (   n)    NEW_NODE(NODE_BACK_REF,0,n,0)

Definition at line 412 of file node.h.

#define NEW_BEGIN (   b)    NEW_NODE(NODE_BEGIN,0,b,0)
#define NEW_BEGIN (   b)    NEW_NODE(NODE_BEGIN,0,b,0)
#define NEW_BEGIN (   b)    NEW_NODE(NODE_BEGIN,0,b,0)

Definition at line 379 of file node.h.

#define NEW_BLOCK (   a)    NEW_NODE(NODE_BLOCK,a,0,0)

Referenced by block_append_gen().

#define NEW_BLOCK (   a)    NEW_NODE(NODE_BLOCK,a,0,0)
#define NEW_BLOCK (   a)    NEW_NODE(NODE_BLOCK,a,0,0)

Definition at line 364 of file node.h.

#define NEW_BLOCK_ARG (   v)    NEW_NODE(NODE_BLOCK_ARG,v,0,local_cnt(v))

Definition at line 436 of file node.h.

#define NEW_BLOCK_ARG (   v)    NEW_NODE(NODE_BLOCK_ARG,v,0,local_cnt(v))
#define NEW_BLOCK_ARG (   v)    NEW_NODE(NODE_BLOCK_ARG,v,0,local_cnt(v))
#define NEW_BLOCK_PASS (   b)    NEW_NODE(NODE_BLOCK_PASS,0,b,0)

Definition at line 437 of file node.h.

#define NEW_BLOCK_PASS (   b)    NEW_NODE(NODE_BLOCK_PASS,0,b,0)
#define NEW_BLOCK_PASS (   b)    NEW_NODE(NODE_BLOCK_PASS,0,b,0)

Referenced by yyparse().

#define NEW_BMETHOD (   b)    NEW_NODE(NODE_BMETHOD,0,0,b)
#define NEW_BMETHOD (   b)    NEW_NODE(NODE_BMETHOD,0,0,b)

Definition at line 457 of file node.h.

#define NEW_BMETHOD (   b)    NEW_NODE(NODE_BMETHOD,0,0,b)
#define NEW_BREAK (   s)    NEW_NODE(NODE_BREAK,s,0,0)
#define NEW_BREAK (   s)    NEW_NODE(NODE_BREAK,s,0,0)

Referenced by yyparse().

#define NEW_BREAK (   s)    NEW_NODE(NODE_BREAK,s,0,0)

Definition at line 375 of file node.h.

#define NEW_CALL (   r,
  m,
 
)    NEW_NODE(NODE_CALL,r,m,a)
#define NEW_CALL (   r,
  m,
 
)    NEW_NODE(NODE_CALL,r,m,a)
#define NEW_CALL (   r,
  m,
 
)    NEW_NODE(NODE_CALL,r,m,a)

Definition at line 423 of file node.h.

#define NEW_CASE (   h,
 
)    NEW_NODE(NODE_CASE,h,b,0)
#define NEW_CASE (   h,
 
)    NEW_NODE(NODE_CASE,h,b,0)

Referenced by yyparse().

#define NEW_CASE (   h,
 
)    NEW_NODE(NODE_CASE,h,b,0)

Definition at line 367 of file node.h.

#define NEW_CDECL (   v,
  val,
  path 
)    NEW_NODE(NODE_CDECL,v,val,path)
#define NEW_CDECL (   v,
  val,
  path 
)    NEW_NODE(NODE_CDECL,v,val,path)

Referenced by assignable_gen(), and yyparse().

#define NEW_CDECL (   v,
  val,
  path 
)    NEW_NODE(NODE_CDECL,v,val,path)

Definition at line 396 of file node.h.

#define NEW_CLASS (   n,
  b,
 
)    NEW_NODE(NODE_CLASS,n,NEW_SCOPE(0,b),(s))

Definition at line 441 of file node.h.

#define NEW_CLASS (   n,
  b,
 
)    NEW_NODE(NODE_CLASS,n,NEW_SCOPE(0,b),(s))
#define NEW_CLASS (   n,
  b,
 
)    NEW_NODE(NODE_CLASS,n,NEW_SCOPE(0,b),(s))

Referenced by yyparse().

#define NEW_COLON2 (   c,
 
)    NEW_NODE(NODE_COLON2,c,i,0)

Definition at line 444 of file node.h.

#define NEW_COLON2 (   c,
 
)    NEW_NODE(NODE_COLON2,c,i,0)
#define NEW_COLON2 (   c,
 
)    NEW_NODE(NODE_COLON2,c,i,0)

Referenced by yyparse().

#define NEW_COLON3 (   i)    NEW_NODE(NODE_COLON3,0,i,0)

Referenced by yyparse().

#define NEW_COLON3 (   i)    NEW_NODE(NODE_COLON3,0,i,0)

Definition at line 445 of file node.h.

#define NEW_COLON3 (   i)    NEW_NODE(NODE_COLON3,0,i,0)
#define NEW_CONST (   v)    NEW_NODE(NODE_CONST,v,0,0)
#define NEW_CONST (   v)    NEW_NODE(NODE_CONST,v,0,0)

Referenced by gettable_gen().

#define NEW_CONST (   v)    NEW_NODE(NODE_CONST,v,0,0)

Definition at line 409 of file node.h.

#define NEW_CREF (   a)    NEW_NODE(NODE_CREF,a,0,0)
#define NEW_CREF (   a)    NEW_NODE(NODE_CREF,a,0,0)

Definition at line 446 of file node.h.

#define NEW_CREF (   a)    NEW_NODE(NODE_CREF,a,0,0)
#define NEW_CVAR (   v)    NEW_NODE(NODE_CVAR,v,0,0)
#define NEW_CVAR (   v)    NEW_NODE(NODE_CVAR,v,0,0)

Referenced by gettable_gen(), and yyparse().

#define NEW_CVAR (   v)    NEW_NODE(NODE_CVAR,v,0,0)

Definition at line 410 of file node.h.

#define NEW_CVASGN (   v,
  val 
)    NEW_NODE(NODE_CVASGN,v,val,0)
#define NEW_CVASGN (   v,
  val 
)    NEW_NODE(NODE_CVASGN,v,val,0)

Referenced by assignable_gen().

#define NEW_CVASGN (   v,
  val 
)    NEW_NODE(NODE_CVASGN,v,val,0)

Definition at line 397 of file node.h.

#define NEW_CVDECL (   v,
  val 
)    NEW_NODE(NODE_CVDECL,v,val,0)
#define NEW_CVDECL (   v,
  val 
)    NEW_NODE(NODE_CVDECL,v,val,0)
#define NEW_CVDECL (   v,
  val 
)    NEW_NODE(NODE_CVDECL,v,val,0)

Definition at line 398 of file node.h.

#define NEW_DASGN (   v,
  val 
)    NEW_NODE(NODE_DASGN,v,val,0)
#define NEW_DASGN (   v,
  val 
)    NEW_NODE(NODE_DASGN,v,val,0)

Referenced by assignable_gen().

#define NEW_DASGN (   v,
  val 
)    NEW_NODE(NODE_DASGN,v,val,0)

Definition at line 392 of file node.h.

#define NEW_DASGN_CURR (   v,
  val 
)    NEW_NODE(NODE_DASGN_CURR,v,val,0)

Referenced by assignable_gen(), and yyparse().

#define NEW_DASGN_CURR (   v,
  val 
)    NEW_NODE(NODE_DASGN_CURR,v,val,0)
#define NEW_DASGN_CURR (   v,
  val 
)    NEW_NODE(NODE_DASGN_CURR,v,val,0)

Definition at line 393 of file node.h.

#define NEW_DEFINED (   e)    NEW_NODE(NODE_DEFINED,e,0,0)

Referenced by yyparse().

#define NEW_DEFINED (   e)    NEW_NODE(NODE_DEFINED,e,0,0)

Definition at line 454 of file node.h.

#define NEW_DEFINED (   e)    NEW_NODE(NODE_DEFINED,e,0,0)
#define NEW_DEFN (   i,
  a,
  d,
 
)    NEW_NODE(NODE_DEFN,0,i,NEW_SCOPE(a,d))

Referenced by yyparse().

#define NEW_DEFN (   i,
  a,
  d,
 
)    NEW_NODE(NODE_DEFN,0,i,NEW_SCOPE(a,d))
#define NEW_DEFN (   i,
  a,
  d,
 
)    NEW_NODE(NODE_DEFN,0,i,NEW_SCOPE(a,d))

Definition at line 360 of file node.h.

#define NEW_DEFS (   r,
  i,
  a,
 
)    NEW_NODE(NODE_DEFS,r,i,NEW_SCOPE(a,d))

Referenced by yyparse().

#define NEW_DEFS (   r,
  i,
  a,
 
)    NEW_NODE(NODE_DEFS,r,i,NEW_SCOPE(a,d))
#define NEW_DEFS (   r,
  i,
  a,
 
)    NEW_NODE(NODE_DEFS,r,i,NEW_SCOPE(a,d))

Definition at line 361 of file node.h.

#define NEW_DOT2 (   b,
 
)    NEW_NODE(NODE_DOT2,b,e,0)

Referenced by yyparse().

#define NEW_DOT2 (   b,
 
)    NEW_NODE(NODE_DOT2,b,e,0)

Definition at line 447 of file node.h.

#define NEW_DOT2 (   b,
 
)    NEW_NODE(NODE_DOT2,b,e,0)
#define NEW_DOT3 (   b,
 
)    NEW_NODE(NODE_DOT3,b,e,0)

Referenced by yyparse().

#define NEW_DOT3 (   b,
 
)    NEW_NODE(NODE_DOT3,b,e,0)

Definition at line 448 of file node.h.

#define NEW_DOT3 (   b,
 
)    NEW_NODE(NODE_DOT3,b,e,0)
#define NEW_DSTR (   s)    NEW_NODE(NODE_DSTR,s,1,0)
#define NEW_DSTR (   s)    NEW_NODE(NODE_DSTR,s,1,0)
#define NEW_DSTR (   s)    NEW_NODE(NODE_DSTR,s,1,0)

Definition at line 418 of file node.h.

#define NEW_DSYM (   s)    NEW_NODE(NODE_DSYM,s,0,0)
#define NEW_DSYM (   s)    NEW_NODE(NODE_DSYM,s,0,0)
#define NEW_DSYM (   s)    NEW_NODE(NODE_DSYM,s,0,0)

Definition at line 421 of file node.h.

#define NEW_DVAR (   v)    NEW_NODE(NODE_DVAR,v,0,0)
#define NEW_DVAR (   v)    NEW_NODE(NODE_DVAR,v,0,0)
#define NEW_DVAR (   v)    NEW_NODE(NODE_DVAR,v,0,0)

Definition at line 407 of file node.h.

#define NEW_DXSTR (   s)    NEW_NODE(NODE_DXSTR,s,0,0)
#define NEW_DXSTR (   s)    NEW_NODE(NODE_DXSTR,s,0,0)
#define NEW_DXSTR (   s)    NEW_NODE(NODE_DXSTR,s,0,0)

Definition at line 420 of file node.h.

#define NEW_ENSURE (   b,
  en 
)    NEW_NODE(NODE_ENSURE,b,0,en)
#define NEW_ENSURE (   b,
  en 
)    NEW_NODE(NODE_ENSURE,b,0,en)

Referenced by yyparse().

#define NEW_ENSURE (   b,
  en 
)    NEW_NODE(NODE_ENSURE,b,0,en)

Definition at line 382 of file node.h.

opt_rescue NEW_ERRINFO ( )    NEW_NODE(NODE_ERRINFO,0,0,0)

Referenced by yyparse().

#define NEW_ERRINFO ( )    NEW_NODE(NODE_ERRINFO,0,0,0)

Definition at line 453 of file node.h.

#define NEW_ERRINFO ( )    NEW_NODE(NODE_ERRINFO,0,0,0)
#define NEW_EVSTR (   n)    NEW_NODE(NODE_EVSTR,0,(n),0)
#define NEW_EVSTR (   n)    NEW_NODE(NODE_EVSTR,0,(n),0)

Referenced by new_evstr_gen(), and yyparse().

#define NEW_EVSTR (   n)    NEW_NODE(NODE_EVSTR,0,(n),0)

Definition at line 422 of file node.h.

#define NEW_FALSE ( )    NEW_NODE(NODE_FALSE,0,0,0)

Referenced by gettable_gen().

#define NEW_FALSE ( )    NEW_NODE(NODE_FALSE,0,0,0)

Definition at line 452 of file node.h.

#define NEW_FALSE ( )    NEW_NODE(NODE_FALSE,0,0,0)
#define NEW_FCALL (   m,
 
)    NEW_NODE(NODE_FCALL,0,m,a)
#define NEW_FCALL (   m,
 
)    NEW_NODE(NODE_FCALL,0,m,a)

Referenced by rb_parser_append_print(), and yyparse().

#define NEW_FCALL (   m,
 
)    NEW_NODE(NODE_FCALL,0,m,a)

Definition at line 424 of file node.h.

#define NEW_FOR (   v,
  i,
 
)    NEW_NODE(NODE_FOR,v,b,i)

Referenced by yyparse().

#define NEW_FOR (   v,
  i,
 
)    NEW_NODE(NODE_FOR,v,b,i)
#define NEW_FOR (   v,
  i,
 
)    NEW_NODE(NODE_FOR,v,b,i)

Definition at line 372 of file node.h.

#define NEW_GASGN (   v,
  val 
)    NEW_NODE(NODE_GASGN,v,val,rb_global_entry(v))
#define NEW_GASGN (   v,
  val 
)    NEW_NODE(NODE_GASGN,v,val,rb_global_entry(v))
#define NEW_GASGN (   v,
  val 
)    NEW_NODE(NODE_GASGN,v,val,rb_global_entry(v))

Definition at line 390 of file node.h.

#define NEW_GVAR (   v)    NEW_NODE(NODE_GVAR,v,0,rb_global_entry(v))
#define NEW_GVAR (   v)    NEW_NODE(NODE_GVAR,v,0,rb_global_entry(v))
#define NEW_GVAR (   v)    NEW_NODE(NODE_GVAR,v,0,rb_global_entry(v))

Definition at line 405 of file node.h.

#define NEW_HASH (   a)    NEW_NODE(NODE_HASH,a,0,0)
#define NEW_HASH (   a)    NEW_NODE(NODE_HASH,a,0,0)

Referenced by yyparse().

#define NEW_HASH (   a)    NEW_NODE(NODE_HASH,a,0,0)

Definition at line 388 of file node.h.

#define NEW_IASGN (   v,
  val 
)    NEW_NODE(NODE_IASGN,v,val,0)
#define NEW_IASGN (   v,
  val 
)    NEW_NODE(NODE_IASGN,v,val,0)

Referenced by assignable_gen().

#define NEW_IASGN (   v,
  val 
)    NEW_NODE(NODE_IASGN,v,val,0)

Definition at line 394 of file node.h.

#define NEW_IASGN2 (   v,
  val 
)    NEW_NODE(NODE_IASGN2,v,val,0)
#define NEW_IASGN2 (   v,
  val 
)    NEW_NODE(NODE_IASGN2,v,val,0)
#define NEW_IASGN2 (   v,
  val 
)    NEW_NODE(NODE_IASGN2,v,val,0)

Definition at line 395 of file node.h.

#define NEW_IF (   c,
  t,
 
)    NEW_NODE(NODE_IF,c,t,e)
#define NEW_IF (   c,
  t,
 
)    NEW_NODE(NODE_IF,c,t,e)
#define NEW_IF (   c,
  t,
 
)    NEW_NODE(NODE_IF,c,t,e)

Definition at line 365 of file node.h.

#define NEW_IFUNC (   f,
 
)    NEW_NODE(NODE_IFUNC,f,c,0)

Referenced by rb_iterate().

#define NEW_IFUNC (   f,
 
)    NEW_NODE(NODE_IFUNC,f,c,0)
#define NEW_IFUNC (   f,
 
)    NEW_NODE(NODE_IFUNC,f,c,0)

Definition at line 362 of file node.h.

#define NEW_ITER (   a,
 
)    NEW_NODE(NODE_ITER,0,NEW_SCOPE(a,b),0)
#define NEW_ITER (   a,
 
)    NEW_NODE(NODE_ITER,0,NEW_SCOPE(a,b),0)

Referenced by yyparse().

#define NEW_ITER (   a,
 
)    NEW_NODE(NODE_ITER,0,NEW_SCOPE(a,b),0)

Definition at line 373 of file node.h.

#define NEW_IVAR (   v)    NEW_NODE(NODE_IVAR,v,0,0)
#define NEW_IVAR (   v)    NEW_NODE(NODE_IVAR,v,0,0)

Referenced by gettable_gen(), and yyparse().

#define NEW_IVAR (   v)    NEW_NODE(NODE_IVAR,v,0,0)

Definition at line 408 of file node.h.

#define NEW_KW_ARG (   i,
 
)    NEW_NODE(NODE_KW_ARG,i,v,0)

Definition at line 430 of file node.h.

#define NEW_KW_ARG (   i,
 
)    NEW_NODE(NODE_KW_ARG,i,v,0)
#define NEW_KW_ARG (   i,
 
)    NEW_NODE(NODE_KW_ARG,i,v,0)

Referenced by yyparse().

#define NEW_LAMBDA (   a,
 
)    NEW_NODE(NODE_LAMBDA,0,NEW_SCOPE(a,b),0)
#define NEW_LAMBDA (   a,
 
)    NEW_NODE(NODE_LAMBDA,0,NEW_SCOPE(a,b),0)

Referenced by yyparse().

#define NEW_LAMBDA (   a,
 
)    NEW_NODE(NODE_LAMBDA,0,NEW_SCOPE(a,b),0)

Definition at line 374 of file node.h.

#define NEW_LASGN (   v,
  val 
)    NEW_NODE(NODE_LASGN,v,val,0)
#define NEW_LASGN (   v,
  val 
)    NEW_NODE(NODE_LASGN,v,val,0)

Referenced by assignable_gen().

#define NEW_LASGN (   v,
  val 
)    NEW_NODE(NODE_LASGN,v,val,0)

Definition at line 391 of file node.h.

#define NEW_LIST (   a)    NEW_ARRAY(a)
#define NEW_LIST (   a)    NEW_ARRAY(a)
#define NEW_LIST (   a)    NEW_ARRAY(a)

Definition at line 385 of file node.h.

#define NEW_LIT (   l)    NEW_NODE(NODE_LIT,l,0,0)
#define NEW_LIT (   l)    NEW_NODE(NODE_LIT,l,0,0)
#define NEW_LIT (   l)    NEW_NODE(NODE_LIT,l,0,0)

Definition at line 416 of file node.h.

#define NEW_LVAR (   v)    NEW_NODE(NODE_LVAR,v,0,0)
#define NEW_LVAR (   v)    NEW_NODE(NODE_LVAR,v,0,0)

Referenced by gettable_gen(), and yyparse().

#define NEW_LVAR (   v)    NEW_NODE(NODE_LVAR,v,0,0)

Definition at line 406 of file node.h.

#define NEW_MASGN (   l,
 
)    NEW_NODE(NODE_MASGN,l,0,r)
#define NEW_MASGN (   l,
 
)    NEW_NODE(NODE_MASGN,l,0,r)

Referenced by yyparse().

#define NEW_MASGN (   l,
 
)    NEW_NODE(NODE_MASGN,l,0,r)

Definition at line 389 of file node.h.

#define NEW_MATCH (   c)    NEW_NODE(NODE_MATCH,c,0,0)
#define NEW_MATCH (   c)    NEW_NODE(NODE_MATCH,c,0,0)
#define NEW_MATCH (   c)    NEW_NODE(NODE_MATCH,c,0,0)

Definition at line 413 of file node.h.

#define NEW_MATCH2 (   n1,
  n2 
)    NEW_NODE(NODE_MATCH2,n1,n2,0)
#define NEW_MATCH2 (   n1,
  n2 
)    NEW_NODE(NODE_MATCH2,n1,n2,0)

Referenced by cond0(), and match_op_gen().

#define NEW_MATCH2 (   n1,
  n2 
)    NEW_NODE(NODE_MATCH2,n1,n2,0)

Definition at line 414 of file node.h.

#define NEW_MATCH3 (   r,
  n2 
)    NEW_NODE(NODE_MATCH3,r,n2,0)
#define NEW_MATCH3 (   r,
  n2 
)    NEW_NODE(NODE_MATCH3,r,n2,0)

Referenced by match_op_gen().

#define NEW_MATCH3 (   r,
  n2 
)    NEW_NODE(NODE_MATCH3,r,n2,0)

Definition at line 415 of file node.h.

#define NEW_MEMO (   a,
  b,
 
)    NEW_NODE(NODE_MEMO,a,b,c)
#define NEW_MEMO (   a,
  b,
 
)    NEW_NODE(NODE_MEMO,a,b,c)
#define NEW_MEMO (   a,
  b,
 
)    NEW_NODE(NODE_MEMO,a,b,c)

Definition at line 460 of file node.h.

#define NEW_MEMO_FOR (   type,
  value 
)
Value:
(rb_ary_set_len(((value) = rb_ary_tmp_new(roomof(type, VALUE))), \
                    roomof(type, VALUE)), \
     MEMO_FOR(type, value))
#define NEW_MEMO_FOR (   type,
  value 
)
Value:
(rb_ary_set_len(((value) = rb_ary_tmp_new(roomof(type, VALUE))), \
                    roomof(type, VALUE)), \
     MEMO_FOR(type, value))

Referenced by chunk_i(), enum_minmax_by(), and slicebefore_i().

#define NEW_MEMO_FOR (   type,
  value 
)
Value:
(rb_ary_set_len(((value) = rb_ary_tmp_new(roomof(type, VALUE))), \
                    roomof(type, VALUE)), \
     MEMO_FOR(type, value))

Definition at line 464 of file node.h.

#define NEW_MODULE (   n,
 
)    NEW_NODE(NODE_MODULE,n,NEW_SCOPE(0,b),0)

Definition at line 443 of file node.h.

#define NEW_MODULE (   n,
 
)    NEW_NODE(NODE_MODULE,n,NEW_SCOPE(0,b),0)
#define NEW_MODULE (   n,
 
)    NEW_NODE(NODE_MODULE,n,NEW_SCOPE(0,b),0)

Referenced by yyparse().

#define NEW_NEXT (   s)    NEW_NODE(NODE_NEXT,s,0,0)

Referenced by yyparse().

#define NEW_NEXT (   s)    NEW_NODE(NODE_NEXT,s,0,0)

Definition at line 376 of file node.h.

#define NEW_NEXT (   s)    NEW_NODE(NODE_NEXT,s,0,0)
#define NEW_NIL ( )    NEW_NODE(NODE_NIL,0,0,0)
#define NEW_NIL ( )    NEW_NODE(NODE_NIL,0,0,0)

Definition at line 450 of file node.h.

#define NEW_NIL ( )    NEW_NODE(NODE_NIL,0,0,0)
#define NEW_NODE (   t,
  a0,
  a1,
  a2 
)    rb_node_newnode((t),(VALUE)(a0),(VALUE)(a1),(VALUE)(a2))
#define NEW_NODE (   t,
  a0,
  a1,
  a2 
)    rb_node_newnode((t),(VALUE)(a0),(VALUE)(a1),(VALUE)(a2))
#define NEW_NODE (   t,
  a0,
  a1,
  a2 
)    rb_node_newnode((t),(VALUE)(a0),(VALUE)(a1),(VALUE)(a2))

Definition at line 358 of file node.h.

#define NEW_NTH_REF (   n)    NEW_NODE(NODE_NTH_REF,0,n,0)
#define NEW_NTH_REF (   n)    NEW_NODE(NODE_NTH_REF,0,n,0)

Referenced by parser_yylex().

#define NEW_NTH_REF (   n)    NEW_NODE(NODE_NTH_REF,0,n,0)

Definition at line 411 of file node.h.

#define NEW_OP_ASGN1 (   p,
  id,
 
)    NEW_NODE(NODE_OP_ASGN1,p,id,a)
#define NEW_OP_ASGN1 (   p,
  id,
 
)    NEW_NODE(NODE_OP_ASGN1,p,id,a)

Referenced by yyparse().

#define NEW_OP_ASGN1 (   p,
  id,
 
)    NEW_NODE(NODE_OP_ASGN1,p,id,a)

Definition at line 399 of file node.h.

#define NEW_OP_ASGN2 (   r,
  i,
  o,
  val 
)    NEW_NODE(NODE_OP_ASGN2,r,val,NEW_OP_ASGN22(i,o))
#define NEW_OP_ASGN2 (   r,
  i,
  o,
  val 
)    NEW_NODE(NODE_OP_ASGN2,r,val,NEW_OP_ASGN22(i,o))

Referenced by new_attr_op_assign_gen().

#define NEW_OP_ASGN2 (   r,
  i,
  o,
  val 
)    NEW_NODE(NODE_OP_ASGN2,r,val,NEW_OP_ASGN22(i,o))

Definition at line 400 of file node.h.

#define NEW_OP_ASGN22 (   i,
 
)    NEW_NODE(NODE_OP_ASGN2,i,o,rb_id_attrset(i))
#define NEW_OP_ASGN22 (   i,
 
)    NEW_NODE(NODE_OP_ASGN2,i,o,rb_id_attrset(i))
#define NEW_OP_ASGN22 (   i,
 
)    NEW_NODE(NODE_OP_ASGN2,i,o,rb_id_attrset(i))

Definition at line 401 of file node.h.

#define NEW_OP_ASGN_AND (   i,
  val 
)    NEW_NODE(NODE_OP_ASGN_AND,i,val,0)
#define NEW_OP_ASGN_AND (   i,
  val 
)    NEW_NODE(NODE_OP_ASGN_AND,i,val,0)

Referenced by new_op_assign_gen().

#define NEW_OP_ASGN_AND (   i,
  val 
)    NEW_NODE(NODE_OP_ASGN_AND,i,val,0)

Definition at line 403 of file node.h.

#define NEW_OP_ASGN_OR (   i,
  val 
)    NEW_NODE(NODE_OP_ASGN_OR,i,val,0)
#define NEW_OP_ASGN_OR (   i,
  val 
)    NEW_NODE(NODE_OP_ASGN_OR,i,val,0)

Referenced by new_op_assign_gen().

#define NEW_OP_ASGN_OR (   i,
  val 
)    NEW_NODE(NODE_OP_ASGN_OR,i,val,0)

Definition at line 402 of file node.h.

#define NEW_OP_CDECL (   v,
  op,
  val 
)    NEW_NODE(NODE_OP_CDECL,v,val,op)
#define NEW_OP_CDECL (   v,
  op,
  val 
)    NEW_NODE(NODE_OP_CDECL,v,val,op)

Referenced by new_const_op_assign_gen().

#define NEW_OP_CDECL (   v,
  op,
  val 
)    NEW_NODE(NODE_OP_CDECL,v,val,op)

Definition at line 404 of file node.h.

#define NEW_OPT_ARG (   i,
 
)    NEW_NODE(NODE_OPT_ARG,i,v,0)

Definition at line 429 of file node.h.

#define NEW_OPT_ARG (   i,
 
)    NEW_NODE(NODE_OPT_ARG,i,v,0)
#define NEW_OPT_ARG (   i,
 
)    NEW_NODE(NODE_OPT_ARG,i,v,0)

Referenced by yyparse().

#define NEW_OPT_N (   b)    NEW_NODE(NODE_OPT_N,0,b,0)

Referenced by rb_parser_while_loop().

#define NEW_OPT_N (   b)    NEW_NODE(NODE_OPT_N,0,b,0)
#define NEW_OPT_N (   b)    NEW_NODE(NODE_OPT_N,0,b,0)

Definition at line 369 of file node.h.

#define NEW_POSTARG (   i,
 
)    NEW_NODE(NODE_POSTARG,i,v,0)

Definition at line 431 of file node.h.

#define NEW_POSTARG (   i,
 
)    NEW_NODE(NODE_POSTARG,i,v,0)
#define NEW_POSTARG (   i,
 
)    NEW_NODE(NODE_POSTARG,i,v,0)

Referenced by yyparse().

#define NEW_POSTEXE (   b)    NEW_NODE(NODE_POSTEXE,0,b,0)

Referenced by yyparse().

#define NEW_POSTEXE (   b)    NEW_NODE(NODE_POSTEXE,0,b,0)

Definition at line 456 of file node.h.

#define NEW_POSTEXE (   b)    NEW_NODE(NODE_POSTEXE,0,b,0)
#define NEW_PREEXE (   b)    NEW_SCOPE(b)
#define NEW_PREEXE (   b)    NEW_SCOPE(b)

Definition at line 455 of file node.h.

#define NEW_PREEXE (   b)    NEW_SCOPE(b)
#define NEW_PRELUDE (   p,
 
)    NEW_NODE(NODE_PRELUDE,p,b,0)

Referenced by yycompile0().

#define NEW_PRELUDE (   p,
 
)    NEW_NODE(NODE_PRELUDE,p,b,0)

Definition at line 459 of file node.h.

#define NEW_PRELUDE (   p,
 
)    NEW_NODE(NODE_PRELUDE,p,b,0)
#define NEW_REDO ( )    NEW_NODE(NODE_REDO,0,0,0)
#define NEW_REDO ( )    NEW_NODE(NODE_REDO,0,0,0)

Referenced by yyparse().

#define NEW_REDO ( )    NEW_NODE(NODE_REDO,0,0,0)

Definition at line 377 of file node.h.

#define NEW_RESBODY (   a,
  ex,
 
)    NEW_NODE(NODE_RESBODY,n,ex,a)
#define NEW_RESBODY (   a,
  ex,
 
)    NEW_NODE(NODE_RESBODY,n,ex,a)

Referenced by yyparse().

#define NEW_RESBODY (   a,
  ex,
 
)    NEW_NODE(NODE_RESBODY,n,ex,a)

Definition at line 381 of file node.h.

#define NEW_RESCUE (   b,
  res,
 
)    NEW_NODE(NODE_RESCUE,b,res,e)

Referenced by yyparse().

#define NEW_RESCUE (   b,
  res,
 
)    NEW_NODE(NODE_RESCUE,b,res,e)
#define NEW_RESCUE (   b,
  res,
 
)    NEW_NODE(NODE_RESCUE,b,res,e)

Definition at line 380 of file node.h.

#define NEW_RETRY ( )    NEW_NODE(NODE_RETRY,0,0,0)
#define NEW_RETRY ( )    NEW_NODE(NODE_RETRY,0,0,0)

Referenced by yyparse().

#define NEW_RETRY ( )    NEW_NODE(NODE_RETRY,0,0,0)

Definition at line 378 of file node.h.

#define NEW_RETURN (   s)    NEW_NODE(NODE_RETURN,s,0,0)

Referenced by yyparse().

#define NEW_RETURN (   s)    NEW_NODE(NODE_RETURN,s,0,0)
#define NEW_RETURN (   s)    NEW_NODE(NODE_RETURN,s,0,0)

Definition at line 383 of file node.h.

#define NEW_SCLASS (   r,
 
)    NEW_NODE(NODE_SCLASS,r,NEW_SCOPE(0,b),0)

Definition at line 442 of file node.h.

#define NEW_SCLASS (   r,
 
)    NEW_NODE(NODE_SCLASS,r,NEW_SCOPE(0,b),0)
#define NEW_SCLASS (   r,
 
)    NEW_NODE(NODE_SCLASS,r,NEW_SCOPE(0,b),0)

Referenced by yyparse().

#define NEW_SCOPE (   a,
 
)    NEW_NODE(NODE_SCOPE,local_tbl(),b,a)
#define NEW_SCOPE (   a,
 
)    NEW_NODE(NODE_SCOPE,local_tbl(),b,a)

Referenced by yyparse().

#define NEW_SCOPE (   a,
 
)    NEW_NODE(NODE_SCOPE,local_tbl(),b,a)

Definition at line 363 of file node.h.

#define NEW_SELF ( )    NEW_NODE(NODE_SELF,0,0,0)

Referenced by gettable_gen().

#define NEW_SELF ( )    NEW_NODE(NODE_SELF,0,0,0)

Definition at line 449 of file node.h.

#define NEW_SELF ( )    NEW_NODE(NODE_SELF,0,0,0)
#define NEW_SPLAT (   a)    NEW_NODE(NODE_SPLAT,a,0,0)

Definition at line 434 of file node.h.

#define NEW_SPLAT (   a)    NEW_NODE(NODE_SPLAT,a,0,0)
#define NEW_SPLAT (   a)    NEW_NODE(NODE_SPLAT,a,0,0)

Referenced by yyparse().

#define NEW_STR (   s)    NEW_NODE(NODE_STR,s,0,0)
#define NEW_STR (   s)    NEW_NODE(NODE_STR,s,0,0)
#define NEW_STR (   s)    NEW_NODE(NODE_STR,s,0,0)

Definition at line 417 of file node.h.

#define NEW_SUPER (   a)    NEW_NODE(NODE_SUPER,0,0,a)
#define NEW_SUPER (   a)    NEW_NODE(NODE_SUPER,0,0,a)

Referenced by yyparse().

#define NEW_SUPER (   a)    NEW_NODE(NODE_SUPER,0,0,a)

Definition at line 426 of file node.h.

#define NEW_TO_ARY (   a)    NEW_NODE(NODE_TO_ARY,a,0,0)

Definition at line 435 of file node.h.

#define NEW_TO_ARY (   a)    NEW_NODE(NODE_TO_ARY,a,0,0)
#define NEW_TO_ARY (   a)    NEW_NODE(NODE_TO_ARY,a,0,0)
#define NEW_TRUE ( )    NEW_NODE(NODE_TRUE,0,0,0)

Referenced by gettable_gen().

#define NEW_TRUE ( )    NEW_NODE(NODE_TRUE,0,0,0)

Definition at line 451 of file node.h.

#define NEW_TRUE ( )    NEW_NODE(NODE_TRUE,0,0,0)
#define NEW_UNDEF (   i)    NEW_NODE(NODE_UNDEF,0,i,0)

Definition at line 440 of file node.h.

#define NEW_UNDEF (   i)    NEW_NODE(NODE_UNDEF,0,i,0)
#define NEW_UNDEF (   i)    NEW_NODE(NODE_UNDEF,0,i,0)

Referenced by yyparse().

#define NEW_UNLESS (   c,
  t,
 
)    NEW_IF(c,e,t)

Referenced by yyparse().

#define NEW_UNLESS (   c,
  t,
 
)    NEW_IF(c,e,t)
#define NEW_UNLESS (   c,
  t,
 
)    NEW_IF(c,e,t)

Definition at line 366 of file node.h.

#define NEW_UNTIL (   c,
  b,
 
)    NEW_NODE(NODE_UNTIL,c,b,n)

Referenced by yyparse().

#define NEW_UNTIL (   c,
  b,
 
)    NEW_NODE(NODE_UNTIL,c,b,n)
#define NEW_UNTIL (   c,
  b,
 
)    NEW_NODE(NODE_UNTIL,c,b,n)

Definition at line 371 of file node.h.

#define NEW_VALIAS (   n,
 
)    NEW_NODE(NODE_VALIAS,n,o,0)
#define NEW_VALIAS (   n,
 
)    NEW_NODE(NODE_VALIAS,n,o,0)

Referenced by yyparse().

#define NEW_VALIAS (   n,
 
)    NEW_NODE(NODE_VALIAS,n,o,0)

Definition at line 439 of file node.h.

#define NEW_VCALL (   m)    NEW_NODE(NODE_VCALL,0,m,0)
#define NEW_VCALL (   m)    NEW_NODE(NODE_VCALL,0,m,0)

Referenced by gettable_gen().

#define NEW_VCALL (   m)    NEW_NODE(NODE_VCALL,0,m,0)

Definition at line 425 of file node.h.

#define NEW_WHEN (   c,
  t,
 
)    NEW_NODE(NODE_WHEN,c,t,e)
#define NEW_WHEN (   c,
  t,
 
)    NEW_NODE(NODE_WHEN,c,t,e)

Referenced by yyparse().

#define NEW_WHEN (   c,
  t,
 
)    NEW_NODE(NODE_WHEN,c,t,e)

Definition at line 368 of file node.h.

#define NEW_WHILE (   c,
  b,
 
)    NEW_NODE(NODE_WHILE,c,b,n)

Referenced by yyparse().

#define NEW_WHILE (   c,
  b,
 
)    NEW_NODE(NODE_WHILE,c,b,n)
#define NEW_WHILE (   c,
  b,
 
)    NEW_NODE(NODE_WHILE,c,b,n)

Definition at line 370 of file node.h.

#define NEW_XSTR (   s)    NEW_NODE(NODE_XSTR,s,0,0)
#define NEW_XSTR (   s)    NEW_NODE(NODE_XSTR,s,0,0)

Referenced by yyparse().

#define NEW_XSTR (   s)    NEW_NODE(NODE_XSTR,s,0,0)

Definition at line 419 of file node.h.

#define NEW_YIELD (   a)    NEW_NODE(NODE_YIELD,a,0,0)

Referenced by new_yield_gen(), and yyparse().

#define NEW_YIELD (   a)    NEW_NODE(NODE_YIELD,a,0,0)
#define NEW_YIELD (   a)    NEW_NODE(NODE_YIELD,a,0,0)

Definition at line 384 of file node.h.

#define NEW_ZARRAY ( )    NEW_NODE(NODE_ZARRAY,0,0,0)

Referenced by yyparse().

#define NEW_ZARRAY ( )    NEW_NODE(NODE_ZARRAY,0,0,0)

Definition at line 387 of file node.h.

#define NEW_ZARRAY ( )    NEW_NODE(NODE_ZARRAY,0,0,0)
#define NEW_ZSUPER ( )    NEW_NODE(NODE_ZSUPER,0,0,0)

Definition at line 427 of file node.h.

#define NEW_ZSUPER ( )    NEW_NODE(NODE_ZSUPER,0,0,0)
#define NEW_ZSUPER ( )    NEW_NODE(NODE_ZSUPER,0,0,0)

Referenced by yyparse().

#define NODE_ALIAS   NODE_ALIAS
#define NODE_ALIAS   NODE_ALIAS

Definition at line 180 of file node.h.

#define NODE_ALIAS   NODE_ALIAS
#define NODE_ALLOCA   NODE_ALLOCA
#define NODE_ALLOCA   NODE_ALLOCA

Definition at line 220 of file node.h.

#define NODE_ALLOCA   NODE_ALLOCA
#define NODE_AND   NODE_AND
#define NODE_AND   NODE_AND
#define NODE_AND   NODE_AND

Definition at line 60 of file node.h.

#define NODE_ARGS   NODE_ARGS
#define NODE_ARGS   NODE_ARGS
#define NODE_ARGS   NODE_ARGS

Definition at line 154 of file node.h.

Definition at line 156 of file node.h.

#define NODE_ARGSCAT   NODE_ARGSCAT
#define NODE_ARGSCAT   NODE_ARGSCAT
#define NODE_ARGSCAT   NODE_ARGSCAT

Definition at line 164 of file node.h.

Definition at line 166 of file node.h.

#define NODE_ARRAY   NODE_ARRAY
#define NODE_ARRAY   NODE_ARRAY

Definition at line 104 of file node.h.

#define NODE_ARRAY   NODE_ARRAY

Definition at line 230 of file node.h.

Definition at line 130 of file node.h.

#define NODE_BEGIN   NODE_BEGIN
#define NODE_BEGIN   NODE_BEGIN

Definition at line 52 of file node.h.

#define NODE_BEGIN   NODE_BEGIN
#define NODE_BLOCK   NODE_BLOCK
#define NODE_BLOCK   NODE_BLOCK
#define NODE_BLOCK   NODE_BLOCK

Definition at line 26 of file node.h.

Definition at line 172 of file node.h.

Definition at line 174 of file node.h.

#define NODE_BMETHOD   NODE_BMETHOD

Definition at line 222 of file node.h.

#define NODE_BMETHOD   NODE_BMETHOD
#define NODE_BMETHOD   NODE_BMETHOD
#define NODE_BREAK   NODE_BREAK
#define NODE_BREAK   NODE_BREAK
#define NODE_BREAK   NODE_BREAK

Definition at line 44 of file node.h.

#define NODE_CALL   NODE_CALL
#define NODE_CALL   NODE_CALL
#define NODE_CALL   NODE_CALL

Definition at line 94 of file node.h.

#define NODE_CASE   NODE_CASE
#define NODE_CASE   NODE_CASE

Definition at line 30 of file node.h.

#define NODE_CASE   NODE_CASE
#define NODE_CDECL   NODE_CDECL
#define NODE_CDECL   NODE_CDECL

Definition at line 78 of file node.h.

#define NODE_CDECL   NODE_CDECL
#define NODE_CLASS   NODE_CLASS
#define NODE_CLASS   NODE_CLASS
#define NODE_CLASS   NODE_CLASS

Definition at line 186 of file node.h.

#define NODE_COLON2   NODE_COLON2

Definition at line 192 of file node.h.

#define NODE_COLON2   NODE_COLON2
#define NODE_COLON2   NODE_COLON2
#define NODE_COLON3   NODE_COLON3
#define NODE_COLON3   NODE_COLON3

Definition at line 194 of file node.h.

#define NODE_COLON3   NODE_COLON3
#define NODE_CONST   NODE_CONST
#define NODE_CONST   NODE_CONST

Definition at line 124 of file node.h.

#define NODE_CONST   NODE_CONST
#define NODE_CREF   NODE_CREF
#define NODE_CREF   NODE_CREF

Definition at line 196 of file node.h.

#define NODE_CREF   NODE_CREF
#define NODE_CVAR   NODE_CVAR

Definition at line 126 of file node.h.

#define NODE_CVAR   NODE_CVAR
#define NODE_CVAR   NODE_CVAR
#define NODE_CVASGN   NODE_CVASGN

Definition at line 80 of file node.h.

#define NODE_CVASGN   NODE_CVASGN
#define NODE_CVASGN   NODE_CVASGN
#define NODE_CVDECL   NODE_CVDECL
#define NODE_CVDECL   NODE_CVDECL

Definition at line 82 of file node.h.

#define NODE_CVDECL   NODE_CVDECL
#define NODE_DASGN   NODE_DASGN
#define NODE_DASGN   NODE_DASGN
#define NODE_DASGN   NODE_DASGN

Definition at line 68 of file node.h.

Definition at line 70 of file node.h.

#define NODE_DEFINED   NODE_DEFINED
#define NODE_DEFINED   NODE_DEFINED

Definition at line 216 of file node.h.

#define NODE_DEFINED   NODE_DEFINED
#define NODE_DEFN   NODE_DEFN
#define NODE_DEFN   NODE_DEFN
#define NODE_DEFN   NODE_DEFN

Definition at line 176 of file node.h.

#define NODE_DEFS   NODE_DEFS
#define NODE_DEFS   NODE_DEFS

Definition at line 178 of file node.h.

#define NODE_DEFS   NODE_DEFS
#define NODE_DOT2   NODE_DOT2
#define NODE_DOT2   NODE_DOT2
#define NODE_DOT2   NODE_DOT2

Definition at line 198 of file node.h.

#define NODE_DOT3   NODE_DOT3

Definition at line 200 of file node.h.

#define NODE_DOT3   NODE_DOT3
#define NODE_DOT3   NODE_DOT3
#define NODE_DREGX   NODE_DREGX
#define NODE_DREGX   NODE_DREGX
#define NODE_DREGX   NODE_DREGX

Definition at line 150 of file node.h.

Definition at line 152 of file node.h.

#define NODE_DSTR   NODE_DSTR
#define NODE_DSTR   NODE_DSTR

Definition at line 142 of file node.h.

#define NODE_DSTR   NODE_DSTR
#define NODE_DSYM   NODE_DSYM

Definition at line 228 of file node.h.

#define NODE_DSYM   NODE_DSYM
#define NODE_DSYM   NODE_DSYM
#define NODE_DVAR   NODE_DVAR
#define NODE_DVAR   NODE_DVAR

Definition at line 118 of file node.h.

#define NODE_DVAR   NODE_DVAR
#define NODE_DXSTR   NODE_DXSTR
#define NODE_DXSTR   NODE_DXSTR
#define NODE_DXSTR   NODE_DXSTR

Definition at line 146 of file node.h.

#define NODE_ENSURE   NODE_ENSURE
#define NODE_ENSURE   NODE_ENSURE
#define NODE_ENSURE   NODE_ENSURE

Definition at line 58 of file node.h.

#define NODE_ERRINFO   NODE_ERRINFO

Definition at line 214 of file node.h.

#define NODE_ERRINFO   NODE_ERRINFO
#define NODE_ERRINFO   NODE_ERRINFO
#define NODE_EVSTR   NODE_EVSTR
#define NODE_EVSTR   NODE_EVSTR
#define NODE_EVSTR   NODE_EVSTR

Definition at line 148 of file node.h.

#define NODE_FALSE   NODE_FALSE
#define NODE_FALSE   NODE_FALSE
#define NODE_FALSE   NODE_FALSE

Definition at line 212 of file node.h.

#define NODE_FCALL   NODE_FCALL
#define NODE_FCALL   NODE_FCALL
#define NODE_FCALL   NODE_FCALL

Definition at line 96 of file node.h.

#define NODE_FL_CREF_OMOD_SHARED   (((VALUE)1)<<6)
#define NODE_FL_CREF_OMOD_SHARED   (((VALUE)1)<<6)

Definition at line 271 of file node.h.

#define NODE_FL_CREF_OMOD_SHARED   (((VALUE)1)<<6)

Referenced by rb_using_refinement().

Definition at line 270 of file node.h.

#define NODE_FL_NEWLINE   (((VALUE)1)<<7)
#define NODE_FL_NEWLINE   (((VALUE)1)<<7)

Definition at line 269 of file node.h.

#define NODE_FL_NEWLINE   (((VALUE)1)<<7)
#define NODE_FLIP2   NODE_FLIP2

Definition at line 202 of file node.h.

#define NODE_FLIP2   NODE_FLIP2
#define NODE_FLIP2   NODE_FLIP2
#define NODE_FLIP3   NODE_FLIP3

Definition at line 204 of file node.h.

#define NODE_FLIP3   NODE_FLIP3
#define NODE_FLIP3   NODE_FLIP3
#define NODE_FOR   NODE_FOR
#define NODE_FOR   NODE_FOR
#define NODE_FOR   NODE_FOR

Definition at line 42 of file node.h.

#define NODE_GASGN   NODE_GASGN
#define NODE_GASGN   NODE_GASGN
#define NODE_GASGN   NODE_GASGN

Definition at line 72 of file node.h.

#define NODE_GVAR   NODE_GVAR
#define NODE_GVAR   NODE_GVAR
#define NODE_GVAR   NODE_GVAR

Definition at line 120 of file node.h.

#define NODE_HASH   NODE_HASH
#define NODE_HASH   NODE_HASH
#define NODE_HASH   NODE_HASH

Definition at line 110 of file node.h.

#define NODE_IASGN   NODE_IASGN
#define NODE_IASGN   NODE_IASGN
#define NODE_IASGN   NODE_IASGN

Definition at line 74 of file node.h.

#define NODE_IASGN2   NODE_IASGN2
#define NODE_IASGN2   NODE_IASGN2
#define NODE_IASGN2   NODE_IASGN2

Definition at line 76 of file node.h.

#define NODE_IF   NODE_IF

Definition at line 28 of file node.h.

#define NODE_IF   NODE_IF
#define NODE_IF   NODE_IF
#define NODE_IFUNC   NODE_IFUNC
#define NODE_IFUNC   NODE_IFUNC
#define NODE_IFUNC   NODE_IFUNC

Definition at line 226 of file node.h.

#define NODE_ITER   NODE_ITER
#define NODE_ITER   NODE_ITER

Definition at line 40 of file node.h.

#define NODE_ITER   NODE_ITER
#define NODE_IVAR   NODE_IVAR
#define NODE_IVAR   NODE_IVAR

Definition at line 122 of file node.h.

#define NODE_IVAR   NODE_IVAR
#define NODE_KW_ARG   NODE_KW_ARG
#define NODE_KW_ARG   NODE_KW_ARG

Definition at line 160 of file node.h.

#define NODE_KW_ARG   NODE_KW_ARG
#define NODE_LAMBDA   NODE_LAMBDA
#define NODE_LAMBDA   NODE_LAMBDA
#define NODE_LAMBDA   NODE_LAMBDA

Definition at line 234 of file node.h.

#define NODE_LASGN   NODE_LASGN

Definition at line 66 of file node.h.

#define NODE_LASGN   NODE_LASGN
#define NODE_LASGN   NODE_LASGN
#define NODE_LAST   NODE_LAST

Definition at line 236 of file node.h.

#define NODE_LAST   NODE_LAST

Referenced by count_nodes().

#define NODE_LAST   NODE_LAST
#define NODE_LIT   NODE_LIT
#define NODE_LIT   NODE_LIT

Definition at line 138 of file node.h.

#define NODE_LIT   NODE_LIT

Referenced by if().

Definition at line 281 of file node.h.

#define NODE_LSHIFT   (NODE_TYPESHIFT+7)
#define NODE_LSHIFT   (NODE_TYPESHIFT+7)
#define NODE_LSHIFT   (NODE_TYPESHIFT+7)

Definition at line 280 of file node.h.

#define NODE_LVAR   NODE_LVAR

Definition at line 116 of file node.h.

#define NODE_LVAR   NODE_LVAR
#define NODE_LVAR   NODE_LVAR
#define NODE_MASGN   NODE_MASGN
#define NODE_MASGN   NODE_MASGN

Definition at line 64 of file node.h.

#define NODE_MASGN   NODE_MASGN
#define NODE_MATCH   NODE_MATCH

Definition at line 132 of file node.h.

#define NODE_MATCH   NODE_MATCH
#define NODE_MATCH   NODE_MATCH
#define NODE_MATCH2   NODE_MATCH2

Definition at line 134 of file node.h.

#define NODE_MATCH2   NODE_MATCH2
#define NODE_MATCH2   NODE_MATCH2
#define NODE_MATCH3   NODE_MATCH3

Definition at line 136 of file node.h.

#define NODE_MATCH3   NODE_MATCH3
#define NODE_MATCH3   NODE_MATCH3
#define NODE_MEMO   NODE_MEMO
#define NODE_MEMO   NODE_MEMO
#define NODE_MEMO   NODE_MEMO

Definition at line 224 of file node.h.

#define NODE_MODULE   NODE_MODULE
#define NODE_MODULE   NODE_MODULE

Definition at line 188 of file node.h.

#define NODE_MODULE   NODE_MODULE
#define NODE_NEXT   NODE_NEXT
#define NODE_NEXT   NODE_NEXT
#define NODE_NEXT   NODE_NEXT

Definition at line 46 of file node.h.

#define NODE_NIL   NODE_NIL

Definition at line 208 of file node.h.

#define NODE_NIL   NODE_NIL
#define NODE_NIL   NODE_NIL
#define NODE_NTH_REF   NODE_NTH_REF
#define NODE_NTH_REF   NODE_NTH_REF

Definition at line 128 of file node.h.

#define NODE_NTH_REF   NODE_NTH_REF

Definition at line 84 of file node.h.

Definition at line 86 of file node.h.

Definition at line 88 of file node.h.

Definition at line 90 of file node.h.

Definition at line 92 of file node.h.

#define NODE_OPT_ARG   NODE_OPT_ARG
#define NODE_OPT_ARG   NODE_OPT_ARG

Definition at line 158 of file node.h.

#define NODE_OPT_ARG   NODE_OPT_ARG
#define NODE_OPT_N   NODE_OPT_N

Definition at line 34 of file node.h.

#define NODE_OPT_N   NODE_OPT_N
#define NODE_OPT_N   NODE_OPT_N
#define NODE_OR   NODE_OR
#define NODE_OR   NODE_OR
#define NODE_OR   NODE_OR

Definition at line 62 of file node.h.

#define NODE_POSTARG   NODE_POSTARG
#define NODE_POSTARG   NODE_POSTARG
#define NODE_POSTARG   NODE_POSTARG

Definition at line 162 of file node.h.

#define NODE_POSTEXE   NODE_POSTEXE
#define NODE_POSTEXE   NODE_POSTEXE

Definition at line 218 of file node.h.

#define NODE_POSTEXE   NODE_POSTEXE
#define NODE_PRELUDE   NODE_PRELUDE

Definition at line 232 of file node.h.

#define NODE_PRELUDE   NODE_PRELUDE
#define NODE_PRELUDE   NODE_PRELUDE
#define NODE_REDO   NODE_REDO
#define NODE_REDO   NODE_REDO
#define NODE_REDO   NODE_REDO

Definition at line 48 of file node.h.

#define NODE_RESBODY   NODE_RESBODY
#define NODE_RESBODY   NODE_RESBODY
#define NODE_RESBODY   NODE_RESBODY

Definition at line 56 of file node.h.

#define NODE_RESCUE   NODE_RESCUE
#define NODE_RESCUE   NODE_RESCUE
#define NODE_RESCUE   NODE_RESCUE

Definition at line 54 of file node.h.

#define NODE_RETRY   NODE_RETRY
#define NODE_RETRY   NODE_RETRY

Definition at line 50 of file node.h.

#define NODE_RETRY   NODE_RETRY
#define NODE_RETURN   NODE_RETURN

Definition at line 112 of file node.h.

#define NODE_RETURN   NODE_RETURN
#define NODE_RETURN   NODE_RETURN
#define NODE_SCLASS   NODE_SCLASS
#define NODE_SCLASS   NODE_SCLASS

Definition at line 190 of file node.h.

#define NODE_SCLASS   NODE_SCLASS
#define NODE_SCOPE   NODE_SCOPE
#define NODE_SCOPE   NODE_SCOPE

Definition at line 24 of file node.h.

#define NODE_SCOPE   NODE_SCOPE
#define NODE_SELF   NODE_SELF

Definition at line 206 of file node.h.

#define NODE_SELF   NODE_SELF
#define NODE_SELF   NODE_SELF
#define NODE_SPLAT   NODE_SPLAT

Definition at line 168 of file node.h.

#define NODE_SPLAT   NODE_SPLAT
#define NODE_SPLAT   NODE_SPLAT
#define NODE_STR   NODE_STR
#define NODE_STR   NODE_STR
#define NODE_STR   NODE_STR

Definition at line 140 of file node.h.

#define NODE_SUPER   NODE_SUPER
#define NODE_SUPER   NODE_SUPER
#define NODE_SUPER   NODE_SUPER

Definition at line 100 of file node.h.

#define NODE_TO_ARY   NODE_TO_ARY

Definition at line 170 of file node.h.

#define NODE_TO_ARY   NODE_TO_ARY
#define NODE_TO_ARY   NODE_TO_ARY
#define NODE_TRUE   NODE_TRUE
#define NODE_TRUE   NODE_TRUE
#define NODE_TRUE   NODE_TRUE

Definition at line 210 of file node.h.

#define NODE_TYPEMASK   (((VALUE)0x7f)<<NODE_TYPESHIFT)
#define NODE_TYPEMASK   (((VALUE)0x7f)<<NODE_TYPESHIFT)

Definition at line 274 of file node.h.

#define NODE_TYPEMASK   (((VALUE)0x7f)<<NODE_TYPESHIFT)
#define NODE_TYPESHIFT   8
#define NODE_TYPESHIFT   8
#define NODE_TYPESHIFT   8

Definition at line 273 of file node.h.

#define NODE_UNDEF   NODE_UNDEF
#define NODE_UNDEF   NODE_UNDEF

Definition at line 184 of file node.h.

#define NODE_UNDEF   NODE_UNDEF
#define NODE_UNTIL   NODE_UNTIL

Definition at line 38 of file node.h.

#define NODE_UNTIL   NODE_UNTIL
#define NODE_UNTIL   NODE_UNTIL
#define NODE_VALIAS   NODE_VALIAS

Definition at line 182 of file node.h.

#define NODE_VALIAS   NODE_VALIAS
#define NODE_VALIAS   NODE_VALIAS
#define NODE_VALUES   NODE_VALUES
#define NODE_VALUES   NODE_VALUES
#define NODE_VALUES   NODE_VALUES

Definition at line 108 of file node.h.

#define NODE_VCALL   NODE_VCALL
#define NODE_VCALL   NODE_VCALL

Definition at line 98 of file node.h.

#define NODE_VCALL   NODE_VCALL
#define NODE_WHEN   NODE_WHEN
#define NODE_WHEN   NODE_WHEN

Definition at line 32 of file node.h.

#define NODE_WHEN   NODE_WHEN
#define NODE_WHILE   NODE_WHILE
#define NODE_WHILE   NODE_WHILE

Definition at line 36 of file node.h.

#define NODE_WHILE   NODE_WHILE
#define NODE_XSTR   NODE_XSTR
#define NODE_XSTR   NODE_XSTR
#define NODE_XSTR   NODE_XSTR

Definition at line 144 of file node.h.

#define NODE_YIELD   NODE_YIELD
#define NODE_YIELD   NODE_YIELD

Definition at line 114 of file node.h.

#define NODE_YIELD   NODE_YIELD
#define NODE_ZARRAY   NODE_ZARRAY

Definition at line 106 of file node.h.

#define NODE_ZARRAY   NODE_ZARRAY
#define NODE_ZARRAY   NODE_ZARRAY
#define NODE_ZSUPER   NODE_ZSUPER
#define NODE_ZSUPER   NODE_ZSUPER
#define NODE_ZSUPER   NODE_ZSUPER

Definition at line 102 of file node.h.

#define RNODE (   obj)    (R_CAST(RNode)(obj))
#define RNODE (   obj)    (R_CAST(RNode)(obj))
#define RNODE (   obj)    (R_CAST(RNode)(obj))

Definition at line 266 of file node.h.

#define roomof (   x,
 
)    ((sizeof(x) + sizeof(y) - 1) / sizeof(y))
#define roomof (   x,
 
)    ((sizeof(x) + sizeof(y) - 1) / sizeof(y))
#define roomof (   x,
 
)    ((sizeof(x) + sizeof(y) - 1) / sizeof(y))

Definition at line 462 of file node.h.


Typedef Documentation

typedef struct RNode NODE

Enumeration Type Documentation

enum node_type
Enumerator:
NODE_SCOPE 
NODE_SCOPE 
NODE_BLOCK 
NODE_BLOCK 
NODE_IF 
NODE_IF 
NODE_CASE 
NODE_CASE 
NODE_WHEN 
NODE_WHEN 
NODE_OPT_N 
NODE_OPT_N 
NODE_WHILE 
NODE_WHILE 
NODE_UNTIL 
NODE_UNTIL 
NODE_ITER 
NODE_ITER 
NODE_FOR 
NODE_FOR 
NODE_BREAK 
NODE_BREAK 
NODE_NEXT 
NODE_NEXT 
NODE_REDO 
NODE_REDO 
NODE_RETRY 
NODE_RETRY 
NODE_BEGIN 
NODE_BEGIN 
NODE_RESCUE 
NODE_RESCUE 
NODE_RESBODY 
NODE_RESBODY 
NODE_ENSURE 
NODE_ENSURE 
NODE_AND 
NODE_AND 
NODE_OR 
NODE_OR 
NODE_MASGN 
NODE_MASGN 
NODE_LASGN 
NODE_LASGN 
NODE_DASGN 
NODE_DASGN 
NODE_DASGN_CURR 
NODE_DASGN_CURR 
NODE_GASGN 
NODE_GASGN 
NODE_IASGN 
NODE_IASGN 
NODE_IASGN2 
NODE_IASGN2 
NODE_CDECL 
NODE_CDECL 
NODE_CVASGN 
NODE_CVASGN 
NODE_CVDECL 
NODE_CVDECL 
NODE_OP_ASGN1 
NODE_OP_ASGN1 
NODE_OP_ASGN2 
NODE_OP_ASGN2 
NODE_OP_ASGN_AND 
NODE_OP_ASGN_AND 
NODE_OP_ASGN_OR 
NODE_OP_ASGN_OR 
NODE_OP_CDECL 
NODE_OP_CDECL 
NODE_CALL 
NODE_CALL 
NODE_FCALL 
NODE_FCALL 
NODE_VCALL 
NODE_VCALL 
NODE_SUPER 
NODE_SUPER 
NODE_ZSUPER 
NODE_ZSUPER 
NODE_ARRAY 
NODE_ARRAY 
NODE_ZARRAY 
NODE_ZARRAY 
NODE_VALUES 
NODE_VALUES 
NODE_HASH 
NODE_HASH 
NODE_RETURN 
NODE_RETURN 
NODE_YIELD 
NODE_YIELD 
NODE_LVAR 
NODE_LVAR 
NODE_DVAR 
NODE_DVAR 
NODE_GVAR 
NODE_GVAR 
NODE_IVAR 
NODE_IVAR 
NODE_CONST 
NODE_CONST 
NODE_CVAR 
NODE_CVAR 
NODE_NTH_REF 
NODE_NTH_REF 
NODE_BACK_REF 
NODE_BACK_REF 
NODE_MATCH 
NODE_MATCH 
NODE_MATCH2 
NODE_MATCH2 
NODE_MATCH3 
NODE_MATCH3 
NODE_LIT 
NODE_LIT 
NODE_STR 
NODE_STR 
NODE_DSTR 
NODE_DSTR 
NODE_XSTR 
NODE_XSTR 
NODE_DXSTR 
NODE_DXSTR 
NODE_EVSTR 
NODE_EVSTR 
NODE_DREGX 
NODE_DREGX 
NODE_DREGX_ONCE 
NODE_DREGX_ONCE 
NODE_ARGS 
NODE_ARGS 
NODE_ARGS_AUX 
NODE_ARGS_AUX 
NODE_OPT_ARG 
NODE_OPT_ARG 
NODE_KW_ARG 
NODE_KW_ARG 
NODE_POSTARG 
NODE_POSTARG 
NODE_ARGSCAT 
NODE_ARGSCAT 
NODE_ARGSPUSH 
NODE_ARGSPUSH 
NODE_SPLAT 
NODE_SPLAT 
NODE_TO_ARY 
NODE_TO_ARY 
NODE_BLOCK_ARG 
NODE_BLOCK_ARG 
NODE_BLOCK_PASS 
NODE_BLOCK_PASS 
NODE_DEFN 
NODE_DEFN 
NODE_DEFS 
NODE_DEFS 
NODE_ALIAS 
NODE_ALIAS 
NODE_VALIAS 
NODE_VALIAS 
NODE_UNDEF 
NODE_UNDEF 
NODE_CLASS 
NODE_CLASS 
NODE_MODULE 
NODE_MODULE 
NODE_SCLASS 
NODE_SCLASS 
NODE_COLON2 
NODE_COLON2 
NODE_COLON3 
NODE_COLON3 
NODE_CREF 
NODE_CREF 
NODE_DOT2 
NODE_DOT2 
NODE_DOT3 
NODE_DOT3 
NODE_FLIP2 
NODE_FLIP2 
NODE_FLIP3 
NODE_FLIP3 
NODE_SELF 
NODE_SELF 
NODE_NIL 
NODE_NIL 
NODE_TRUE 
NODE_TRUE 
NODE_FALSE 
NODE_FALSE 
NODE_ERRINFO 
NODE_ERRINFO 
NODE_DEFINED 
NODE_DEFINED 
NODE_POSTEXE 
NODE_POSTEXE 
NODE_ALLOCA 
NODE_ALLOCA 
NODE_BMETHOD 
NODE_BMETHOD 
NODE_MEMO 
NODE_MEMO 
NODE_IFUNC 
NODE_IFUNC 
NODE_DSYM 
NODE_DSYM 
NODE_ATTRASGN 
NODE_ATTRASGN 
NODE_PRELUDE 
NODE_PRELUDE 
NODE_LAMBDA 
NODE_LAMBDA 

Definition at line 22 of file node.h.


Function Documentation

NODE* rb_compile_cstr ( const char *  ,
const char *  ,
int  ,
int   
)

Definition at line 11104 of file ripper.c.

References parser_compile_string(), rb_parser_new(), and rb_str_new().

Referenced by rb_load_file().

NODE* rb_compile_file ( const char *  ,
VALUE  ,
int   
)

Definition at line 11124 of file ripper.c.

References rb_parser_compile_file(), and rb_parser_new().

Referenced by rb_iseq_compile_with_option().

NODE* rb_compile_string ( const char *  ,
VALUE  ,
int   
)

Definition at line 11090 of file ripper.c.

References must_be_ascii_compatible(), parser_compile_string(), and rb_parser_new().

struct rb_global_entry* rb_global_entry ( ID  ) [read]

Referenced by rb_gv_get().

VALUE rb_gvar_set ( struct rb_global_entry ,
VALUE   
)

Referenced by rb_gv_set().

NODE* rb_node_newnode ( enum  node_type,
VALUE  ,
VALUE  ,
VALUE   
)

Definition at line 694 of file gc.c.

References RNode::flags, nd_set_type, rb_newobj(), T_NODE, RNode::u1, RNode::u2, RNode::u3, and RNode::value.

NODE* rb_node_newnode_longlife ( enum  node_type,
VALUE  ,
VALUE  ,
VALUE   
)

Definition at line 15485 of file ripper.c.

References block_append, nd_type, NEW_ARRAY, NEW_FCALL, NEW_GVAR, node, NODE_PRELUDE, rb_intern, and TypedData_Get_Struct.

Referenced by process_options().

void* rb_parser_calloc ( struct parser_params ,
size_t  ,
size_t   
)

Definition at line 16529 of file ripper.c.

References ADD2HEAP, cnt, HEAPCNT, NEWHEAP, and xcalloc.

NODE* rb_parser_compile_cstr ( volatile VALUE  ,
const char *  ,
const char *  ,
int  ,
int   
)

Definition at line 11111 of file ripper.c.

References parser_compile_string(), and rb_str_new().

NODE* rb_parser_compile_file ( volatile VALUE  ,
const char *  ,
VALUE  ,
int   
)
NODE* rb_parser_compile_string ( volatile VALUE  ,
const char *  ,
VALUE  ,
int   
)
VALUE rb_parser_dump_tree ( NODE node,
int  comment 
)

Definition at line 889 of file node.c.

References buf, dump_node(), and rb_str_new_cstr().

Referenced by process_options().

Definition at line 16473 of file ripper.c.

References current_enc, rb_enc_from_encoding(), and TypedData_Get_Struct.

Referenced by load_file_internal().

Definition at line 16458 of file ripper.c.

References Qfalse, Qtrue, ruby__end__seen, and TypedData_Get_Struct.

Referenced by load_file_internal().

void rb_parser_free ( struct parser_params ,
void *   
)

Definition at line 16559 of file ripper.c.

References parser_params::heap, RNode::node, NULL, prev, rb_gc_force_recycle(), RNode::u2, and xfree().

Definition at line 16488 of file ripper.c.

References Qfalse, Qtrue, and TypedData_Get_Struct.

void* rb_parser_malloc ( struct parser_params ,
size_t   
)

Definition at line 16519 of file ripper.c.

References ADD2HEAP, cnt, HEAPCNT, NEWHEAP, and xmalloc.

VALUE rb_parser_new ( void  )
void* rb_parser_realloc ( struct parser_params ,
void *  ,
size_t   
)

Definition at line 16503 of file ripper.c.

References RTEST, and TypedData_Get_Struct.

Referenced by process_options().

NODE* rb_parser_while_loop ( VALUE  ,
NODE ,
int  ,
int   
)
struct kwtable* rb_reserved_word ( const char *  ,
unsigned  int 
) [read]

Definition at line 16427 of file ripper.c.

References reserved_word().