将Lua脚本转换成C++代码

我正在为 Lua 编写 C 函数。我有很多像 lua_gettablelua_touserdata 等的调用。

我的 C 函数可能接收到像包含表作为字段的表这样的复杂结构。

对我来说编写堆栈机器非常困难。

有没有办法编写会转化为 C 代码的 Lua 脚本。

或者其他一些可能帮助我编写这样的 C 函数的工具。

谢谢。

PS

这是一个例子:-

local data = {}
data.x = {}
data.x.y = 1
myCfunc(data)
int myCfunc(lua_State * L){
 lua_pushstring(L, "x");
 lua_gettable(L, 2);
 lua_pushstring(L, "y");
 lua_gettable(L, -2);
 double y = lua_tonumber(L, -1);
 lua_pop(L, 2);
}

而不是

function myCfunc(data)
 y = data.x.y
end

我的真正代码更复杂,我正在寻找一些自动代码生成的工具来帮助我。

原文链接 https://stackoverflow.com/questions/4727453

点赞
stackoverflow用户32203
stackoverflow用户32203

从 C# 的经验来看,我写了一些代码将 LUA 数据结构转换成 JSON 格式。然后,我可以通过任何 JSON 库以及所有它们的功能来加载数据。这是一种比较迂回的解决方案,但你只需要编写 JSON 编码代码一次。

2011-01-18 18:13:15
stackoverflow用户580360
stackoverflow用户580360

或许 toLua 可以帮助。

2011-01-18 18:14:47
stackoverflow用户107090
stackoverflow用户107090

尝试使用 LuaToCee

2011-01-18 21:34:51
stackoverflow用户2608507
stackoverflow用户2608507

SWIG 简化包装器和接口生成器

http://www.swig.org/

SWIG 主要用于 C 到 Lua 的转换,但是通过定义一些全局变量,你可以将它用于 Lua 到 C 的转换。

2013-07-22 22:05:00