antlr中Java语法的Python目标

时间:2016-07-16 21:23:46

标签: java python antlr4

我想使用Antlr

在Python中运行Lexer for Java

对于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。

我错过了什么吗?有没有办法使用antlr在Python中使用Java Lexer?

1 个答案:

答案 0 :(得分:0)

只需从Java8语法中删除以Character.isJavaIdentifierStart开头的字符串。