是否有java 8的编译器代码与antlr4一起使用?



我在GitHub中找到了一个来自antlr4的存储库,其中包含Java 8的完整语法文件:https://github.com/antlr/grammars-v4/blob/master/java8/Java8.g4

如果我使用antlr4,它将采用语法并创建词法分析器,解析器等。但是这还不足以复制现有的Java编译器。

我们需要挂钩到antlr4生成的类(词法分析器、解析器等)的Java代码,以便我们可以将输入源文件转换为字节码。GitHub中有一个名为minijava的项目,作者为Java的一个子集创建了一个编译器:https://github.com/csaroff/MiniJava-Compiler?files=1

是否有像minijava项目一样的编译器代码,但对于整个Java 8语法?

问题是你想要完成什么。如果你真的想进入编译器…JDK是开源的(http://download.java.net/openjdk/jdk8/)。可能不是用ANTLR,但也许是你最好的选择。另一个选择是eclipse中的java编译器,也是开源的。

但是可能你真的不想摆弄编译器…但是只想挂接到编译过程以生成一些额外的代码?那么Java注释处理器(https://docs.oracle.com/javase/8/docs/api/javax/annotation/processing/Processor.html)就是你要找的。

或者你想对一个已经创建的类进行后处理?然后可以使用一些字节代码生成/操作框架(例如http://jboss-javassist.github.io/javassist/)。

我认为没有"完整的ANTLR语法与编译器的其余部分"的项目。

最新更新