所以我已经启动并运行了解析器。效果很好。现在我发现,它只解析文件的"合法"部分,完全忽略了非法的额外部分。
下面是一个例子:
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添加到开始规则的末尾。