Python antlr 中 Java 语法的目标
Python target for Java grammar in antlr
我想 运行 使用 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 语法时遇到了类似的问题。它产生了
boolean isSomething = something
这也是无效的 Python。
我错过了什么吗?有什么方法可以使用 antlr 在 Python 中使用 Java Lexer?
只需从 Java8 语法中删除以 Character.isJavaIdentifierStart 开头的字符串。
我想 运行 使用 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 语法时遇到了类似的问题。它产生了
boolean isSomething = something
这也是无效的 Python。
我错过了什么吗?有什么方法可以使用 antlr 在 Python 中使用 Java Lexer?
只需从 Java8 语法中删除以 Character.isJavaIdentifierStart 开头的字符串。