我只是在玩 ANTLR,并决定尝试用它解析 JavaScript。但是我在处理可选的';'时碰壁了 在其中, where 语句结束由换行符标记。它可以以某种直接的方式完成吗?
只是一个不起作用的简单语法示例
grammar optional_newline;
def : statements ;
statements : statement (statement)* ;
statement : expression (';' | '\n') ;
expression : ID | INT | 'var' ID '=' INT ;
ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')* ;
INT : '0'..'9'+ ;
WS : ( ' ' | '\t' | '\r' | '\n') {$channel=HIDDEN;} ;
我希望能够解析这个(可以由 JavaScript 解析器解析)
var i =
10
10;
PS:我不想放入WS
解析器规则,如果词法分析器摆脱那些我会更开心。