将块的结尾与Sweet.js匹配

时间:2014-03-31 12:26:02

标签: javascript macros sweet.js

我试图在sweet.js中编写 case 宏但我不知道如何匹配块的结尾。 特别是我想匹配宏调用和包含它的块结尾之间的代码。 例如,如果我的宏是myMacro,代码如下

var foo = function() {
    console.log('log1');
    myMacro(someArg);
    console.log('log2');
    console.log('log3');
}        

我希望能够将这些行与' log2'匹配。和' log3'。 我的猜测是我无法做到,但是我无法找到一个明确的定义,如何在文档中进行匹配(指针会受到赞赏)。 有可能吗?

1 个答案:

答案 0 :(得分:2)

...模式会将标记与分隔符(或文件,如果没有分隔符)的末尾匹配,因此您可以执行以下操作:

macro myMacro {
    rule { $x ... } => {
        function bar() {
            $x ...
        }
    }
}

这只会将myMacro之后的所有标记粘贴到bar函数内的结束分隔符。