Gam*_*ega 5 java compiler-construction scala
Microsoft Roslyn - 编译器即服务是 .NET 堆栈的一个很好的补充;我在 Java 世界中寻找类似的东西。我相信 Scala 在编译器插件的形式上有类似的东西,但不确定它有多灵活。
我试图在 Java 世界中解决的问题是允许用户编写一些自定义语法,并在内部将其重新连接为不同的语法。
Scala 将在下一版本 (2.10) 中支持宏。您已经可以使用里程碑版本来检查它是如何工作的。基本上,它们允许在编译时修改 AST。所以你可以用另一个 Scala 片段重写 Scala 的任何片段。检查scalamacros网站上的示例和文档。
Eval如果你想在运行时编译Scala源码,你可以在twitter/util项目中寻找。