elua: remove prefix stripping from lualian
authorDaniel Kolesa <d.kolesa@samsung.com>
Tue, 27 May 2014 14:27:41 +0000 (15:27 +0100)
committerDaniel Kolesa <d.kolesa@samsung.com>
Tue, 10 Jun 2014 14:48:52 +0000 (15:48 +0100)
src/bin/elua/apps/lualian.lua
src/bin/elua/modules/lualian.lua

index 87f5451..8fa82f3 100644 (file)
@@ -18,7 +18,7 @@ local gen_file = function(opts, i, fname)
     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 {
@@ -39,9 +39,6 @@ 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 = {}
index 2dc90cb..49d3325 100644 (file)
@@ -20,12 +20,6 @@ end, function()
     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,
@@ -434,8 +428,7 @@ local Mixin = Node:clone {
         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)
 
@@ -483,13 +476,10 @@ local Class = Node:clone {
         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)
 
@@ -497,7 +487,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(name_stripped, v))
+                :format(self.klass:name_get(), v))
         end
     end,
 
@@ -506,12 +496,11 @@ M.%s = eo.class_register("%s", Parent:clone {
 }
 
 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,
 
@@ -644,7 +633,7 @@ M.include_dir = function(dir)
     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
@@ -659,7 +648,7 @@ M.generate = function(fname, modname, libname, cprefix, fstream)
     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