我似乎找不到比赛
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 $[=]
不起作用。
如果使用中缀这是不可能的,是否有另一种方法来匹配函数语句并捕获函数的名称?