提供代码
class Test {
static function main() {
var i = 1;
trace(m('some before $i some after')); // some before 1 some after
}
static macro function m(e: haxe.macro.Expr)
{
trace(e); // { expr => EConst(CString(some before $i some after)), pos => #pos(Test.hx:4: characters 12-39) }
// trace the name of referenced var
/*
trace();
*/
return macro $e;
}
}
如果我想在注释掉的代码中使用trace()
函数来追踪插值表达式中使用的变量名称,而不需要手动解析字符串常量,应该放置什么内容?
case EConst(CString(str)):
,这要感谢Mark最近的模式匹配教程。 - Jeff Ward