1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* 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
This commit is contained in:
mame 2010-04-16 12:57:28 +00:00
parent 49884b5769
commit fd9c3fef0b
2 changed files with 11 additions and 4 deletions

View file

@ -1,3 +1,8 @@
Fri Apr 16 21:52:16 2010 Yusuke Endoh <mame@tsg.ne.jp>
* parse.y (string_content, etc): counts of CMDARG_PUSH and POP were
inconsistent. [ruby-core:22637]
Fri Apr 16 21:27:57 2010 Yusuke Endoh <mame@tsg.ne.jp> Fri Apr 16 21:27:57 2010 Yusuke Endoh <mame@tsg.ne.jp>
* ext/bigdecimal/bigdecimal.c (BigDecimal_coerce): revert r23389, * ext/bigdecimal/bigdecimal.c (BigDecimal_coerce): revert r23389,

10
parse.y
View file

@ -4033,14 +4033,10 @@ string_content : tSTRING_CONTENT
$<node>$ = lex_strterm; $<node>$ = lex_strterm;
lex_strterm = 0; lex_strterm = 0;
lex_state = EXPR_BEG; lex_state = EXPR_BEG;
COND_PUSH(0);
CMDARG_PUSH(0);
} }
compstmt '}' compstmt '}'
{ {
lex_strterm = $<node>2; lex_strterm = $<node>2;
COND_LEXPOP();
CMDARG_LEXPOP();
/*%%%*/ /*%%%*/
if ($3) $3->flags &= ~NODE_FL_NEWLINE; if ($3) $3->flags &= ~NODE_FL_NEWLINE;
$$ = new_evstr($3); $$ = new_evstr($3);
@ -5873,6 +5869,8 @@ parser_parse_string(struct parser_params *parser, NODE *quote)
pushback(c); pushback(c);
return tSTRING_DVAR; return tSTRING_DVAR;
case '{': case '{':
COND_PUSH(0);
CMDARG_PUSH(0);
return tSTRING_DBEG; return tSTRING_DBEG;
} }
tokadd('#'); tokadd('#');
@ -6070,6 +6068,8 @@ parser_here_document(struct parser_params *parser, NODE *here)
pushback(c); pushback(c);
return tSTRING_DVAR; return tSTRING_DVAR;
case '{': case '{':
COND_PUSH(0);
CMDARG_PUSH(0);
return tSTRING_DBEG; return tSTRING_DBEG;
} }
tokadd('#'); tokadd('#');
@ -7314,6 +7314,8 @@ parser_yylex(struct parser_params *parser)
lex_state = EXPR_BEG; lex_state = EXPR_BEG;
lpar_beg = 0; lpar_beg = 0;
--paren_nest; --paren_nest;
COND_PUSH(0);
CMDARG_PUSH(0);
return tLAMBEG; return tLAMBEG;
} }
if (IS_ARG() || lex_state == EXPR_END) if (IS_ARG() || lex_state == EXPR_END)