提问人:Bachir Bendrissou 提问时间:9/29/2023 更新时间:10/4/2023 访问量:43
如何使ANTLR解析器严格?
How to make ANTLR parser strict?
问:
下面是一个简单的 ANTLR 语法:
grammar EXAMPLE;
document
: Name+ EOF ;
Name
: 'k'+ ;
生成的 antlr 解析器接受任何包含子字符串“k”的字符串。
但是,我希望解析器只接受符合语法的字符串。也就是说,包含“k”以外的字符的字符串应触发错误。
有没有办法确保这一点?
我尝试修改语法。并使用不同的输入进行测试。但是没有修复效果。
答:
0赞
Bachir Bendrissou
10/4/2023
#1
在阅读了 Ken 的评论并重新访问了我的代码后,事实证明我的主函数中有以下行:
lexer.removeErrorListeners()
删除该行后,现在会报告词法分析器错误。
谢谢大家。
评论
Fubar: .;