【发布时间】:2020-09-22 09:20:51
【问题描述】:
我是ANTLR 的新手,并尝试与一些非常简单的示例相处(使用antlr-4.8)。在我看来,这似乎是一个愚蠢的新手问题,但我找不到合适的答案(实际上,除了这个糟糕的标题,我什至不知道如何表达这个问题)。对不起!
我的语法是这样的。
grammar ExprTest;
expr : compareExpr
| NUMBER
;
compareExpr
: (GT | GE | LT | LE) NUMBER
;
NUMBER : [0-9]+;
GT : '>';
GE : '>=';
LT : '<';
LE : '<=';
它几乎可以完成这项工作并识别17、>15 和<=22,并且在输入@34 时正确地向token recognition error 抱怨。
我不明白的是输入34>。没有抱怨,匹配为(expr 34)。
为什么最后一个大于号字符没有识别错误(显然位置错误)?
【问题讨论】: