gpt4 book ai didi

javascript - Sweet.js - 如何将变量放入标识符名称和字符串变量中?

转载 作者:行者123 更新时间:2023-11-29 18:13:39 24 4
gpt4 key购买 nike

我是 Sweet.js 的新手。我的第一个简单的宏如下

macro test {
rule {
$className($entityName)
} => {
function test$className()
{
console.print("$className");
console.print("$entityName");
}
}
}

test me(More)

产生

function test$className() {
console.print(me);
console.print(More);
}

但我希望它产生这个:

function testMe() {
console.print("me");
console.print("More");
}

但是我尝试过的任何变体都没有用。有什么建议吗?

最佳答案

您需要使用 case 宏来构造您想要的确切标记:

macro test {
case {_
$className($entityName)
} => {
var classStr = unwrapSyntax(#{$className}[0]);
var entityStr = unwrapSyntax(#{$entityName}[0]);
letstx $fnName = [makeIdent("test" + classStr, #{here})];
letstx $classStr = [makeValue(classStr, #{here})];
letstx $entityStr = [makeValue(entityStr, #{here})];
return #{
function $fnName()
{
console.print($classStr);
console.print($entityStr);
}
}
}
}

test me(More)

关于javascript - Sweet.js - 如何将变量放入标识符名称和字符串变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25214141/

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