else
printv(" Output file: printing to stdout...")
end
- lualian.generate(fname, opts["M"], opts["L"], opts["P"] or "", fstream)
+ lualian.generate(fname, opts["M"], opts["L"], fstream)
end
getopt.parse {
},
{ "L", "library", true, help = "Specify a C library name." },
{ "M", "module", true, help = "Specify a module name." },
- { "P", "prefix", true, help = "Specify a class name prefix "
- .. "to strip out for public interfaces."
- },
{ "o", "output", true, help = "Specify output file name(s), by "
.. "default goes to stdout.",
list = {}
dom = nil
end)
-local strip_name = function(self, cn, cp)
- if not cp or #cp == 0 then return cn end
- local nm = cn:match("^" .. cp .. "_(.*)$")
- return nm or cp
-end
-
-- char not included - manual disambiguation needed
local isnum = {
["short" ] = true, ["int" ] = true, ["long" ] = true,
s:write("]]\n\n")
s:write(("M.%s = eo.class_register(\"%s\", {\n"):format(
- strip_name(self, self.klass:name_get(),
- self.parent_node.cprefix), self.klass:name_get()))
+ self.klass:name_get(), self.klass:name_get()))
self:gen_children(s)
self:gen_ffi(s)
s:write("]]\n\n")
- local name_stripped = strip_name(self, self.klass:name_get(),
- self.parent_node.cprefix)
-
s:write(([[
local Parent = eo.class_get("%s")
M.%s = eo.class_register("%s", Parent:clone {
-]]):format(self.parent, name_stripped, self.klass:name_get()))
+]]):format(self.parent, self.klass:name_get(), self.klass:name_get()))
self:gen_children(s)
for i, v in ipairs(self.mixins) do
s:write(("\nM.%s:mixin(eo.class_get(\"%s\"))\n")
- :format(name_stripped, v))
+ :format(self.klass:name_get(), v))
end
end,
}
local File = Node:clone {
- __ctor = function(self, fname, klass, modname, libname, cprefix, ch)
+ __ctor = function(self, fname, klass, modname, libname, ch)
self.fname = fname:match(".+/(.+)") or fname
self.klass = klass
self.modname = (modname and #modname > 0) and modname or nil
self.libname = libname
- self.cprefix = cprefix
self.children = ch
end,
end
end
-M.generate = function(fname, modname, libname, cprefix, fstream)
+M.generate = function(fname, modname, libname, fstream)
if not eolian.eo_file_parse(fname) then
error("Failed parsing file: " .. fname)
end
else
error(klass:full_name_get() .. ": unknown type")
end
- File(fname, klass, modname, libname, cprefix, { cl })
+ File(fname, klass, modname, libname, { cl })
:generate(fstream or io.stdout)
end