java - 用java编写的java解释器

标签 java syntax tree interpreter javacc

我想用 Java 编写一个 Java 解释器,目的是向该语言添加一些其他功能。

我想知道是否已经存在一些使用 javacc 用 Ja​​va 编写的 Java 解释器。 那会很酷。

我已经在javacc网站上下载了java 1.5语法和抽象语法树(AST),但问题是AST刚刚构建,但没有填充。事实上它什么也没做。

您知道任何用 javacc 编写的开源 Java 解释器吗?

谢谢,

卢伊克

最佳答案

Do you know any opensource Java interpreter written with javacc ?

简短的回答是:不,我不。

我花了几分钟谷歌搜索,但找不到任何相关内容。不过,也有一些使用 JavaCC 用 Ja​​va 编写的其他语言的解释器示例。我还看到了对编译器构建类(class)的引用,该类(class)已经为“microJava”语言编写了一个解释器作为家庭作业练习。

但是想一想。为什么有人要花力气用 Java 编写 Java 编译器/解释器?构建现有工具链已经可以做的事情需要做很多工作。然后还要付出更多努力使其可供其他人使用。这可能解释了为什么你找不到一个。

我建议您从 OpenJDK 代码库开始进行实验……或者通过实现生成字节码或 Java 源代码的编译器。


Dave Newton 提到的 Polyglot 系统(在上面的评论中)是一个用于进行 Java 语言扩展的框架,最终生成常规的 Java 源代码。这很有趣,但我不知道它在这里有什么帮助。

关于java - 用java编写的java解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10867473/

相关文章:

Java 将树添加到 ArrayList

java - 如何使 JLabel 可点击?

javascript - Jasmine /Angular Testing 语法混淆

java - 使用 HttpServletRequest 对象检查客户端是否处于 Activity 状态

python - 类型错误 : unsupported operand type(s) for &: 'float' and 'float'

c++ - 中缀 vs 前缀语法 : name lookup differences

algorithm - 在(分析)树的集合中查找最频繁的子树

c++ - 删除树中的所有节点 - C++

java - android测试-EditText即使有字符也返回空

java - 如何在 Spring Boot 应用程序中设置 Tomcat 的 "reloadable"标志?