Различать умножение и комментарий - PullRequest
0 голосов
/ 18 декабря 2018

Я пишу грамматику ANTLR для SAS и сталкиваюсь с проблемой, когда лексер не может различить однострочный комментарий и операцию умножения.

К сожалению, синтаксис 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, поэтому, возможно, я упустил что-то очевидное.

...