首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eclipse的ecj编译器可扩展吗?

Eclipse的ecj编译器可扩展吗?
EN

Stack Overflow用户
提问于 2020-02-11 13:48:54
回答 1查看 138关注 0票数 1

我对修改Java语法和一些隐式范例感兴趣。由于我使用Eclipse进行开发,Eclipse提供了自己的编译器,也可以单独使用,因此我想知道是否不可能扩展ecj以尊重其他语法规则(并正确地处理它们)。

通过从AST中移除元素并创建一些新元素,我的语法更改都是可以解决的,所以我假设不需要深入字节码就可以完成我想做的事情。

本质上,我想做的事情可以通过在实际编译之前对源代码进行“虚拟”修改来完成。然而,我怀疑这样做会扰乱源代码映射,这将使调试变得非常糟糕。

关于sidenote:我知道Lombok项目,它扩展和修改类编译,但是Lombok只使用注释,严格地说不修改语法。所以我想做的是对语言规范有更多的侵犯性。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-15 13:40:36

正如评论中提到的对象团队一样:

(1)对象团队本身将JDT扩展为自己的语言OT/J,这是Java的一个扩展。这是一种双重战略:

  • 我们维持一个分叉 of org.eclipse.jdt.core。虽然这是相当繁重的工作,但它成功地证明了JDT体系结构适合于修改。
  • 我们使用我们自己的角色对象概念来非侵入性地调整IDE的其他部分(特别是org.eclipse.jdt.ui)的行为,以反映OT/J的语义。

(2)我有一些(旧的)博客文章演示了OT/J如何用于创建JDT的非侵入性变体,包括对扩展语法的支持:

免责声明:我是OT/J的作者,也是它的实现负责人,后来成为Eclipse的提交人。

关于进一步的问题,有一个论坛

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60170365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档