Parsing 如何处理lua中未知的初始值设定项函数?
我想加载用lua(eyeonScript)的变体编写的数据。但是,数据中充满了对非普通lua中的初始化函数的引用:Parsing 如何处理lua中未知的初始值设定项函数?,parsing,lua,Parsing,Lua,我想加载用lua(eyeonScript)的变体编写的数据。但是,数据中充满了对非普通lua中的初始化函数的引用: Redden = BrightnessContrast { Inputs = { Red = Input { Value = 0, }, }, } 标准lua给出“尝试调用零值”或“意外符号”错误。有没有办法捕捉这些信息并将其传递给某种通用初始值设定项 我希望最终得到一个嵌套的表数据结构 谢谢 为全局表设置一
Redden = BrightnessContrast {
Inputs = {
Red = Input {
Value = 0,
},
},
}
标准lua给出“尝试调用零值”或“意外符号”错误。有没有办法捕捉这些信息并将其传递给某种通用初始值设定项
我希望最终得到一个嵌套的表数据结构
谢谢 为全局表设置一个
\u索引
元方法。例如,使未定义的函数的行为类似于标识:
setmetatable(_G,{__index=function (n)
return function (x) return x end
end})
这里还有另一个技巧:将_调用设置为nil,但您需要在C中或使用调试库来完成。此技巧的优点是它只处理对未定义函数的调用:
debug.setmetatable(nil,{__call=function (x,v) return v end})
谢谢这正是我所需要的。一个小的副作用是,任何输入错误现在都会变成函数,但因为我运行Lua只是为了解析这个结构,所以我不太担心这个问题。很好的技巧lhf@oofoe:无论如何,您可以创建一个自定义环境来执行配置文件(使用setfenv),这样它就不会破坏或污染您的正常名称空间。然后,您可以仅在该环境中定义元方法。