gpt4 book ai didi

javascript - Sweet.js - 将 token 扩展为字符串

转载 作者:行者123 更新时间:2023-12-02 07:31:37 25 4
gpt4 key购买 nike

我想将一个标记扩展为一个字符串。例如,我有这个宏:

macro String {
rule {
$x
} => {
"$x"
}
}

我希望 String 1 扩展为 "1",但它仅扩展为 1;

我怎样才能做到这一点?

编辑:这似乎不可能用声明式方法来做,但用命令式方法应该是可能的(参见 this comment):

macro String {
case {_ $x } => {
return #{"$x"}
}
}

但这仍然用引号扩展。

最佳答案

this issue thread 中所述,你可以用命令式的方法来做,但它有点笨拙,而且没有很好的文档记录。基本上,您可以这样做:

macro String {
case {_ $x} => {
var pattern = #{$x};
var tokenString = pattern[0].token.value.toString();
var stringValue = makeValue(tokenString, #{$here});
return withSyntax($val = [stringValue]) {
return #{$val};
}
}
}

顺便说一句,我不会称这个宏为“String”——它与现有的 String 冲突,后者是 JavaScript 的 native 部分。

关于javascript - Sweet.js - 将 token 扩展为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21025504/

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