Avoid syntax error regarding colons in the expression; fix #5290

Reported and inspired by @hasumikin; based on CRuby's `parse.y`.
This commit is contained in:
Yukihiro "Matz" Matsumoto
2021-01-15 22:47:13 +09:00
parent 28d5dabacd
commit 4bba769b95
2 changed files with 10 additions and 10 deletions
+5 -5
View File
@@ -5882,14 +5882,14 @@ parser_yylex(parser_state *p)
p->lstate = EXPR_BEG;
return tLABEL_TAG;
}
if (!ISSPACE(c) || IS_BEG()) {
if (IS_END() || ISSPACE(c) || c == '#') {
pushback(p, c);
p->lstate = EXPR_FNAME;
return tSYMBEG;
p->lstate = EXPR_BEG;
return ':';
}
pushback(p, c);
p->lstate = EXPR_BEG;
return ':';
p->lstate = EXPR_FNAME;
return tSYMBEG;
case '/':
if (IS_BEG()) {
+5 -5
View File
@@ -11883,14 +11883,14 @@ parser_yylex(parser_state *p)
p->lstate = EXPR_BEG;
return tLABEL_TAG;
}
if (!ISSPACE(c) || IS_BEG()) {
if (IS_END() || ISSPACE(c) || c == '#') {
pushback(p, c);
p->lstate = EXPR_FNAME;
return tSYMBEG;
p->lstate = EXPR_BEG;
return ':';
}
pushback(p, c);
p->lstate = EXPR_BEG;
return ':';
p->lstate = EXPR_FNAME;
return tSYMBEG;
case '/':
if (IS_BEG()) {