加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

是否有一个Java库从AST生成类文件?

发布时间:2020-12-14 05:28:18 所属栏目:Java 来源:网络整理
导读:This page描述了如何使用javac中的代码生成器生成代码,因为我可以构建一个AST(使用我写的单独的解析器).该技术涉及编辑javac的源代码,以基本上绕过Java解析器,以便可以将自己的AST提供给代码生成器.这可以工作,但我希望以稍微更清洁的方式做到这一点.我想将j
This page描述了如何使用javac中的代码生成器生成代码,因为我可以构建一个AST(使用我写的单独的解析器).该技术涉及编辑javac的源代码,以基本上绕过Java解析器,以便可以将自己的AST提供给代码生成器.这可以工作,但我希望以稍微更清洁的方式做到这一点.我想将javac的代码生成部分作为库的项目包含在我的项目中,所以我可以使用它来生成代码,而不会带来javac源代码的其余部分.

有没有办法这样做与javac,还是有一个更好的图书馆?

此外,请随意更改问题标题.我不能想到一个更好的一个,但它有点模糊.如果您建议编辑更好的标题,我会接受.

解决方法

我想你可能感兴趣的是一个像 BCEL(ByteCode Engineering Library)这样的java库,

当我在编译器构建课程时,我玩了一遍,基本上它有一个很好的包装器,用于生成常量池,将一个名为Bytecode的指令插入到一个方法中,然后完成后,您可以加载类在运行时使用自定义类加载器,或以正常方式将其写入文件.

使用BCEL,应该比较容易从语法树到java字节码,尽管有点乏味,但是在某些情况下,您可能只想使用BCEL来生成未生成的字节码而不构建树.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读