diff options
author | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-16 12:57:28 +0000 |
---|---|---|
committer | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-16 12:57:28 +0000 |
commit | fd9c3fef0b2bb1e7110b17ff4157d384438ff58d (patch) | |
tree | d7f4c6a8744595972f6422f6047fd50c05b55c95 /parse.y | |
parent | 49884b5769c4fa059e448d531fd759c37380e5c5 (diff) | |
download | ruby-fd9c3fef0b2bb1e7110b17ff4157d384438ff58d.tar.gz |
* parse.y (string_content, etc): counts of CMDARG_PUSH and POP were
inconsistent. [ruby-core:22637]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -4033,14 +4033,10 @@ string_content : tSTRING_CONTENT $<node>$ = lex_strterm; lex_strterm = 0; lex_state = EXPR_BEG; - COND_PUSH(0); - CMDARG_PUSH(0); } compstmt '}' { lex_strterm = $<node>2; - COND_LEXPOP(); - CMDARG_LEXPOP(); /*%%%*/ if ($3) $3->flags &= ~NODE_FL_NEWLINE; $$ = new_evstr($3); @@ -5873,6 +5869,8 @@ parser_parse_string(struct parser_params *parser, NODE *quote) pushback(c); return tSTRING_DVAR; case '{': + COND_PUSH(0); + CMDARG_PUSH(0); return tSTRING_DBEG; } tokadd('#'); @@ -6070,6 +6068,8 @@ parser_here_document(struct parser_params *parser, NODE *here) pushback(c); return tSTRING_DVAR; case '{': + COND_PUSH(0); + CMDARG_PUSH(0); return tSTRING_DBEG; } tokadd('#'); @@ -7314,6 +7314,8 @@ parser_yylex(struct parser_params *parser) lex_state = EXPR_BEG; lpar_beg = 0; --paren_nest; + COND_PUSH(0); + CMDARG_PUSH(0); return tLAMBEG; } if (IS_ARG() || lex_state == EXPR_END) |