如何使用GO自动生成JavaScript代码
我需要根据输入的规则集在GO中自动生成JS代码。例如,假设我有一个GO中的应用程序,它接收包含一组规则的Json:如何使用GO自动生成JavaScript代码,javascript,go,Javascript,Go,我需要根据输入的规则集在GO中自动生成JS代码。例如,假设我有一个GO中的应用程序,它接收包含一组规则的Json: { "enabled": true, "rulesLimit": 3, "Rules": [ { "name": "Not Dave or Ted", "enabled": true, "id&qu
{
"enabled": true,
"rulesLimit": 3,
"Rules": [
{
"name": "Not Dave or Ted",
"enabled": true,
"id": 1,
"trigger": {
"operator": "AND",
"conditions": [
{
"operator": "NOT EQUAL",
"value": "Dave"
},
{
"operator": "NOT EQUAL",
"value": "Ted"
}
]
}
},
{
"name": "Only from home",
"enabled": true,
"id": 2,
"trigger": {
"conditions": [
{
"operator": "EQUAL",
"urlValue": "Home"
}
]
}
}
]
}
应用程序需要使用包含请求规则的函数自动生成JS代码:
function applyRules(){
if (person[name] === "Dave" || person[name] === "Ted") {
return
}
if (person[address] !== "Home") {
return
}
}
applyRules();
我目前正在研究最好的方法是什么。起初我考虑使用带有占位符的模板,但当我开始实现它时,复杂性有点大。是否有其他方法、工具或方法可以满足我的需要?
谢谢当模板变得困难时,您可以切换到使用AST生成代码。也就是说,找到JavaScript AST的Go实现,然后编写使用AST构建目标代码的代码,然后将结果写入文件。如果你找不到一个,你就得自己写一个,它不一定要完整,只需要那些你需要生成的部分。如果你对围棋中的代码生成主题感兴趣,你可能会发现这很有帮助。