如何定义"其他所有内容"解析器规则以捕获非法的额外内容



所以我已经启动并运行了解析器。效果很好。现在我发现,它只解析文件的"合法"部分,完全忽略了非法的额外部分。

下面是一个例子:

grammar myrule;
myrule: a_rule+;
a_rule: Open_Brace  Lower_Case_Char+  Close_Brace;
Open_Brace: '{';
Lower_Case_Char: 'a'..'z';
Close_Brace: '}';

当我输入"{abc}"时,它会像预期的那样解析得很好。

但是当我输入"{abc} extra extra"时,它很高兴地结束了,没有报告非法部分"extra extra"。

如何捕捉非法部分?

我使用的是ANTLR v3.4

只需将EOF添加到开始规则的末尾。

最新更新