mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
manage line number in yacc rules, not in lexer
This commit is contained in:
+11
-5
@@ -2916,7 +2916,7 @@ opt_terms : /* none */
|
||||
;
|
||||
|
||||
opt_nl : /* none */
|
||||
| '\n'
|
||||
| nl
|
||||
;
|
||||
|
||||
rparen : opt_nl ')'
|
||||
@@ -2926,14 +2926,20 @@ rbracket : opt_nl ']'
|
||||
;
|
||||
|
||||
trailer : /* none */
|
||||
| '\n'
|
||||
| nl
|
||||
| ','
|
||||
;
|
||||
|
||||
term : ';' {yyerrok;}
|
||||
| '\n'
|
||||
| nl
|
||||
;
|
||||
|
||||
nl : '\n'
|
||||
{
|
||||
p->lineno++;
|
||||
p->column = 0;
|
||||
}
|
||||
|
||||
terms : term
|
||||
| terms ';' {yyerrok;}
|
||||
;
|
||||
@@ -3515,14 +3521,14 @@ parser_yylex(parser_state *p)
|
||||
skip(p, '\n');
|
||||
/* fall through */
|
||||
case '\n':
|
||||
p->lineno++;
|
||||
p->column = 0;
|
||||
switch (p->lstate) {
|
||||
case EXPR_BEG:
|
||||
case EXPR_FNAME:
|
||||
case EXPR_DOT:
|
||||
case EXPR_CLASS:
|
||||
case EXPR_VALUE:
|
||||
p->lineno++;
|
||||
p->column = 0;
|
||||
goto retry;
|
||||
default:
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user