Web上有一个fewresources,它对编写与代码模式匹配的Scala编译器插件具有指导意义,但这些插件无助于生成代码(构建符号树) 。我应该从哪里开始弄清楚如何做到这一点? (如果有比手动构建符号树更简单的方法,我也会感兴趣。)从Scala编译器插件生成Scala代码树
例如,我想编写一个插件,用一个简单的AST代替这个表达式的代码,其中变量(从原来的程序代码中提取)可以是任何类型的:
"" + hello + ", " + world + "!"
我意识到这可能因为拳击和toString
,例如是棘手的如果 hello
是一个对象,并world
是一个int,这确实应该 是这样的:
"".+(hello.toString().+(", ".+(new Integer(world).toString().+("!"))))
我不知道你的问题的答案,但米格尔·加西亚把[斯卡拉编译器角]放在一起(http://www.sts.tu-harburg.de/people/mi.garcia/ScalaCompilerCorner /),这可能是有关Scala编译器资源的最佳可用汇编。 – 2010-02-12 04:55:58