manage line number in yacc rules, not in lexer

This commit is contained in:
Yukihiro Matsumoto
2012-09-01 23:52:16 +09:00
parent d1a453a89b
commit e7661b978d
+11 -5
View File
@@ -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;