tartrazine/_testdata/Generated/Haxe/main.lua

816 lines
20 KiB
Lua
Raw Normal View History

-- Generated by Haxe 4.0.5
local _hx_array_mt = {
__newindex = function(t,k,v)
local len = t.length
t.length = k >= len and (k + 1) or len
rawset(t,k,v)
end
}
local function _hx_tab_array(tab,length)
tab.length = length
return setmetatable(tab, _hx_array_mt)
end
local function _hx_anon_newindex(t,k,v) t.__fields__[k] = true; rawset(t,k,v); end
local _hx_anon_mt = {__newindex=_hx_anon_newindex}
local function _hx_a(...)
local __fields__ = {};
local ret = {__fields__ = __fields__};
local max = select('#',...);
local tab = {...};
local cur = 1;
while cur < max do
local v = tab[cur];
__fields__[v] = true;
ret[v] = tab[cur+1];
cur = cur + 2
end
return setmetatable(ret, _hx_anon_mt)
end
local function _hx_e()
return setmetatable({__fields__ = {}}, _hx_anon_mt)
end
local function _hx_o(obj)
return setmetatable(obj, _hx_anon_mt)
end
local function _hx_new(prototype)
return setmetatable({__fields__ = {}}, {__newindex=_hx_anon_newindex, __index=prototype})
end
local _hxClasses = {}
local Int = _hx_e();
local Dynamic = _hx_e();
local Float = _hx_e();
local Bool = _hx_e();
local Class = _hx_e();
local Enum = _hx_e();
local Array = _hx_e()
__lua_lib_luautf8_Utf8 = _G.require("lua-utf8")
local Main = _hx_e()
local Math = _hx_e()
local String = _hx_e()
local Std = _hx_e()
__haxe_Log = _hx_e()
__lua_Boot = _hx_e()
local _hx_bind, _hx_bit, _hx_staticToInstance, _hx_funcToField, _hx_maxn, _hx_print, _hx_apply_self, _hx_box_mr, _hx_bit_clamp, _hx_table, _hx_bit_raw
local _hx_pcall_default = {};
local _hx_pcall_break = {};
Array.new = function()
local self = _hx_new(Array.prototype)
Array.super(self)
return self
end
Array.super = function(self)
_hx_tab_array(self, 0);
end
Array.prototype = _hx_a();
Array.prototype.concat = function(self,a)
local _g = _hx_tab_array({}, 0);
local _g1 = 0;
local _g2 = self;
while (_g1 < _g2.length) do
local i = _g2[_g1];
_g1 = _g1 + 1;
_g:push(i);
end;
local ret = _g;
local _g3 = 0;
while (_g3 < a.length) do
local i1 = a[_g3];
_g3 = _g3 + 1;
ret:push(i1);
end;
do return ret end
end
Array.prototype.join = function(self,sep)
local tbl = ({});
local _gthis = self;
local cur_length = 0;
local i = _hx_o({__fields__={hasNext=true,next=true},hasNext=function(self)
do return cur_length < _gthis.length end;
end,next=function(self)
cur_length = cur_length + 1;
do return _gthis[cur_length - 1] end;
end});
while (i:hasNext()) do
local i1 = i:next();
_G.table.insert(tbl, Std.string(i1));
end;
do return _G.table.concat(tbl, sep) end
end
Array.prototype.pop = function(self)
if (self.length == 0) then
do return nil end;
end;
local ret = self[self.length - 1];
self[self.length - 1] = nil;
self.length = self.length - 1;
do return ret end
end
Array.prototype.push = function(self,x)
self[self.length] = x;
do return self.length end
end
Array.prototype.reverse = function(self)
local tmp;
local i = 0;
while (i < Std.int(self.length / 2)) do
tmp = self[i];
self[i] = self[(self.length - i) - 1];
self[(self.length - i) - 1] = tmp;
i = i + 1;
end;
end
Array.prototype.shift = function(self)
if (self.length == 0) then
do return nil end;
end;
local ret = self[0];
if (self.length == 1) then
self[0] = nil;
else
if (self.length > 1) then
self[0] = self[1];
_G.table.remove(self, 1);
end;
end;
local tmp = self;
tmp.length = tmp.length - 1;
do return ret end
end
Array.prototype.slice = function(self,pos,_end)
if ((_end == nil) or (_end > self.length)) then
_end = self.length;
else
if (_end < 0) then
_end = _G.math.fmod((self.length - (_G.math.fmod(-_end, self.length))), self.length);
end;
end;
if (pos < 0) then
pos = _G.math.fmod((self.length - (_G.math.fmod(-pos, self.length))), self.length);
end;
if ((pos > _end) or (pos > self.length)) then
do return _hx_tab_array({}, 0) end;
end;
local ret = _hx_tab_array({}, 0);
local _g = pos;
local _g1 = _end;
while (_g < _g1) do
_g = _g + 1;
local i = _g - 1;
ret:push(self[i]);
end;
do return ret end
end
Array.prototype.sort = function(self,f)
local i = 0;
local l = self.length;
while (i < l) do
local swap = false;
local j = 0;
local max = (l - i) - 1;
while (j < max) do
if (f(self[j], self[j + 1]) > 0) then
local tmp = self[j + 1];
self[j + 1] = self[j];
self[j] = tmp;
swap = true;
end;
j = j + 1;
end;
if (not swap) then
break;
end;
i = i + 1;
end;
end
Array.prototype.splice = function(self,pos,len)
if ((len < 0) or (pos > self.length)) then
do return _hx_tab_array({}, 0) end;
else
if (pos < 0) then
pos = self.length - (_G.math.fmod(-pos, self.length));
end;
end;
len = Math.min(len, self.length - pos);
local ret = _hx_tab_array({}, 0);
local _g = pos;
local _g1 = pos + len;
while (_g < _g1) do
_g = _g + 1;
local i = _g - 1;
ret:push(self[i]);
self[i] = self[i + len];
end;
local _g2 = pos + len;
local _g3 = self.length;
while (_g2 < _g3) do
_g2 = _g2 + 1;
local i1 = _g2 - 1;
self[i1] = self[i1 + len];
end;
local tmp = self;
tmp.length = tmp.length - len;
do return ret end
end
Array.prototype.toString = function(self)
local tbl = ({});
_G.table.insert(tbl, "[");
_G.table.insert(tbl, self:join(","));
_G.table.insert(tbl, "]");
do return _G.table.concat(tbl, "") end
end
Array.prototype.unshift = function(self,x)
local len = self.length;
local _g = 0;
local _g1 = len;
while (_g < _g1) do
_g = _g + 1;
local i = _g - 1;
self[len - i] = self[(len - i) - 1];
end;
self[0] = x;
end
Array.prototype.insert = function(self,pos,x)
if (pos > self.length) then
pos = self.length;
end;
if (pos < 0) then
pos = self.length + pos;
if (pos < 0) then
pos = 0;
end;
end;
local cur_len = self.length;
while (cur_len > pos) do
self[cur_len] = self[cur_len - 1];
cur_len = cur_len - 1;
end;
self[pos] = x;
end
Array.prototype.remove = function(self,x)
local _g = 0;
local _g1 = self.length;
while (_g < _g1) do
_g = _g + 1;
local i = _g - 1;
if (self[i] == x) then
local _g2 = i;
local _g11 = self.length - 1;
while (_g2 < _g11) do
_g2 = _g2 + 1;
local j = _g2 - 1;
self[j] = self[j + 1];
end;
self[self.length - 1] = nil;
self.length = self.length - 1;
do return true end;
end;
end;
do return false end
end
Array.prototype.indexOf = function(self,x,fromIndex)
local _end = self.length;
if (fromIndex == nil) then
fromIndex = 0;
else
if (fromIndex < 0) then
fromIndex = self.length + fromIndex;
if (fromIndex < 0) then
fromIndex = 0;
end;
end;
end;
local _g = fromIndex;
local _g1 = _end;
while (_g < _g1) do
_g = _g + 1;
local i = _g - 1;
if (x == self[i]) then
do return i end;
end;
end;
do return -1 end
end
Array.prototype.lastIndexOf = function(self,x,fromIndex)
if ((fromIndex == nil) or (fromIndex >= self.length)) then
fromIndex = self.length - 1;
else
if (fromIndex < 0) then
fromIndex = self.length + fromIndex;
if (fromIndex < 0) then
do return -1 end;
end;
end;
end;
local i = fromIndex;
while (i >= 0) do
if (self[i] == x) then
do return i end;
else
i = i - 1;
end;
end;
do return -1 end
end
Array.prototype.copy = function(self)
local _g = _hx_tab_array({}, 0);
local _g1 = 0;
local _g2 = self;
while (_g1 < _g2.length) do
local i = _g2[_g1];
_g1 = _g1 + 1;
_g:push(i);
end;
do return _g end
end
Array.prototype.map = function(self,f)
local _g = _hx_tab_array({}, 0);
local _g1 = 0;
local _g2 = self;
while (_g1 < _g2.length) do
local i = _g2[_g1];
_g1 = _g1 + 1;
_g:push(f(i));
end;
do return _g end
end
Array.prototype.filter = function(self,f)
local _g = _hx_tab_array({}, 0);
local _g1 = 0;
local _g2 = self;
while (_g1 < _g2.length) do
local i = _g2[_g1];
_g1 = _g1 + 1;
if (f(i)) then
_g:push(i);
end;
end;
do return _g end
end
Array.prototype.iterator = function(self)
local _gthis = self;
local cur_length = 0;
do return _hx_o({__fields__={hasNext=true,next=true},hasNext=function(self)
do return cur_length < _gthis.length end;
end,next=function(self)
cur_length = cur_length + 1;
do return _gthis[cur_length - 1] end;
end}) end
end
Array.prototype.resize = function(self,len)
if (self.length < len) then
self.length = len;
else
if (self.length > len) then
local _g = len;
local _g1 = self.length;
while (_g < _g1) do
_g = _g + 1;
local i = _g - 1;
self[i] = nil;
end;
self.length = len;
end;
end;
end
Main.new = {}
Main.main = function()
__haxe_Log.trace("Hello World", _hx_o({__fields__={fileName=true,lineNumber=true,className=true,methodName=true},fileName="source/Main.hx",lineNumber=3,className="Main",methodName="main"}));
end
Math.new = {}
Math.isNaN = function(f)
do return f ~= f end;
end
Math.isFinite = function(f)
if (f > -_G.math.huge) then
do return f < _G.math.huge end;
else
do return false end;
end;
end
Math.min = function(a,b)
if (Math.isNaN(a) or Math.isNaN(b)) then
do return (0/0) end;
else
do return _G.math.min(a, b) end;
end;
end
String.new = function(string)
local self = _hx_new(String.prototype)
String.super(self,string)
self = string
return self
end
String.super = function(self,string)
end
String.__index = function(s,k)
if (k == "length") then
do return __lua_lib_luautf8_Utf8.len(s) end;
else
local o = String.prototype;
local field = k;
if ((function()
local _hx_1
if ((_G.type(o) == "string") and ((String.prototype[field] ~= nil) or (field == "length"))) then
_hx_1 = true; elseif (o.__fields__ ~= nil) then
_hx_1 = o.__fields__[field] ~= nil; else
_hx_1 = o[field] ~= nil; end
return _hx_1
end )()) then
do return String.prototype[k] end;
else
if (String.__oldindex ~= nil) then
if (_G.type(String.__oldindex) == "function") then
do return String.__oldindex(s, k) end;
else
if (_G.type(String.__oldindex) == "table") then
do return String.__oldindex[k] end;
end;
end;
do return nil end;
else
do return nil end;
end;
end;
end;
end
String.fromCharCode = function(code)
do return __lua_lib_luautf8_Utf8.char(code) end;
end
String.prototype = _hx_a();
String.prototype.toUpperCase = function(self)
do return __lua_lib_luautf8_Utf8.upper(self) end
end
String.prototype.toLowerCase = function(self)
do return __lua_lib_luautf8_Utf8.lower(self) end
end
String.prototype.indexOf = function(self,str,startIndex)
if (startIndex == nil) then
startIndex = 1;
else
startIndex = startIndex + 1;
end;
local r = __lua_lib_luautf8_Utf8.find(self, str, startIndex, true);
if ((r ~= nil) and (r > 0)) then
do return r - 1 end;
else
do return -1 end;
end;
end
String.prototype.lastIndexOf = function(self,str,startIndex)
local i = 0;
local ret = -1;
if (startIndex == nil) then
startIndex = __lua_lib_luautf8_Utf8.len(self);
end;
while (true) do
local startIndex1 = ret + 1;
if (startIndex1 == nil) then
startIndex1 = 1;
else
startIndex1 = startIndex1 + 1;
end;
local r = __lua_lib_luautf8_Utf8.find(self, str, startIndex1, true);
local p = (function()
local _hx_1
if ((r ~= nil) and (r > 0)) then
_hx_1 = r - 1; else
_hx_1 = -1; end
return _hx_1
end )();
if ((p == -1) or (p > startIndex)) then
break;
end;
ret = p;
end;
do return ret end
end
String.prototype.split = function(self,delimiter)
local idx = 1;
local ret = _hx_tab_array({}, 0);
local delim_offset = (function()
local _hx_1
if (__lua_lib_luautf8_Utf8.len(delimiter) > 0) then
_hx_1 = __lua_lib_luautf8_Utf8.len(delimiter); else
_hx_1 = 1; end
return _hx_1
end )();
while (idx ~= nil) do
local newidx = 0;
if (__lua_lib_luautf8_Utf8.len(delimiter) > 0) then
newidx = __lua_lib_luautf8_Utf8.find(self, delimiter, idx, true);
else
if (idx >= __lua_lib_luautf8_Utf8.len(self)) then
newidx = nil;
else
newidx = idx + 1;
end;
end;
if (newidx ~= nil) then
local match = __lua_lib_luautf8_Utf8.sub(self, idx, newidx - 1);
ret:push(match);
idx = newidx + __lua_lib_luautf8_Utf8.len(delimiter);
else
ret:push(__lua_lib_luautf8_Utf8.sub(self, idx, __lua_lib_luautf8_Utf8.len(self)));
idx = nil;
end;
end;
do return ret end
end
String.prototype.toString = function(self)
do return self end
end
String.prototype.substring = function(self,startIndex,endIndex)
if (endIndex == nil) then
endIndex = __lua_lib_luautf8_Utf8.len(self);
end;
if (endIndex < 0) then
endIndex = 0;
end;
if (startIndex < 0) then
startIndex = 0;
end;
if (endIndex < startIndex) then
do return __lua_lib_luautf8_Utf8.sub(self, endIndex + 1, startIndex) end;
else
do return __lua_lib_luautf8_Utf8.sub(self, startIndex + 1, endIndex) end;
end;
end
String.prototype.charAt = function(self,index)
do return __lua_lib_luautf8_Utf8.sub(self, index + 1, index + 1) end
end
String.prototype.charCodeAt = function(self,index)
do return __lua_lib_luautf8_Utf8.byte(self, index + 1) end
end
String.prototype.substr = function(self,pos,len)
if ((len == nil) or (len > (pos + __lua_lib_luautf8_Utf8.len(self)))) then
len = __lua_lib_luautf8_Utf8.len(self);
else
if (len < 0) then
len = __lua_lib_luautf8_Utf8.len(self) + len;
end;
end;
if (pos < 0) then
pos = __lua_lib_luautf8_Utf8.len(self) + pos;
end;
if (pos < 0) then
pos = 0;
end;
do return __lua_lib_luautf8_Utf8.sub(self, pos + 1, pos + len) end
end
Std.new = {}
Std.string = function(s)
do return __lua_Boot.__string_rec(s) end;
end
Std.int = function(x)
if (not Math.isFinite(x) or Math.isNaN(x)) then
do return 0 end;
else
do return _hx_bit_clamp(x) end;
end;
end
__haxe_Log.new = {}
__haxe_Log.formatOutput = function(v,infos)
local str = Std.string(v);
if (infos == nil) then
do return str end;
end;
local pstr = Std.string(Std.string(infos.fileName) .. Std.string(":")) .. Std.string(infos.lineNumber);
if (infos.customParams ~= nil) then
local _g = 0;
local _g1 = infos.customParams;
while (_g < _g1.length) do
local v1 = _g1[_g];
_g = _g + 1;
str = Std.string(str) .. Std.string((Std.string(", ") .. Std.string(Std.string(v1))));
end;
end;
do return Std.string(Std.string(pstr) .. Std.string(": ")) .. Std.string(str) end;
end
__haxe_Log.trace = function(v,infos)
local str = __haxe_Log.formatOutput(v, infos);
_hx_print(str);
end
__lua_Boot.new = {}
__lua_Boot.isArray = function(o)
if (_G.type(o) == "table") then
if ((o.__enum__ == nil) and (_G.getmetatable(o) ~= nil)) then
do return _G.getmetatable(o).__index == Array.prototype end;
else
do return false end;
end;
else
do return false end;
end;
end
__lua_Boot.printEnum = function(o,s)
if (o.length == 2) then
do return o[0] end;
else
local str = Std.string(Std.string(o[0])) .. Std.string("(");
s = Std.string(s) .. Std.string("\t");
local _g = 2;
local _g1 = o.length;
while (_g < _g1) do
_g = _g + 1;
local i = _g - 1;
if (i ~= 2) then
str = Std.string(str) .. Std.string((Std.string(",") .. Std.string(__lua_Boot.__string_rec(o[i], s))));
else
str = Std.string(str) .. Std.string(__lua_Boot.__string_rec(o[i], s));
end;
end;
do return Std.string(str) .. Std.string(")") end;
end;
end
__lua_Boot.printClassRec = function(c,result,s)
if (result == nil) then
result = "";
end;
local f = __lua_Boot.__string_rec;
for k,v in pairs(c) do if result ~= '' then result = result .. ', ' end result = result .. k .. ':' .. f(v, s.. ' ') end;
do return result end;
end
__lua_Boot.__string_rec = function(o,s)
if (s == nil) then
s = "";
end;
if (__lua_lib_luautf8_Utf8.len(s) >= 5) then
do return "<...>" end;
end;
local _g = type(o);
if (_g) == "boolean" then
do return tostring(o) end;
elseif (_g) == "function" then
do return "<function>" end;
elseif (_g) == "nil" then
do return "null" end;
elseif (_g) == "number" then
if (o == _G.math.huge) then
do return "Infinity" end;
else
if (o == -_G.math.huge) then
do return "-Infinity" end;
else
if (o == 0) then
do return "0" end;
else
if (o ~= o) then
do return "NaN" end;
else
do return tostring(o) end;
end;
end;
end;
end;
elseif (_g) == "string" then
do return o end;
elseif (_g) == "table" then
if (o.__enum__ ~= nil) then
do return __lua_Boot.printEnum(o, s) end;
else
if ((_hx_wrap_if_string_field(o,'toString') ~= nil) and not __lua_Boot.isArray(o)) then
do return _hx_wrap_if_string_field(o,'toString')(o) end;
else
if (__lua_Boot.isArray(o)) then
local o2 = o;
if (__lua_lib_luautf8_Utf8.len(s) > 5) then
do return "[...]" end;
else
local _g1 = _hx_tab_array({}, 0);
local _g11 = 0;
while (_g11 < o2.length) do
local i = o2[_g11];
_g11 = _g11 + 1;
_g1:push(__lua_Boot.__string_rec(i, Std.string(s) .. Std.string(1)));
end;
do return Std.string(Std.string("[") .. Std.string(_g1:join(","))) .. Std.string("]") end;
end;
else
if (o.__class__ ~= nil) then
do return Std.string(Std.string("{") .. Std.string(__lua_Boot.printClassRec(o, "", Std.string(s) .. Std.string("\t")))) .. Std.string("}") end;
else
local fields = __lua_Boot.fieldIterator(o);
local buffer = ({});
local first = true;
_G.table.insert(buffer, "{ ");
local f = fields;
while (f:hasNext()) do
local f1 = f:next();
if (first) then
first = false;
else
_G.table.insert(buffer, ", ");
end;
_G.table.insert(buffer, Std.string(Std.string(Std.string("") .. Std.string(Std.string(f1))) .. Std.string(" : ")) .. Std.string(__lua_Boot.__string_rec(o[f1], Std.string(s) .. Std.string("\t"))));
end;
_G.table.insert(buffer, " }");
do return _G.table.concat(buffer, "") end;
end;
end;
end;
end;
elseif (_g) == "thread" then
do return "<thread>" end;
elseif (_g) == "userdata" then
local mt = _G.getmetatable(o);
if ((mt ~= nil) and (mt.__tostring ~= nil)) then
do return _G.tostring(o) end;
else
do return "<userdata>" end;
end;else
_G.error("Unknown Lua type",0); end;
end
__lua_Boot.fieldIterator = function(o)
if (_G.type(o) ~= "table") then
do return _hx_o({__fields__={next=true,hasNext=true},next=function(self)
do return nil end;
end,hasNext=function(self)
do return false end;
end}) end;
end;
local tbl = (function()
local _hx_1
if (o.__fields__ ~= nil) then
_hx_1 = o.__fields__; else
_hx_1 = o; end
return _hx_1
end )();
local cur = _G.pairs(tbl);
local next_valid = function(tbl1,val)
while (__lua_Boot.hiddenFields[val] ~= nil) do
val = cur(tbl1, val);
end;
do return val end;
end;
local cur_val = next_valid(tbl, cur(tbl, nil));
do return _hx_o({__fields__={next=true,hasNext=true},next=function(self)
local ret = cur_val;
cur_val = next_valid(tbl, cur(tbl, cur_val));
do return ret end;
end,hasNext=function(self)
do return cur_val ~= nil end;
end}) end;
end
_hx_bit_clamp = function(v)
if v <= 2147483647 and v >= -2147483648 then
if v > 0 then return _G.math.floor(v)
else return _G.math.ceil(v)
end
end
if v > 2251798999999999 then v = v*2 end;
if (v ~= v or math.abs(v) == _G.math.huge) then return nil end
return _hx_bit.band(v, 2147483647 ) - math.abs(_hx_bit.band(v, 2147483648))
end
-- require this for lua 5.1
pcall(require, 'bit')
if bit then
_hx_bit = bit
else
local _hx_bit_raw = _G.require('bit32')
_hx_bit = setmetatable({}, { __index = _hx_bit_raw });
-- lua 5.2 weirdness
_hx_bit.bnot = function(...) return _hx_bit_clamp(_hx_bit_raw.bnot(...)) end;
_hx_bit.bxor = function(...) return _hx_bit_clamp(_hx_bit_raw.bxor(...)) end;
end
_hx_array_mt.__index = Array.prototype
local _hx_static_init = function()
__lua_Boot.hiddenFields = {__id__=true, hx__closures=true, super=true, prototype=true, __fields__=true, __ifields__=true, __class__=true, __properties__=true}
end
_hx_print = print or (function() end)
_hx_wrap_if_string_field = function(o, fld)
if _G.type(o) == 'string' then
if fld == 'length' then
return _G.string.len(o)
else
return String.prototype[fld]
end
else
return o[fld]
end
end
_hx_static_init();
Main.main()