Macros 写入长/多行宏

Macros 写入长/多行宏,macros,haxe,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

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

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生成行)宏有何建议

从示例中,我发现可以返回一个表达式块,而不仅仅是一行。只需将语句添加到一个花括号中并返回即可。也可以使用宏

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
}

当您尝试添加换行符时,实际遇到了什么问题?表达式具体化应该支持任何有效的表达式,而不考虑换行符,因为它们在Haxe语法中根本不重要。试试吧。你可以有50-100行表达物化不用担心。你们甚至可以整节课。谢谢你们两位。我从你的提示中找到了答案:D我现在就发布答案