在 Scala 中使用 SBT 工具链时,是否可以编写一个任务来读取项目源代码的特殊部分以在编译时生成 scala 代码。
有什么想法甚至文章/教程吗?我正在寻找与 Template Haskell 非常相似的东西。
环树者.scala http://eed3si9n.com/treehugger/是一个专为代码生成而设计的库。
import treehugger.forest._
import definitions._
import treehuggerDSL._
val tree: Tree = Predef_println APPLY LIT("Hello, world!")
println(tree)
println(treeToString(tree))
上面的代码打印两行:
Apply(Ident(println),List(Literal(Constant(Hello, world!))))
println("Hello, world!")
treehugger 确实生成了 AST,但不符合 scalac 的 AST。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)