Project

General

Profile

Feature #5454 » 0001-remove-NEW_LAMBDA-hack.patch

mame (Yusuke Endoh), 10/18/2011 01:21 AM

View differences:

node.h
#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)
parse.y
{
lpar_beg = $<num>2;
/*%%%*/
$$ = $3;
$$->nd_body = NEW_SCOPE($3->nd_head, $4);
$$ = NEW_LAMBDA($3, $4);
/*%
$$ = dispatch2(lambda, $3, $4);
%*/
......
f_larglist : '(' f_args opt_bv_decl rparen
{
/*%%%*/
$$ = NEW_LAMBDA($2);
$$ = $2;
/*%
$$ = dispatch1(paren, $2);
%*/
......
| f_args
{
/*%%%*/
$$ = NEW_LAMBDA($1);
$$ = $1;
/*%
$$ = $1;
%*/
(1-1/6)