我想用 Java 编写一个 Java 解释器,目的是为该语言添加一些其他功能。
我想知道是否已经存在一些使用 javacc 用 Java 编写的 Java 解释器。那会很酷。
我已经在javacc网站上下载了java 1.5语法和Abstract Syntax Tree(AST),但是问题是AST是刚建好的,还没有填。事实上它什么也没做。
你知道任何用 javacc 编写的开源 Java 解释器吗?
谢谢,
洛伊克
我想用 Java 编写一个 Java 解释器,目的是为该语言添加一些其他功能。
我想知道是否已经存在一些使用 javacc 用 Java 编写的 Java 解释器。那会很酷。
我已经在javacc网站上下载了java 1.5语法和Abstract Syntax Tree(AST),但是问题是AST是刚建好的,还没有填。事实上它什么也没做。
你知道任何用 javacc 编写的开源 Java 解释器吗?
谢谢,
洛伊克
你知道任何用 javacc 编写的开源 Java 解释器吗?
简短的回答是不,我不知道。
我花了几分钟谷歌搜索,找不到任何相关的东西。但是,也有使用 JavaCC 用 Java 编写的其他语言的解释器示例。我还看到了对 Compiler Construction 课程的引用,该课程已经(已经)为“microJava”语言编写了解释器作为家庭作业。
但是想想看。为什么有人会努力用 Java 为 Java 编写编译器/解释器?构建现有工具链已经完成的东西需要做很多工作。甚至更多的努力使它可供其他人使用。这可能解释了为什么你找不到一个。
我建议您从 OpenJDK 代码库开始进行实验……或者通过实现生成字节码或 Java 源代码的编译器。
Dave Newton 提到的 Polyglot 系统(在上面的评论中)是一个用于进行 Java 语言扩展的框架,最终生成常规的 Java 源代码。这很有趣,但我看不出它在这里会有什么帮助。