summaryrefslogtreecommitdiffstats
path: root/lib/tolua++/src/bin/lua/enumerate.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tolua++/src/bin/lua/enumerate.lua')
m---------lib/tolua++0
-rw-r--r--lib/tolua++/src/bin/lua/enumerate.lua142
2 files changed, 0 insertions, 142 deletions
diff --git a/lib/tolua++ b/lib/tolua++
new file mode 160000
+Subproject 9181fc9ef73fa1c052f968d68dc60538f144a47
diff --git a/lib/tolua++/src/bin/lua/enumerate.lua b/lib/tolua++/src/bin/lua/enumerate.lua
deleted file mode 100644
index 09b22a094..000000000
--- a/lib/tolua++/src/bin/lua/enumerate.lua
+++ /dev/null
@@ -1,142 +0,0 @@
--- tolua: enumerate class
--- Written by Waldemar Celes
--- TeCGraf/PUC-Rio
--- Jul 1998
--- $Id: enumerate.lua,v 1.3 2000/01/24 20:41:15 celes Exp $
-
--- This code is free software; you can redistribute it and/or modify it.
--- The software provided hereunder is on an "as is" basis, and
--- the author has no obligation to provide maintenance, support, updates,
--- enhancements, or modifications.
-
-
--- Enumerate class
--- Represents enumeration
--- The following fields are stored:
--- {i} = list of constant names
-classEnumerate = {
-}
-classEnumerate.__index = classEnumerate
-setmetatable(classEnumerate,classFeature)
-
--- register enumeration
-function classEnumerate:register (pre)
- if not self:check_public_access() then
- return
- end
- pre = pre or ''
- local nspace = getnamespace(classContainer.curr)
- local i=1
- while self[i] do
- if self.lnames[i] and self.lnames[i] ~= "" then
-
- output(pre..'tolua_constant(tolua_S,"'..self.lnames[i]..'",'..nspace..self[i]..');')
- end
- i = i+1
- end
-end
-
--- Print method
-function classEnumerate:print (ident,close)
- print(ident.."Enumerate{")
- print(ident.." name = "..self.name)
- local i=1
- while self[i] do
- print(ident.." '"..self[i].."'("..self.lnames[i].."),")
- i = i+1
- end
- print(ident.."}"..close)
-end
-
-function emitenumprototype(type)
- output("int tolua_is" .. string.gsub(type,"::","_") .. " (lua_State* L, int lo, int def, tolua_Error* err);")
-end
-
-_global_output_enums = {}
-
--- write support code
-function classEnumerate:supcode ()
- if _global_output_enums[self.name] == nil then
- _global_output_enums[self.name] = 1
- output("int tolua_is" .. string.gsub(self.name,"::","_") .. " (lua_State* L, int lo, int def, tolua_Error* err)")
- output("{")
- output("if (!tolua_isnumber(L,lo,def,err)) return 0;")
- output("lua_Number val = tolua_tonumber(L,lo,def);")
- output("return val >= " .. self.min .. ".0 && val <= " ..self.max .. ".0;")
- output("}")
- end
-end
-
--- Internal constructor
-function _Enumerate (t,varname)
- setmetatable(t,classEnumerate)
- append(t)
- appendenum(t)
- if varname and varname ~= "" then
- if t.name ~= "" then
- Variable(t.name.." "..varname)
- else
- local ns = getcurrnamespace()
- warning("Variable "..ns..varname.." of type <anonymous enum> is declared as read-only")
- Variable("tolua_readonly int "..varname)
- end
- end
- local parent = classContainer.curr
- if parent then
- t.access = parent.curr_member_access
- t.global_access = t:check_public_access()
- end
- return t
-end
-
--- Constructor
--- Expects a string representing the enumerate body
-function Enumerate (n,b,varname)
- b = string.gsub(b, ",[%s\n]*}", "\n}") -- eliminate last ','
- local t = split(strsub(b,2,-2),',') -- eliminate braces
- local i = 1
- local e = {n=0}
- local value = 0
- local min = 0
- local max = 0
- while t[i] do
- local tt = split(t[i],'=') -- discard initial value
- e.n = e.n + 1
- e[e.n] = tt[1]
- tt[2] = tonumber(tt[2])
- if tt[2] == nil then
- tt[2] = value
- end
- value = tt[2] + 1 -- advance the selected value
- if tt[2] > max then
- max = tt[2]
- end
- if tt[2] < min then
- min = tt[2]
- end
- i = i+1
- end
- -- set lua names
- i = 1
- e.lnames = {}
- local ns = getcurrnamespace()
- while e[i] do
- local t = split(e[i],'@')
- e[i] = t[1]
- if not t[2] then
- t[2] = applyrenaming(t[1])
- end
- e.lnames[i] = t[2] or t[1]
- _global_enums[ ns..e[i] ] = (ns..e[i])
- i = i+1
- end
- e.name = n
- e.min = min
- e.max = max
- if n ~= "" then
- _enums[n] = true
- Typedef("int "..n)
- end
- return _Enumerate(e, varname)
-end
-