2

重複の可能性:
Scala で式を具体化 (AST を取得) する最も簡単な方法は何ですか?

マクロ定義内でc.reifyonContextパラメータを使用して、式を 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、その表現には何を入れるべきですか?

4

0 に答える 0