Files
OpenRA/tools/ffitoapi.lua
2011-03-28 23:49:03 +02:00

51 lines
1.1 KiB
Lua

-- author: Christoph Kubisch
---------------------------------------------------------
local function ffiToApi(ffidef)
ffidef = StripCommentsC(ffidef)
local enums = {}
local funcs = {}
-- extract function names
local curfunc
local function closefunc()
-- parse args
-- skip return void types
table.insert(funcs,curfunc)
curfunc = nil
end
for l in ffidef:gmatch("[^\r\n]+") do
local typedef = l:match("typedef%s+")
local ret,name,args = string.match(typedef and "" or l,"([_%w]+)%s+%(?[%s%*]*([_%w]+)%s*%)?%s*(%(.*")
if (not (curfunc or typedef) and (ret and name and args)) then
curfunc = {ret=ret,name=name,args=args}
if (args:match(";")) then
registerfunc()
end
elseif (curfunc) then
curfunc.args = curfunc.args..l
if (curfunc.args:match(";")) then
registerfunc()
end
end
end
-- search for enums
-- serialize api string
end
return {
exec = {
name = "luajit ffi string to Estrela api",
description = "converts current file to api",
fn = function(wxfname,projectdir)
-- get cur editor text
-- replace text
end,
},
}