mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
tLABEL should not come after conditional ternary; fix #3344
This commit is contained in:
@@ -3923,6 +3923,7 @@ parse_string(parser_state *p)
|
||||
int beg = (intptr_t)p->lex_strterm->cdr->cdr->car;
|
||||
int end = (intptr_t)p->lex_strterm->cdr->cdr->cdr;
|
||||
parser_heredoc_info *hinf = (type & STR_FUNC_HEREDOC) ? parsing_heredoc_inf(p) : NULL;
|
||||
int cmd_state = p->cmd_start;
|
||||
|
||||
if (beg == 0) beg = -3; /* should never happen */
|
||||
if (end == 0) end = -3;
|
||||
@@ -4127,10 +4128,13 @@ parse_string(parser_state *p)
|
||||
return tREGEXP;
|
||||
}
|
||||
yylval.nd = new_str(p, tok(p), toklen(p));
|
||||
if (IS_LABEL_SUFFIX(0)) {
|
||||
p->lstate = EXPR_BEG;
|
||||
nextc(p);
|
||||
return tLABEL_END;
|
||||
if (IS_LABEL_POSSIBLE()) {
|
||||
if (IS_LABEL_SUFFIX(0)) {
|
||||
fprintf(stderr, "tLABEL_END: %d->%d\n", p->lstate, EXPR_BEG);
|
||||
p->lstate = EXPR_BEG;
|
||||
nextc(p);
|
||||
return tLABEL_END;
|
||||
}
|
||||
}
|
||||
|
||||
return tSTRING;
|
||||
|
||||
Reference in New Issue
Block a user