summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authoraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-23 03:25:26 +0000
committeraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-23 03:25:26 +0000
commit67c94cae969538b2d442fcf8b37663e8aa141686 (patch)
tree1c63fdb9b3e59c5c873fcf4712166b71bdd94807 /parse.y
parent606734f0b1689c3763c394a895355d814cf91940 (diff)
* parse.y (lambda): add ripper event. This fixes bus error on "make test-all".
* ext/ripper/extconf.rb: do not stop build. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y21
1 files changed, 11 insertions, 10 deletions
diff --git a/parse.y b/parse.y
index 5c4fbf9120..e4958888f2 100644
--- a/parse.y
+++ b/parse.y
@@ -3208,29 +3208,30 @@ bvar : tIDENTIFIER
}
;
-lambda : {
+lambda : {
/*%%%*/
dyna_push();
+ $<num>$ = lpar_beg;
+ lpar_beg = ++paren_nest;
/*%
%*/
}
- {
- $<num>$ = lpar_beg;
- lpar_beg = ++paren_nest;
- }
f_larglist
{
- $<num>$ = vtable_size(lvtbl->dvars);
+ /*%%%*/
+ $<num>$ = vtable_size(lvtbl->dvars);
+ /*%
+ %*/
}
lambda_body
{
/*%%%*/
- $$ = $3;
- $$->nd_body = block_append($$->nd_body, $5);
+ $$ = $2;
+ $$->nd_body = block_append($$->nd_body, $4);
dyna_pop();
- lpar_beg = $<num>2;
+ lpar_beg = $<num>1;
/*%
- $$ = dispatch2(lambda, $3, $5);
+ $$ = dispatch2(lambda, $2, $4);
%*/
}
;