在解析期间检测解析错误

时间:2017-03-07 08:48:12

标签: antlr antlr4

如何以编程方式检测解析器生成的错误?比如这个语法:

Application

此程序输入:s : 'hello' ;

"foo bar"

解析器会打印出ParseTree tree = parser.s(); 。有没有办法以编程方式检测解析失败?它似乎没有任何异常。

1 个答案:

答案 0 :(得分:0)

实现ANTLRErrorListener接口并将其添加到解析器:

    Parser#addErrorListener(ANTLRErrorListener);

通常,想要首先删除默认的控制台 - 输出侦听器:

    Parser#removeErrorListeners()