看起来3.5.1是最新的3.x版本,而3.1.3是唯一可用的版本(http://www.antlr.org/download/Python/)。但是,当我尝试使用该示例运行解析器时,我得到的投诉是我的运行时版本与我的ANTLR版本不兼容:
$ PYTHONPATH=/home/dustin/build/antlr3/antlr_python_runtime-3.1.3 python SimpleCalcParser.py /tmp/lang
Traceback (most recent call last):
File "SimpleCalcParser.py", line 231, in <module>
main(sys.argv)
File "SimpleCalcParser.py", line 220, in main
lexer = SimpleCalcLexer(char_stream)
File "/home/dustin/development/antlr/antlr3/hello_world_python/SimpleCalcLexer.py", line 31, in __init__
super(SimpleCalcLexer, self).__init__(input, state)
File "/home/dustin/build/antlr3/antlr_python_runtime-3.1.3/antlr3/recognizers.py", line 1072, in __init__
BaseRecognizer.__init__(self, state)
File "/home/dustin/build/antlr3/antlr_python_runtime-3.1.3/antlr3/recognizers.py", line 184, in __init__
self.antlr_version_str))
RuntimeError: ANTLR version mismatch: The recognizer has been generated by V3.0.1, but this runtime is V3.1.3. Please use the V3.0.1 runtime.
有人能把我放在正确的道路上吗?由于可供下载的版本稀缺,我似乎无法做很多事情。
答案 0 :(得分:2)
如果你想使用Python运行时,必须使用ANTLR 3.1.3来生成[Python]词法分析器和解析器。
在此处下载3.1.3:http://www.antlr3.org/download/antlr-3.1.3.jar
以下Q&amp; A提供了一个有效的Python示例:ANTLR parsing MismatchedTokenException