1

我在文件“A”中定义了宏。我想在其他文件中使用宏,例如 file B

这可能吗?我当然知道我可以在 file 中使用宏的编译结果B,但我也想在那里使用宏。

一个

macro test {
 ...
}

test 1
test 2

test 3
test 4
4

2 回答 2

3

是的,您需要在文件 A中使用--module标志和宏。它在此处记录。export

于 2014-08-09T19:37:17.943 回答
2

你一定能做到!

您需要在编译时导出宏并将文件名作为参数传递。

看看这个:

设置.sjs

macro set {
    rule { $i:ident = $value:lit } => {
        var $i = $value;
    }
}
export set;

id.sjs

macro id {
    rule { $i:ident } => 
    {
        $i;
    }
}
export id;

在编译时:

 => # sjs --module ./set.sjs ./id.sjs
于 2014-09-29T18:41:33.200 回答