【发布时间】:2016-11-19 19:46:49
【问题描述】:
我想使用 Antlr 在 Python 中为 Java 运行 Lexer
对于 Antlr4,我使用的是来自 https://github.com/antlr/grammars-v4/tree/master/java8 的 Java8 语法。
我正在使用生成解析器
java -jar antlr-4.5.2-complete.jar -Dlanguage=Python2 ./Java8.g4
现在,如果我查看生成的 Java8Lexer.py,它包含
return Character.isJavaIdentifierStart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)))
我不认为类型转换是有效的 python,当我使用它时它会在那里引发语法错误。
我在使用 antlr3 java 1.6 语法使用 antlr3 时遇到了类似的问题。它产生了
boolean isSomething = something
这也不是有效的 Python。
我错过了什么吗?有没有办法在 Python 中使用 antlr 使用 Java Lexer?
【问题讨论】: