Scala には REPL のテストをするための ReplTest っていうそのままの名前のクラスがあって
https://github.com/scala/scala/blob/v2.10.0-M2/src/partest/scala/tools/partest/ReplTest.scala
こんな感じに使います
https://github.com/scala/scala/blob/v2.10.0-M2/test/files/run/macro-repl-basic.scala
https://github.com/scala/scala/blob/v2.10.0-M2/test/files/run/macro-repl-basic.check
もちろん、Scala自体を作ってる中の人が使うためのものです。で、それつかってこんなもの作ってみました。↓
このあたり見てもらえばわかりますが
togetter Scala の Macro について
Scalaのマクロは同じコンパイル単位で動かないらしいですし、で
xsbtscript で、 macro が実行できるようにしたいな・・・改造しないと無理だろうな
2012-02-24 21:50:31 via web
なんていってて、ちょっと試したところ、 Macro 以前にそもそも Scala2.10.0-M2 で xsbtscript が動かない!? っぽいんですが・・・(・ω・`) *1
この作ったやつなら、 「いちいち sbt で project 分けて*2作らなくても、同じファイルに書けて手軽にmacro 実行できるよねー(?)」 という。
まぁ macro 試す以外にも色々使えると思いますが。
そしてこのままじゃあれなので、できれば sbt-plugin にしてみるとか、 conscript のアプリにしたい・・・
追記:
sbt plugin つくった(`・ω・´)
https://github.com/xuwei-k/repl
*1:ちゃんと調べてないから、自分の設定が悪いだけの可能性もあるが・・・
*2: 普通にやるとこんな感じ https://github.com/xuwei-k/compile-time-fibonacci で分ける必要あり