我有一个与v3一起使用的语法,现在我正在尝试迁移到v4。我已经从问题18431158和14778570中获得了一些提示,但我还有一个问题:
在我的v3代码中,我正在计算这样的行号(newLine()只保留解析的行数并保存它,以便稍后,当我尝试报告一些语义错误时,我也可以报告相应的行数):
COMMENT : '/*' ( options {greedy=false;} :
(
'\n' {newLine();}
| ~ '\n'
) )* '*/' {$channel=HIDDEN;}
;
LINE_COMMENT : '//' ~('\n'|'\r')* '\r'? '\n' {$channel=HIDDEN; newLine();} ;
WS: (
' '
|'\r'
|'\t'
|'\n' {newLine();}
)+ {$channel=HIDDEN;};
在v4中,内部不允许词法分析器操作。如何将此代码迁移到v4?