diff --git a/ChangeLog b/ChangeLog index 307baa76c7..0f82be07de 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Tue Dec 16 16:29:45 2008 Nobuyoshi Nakada + + * parse.y (primary): also in ripper, saves in_def before restoring. + Tue Dec 16 12:30:56 2008 Nobuyoshi Nakada * configure.in (ac_cv_header_ucontext_h): do not use ucontext.h on Mac diff --git a/parse.y b/parse.y index 6983a2cdb2..eb9ac0f368 100644 --- a/parse.y +++ b/parse.y @@ -2828,22 +2828,16 @@ primary : literal } | k_class tLSHFT expr { - /*%%%*/ $$ = in_def; in_def = 0; - /*% - in_def = 0; - %*/ } term { - /*%%%*/ $$ = in_single; in_single = 0; + /*%%%*/ local_push(0); /*% - $$ = in_single; - in_single = 0; %*/ } bodystmt @@ -2853,13 +2847,11 @@ primary : literal $$ = NEW_SCLASS($3, $7); fixpos($$, $3); local_pop(); - in_def = $4; - in_single = $6; /*% $$ = dispatch2(sclass, $3, $7); - in_def = $4; - in_single = $6; %*/ + in_def = $4; + in_single = $6; } | k_module cpath { @@ -2903,13 +2895,11 @@ primary : literal fixpos($$, $4); fixpos($$->nd_defn, $4); local_pop(); - in_def--; - cur_mid = $3; /*% $$ = dispatch3(def, $2, $4, $5); + %*/ in_def--; cur_mid = $3; - %*/ } | k_def singleton dot_or_colon {lex_state = EXPR_FNAME;} fname { @@ -2931,11 +2921,10 @@ primary : literal fixpos($$, $2); fixpos($$->nd_defn, $2); local_pop(); - in_single--; /*% $$ = dispatch5(defs, $2, $3, $5, $7, $8); - in_single--; %*/ + in_single--; } | keyword_break {