我正在为SAS编写ANTLR语法,遇到一个问题,即词法分析器无法区分单行注释和乘法运算。
遗憾的是,SAS的注释语法为:
*message;
or
/*message*/
我写了一个简单的测试语法来说明问题:
grammar TEST;
prog: expr* EOF;
expr
: VAR #base
| expr '*' expr #mult
;
VAR: ALPHA+;
fragment ALPHA : [a-zA-Z]+ ;
COMMENT: '*' ~[\r\n];
WS: [ \t\r\n] -> skip;
我不确定如何才能使词法分析器有资格区分这两种情况。我是ANTLR初学者,所以我可能想念一些明显的东西。