Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 内部宏调用之间的局部变量_Javascript_Node.js_Sweet.js - Fatal编程技术网

Javascript 内部宏调用之间的局部变量

Javascript 内部宏调用之间的局部变量,javascript,node.js,sweet.js,Javascript,Node.js,Sweet.js,我试图创建一对sweet js宏,其中内部宏和外部宏共享一个局部变量: syntax cdo = function(ctx) { let call = ctx.next().value; let dummy = #`dummy`.get(0); let context_id = #`${dummy.fromIdentifier("$context$")}`; return #`let ${context_id} = ${call}`; } syntax cont

我试图创建一对sweet js宏,其中内部宏和外部宏共享一个局部变量:

syntax cdo = function(ctx) {
    let call = ctx.next().value;
    let dummy = #`dummy`.get(0);
    let context_id = #`${dummy.fromIdentifier("$context$")}`;
    return #`let ${context_id} = ${call}`;
}

syntax context = function(ctx) {
     let func = ctx.next().value; // function keyword
     let func_name = ctx.next().value;
     let args = ctx.next().value; // all args
     let body = ctx.next().value; // function body

     let dummy = #`dummy`.get(0);
     let context_id = #`${dummy.fromIdentifier("$context$")}`;

     let body_result = #`let ${context_id} = 1234`;
     for (let stx of body.inner()) {
         body_result = body_result.concat(#`${stx}`);
     }

     return #`${func} ${func_name}${args}{${body_result}}`;
}

context function foo(a, b) {
    cdo bar();
}
我希望“context”宏调用能够为内部cdo宏调用分配一个可访问/可分配的局部变量

这是使用sweet js 1.0,我已经研究过使用name()访问调用上下文,但是我似乎无法实现这一点。正确的方法是什么