我正在使用ANTLR生成Python词法分析器/解析器(a.k.a。Python target
)。
官方的ANTLR页面说:使用Java生成.py
个文件:
set CLASSPATH=.;antlr-complete.jar;%CLASSPATH%
java org.antlr.v4.Tool -Dlanguage=Python2 HelloWorld.g4
好的,这很好用。生成了大量.py
个文件:HelloWorldLexer.py
,HelloWorldParser.py
等。
然后ANTLR页面说:通过将Java应用于.py
文件,可以生成解析树的图形:
set CLASSPATH=.;antlr-complete.jar;%CLASSPATH%
java org.antlr.v4.gui.TestRig HelloWorld message -gui < input.txt
这不起作用,它会生成此错误:Can't load HelloWorld as lexer or parser
除了它不起作用的小问题(对我来说),Java在世界上如何执行.py
文件?不知何故Java必须启动并使用Python解释器?也许如果我更好地了解Java如何应用于Python文件,我可以弄清楚为什么我收到上述错误消息。您可以提供的任何见解将不胜感激。这是一篇相关的SO帖子:ANTRL4: Can't get Python ANTLR to generate a graphic of the parse tree
P.S。我在执行上述操作之前安装了ANTLR Python运行时(antlr4-python2-runtime-4.5.tar.gz
)。