From 72f2d2a00d8ae3861a15ca92bf9322951a22b6cf Mon Sep 17 00:00:00 2001 From: matz Date: Sun, 4 Feb 2007 19:17:33 +0000 Subject: * parse.y (rb_compose_ivar2): function to create a new ivar2 symbol from a symbol and a class. back-ported from matzruby. * parse.y (rb_decompose_ivar2): reverse function of rb_compose_ivar2(). * marshal.c (w_symbol): support class local instance variables. * marshal.c (r_object0): ditto. * compile.c (defined_expr): ditto. * compile.c (iseq_compile_each): ditto. * insns.def: add two new instructions: getinstancevariable2 and setinstancevariable2. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- node.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'node.h') diff --git a/node.h b/node.h index 7deab9646d..453f59f47a 100644 --- a/node.h +++ b/node.h @@ -48,6 +48,7 @@ enum node_type { NODE_DASGN_CURR, NODE_GASGN, NODE_IASGN, + NODE_IASGN2, NODE_CDECL, NODE_CVASGN, NODE_CVDECL, @@ -70,6 +71,7 @@ enum node_type { NODE_DVAR, NODE_GVAR, NODE_IVAR, + NODE_IVAR2, NODE_CONST, NODE_CVAR, NODE_NTH_REF, @@ -282,6 +284,7 @@ typedef struct RNode { #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) @@ -294,6 +297,7 @@ typedef struct RNode { #define NEW_LVAR(v) NEW_NODE(NODE_LVAR,v,0,local_cnt(v)) #define NEW_DVAR(v) NEW_NODE(NODE_DVAR,v,0,0) #define NEW_IVAR(v) NEW_NODE(NODE_IVAR,v,0,0) +#define NEW_IVAR2(v) NEW_NODE(NODE_IVAR2,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,local_cnt('~')) -- cgit v1.2.3