elua: register classes in lualian generated code
This commit is contained in:
parent
d301b5bb84
commit
942d684825
|
@ -433,12 +433,12 @@ local Mixin = Node:clone {
|
||||||
self:gen_ffi(s)
|
self:gen_ffi(s)
|
||||||
s:write("]]\n\n")
|
s:write("]]\n\n")
|
||||||
|
|
||||||
s:write(("M.%s = {\n"):format(strip_name(self, self.cname,
|
s:write(("M.%s = eo.class_register(\"%s\", {\n"):format(
|
||||||
self.parent_node.cprefix)))
|
strip_name(self, self.cname, self.parent_node.cprefix), self.cname))
|
||||||
|
|
||||||
self:gen_children(s)
|
self:gen_children(s)
|
||||||
|
|
||||||
s:write("}\n")
|
s:write("})\n")
|
||||||
end,
|
end,
|
||||||
|
|
||||||
gen_ffi = function(self, s)
|
gen_ffi = function(self, s)
|
||||||
|
@ -481,19 +481,21 @@ local Class = Node:clone {
|
||||||
self:gen_ffi(s)
|
self:gen_ffi(s)
|
||||||
s:write("]]\n\n")
|
s:write("]]\n\n")
|
||||||
|
|
||||||
|
local name_stripped = strip_name(self, self.cname,
|
||||||
|
self.parent_node.cprefix)
|
||||||
|
|
||||||
s:write(([[
|
s:write(([[
|
||||||
local Parent = eo.class_get("%s")
|
local Parent = eo.class_get("%s")
|
||||||
M.%s = Parent:clone {
|
M.%s = eo.class_register("%s", Parent:clone {
|
||||||
]]):format(self.parent, strip_name(self, self.cname,
|
]]):format(self.parent, name_stripped, self.cname))
|
||||||
self.parent_node.cprefix)))
|
|
||||||
|
|
||||||
self:gen_children(s)
|
self:gen_children(s)
|
||||||
|
|
||||||
s:write("}\n")
|
s:write("})")
|
||||||
|
|
||||||
for i, v in ipairs(self.mixins) do
|
for i, v in ipairs(self.mixins) do
|
||||||
s:write(("\nM.%s:mixin(eo.class_get(\"%s\"))\n")
|
s:write(("\nM.%s:mixin(eo.class_get(\"%s\"))\n")
|
||||||
:format(self.cname, v))
|
:format(name_stripped, v))
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue