0
我使用的是從這裏ANTLRv4 Python3語法:產生Python3在python解析器,使用ANTLR 4.6
https://github.com/antlr/grammars-v4/blob/master/python3/Python3.g4
和運行:
java -jar antlr-4.6-complete.jar -Dlanguage=Python2 Python3.g4
產生Python3Lexer.py +一些其他文件。
但是,Python3Lexer.py包含的代碼不是python!例如。
def __init__(self, input=None):
super(Python3Lexer, self).__init__(input)
self.checkVersion("4.6")
self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache())
self._actions = None
self._predicates = None
// A queue where extra tokens are pushed on (see the NEWLINE lexer rule).
private java.util.LinkedList<Token> tokens = new java.util.LinkedList<>();
// The stack that keeps track of the indentation level.
private java.util.Stack<Integer> indents = new java.util.Stack<>();
因爲這個原因它無法使用。有誰知道爲什麼會發生這種情況,我該如何修復它?謝謝!
謝謝!我現在轉移到Java作爲目標語言來避免這種情況。 – greenberet123