Commit 7f870f60 authored by take_cheeze's avatar take_cheeze

Treat partial hook success '\n' to fix #2361 .

Now it will parse the #2361 code as:
```
module A
end
module B
end
```
instead of
```
module A
end module B
end
```
parent d3fda42e
......@@ -3389,7 +3389,7 @@ nextc(parser_state *p)
else {
if (p->cxt->partial_hook(p) < 0)
return -1;
return -2;
return '\n';
}
}
......@@ -3777,7 +3777,6 @@ read_escape(parser_state *p)
eof:
case -1:
case -2:
yyerror(p, "Invalid escape character syntax");
return '\0';
......@@ -4093,7 +4092,6 @@ parser_yylex(parser_state *p)
case '#': /* it's a comment */
skip(p, '\n');
/* fall through */
case -2: /* end of partial script. */
case '\n':
maybe_heredoc:
heredoc_treat_nextline(p);
......@@ -4128,7 +4126,6 @@ parser_yylex(parser_state *p)
goto retry;
}
case -1: /* EOF */
case -2: /* end of partial script */
goto normal_newline;
default:
pushback(p, c);
......@@ -5450,7 +5447,7 @@ mrb_parser_set_filename(struct mrb_parser_state *p, const char *f)
sym = mrb_intern_cstr(p->mrb, f);
p->filename = mrb_sym2name_len(p->mrb, sym, NULL);
p->lineno = (p->filename_table_length > 0)? 0 : 1;
p->lineno = (p->filename_table_length > 0)? -1 : 1;
for (i = 0; i < p->filename_table_length; ++i) {
if (p->filename_table[i] == sym) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment