我想用Java编写一个Java解释器,目的是为该语言添加一些其他功能。
我想知道是否已经存在一些Java解释器,用Java编写,使用javacc。 那会很酷。
我已经在javacc网站上下载了java 1.5语法和抽象语法树(AST),但问题是AST只是构建了,但没有填充。事实上它什么也没做。
你知道用javacc编写的任何开源Java解释器吗?
谢谢,
卢瓦克
答案 0 :(得分:3)
你知道用javacc编写的任何开源Java解释器吗?
简短的回答是不,我没有。
我花了几分钟谷歌搜索,找不到任何相关的东西。但是,有一些使用JavaCC用Java编写的其他语言的解释器的例子。我还看到了编译器构建课程的参考资料,该课程已经编写了一个“microJava”语言的翻译作为家庭作业。
但请想一想。为什么有人会在Java中编写Java编译器/解释器?构建现有工具链已经完成的工作需要做很多工作。然后更加努力让其他人可以使用它。这可能解释了为什么你找不到一个。
我建议你从OpenJDK代码库开始做实验......或者实现一个生成字节码或Java源代码的编译器。
Dave Newton提到的Polyglot系统(在上面的评论中)是一个用于Java语言扩展的框架,最终生成常规的Java源代码。这很有趣,但我不知道它会如何帮助。