下面是一个简单的ANTLR语法:
grammar EXAMPLE;
document
: Name+ EOF ;
Name
: 'k'+ ;
生成的antlr解析器接受任何包含子字符串'k'的字符串。
但是,我希望解析器只接受符合语法的字符串。也就是说,包含“k”以外的字符的字符串应该会触发错误。
有没有办法保证这一点?
我尝试修改语法。并使用不同的输入进行测试。但没有修复成功。
阅读 Ken 的评论并重新访问我的代码后,发现我的 main 函数中有以下行:
lexer.removeErrorListeners()
删除该行后,现在会报告词法分析器错误。
谢谢大家。