summaryrefslogtreecommitdiffhomepage
path: root/mrbgems
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-11-11 22:22:26 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-11-12 15:02:04 +0900
commit7c1878669a3efe02e3a0c530805d553e7f7cf1ea (patch)
tree4727e22428f5457687c4e42811ada47db9aebd74 /mrbgems
parent885a87e408a8677832557f0f70d3176f618760aa (diff)
downloadmruby-7c1878669a3efe02e3a0c530805d553e7f7cf1ea.tar.gz
mruby-7c1878669a3efe02e3a0c530805d553e7f7cf1ea.zip
parse.y: should allow newline after `...`.
Diffstat (limited to 'mrbgems')
-rw-r--r--mrbgems/mruby-compiler/core/parse.y3
-rw-r--r--mrbgems/mruby-compiler/core/y.tab.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y
index 0a86a5c19..e70621723 100644
--- a/mrbgems/mruby-compiler/core/parse.y
+++ b/mrbgems/mruby-compiler/core/parse.y
@@ -5693,7 +5693,7 @@ parser_yylex(parser_state *p)
case '.':
{
int is_beg = IS_BEG();
- p->lstate = EXPR_BEG;
+ p->lstate = EXPR_MID;
if ((c = nextc(p)) == '.') {
if ((c = nextc(p)) == '.') {
return is_beg ? tBDOT3 : tDOT3;
@@ -5702,6 +5702,7 @@ parser_yylex(parser_state *p)
return is_beg ? tBDOT2 : tDOT2;
}
pushback(p, c);
+ p->lstate = EXPR_BEG;
if (c >= 0 && ISDIGIT(c)) {
yyerror(p, "no .<digit> floating literal anymore; put 0 before dot");
}
diff --git a/mrbgems/mruby-compiler/core/y.tab.c b/mrbgems/mruby-compiler/core/y.tab.c
index d316eaefa..e35bb7aa6 100644
--- a/mrbgems/mruby-compiler/core/y.tab.c
+++ b/mrbgems/mruby-compiler/core/y.tab.c
@@ -11916,7 +11916,7 @@ parser_yylex(parser_state *p)
case '.':
{
int is_beg = IS_BEG();
- p->lstate = EXPR_BEG;
+ p->lstate = EXPR_MID;
if ((c = nextc(p)) == '.') {
if ((c = nextc(p)) == '.') {
return is_beg ? tBDOT3 : tDOT3;
@@ -11925,6 +11925,7 @@ parser_yylex(parser_state *p)
return is_beg ? tBDOT2 : tDOT2;
}
pushback(p, c);
+ p->lstate = EXPR_BEG;
if (c >= 0 && ISDIGIT(c)) {
yyerror(p, "no .<digit> floating literal anymore; put 0 before dot");
}