1

看起来 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.

谁能让我走上正确的道路?由于可供下载的版本稀缺,我似乎无能为力。

4

1 回答 1

2

如果你想使用 Python 运行时,你必须使用 ANTLR 3.1.3 来生成你的 [Python] 词法分析器和解析器。

在此处下载 3.1.3:http ://www.antlr3.org/download/antlr-3.1.3.jar

以下问答提供了一个有效的 Python 示例:ANTLR parsing MismatchedTokenException

于 2013-10-29T22:46:46.857 回答