当使用用ANTLR编写的语法时,解析器正确识别输入流中的数据,但是如果我在输入的末尾有一些垃圾文本(不应该被语法解析),解析器就不会抱怨
我猜这种行为是正常的(我的意思是解析器完成了它的工作并解析了我说它应该解析的任何东西),但是在解析器完成它之后输入中是否还有任何数据时是否有任何技巧可以检测到工作?
感谢。
答案 0 :(得分:4)
正如Scott已在ANTLR邮件列表中回答:
您好,
使用ANTLR编写的语法时,解析器会正确识别 来自输入流的数据,但如果我在结尾处有一些垃圾文本 输入(哪个垃圾文本不应该由语法解析) 解析器不会抱怨。
我猜这种行为是正确的(我的意思是解析器完成了它的工作并进行了解析 无论我说它应该解析什么,但有没有任何技巧可以检测到什么时候 解析器完成其工作后,输入中是否还有任何数据?
谢谢, 加比。
将EOF标记添加到开始规则的末尾
- 斯科特