Reputation: 6394
I am writing C functions for Lua. I have many calls like lua_gettable, lua_touserdata, etc
My C function may receive complex structures like table with tables as fields.
It is hard for me to program stacked machine.
Is there way to write Lua script that would be converted to C code.
Or some other tools that may help me to code such C functions for lua scripts.
Thanks.
PS
Here is example:-
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);
}
instead of
function myCfunc(data)
y = data.x.y
end
My real code is much more complex and I am looking for some automated code generation that will help me.
Upvotes: 4
Views: 17511
Reputation: 1
SWIG Simplified Wrapper and Interface Generator http://www.swig.org/ It is generally for the C to Lua but by defining some global variables you can use it as a Lua to C
Upvotes: -1
Reputation: 24480
From C#, something I've done is written code to convert LUA datastructures in JSON format. Then I can load the data via any JSON library, with all their bells and whistles. Its kind of a round-about solution but you only have to write the JSON Encoding code once.
Upvotes: 3