在使用antlr4生成解析器时,有时会遇到这样的问题:在启用ParserATNSimulator调试器时,没有任何输出。这是因为在默认情况下,ATN模拟器将禁用调试,即使调试器被激活。
要解决这个问题,可以在生成解析器时将参数-visitor或-listener(或两者都)添加到命令行中。例如,在Java中,可以这样编写:
java -jar antlr-4.7.2-complete.jar -visitor MyGrammar.g4 或者 java -jar antlr-4.7.2-complete.jar -listener MyGrammar.g4
这将在生成解析器时包含对应的visitor或listener,从而启用ATN模拟器的调试模式,并在调试器中生成输出。