检测Scala AST中的宏扩展

时间:2014-05-14 16:48:42

标签: scala scala-macros

我有一个编译器插件,它在typer阶段之后运行。该插件需要忽略从宏生成的任何代码。 (我在范围定位方面遇到了一些问题,我认为最简单的修复就是忽略宏代码,无论如何我都不需要在我的插件中处理它。)

所以,我想做的是检测某些代码是否是宏扩展的。那可能吗?树的某处隐藏着一些旗帜吗?

或者,我会很高兴能够在前一阶段检测某些代码是否会进行宏扩展,然后我可以对其进行注释,以便稍后进行检测。

2 个答案:

答案 0 :(得分:2)

MacroExpansionAttachment

我记得,

sample usage

答案 1 :(得分:0)

在等待更好的解决方案时,我目前的解决方法是检测任何没有范围位置的树(我启用了Yrangepos)。这会检测生成的代码,包括宏。