【发布时间】:2013-04-11 16:21:26
【问题描述】:
在lua中,有没有办法读取接口文件来提取名称/方法/参数?
我有一个这样的 .idl 文件:
interface
{
name = myInterface,
methods = {
testing = {
resulttype = "double",
args = {{direction = "in",
type = "double"},
}
}
}
这等于下面的代码(更容易阅读):
interface myInterface {
double testing (in double a);
};
我可以读取文件、加载为字符串并使用 gmatch 进行解析以提取信息,但是有什么简单的模式可以解析这些信息吗?
最后我想要一些带有接口名称、方法、结果类型和参数的东西(例如表格)。只是为了知道我正在工作的界面。
【问题讨论】:
-
An example of IDL-file from microsoft site 看起来很不一样。
-
那双
{{应该是单{吗?在这种情况下,您可以在interface和开头的{之间插入一个=,然后将文件加载为lua 代码并简单地运行它。这会给你一个表格(称为interface),里面有你需要的所有数据,不是吗? -
叶戈尔,看起来不一样。但我认为 lua 可以理解这段代码(我认为 xD 哈哈哈)。如果没有,我可以像你在链接上说的那样创建一个接口文件。但我必须知道如何解析接口
-
buettner,这个双精度不是单个参数(这是你的问题吗?我不知道我是否理解)。实际上接口可以有多个参数。而且我不知道如何加载此信息并提取此信息
-
@BrenoRiba 我说的是你的牙套不匹配。你有 5 个开场
{,只有 4 个闭场}。我猜你错过了一个右括号。当然有更优雅的方法可以做到这一点,但如果你写了interface = { ... }并修复了大括号不匹配,这将是完全有效的 Lua 代码,所以你可以做interface.name或interface.methods.testing.args[0].type或任何你想要的。