マクロ定義内でc.reify
onContext
パラメータを使用して、式を AST に変換できます。
しかし、マクロ関数に AST を渡して結果を確認することで、マクロ関数をテストできるようにしたいと考えています。つまり、次のようになります。
def printf(format: String, args: Any*): Unit = macro printf_impl
def printf_impl(c: Context)(format: c.Expr[String], args: Expr[Any]*): c.Expr[Unit] = ....
これを実行して、特定の式によって生成された AST を取得できるようにしたいので、単体テストを実行したり、REPL で非公式にテストしたりできます。
printf_impl(c.reify("x%sy", c.reify(4 + 5))
しかしc
、その表現には何を入れるべきですか?