虽然lexing /解析了一个antlr语法的输入,但我希望在错误上有一个例外,这些错误与使用antlr网站快速启动窗口中的grun别名时的错误相同。
我使用
停用了解析器和词法分析器错误侦听器lexer.removeErrorListeners();
parser.removeErrorListeners();
因为他们报告了歧义和其他我不关心的东西,因为解析过程成功了。
如何设计一个错误监听器来报告因不成功解析而产生的错误?
答案 0 :(得分:1)
您可以创建自己的错误侦听器。只需创建一个派生自基本错误监听器类的类,创建一个实例并通过parser.addErrorListener()
添加该实例。
附注:通常没有词法分析器的错误监听器,因为对于ANTLR4,首选处理是通过始终跟随解析器错误来处理词法分析器错误。