forked from enlightenment/efl
elua: eolian binding fix plus support namespaces in the lualian generator
This commit is contained in:
parent
822c517f93
commit
b665bdbd8a
|
@ -427,8 +427,18 @@ local Mixin = Node:clone {
|
|||
self:gen_ffi(s)
|
||||
s:write("]]\n\n")
|
||||
|
||||
local nspaces = self.klass:namespaces_list_get()
|
||||
local ename
|
||||
if #nspaces > 0 then
|
||||
table.remove(nspaces, 1)
|
||||
nspaces[#nspaces + 1] = self.klass:name_get()
|
||||
ename = table.concat(nspaces, "_")
|
||||
else
|
||||
ename = self.klass:name_get()
|
||||
end
|
||||
|
||||
s:write(("M.%s = eo.class_register(\"%s\", {\n"):format(
|
||||
self.klass:name_get(), self.klass:name_get()))
|
||||
ename, self.klass:full_name_get()))
|
||||
|
||||
self:gen_children(s)
|
||||
|
||||
|
@ -476,10 +486,20 @@ local Class = Node:clone {
|
|||
self:gen_ffi(s)
|
||||
s:write("]]\n\n")
|
||||
|
||||
local nspaces = self.klass:namespaces_list_get()
|
||||
local ename
|
||||
if #nspaces > 0 then
|
||||
table.remove(nspaces, 1)
|
||||
nspaces[#nspaces + 1] = self.klass:name_get()
|
||||
ename = table.concat(nspaces, "_")
|
||||
else
|
||||
ename = self.klass:name_get()
|
||||
end
|
||||
|
||||
s:write(([[
|
||||
local Parent = eo.class_get("%s")
|
||||
M.%s = eo.class_register("%s", Parent:clone {
|
||||
]]):format(self.parent, self.klass:name_get(), self.klass:name_get()))
|
||||
]]):format(self.parent, ename, self.klass:full_name_get()))
|
||||
|
||||
self:gen_children(s)
|
||||
|
||||
|
@ -487,7 +507,7 @@ M.%s = eo.class_register("%s", Parent:clone {
|
|||
|
||||
for i, v in ipairs(self.mixins) do
|
||||
s:write(("\nM.%s:mixin(eo.class_get(\"%s\"))\n")
|
||||
:format(self.klass:name_get(), v))
|
||||
:format(ename, v))
|
||||
end
|
||||
end,
|
||||
|
||||
|
@ -538,7 +558,7 @@ end
|
|||
|
||||
cutil.init_module(init, shutdown)
|
||||
|
||||
]]):format(self.fname, self.klass:name_get(), modn, self.libname,
|
||||
]]):format(self.fname, self.klass:full_name_get(), modn, self.libname,
|
||||
self.libname))
|
||||
|
||||
self:gen_children(s)
|
||||
|
|
|
@ -57,7 +57,7 @@ ffi.cdef [[
|
|||
const char *eolian_class_file_get(const Eolian_Class *klass);
|
||||
const char *eolian_class_full_name_get(const Eolian_Class *klass);
|
||||
const char *eolian_class_name_get(const Eolian_Class *klass);
|
||||
const Eina_List *eolian_class_namespaces_list_get(const Eolian_Class klass);
|
||||
const Eina_List *eolian_class_namespaces_list_get(const Eolian_Class *klass);
|
||||
Eolian_Class_Type eolian_class_type_get(const Eolian_Class *klass);
|
||||
const Eina_List *eolian_class_names_list_get(void);
|
||||
const char *eolian_class_description_get(const Eolian_Class *klass);
|
||||
|
|
Loading…
Reference in New Issue