q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=ed8062cb195103ed4b4d0a9c60e2872f97a6706c

commit ed8062cb195103ed4b4d0a9c60e2872f97a6706c
Author: Daniel Kolesa <d.kol...@samsung.com>
Date:   Thu Oct 2 15:20:01 2014 +0100

    elua: translate param names that are lua keywords into acceptable variants
---
 src/bin/elua/modules/lualian.lua | 29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 deletions(-)

diff --git a/src/bin/elua/modules/lualian.lua b/src/bin/elua/modules/lualian.lua
index 62058a4..3acf76f 100644
--- a/src/bin/elua/modules/lualian.lua
+++ b/src/bin/elua/modules/lualian.lua
@@ -20,6 +20,19 @@ end, function()
     dom = nil
 end)
 
+local lua_kw = {
+    ["and"] = true, ["end"] = true, ["in"] = true, ["local"] = true,
+    ["nil"] = true, ["not"] = true, ["or"] = true, ["repeat"] = true,
+    ["then"] = true, ["until"] = true
+}
+
+local kw_t = function(n)
+    if lua_kw[n] then
+        return n .. "_"
+    end
+    return n
+end
+
 local int_builtin = {
     ["byte" ] = true, ["short"] = true, ["int"] = true, ["long"] = true,
     ["llong"] = true,
@@ -172,7 +185,7 @@ local Method = Node:clone {
         end
 
         for v in pars do
-            local dir, tps, nm = v:direction_get(), v:type_get(), v:name_get()
+            local dir, tps, nm = v:direction_get(), v:type_get(), 
kw_t(v:name_get())
             local tp = tps:c_type_get()
             if dir == dirs.OUT or dir == dirs.INOUT then
                 if dir == dirs.INOUT then
@@ -260,7 +273,7 @@ local Property = Method:clone {
         if #keys > 0 then
             local argn = (#keys > 1) and "keys" or "key"
             for i, v in ipairs(keys) do
-                local nm  = v:name_get()
+                local nm  = kw_t(v:name_get())
                 local tps = v:type_get()
                 local tp  = tps:c_type_get()
                 cargs [#cargs  + 1] = tp .. " " .. nm
@@ -280,7 +293,7 @@ local Property = Method:clone {
                 else
                     for i, v in ipairs(vals) do
                         local dir, tps, nm = v:direction_get(), v:type_get(),
-                            v:name_get()
+                            kw_t(v:name_get())
                         local tp = tps:c_type_get()
                         cargs [#cargs  + 1] = tp .. " *" .. nm
                         vargs [#vargs  + 1] = nm
@@ -293,7 +306,7 @@ local Property = Method:clone {
                 args[#args + 1] = argn
                 for i, v in ipairs(vals) do
                     local dir, tps, nm = v:direction_get(), v:type_get(),
-                        v:name_get()
+                        kw_t(v:name_get())
                     local tp = tps:c_type_get()
                     cargs[#cargs + 1] = tp .. " " .. nm
                     vargs[#vargs + 1] = typeconv(tps, argn .. "[" .. i .. "]",
@@ -435,12 +448,12 @@ end
                 cfuncs[#cfuncs + 1] = cfunc
                 if tp ~= ftp.METHOD then
                     for par in cfunc:property_keys_get() do
-                        parnames[#parnames + 1] = par:name_get()
+                        parnames[#parnames + 1] = kw_t(par:name_get())
                     end
                 end
                 for par in cfunc:parameters_get() do
                     if par:direction_get() ~= dir.OUT then
-                        parnames[#parnames + 1] = par:name_get()
+                        parnames[#parnames + 1] = kw_t(par:name_get())
                     end
                 end
             end
@@ -457,12 +470,12 @@ end
             local fpars = {}
             if cfunc:type_get() ~= ftp.METHOD then
                 for par in cfunc:property_keys_get() do
-                    fpars[#fpars + 1] = par:name_get()
+                    fpars[#fpars + 1] = kw_t(par:name_get())
                 end
             end
             for par in cfunc:parameters_get() do
                 if par:direction_get() ~= dir.OUT then
-                    fpars[#fpars + 1] = par:name_get()
+                    fpars[#fpars + 1] = kw_t(par:name_get())
                 end
             end
             s:write(table.concat(fpars, ", "))

-- 


Reply via email to