diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | node.h | 2 | ||||
-rw-r--r-- | parse.y | 7 |
3 files changed, 9 insertions, 5 deletions
@@ -1,3 +1,8 @@ +Mon Dec 26 20:59:51 2011 Yusuke Endoh <mame@tsg.ne.jp> + + * node.h, parse.y (lambda, f_larglist): remove NEW_LAMBDA hack. + This is a preparation for keyword argument (see [ruby-core:40290]). + Mon Dec 26 22:01:19 2011 Hiroshi Shirosaki <h.shirosaki@gmail.com> * io.c (rb_sys_fail_path): move the definition. @@ -362,7 +362,7 @@ typedef struct RNode { #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) NEW_NODE(NODE_LAMBDA,a,0,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) @@ -3551,8 +3551,7 @@ lambda : { { lpar_beg = $<num>2; /*%%%*/ - $$ = $3; - $$->nd_body = NEW_SCOPE($3->nd_head, $4); + $$ = NEW_LAMBDA($3, $4); /*% $$ = dispatch2(lambda, $3, $4); %*/ @@ -3563,7 +3562,7 @@ lambda : { f_larglist : '(' f_args opt_bv_decl rparen { /*%%%*/ - $$ = NEW_LAMBDA($2); + $$ = $2; /*% $$ = dispatch1(paren, $2); %*/ @@ -3571,7 +3570,7 @@ f_larglist : '(' f_args opt_bv_decl rparen | f_args { /*%%%*/ - $$ = NEW_LAMBDA($1); + $$ = $1; /*% $$ = $1; %*/ |