如何让 ANTLR 解析器变得严格?

问题描述 投票:0回答:1

下面是一个简单的ANTLR语法:

grammar EXAMPLE;

document
            :  Name+ EOF ;

Name
            : 'k'+ ;

生成的antlr解析器接受任何包含子字符串'k'的字符串。

但是,我希望解析器只接受符合语法的字符串。也就是说,包含“k”以外的字符的字符串应该会触发错误。

有没有办法保证这一点?

我尝试修改语法。并使用不同的输入进行测试。但没有修复成功。

syntax-error grammar strict
1个回答
0
投票

阅读 Ken 的评论并重新访问我的代码后,发现我的 main 函数中有以下行:

lexer.removeErrorListeners()

删除该行后,现在会报告词法分析器错误。

谢谢大家。

© www.soinside.com 2019 - 2024. All rights reserved.