如何在 ANTLR 4 的侦听器中使用语义测试?
How to use semantic tests in the listeners with ANTLR 4?
我想避免在 PARSER 语法文件中使用编程并在侦听器中使用语义检查。我可以做吗 ?怎么做 ?我会抛出异常吗?调用解析器的方法 ?
谢谢。
编辑:我说词法分析器,这是一个错误。我是说解析器。
最简单的方法是使用 Recognizer#addErrorListener(ANTLRErrorListener)
来捕获语义和其他错误——解析器扩展 Recognizer
.
解析器运行后检查捕获的错误是否存在,以决定whether/how继续。
要影响解析器处理错误的方式,请使用 Parser#setErrorHandler(ANTLRErrorStrategy)
。运行时包含一个 BailErrorStrategy
,可用于在遇到语法错误时停止解析器。
我想避免在 PARSER 语法文件中使用编程并在侦听器中使用语义检查。我可以做吗 ?怎么做 ?我会抛出异常吗?调用解析器的方法 ?
谢谢。
编辑:我说词法分析器,这是一个错误。我是说解析器。
最简单的方法是使用 Recognizer#addErrorListener(ANTLRErrorListener)
来捕获语义和其他错误——解析器扩展 Recognizer
.
解析器运行后检查捕获的错误是否存在,以决定whether/how继续。
要影响解析器处理错误的方式,请使用 Parser#setErrorHandler(ANTLRErrorStrategy)
。运行时包含一个 BailErrorStrategy
,可用于在遇到语法错误时停止解析器。