ANTLR4 grun Java错误监听器

时间:2016-09-25 18:44:35

标签: java antlr4

虽然lexing /解析了一个antlr语法的输入,但我希望在错误上有一个例外,这些错误与使用antlr网站快速启动窗口中的grun别名时的错误相同。

我使用

停用了解析器和词法分析器错误侦听器
lexer.removeErrorListeners();
parser.removeErrorListeners();

因为他们报告了歧义和其他我不关心的东西,因为解析过程成功了。

如何设计一个错误监听器来报告因不成功解析而产生的错误?

1 个答案:

答案 0 :(得分:1)

您可以创建自己的错误侦听器。只需创建一个派生自基本错误监听器类的类,创建一个实例并通过parser.addErrorListener()添加该实例。

附注:通常没有词法分析器的错误监听器,因为对于ANTLR4,首选处理是通过始终跟随解析器错误来处理词法分析器错误。