按照以下说明尝试为python设置ANTLR http://blog.anvard.org/articles/2016/03/15/antlr-python.html
并另外使用antlr-4.7.2-complete.jar的本地副本
存在语法错误。
使用python2:
> from antlr4 import *
File "/usr/local/lib/python2.7/dist-packages/antlr4/__init__.py",
line 1, in <module>
from antlr4.Token import Token
File "/usr/local/lib/python2.7/dist-packages/antlr4/Token.py", line 59
def text(self, text:str):
^
使用python3:
> Traceback (most recent call last):
File "test_Hello.py", line 1, in <module>
from antlr4 import *
File "/usr/local/lib/python3.6/dist-packages/antlr4/__init__.py",
line 5, in <module>
from antlr4.BufferedTokenStream import TokenStream
File "/usr/local/lib/python3.6/dist-packages/antlr4
/BufferedTokenStream.py", line 18, in <module>
from antlr4.error.Errors import IllegalStateException
File "/usr/local/lib/python3.6/dist-packages/antlr4/error/Errors.py",
line 39, in <module>
from antlr4.Recognizer import Recognizer
File "/usr/local/lib/python3.6/dist-packages/antlr4/Recognizer.py", line
6, in <module>
from __builtin__ import unicode
ModuleNotFoundError: No module named '__builtin__'
要生成python代码,我在工作目录中使用了Antlr4的新副本-版本4.7.1-jar 并为python2生成了python文件,如下所示:
alias antlr4='java -jar antlr-4.7.2-complete.jar'
antlr4 -Dlanguage=Python2 Hello.g4
和
alias antlr4='java -jar antlr-4.7.2-complete.jar'
antlr4 -Dlanguage=Python3 Hello.g4
对于python3。
Python 2版本为2.7.15+ Python 3版本是3.6.8。
我已经看过类似的问题,例如: Python+ANTLR4: No module named antlr4
但找不到解决此问题的方法。