如何向Java添加(次要)语法糖?

pol*_*nts 5 java eclipse language-features syntactic-sugar

假设我想向Java添加一些小的语法糖.只是添加正则表达式模式文字,或者可能是base-2文字或多行字符串等等.没有什么主要的语法(至少现在).

怎么会这样做呢?

我是否需要扩展字节码编译器?(那可能吗?)

我可以编写Eclipse插件来进行简单的源代码转换,然后再将其提供给标准的Java编译器吗?

Gru*_*eck 6

我会看看Project Lombok,并尝试重用他们的尝试.他们使用Java 5注释来挂钩Java代理,该代理可以在编译代码之前操作抽象语法树.他们目前正致力于创建一个API,以允许编写可以与javac或Eclipse和NetBeans等主要IDE一起使用的自定义转换器.除了触发要生成代码的注释外,它们还计划添加语法更改(可能是mixin或Java 7之前的闭包语法).

(我可能会略微关闭一些细节,但我认为我非常接近).

Lombok是开源的,因此研究他们的代码并尝试在此基础上构建可能是一个良好的开端.

如果做不到这一点,您可以尝试更改javac编译器.虽然从我所听到的内容来看,对于那些不是编译器和Java专家的人来说,这可能会令人沮丧.


aku*_*uhn 2

JRuby 的技术主管 Charles Nutter 用文字正则表达式扩展了 Javac。据我记得,他必须更改大约 3 行大小写。

请参阅http://twitter.com/headius/status/1319031705


这是关于如何向 javac 添加新运算符的精彩教程,http://www.ahristov.com/tutorial/java-compiler.html

有关更多类似的链接,请参阅我的javac hackers 链接列表。