编写长/多行宏

时间:2015-02-22 13:03:03

标签: macros haxe

我正在编写一些宏,这是示例代码

macro public static function test(object:Expr,name:Expr):Expr{
    #if debug
    return macro if ($object.get($name) == true) {$object.scan();$object.submit();return;};
    #else   
    return macro trace("debug mode only");
    #end
}

随着我的宏越来越长复杂,我认为除了用分号连接语句之外,必须有另一种方法来编写多行宏。

关于编写多行(约50-100生成行)宏的任何建议?

1 个答案:

答案 0 :(得分:2)

this示例,我发现你可以返回一个表达式块,而不仅仅是一行。只需在大括号内添加语句并返回即可。您也可以使用宏来return a class

macro public static function test(object:Expr, name:Expr):Expr {
#if debug
    return macro
        if ($object.get($name) == true) {
            $object.scan();
            $object.submit();
            return;
        }
#else   
    return macro {
        trace("not working!")
        trace("compile with -Ddebug");
    }
#end
}