gpt4 book ai didi

javascript - sweet.js 如何将函数语句与中缀匹配

转载 作者:行者123 更新时间:2023-12-03 10:47:25 27 4
gpt4 key购买 nike

我似乎无法匹配

let function = macro {
case infix {$name:ident $[=] | _ ($params ...) { $body ...} } => {
return #{
$name = function $name ($params ...) {
console.log($name.name);
$body ...
}
}
}
}
var add = function (x, y){
return x+y;
}

SyntaxError: [macro] Macro `function` could not be matched with `() {} ...`
11: var add = function (x, y){
^

宏在没有 var 的情况下也能正常工作。

我知道表达式位置允许有 1 个非表达式项但 var $name:ident $[=] 不起作用。

如果这对于中缀来说是不可能的,是否有另一种方法来匹配函数语句并捕获函数的名称?

最佳答案

看来我需要从更广泛的 Angular 来看待我的问题。正如 @timdisney 上面所解释的,

var xxx = function () {}

需要 var 宏,而不是 function 宏。

// log function calls

let var = macro {
case {
$_ $id = function ($params ...) {$body ...}
} => {
return #{
var $id = function $id ($params ...) {
console.log($id.name);
$body ...
}
};
}
case { $_ } => { return #{var}; }
};

第二种情况是一个包罗万象的情况,返回函数不变。这称为身份规则。

关于javascript - sweet.js 如何将函数语句与中缀匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28523267/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com