如何在Scala中打印扩展的宏?

Kim*_*bel 17 macros scala scala-2.10

我在Scala中编写一个宏,但是当我调用它时,我收到一条错误消息"Double不接受参数".显然,宏构建AST的方式有问题.那我怎么能看到扩展的宏呢?有没有办法在运行时调用宏实现?

Eug*_*ako 20

提供-Ymacro-debug-lite-Ymacro-debug-verbose选择编译器.

关闭我的头顶,印刷的AST的detalization被支配-Yshow-trees-compact,-Yshow-trees-stringified,-Xprint-types,-uniqid-Yshow-symkinds.您可以通过运行scala -Xscala -Y(或检查scala设置的源代码来查找其他宝石,网址https://github.com/scala/scala/blob/2.10.x/src/compiler/scala/tools/nsc/settings/ScalaSettings.scala).

此外,尽管本质上是一个宏,但是reification有自己的跟踪机制,可以通过-Yreify-copypaste和配置-Yreify-debug.