2023-06-07 17:42:21 +02:00
local _hx_hidden = { __id__ = true , hx__closures = true , super = true , prototype = true , __fields__ = true , __ifields__ = true , __class__ = true , __properties__ = true , __fields__ = true , __name__ = true }
_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
}
function _hx_is_array ( o )
return type ( o ) == " table "
and o.__enum__ == nil
and getmetatable ( o ) == _hx_array_mt
end
function _hx_tab_array ( tab , length )
tab.length = length
return setmetatable ( tab , _hx_array_mt )
end
function _hx_print_class ( obj , depth )
local first = true
local result = ' '
for k , v in pairs ( obj ) do
if _hx_hidden [ k ] == nil then
if first then
first = false
else
result = result .. ' , '
end
if _hx_hidden [ k ] == nil then
result = result .. k .. ' : ' .. _hx_tostring ( v , depth + 1 )
end
end
end
return ' { ' .. result .. ' } '
end
function _hx_print_enum ( o , depth )
if o.length == 2 then
return o [ 0 ]
else
local str = o [ 0 ] .. " ( "
for i = 2 , ( o.length - 1 ) do
if i ~= 2 then
str = str .. " , " .. _hx_tostring ( o [ i ] , depth + 1 )
else
str = str .. _hx_tostring ( o [ i ] , depth + 1 )
end
end
return str .. " ) "
end
end
function _hx_tostring ( obj , depth )
if depth == nil then
depth = 0
elseif depth > 5 then
return " <...> "
end
local tstr = _G.type ( obj )
if tstr == " string " then return obj
elseif tstr == " nil " then return " null "
elseif tstr == " number " then
if obj == _G.math . POSITIVE_INFINITY then return " Infinity "
elseif obj == _G.math . NEGATIVE_INFINITY then return " -Infinity "
elseif obj == 0 then return " 0 "
elseif obj ~= obj then return " NaN "
else return _G.tostring ( obj )
end
elseif tstr == " boolean " then return _G.tostring ( obj )
elseif tstr == " userdata " then
local mt = _G.getmetatable ( obj )
if mt ~= nil and mt.__tostring ~= nil then
return _G.tostring ( obj )
else
return " <userdata> "
end
elseif tstr == " function " then return " <function> "
elseif tstr == " thread " then return " <thread> "
elseif tstr == " table " then
if obj.__enum__ ~= nil then
return _hx_print_enum ( obj , depth )
elseif obj.toString ~= nil and not _hx_is_array ( obj ) then return obj : toString ( )
elseif _hx_is_array ( obj ) then
if obj.length > 5 then
return " [...] "
else
local str = " "
for i = 0 , ( obj.length - 1 ) do
if i == 0 then
str = str .. _hx_tostring ( obj [ i ] , depth + 1 )
else
str = str .. " , " .. _hx_tostring ( obj [ i ] , depth + 1 )
end
end
return " [ " .. str .. " ] "
end
elseif obj.__class__ ~= nil then
return _hx_print_class ( obj , depth )
else
local buffer = { }
local ref = obj
if obj.__fields__ ~= nil then
ref = obj.__fields__
end
for k , v in pairs ( ref ) do
if _hx_hidden [ k ] == nil then
_G.table . insert ( buffer , _hx_tostring ( k , depth + 1 ) .. ' : ' .. _hx_tostring ( obj [ k ] , depth + 1 ) )
end
end
return " { " .. table.concat ( buffer , " , " ) .. " } "
end
else
_G.error ( " Unknown Lua type " , 0 )
return " "
end
end
function _hx_error ( obj )
if obj.value then
_G.print ( " runtime error: \n " .. _hx_tostring ( obj.value ) ) ;
else
_G.print ( " runtime error: \n " .. tostring ( obj ) ) ;
end
if _G.debug and _G.debug . traceback then
_G.print ( debug.traceback ( ) ) ;
end
end
local function _hx_obj_newindex ( t , k , v )
t.__fields__ [ k ] = true
rawset ( t , k , v )
end
local _hx_obj_mt = { __newindex = _hx_obj_newindex , __tostring = _hx_tostring }
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_obj_mt )
end
local function _hx_e ( )
return setmetatable ( { __fields__ = { } } , _hx_obj_mt )
end
local function _hx_o ( obj )
return setmetatable ( obj , _hx_obj_mt )
end
local function _hx_new ( prototype )
return setmetatable ( { __fields__ = { } } , { __newindex = _hx_obj_newindex , __index = prototype , __tostring = _hx_tostring } )
end
function _hx_field_arr ( obj )
res = { }
idx = 0
if obj.__fields__ ~= nil then
obj = obj.__fields__
end
for k , v in pairs ( obj ) do
if _hx_hidden [ k ] == nil then
res [ idx ] = k
idx = idx + 1
end
end
return _hx_tab_array ( res , idx )
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 _hx_exports = _hx_exports or { }
_hx_exports [ " xrfragment " ] = _hx_exports [ " xrfragment " ] or _hx_e ( )
local Array = _hx_e ( )
__lua_lib_lrexlib_Rex = _G.require ( " rex_pcre " )
__lua_lib_luautf8_Utf8 = _G.require ( " lua-utf8 " )
local EReg = _hx_e ( )
local Math = _hx_e ( )
local Reflect = _hx_e ( )
local String = _hx_e ( )
local Std = _hx_e ( )
local StringTools = _hx_e ( )
__haxe_IMap = _hx_e ( )
__haxe_Exception = _hx_e ( )
__haxe_Log = _hx_e ( )
__haxe_NativeStackTrace = _hx_e ( )
__haxe_ValueException = _hx_e ( )
__haxe_ds_StringMap = _hx_e ( )
__haxe_iterators_ArrayIterator = _hx_e ( )
__haxe_iterators_ArrayKeyValueIterator = _hx_e ( )
__lua_Boot = _hx_e ( )
__lua_UserData = _hx_e ( )
__lua_Lib = _hx_e ( )
__lua_Thread = _hx_e ( )
__xrfragment_Parser = _hx_e ( )
__xrfragment_Query = _hx_e ( )
__xrfragment_URI = _hx_e ( )
__xrfragment_XRF = _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.__name__ = true
Array.prototype = _hx_e ( ) ;
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 _g = 0 ;
while ( _g < a.length ) do
local i = a [ _g ] ;
_g = _g + 1 ;
ret : push ( i ) ;
end ;
do return ret end
end
Array.prototype . join = function ( self , sep )
local tbl = ( { } ) ;
local _g_current = 0 ;
local _g_array = self ;
while ( _g_current < _g_array.length ) do
_g_current = _g_current + 1 ;
local i = _g_array [ _g_current - 1 ] ;
_G.table . insert ( tbl , Std.string ( i ) ) ;
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 _g = pos + len ;
local _g1 = self.length ;
while ( _g < _g1 ) do
_g = _g + 1 ;
local i = _g - 1 ;
self [ i ] = self [ i + 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 _g = i ;
local _g1 = self.length - 1 ;
while ( _g < _g1 ) do
_g = _g + 1 ;
local j = _g - 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 . contains = 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
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 )
do return __haxe_iterators_ArrayIterator.new ( self ) end
end
Array.prototype . keyValueIterator = function ( self )
do return __haxe_iterators_ArrayKeyValueIterator.new ( self ) 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
Array.prototype . __class__ = Array
EReg.new = function ( r , opt )
local self = _hx_new ( EReg.prototype )
EReg.super ( self , r , opt )
return self
end
EReg.super = function ( self , r , opt )
local ropt = 0 ;
local _g = 0 ;
local _g1 = __lua_lib_luautf8_Utf8.len ( opt ) ;
while ( _g < _g1 ) do
_g = _g + 1 ;
local i = _g - 1 ;
local _g = __lua_lib_luautf8_Utf8.sub ( opt , i + 1 , i + 1 ) ;
if ( _g ) == " g " then
self.global = true ;
elseif ( _g ) == " i " then
ropt = _hx_bit.bor ( ropt , EReg.FLAGS . CASELESS ) ;
elseif ( _g ) == " m " then
ropt = _hx_bit.bor ( ropt , EReg.FLAGS . MULTILINE ) ;
elseif ( _g ) == " s " then
ropt = _hx_bit.bor ( ropt , EReg.FLAGS . DOTALL ) ; else end ;
end ;
ropt = _hx_bit.bor ( ropt , EReg.FLAGS . UTF8 ) ;
ropt = _hx_bit.bor ( ropt , EReg.FLAGS . UCP ) ;
if ( self.global == nil ) then
self.global = false ;
end ;
self.r = __lua_lib_lrexlib_Rex.new ( r , ropt ) ;
end
EReg.__name__ = true
EReg.prototype = _hx_e ( ) ;
EReg.prototype . match = function ( self , s )
if ( s == nil ) then
do return false end ;
else
self.m = _hx_table.pack ( self.r : exec ( s , 1 ) ) ;
self.s = s ;
do return self.m [ 1 ] ~= nil end ;
end ;
end
EReg.prototype . split = function ( self , s )
if ( self.global ) then
do return __lua_Lib.fillArray ( _hx_wrap_if_string_field ( __lua_lib_lrexlib_Rex , ' split ' ) ( s , self.r ) ) end ;
else
local d = " #__delim__# " ;
do return __lua_Lib.fillArray ( _hx_wrap_if_string_field ( __lua_lib_lrexlib_Rex , ' split ' ) ( self : replace ( s , d ) , d ) ) end ;
end ;
end
EReg.prototype . replace = function ( self , s , by )
local idx = 1 ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( idx ~= nil ) do
local newidx = 0 ;
if ( __lua_lib_luautf8_Utf8.len ( " $$ " ) > 0 ) then
newidx = __lua_lib_luautf8_Utf8.find ( by , " $$ " , idx , true ) ;
else
if ( idx >= __lua_lib_luautf8_Utf8.len ( by ) ) then
newidx = nil ;
else
newidx = idx + 1 ;
end ;
end ;
if ( newidx ~= nil ) then
local match = __lua_lib_luautf8_Utf8.sub ( by , idx , newidx - 1 ) ;
ret : push ( match ) ;
idx = newidx + __lua_lib_luautf8_Utf8.len ( " $$ " ) ;
else
ret : push ( __lua_lib_luautf8_Utf8.sub ( by , idx , __lua_lib_luautf8_Utf8.len ( by ) ) ) ;
idx = nil ;
end ;
end ;
local chunks = ret ;
local _g = _hx_tab_array ( { } , 0 ) ;
local _g1 = 0 ;
while ( _g1 < chunks.length ) do
local chunk = chunks [ _g1 ] ;
_g1 = _g1 + 1 ;
_g : push ( __lua_lib_lrexlib_Rex.gsub ( chunk , " \\ $( \\ d) " , " %%%1 " , 1 ) ) ;
end ;
chunks = _g ;
by = chunks : join ( " $ " ) ;
do return __lua_lib_lrexlib_Rex.gsub ( s , self.r , by , ( function ( )
local _hx_1
if ( self.global ) then
_hx_1 = nil ; else
_hx_1 = 1 ; end
return _hx_1
end ) ( ) ) end
end
EReg.prototype . __class__ = EReg
Math.new = { }
Math.__name__ = true
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
Reflect.new = { }
Reflect.__name__ = true
Reflect.field = function ( o , field )
if ( _G.type ( o ) == " string " ) then
if ( field == " length " ) then
do return _hx_wrap_if_string_field ( o , ' length ' ) end ;
else
do return String.prototype [ field ] end ;
end ;
else
local _hx_status , _hx_result = pcall ( function ( )
do return o [ field ] end ;
return _hx_pcall_default
end )
if not _hx_status and _hx_result == " _hx_pcall_break " then
elseif not _hx_status then
local _g = _hx_result ;
do return nil end ;
elseif _hx_result ~= _hx_pcall_default then
return _hx_result
end ;
end ;
end
Reflect.fields = function ( o )
if ( _G.type ( o ) == " string " ) then
do return Reflect.fields ( String.prototype ) end ;
else
do return _hx_field_arr ( o ) end ;
end ;
end
Reflect.deleteField = function ( o , field )
if ( not ( ( 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 false end ;
end ;
o [ field ] = nil ;
o.__fields__ [ field ] = nil ;
do return true 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.__name__ = true
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.indexOfEmpty = function ( s , startIndex )
local length = __lua_lib_luautf8_Utf8.len ( s ) ;
if ( startIndex < 0 ) then
startIndex = length + startIndex ;
if ( startIndex < 0 ) then
startIndex = 0 ;
end ;
end ;
if ( startIndex > length ) then
do return length end ;
else
do return startIndex end ;
end ;
end
String.fromCharCode = function ( code )
do return __lua_lib_luautf8_Utf8.char ( code ) end ;
end
String.prototype = _hx_e ( ) ;
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 ;
if ( str == " " ) then
do return String.indexOfEmpty ( self , startIndex - 1 ) end ;
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 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 p ;
if ( str == " " ) then
p = String.indexOfEmpty ( self , startIndex1 - 1 ) ;
else
local r = __lua_lib_luautf8_Utf8.find ( self , str , startIndex1 , true ) ;
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 ) ( ) ;
end ;
if ( ( ( p == - 1 ) or ( p > startIndex ) ) or ( p == ret ) ) 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 ) ;
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
String.prototype . __class__ = String
Std.new = { }
Std.__name__ = true
Std.string = function ( s )
do return _hx_tostring ( s , 0 ) 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
Std.parseInt = function ( x )
if ( x == nil ) then
do return nil end ;
end ;
local hexMatch = _G.string . match ( x , " ^[ \t \r \n ]*([%-+]*0[xX][%da-fA-F]*) " ) ;
if ( hexMatch ~= nil ) then
local sign ;
local _g = __lua_lib_luautf8_Utf8.byte ( hexMatch , 1 ) ;
if ( _g ) == 43 then
sign = 1 ;
elseif ( _g ) == 45 then
sign = - 1 ; else
sign = 0 ; end ;
local pos = ( function ( )
local _hx_1
if ( sign == 0 ) then
_hx_1 = 2 ; else
_hx_1 = 3 ; end
return _hx_1
end ) ( ) ;
local len = nil ;
if ( ( len == nil ) or ( len > ( pos + __lua_lib_luautf8_Utf8.len ( hexMatch ) ) ) ) then
len = __lua_lib_luautf8_Utf8.len ( hexMatch ) ;
else
if ( len < 0 ) then
len = __lua_lib_luautf8_Utf8.len ( hexMatch ) + len ;
end ;
end ;
if ( pos < 0 ) then
pos = __lua_lib_luautf8_Utf8.len ( hexMatch ) + pos ;
end ;
if ( pos < 0 ) then
pos = 0 ;
end ;
do return ( function ( )
local _hx_2
if ( sign == - 1 ) then
_hx_2 = - 1 ; else
_hx_2 = 1 ; end
return _hx_2
end ) ( ) * _G.tonumber ( __lua_lib_luautf8_Utf8.sub ( hexMatch , pos + 1 , pos + len ) , 16 ) end ;
else
local intMatch = _G.string . match ( x , " ^ *[%-+]?%d* " ) ;
if ( intMatch ~= nil ) then
do return _G.tonumber ( intMatch ) end ;
else
do return nil end ;
end ;
end ;
end
Std.parseFloat = function ( x )
if ( ( x == nil ) or ( x == " " ) ) then
do return ( 0 / 0 ) end ;
end ;
local digitMatch = _G.string . match ( x , " ^ *[%.%-+]?[0-9]%d* " ) ;
if ( digitMatch == nil ) then
do return ( 0 / 0 ) end ;
end ;
local pos = __lua_lib_luautf8_Utf8.len ( digitMatch ) ;
local len = nil ;
if ( ( len == nil ) or ( len > ( pos + __lua_lib_luautf8_Utf8.len ( x ) ) ) ) then
len = __lua_lib_luautf8_Utf8.len ( x ) ;
else
if ( len < 0 ) then
len = __lua_lib_luautf8_Utf8.len ( x ) + len ;
end ;
end ;
if ( pos < 0 ) then
pos = __lua_lib_luautf8_Utf8.len ( x ) + pos ;
end ;
if ( pos < 0 ) then
pos = 0 ;
end ;
x = __lua_lib_luautf8_Utf8.sub ( x , pos + 1 , pos + len ) ;
local decimalMatch = _G.string . match ( x , " ^%.%d* " ) ;
if ( decimalMatch == nil ) then
decimalMatch = " " ;
end ;
local pos = __lua_lib_luautf8_Utf8.len ( decimalMatch ) ;
local len = nil ;
if ( ( len == nil ) or ( len > ( pos + __lua_lib_luautf8_Utf8.len ( x ) ) ) ) then
len = __lua_lib_luautf8_Utf8.len ( x ) ;
else
if ( len < 0 ) then
len = __lua_lib_luautf8_Utf8.len ( x ) + len ;
end ;
end ;
if ( pos < 0 ) then
pos = __lua_lib_luautf8_Utf8.len ( x ) + pos ;
end ;
if ( pos < 0 ) then
pos = 0 ;
end ;
x = __lua_lib_luautf8_Utf8.sub ( x , pos + 1 , pos + len ) ;
local eMatch = _G.string . match ( x , " ^[eE][+%-]?%d+ " ) ;
if ( eMatch == nil ) then
eMatch = " " ;
end ;
local result = _G.tonumber ( Std.string ( Std.string ( digitMatch ) .. Std.string ( decimalMatch ) ) .. Std.string ( eMatch ) ) ;
if ( result ~= nil ) then
do return result end ;
else
do return ( 0 / 0 ) end ;
end ;
end
StringTools.new = { }
StringTools.__name__ = true
StringTools.urlDecode = function ( s )
s = _G.string . gsub ( s , " + " , " " ) ;
s = _G.string . gsub ( s , " %%(%x%x) " , function ( h )
do return _G.string . char ( _G.tonumber ( h , 16 ) ) end ;
end ) ;
s = _G.string . gsub ( s , " \r \n " , " \n " ) ;
do return s end ;
end
StringTools.isSpace = function ( s , pos )
if ( ( ( __lua_lib_luautf8_Utf8.len ( s ) == 0 ) or ( pos < 0 ) ) or ( pos >= __lua_lib_luautf8_Utf8.len ( s ) ) ) then
do return false end ;
end ;
local c = __lua_lib_luautf8_Utf8.byte ( s , pos + 1 ) ;
if ( not ( ( c > 8 ) and ( c < 14 ) ) ) then
do return c == 32 end ;
else
do return true end ;
end ;
end
StringTools.ltrim = function ( s )
local l = __lua_lib_luautf8_Utf8.len ( s ) ;
local r = 0 ;
while ( ( r < l ) and StringTools.isSpace ( s , r ) ) do
r = r + 1 ;
end ;
if ( r > 0 ) then
local pos = r ;
local len = l - r ;
if ( ( len == nil ) or ( len > ( pos + __lua_lib_luautf8_Utf8.len ( s ) ) ) ) then
len = __lua_lib_luautf8_Utf8.len ( s ) ;
else
if ( len < 0 ) then
len = __lua_lib_luautf8_Utf8.len ( s ) + len ;
end ;
end ;
if ( pos < 0 ) then
pos = __lua_lib_luautf8_Utf8.len ( s ) + pos ;
end ;
if ( pos < 0 ) then
pos = 0 ;
end ;
do return __lua_lib_luautf8_Utf8.sub ( s , pos + 1 , pos + len ) end ;
else
do return s end ;
end ;
end
StringTools.rtrim = function ( s )
local l = __lua_lib_luautf8_Utf8.len ( s ) ;
local r = 0 ;
while ( ( r < l ) and StringTools.isSpace ( s , ( l - r ) - 1 ) ) do
r = r + 1 ;
end ;
if ( r > 0 ) then
local pos = 0 ;
local len = l - r ;
if ( ( len == nil ) or ( len > ( pos + __lua_lib_luautf8_Utf8.len ( s ) ) ) ) then
len = __lua_lib_luautf8_Utf8.len ( s ) ;
else
if ( len < 0 ) then
len = __lua_lib_luautf8_Utf8.len ( s ) + len ;
end ;
end ;
if ( pos < 0 ) then
pos = __lua_lib_luautf8_Utf8.len ( s ) + pos ;
end ;
if ( pos < 0 ) then
pos = 0 ;
end ;
do return __lua_lib_luautf8_Utf8.sub ( s , pos + 1 , pos + len ) end ;
else
do return s end ;
end ;
end
StringTools.trim = function ( s )
do return StringTools.ltrim ( StringTools.rtrim ( s ) ) end ;
end
StringTools.replace = function ( s , sub , by )
local idx = 1 ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( idx ~= nil ) do
local newidx = 0 ;
if ( __lua_lib_luautf8_Utf8.len ( sub ) > 0 ) then
newidx = __lua_lib_luautf8_Utf8.find ( s , sub , idx , true ) ;
else
if ( idx >= __lua_lib_luautf8_Utf8.len ( s ) ) then
newidx = nil ;
else
newidx = idx + 1 ;
end ;
end ;
if ( newidx ~= nil ) then
local match = __lua_lib_luautf8_Utf8.sub ( s , idx , newidx - 1 ) ;
ret : push ( match ) ;
idx = newidx + __lua_lib_luautf8_Utf8.len ( sub ) ;
else
ret : push ( __lua_lib_luautf8_Utf8.sub ( s , idx , __lua_lib_luautf8_Utf8.len ( s ) ) ) ;
idx = nil ;
end ;
end ;
do return ret : join ( by ) end ;
end
__haxe_IMap.new = { }
__haxe_IMap.__name__ = true
__haxe_Exception.new = function ( message , previous , native )
local self = _hx_new ( __haxe_Exception.prototype )
__haxe_Exception.super ( self , message , previous , native )
return self
end
__haxe_Exception.super = function ( self , message , previous , native )
self.__skipStack = 0 ;
self.__exceptionMessage = message ;
self.__previousException = previous ;
if ( native ~= nil ) then
self.__nativeException = native ;
self.__nativeStack = __haxe_NativeStackTrace.exceptionStack ( ) ;
else
self.__nativeException = self ;
self.__nativeStack = __haxe_NativeStackTrace.callStack ( ) ;
self.__skipStack = 1 ;
end ;
end
__haxe_Exception.__name__ = true
__haxe_Exception.thrown = function ( value )
if ( __lua_Boot.__instanceof ( value , __haxe_Exception ) ) then
do return value : get_native ( ) end ;
else
local e = __haxe_ValueException.new ( value ) ;
e.__skipStack = e.__skipStack + 1 ;
do return e end ;
end ;
end
__haxe_Exception.prototype = _hx_e ( ) ;
__haxe_Exception.prototype . get_native = function ( self )
do return self.__nativeException end
end
__haxe_Exception.prototype . __class__ = __haxe_Exception
__haxe_Log.new = { }
__haxe_Log.__name__ = true
__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 v = _g1 [ _g ] ;
_g = _g + 1 ;
str = Std.string ( str ) .. Std.string ( ( Std.string ( " , " ) .. Std.string ( Std.string ( v ) ) ) ) ;
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
__haxe_NativeStackTrace.new = { }
__haxe_NativeStackTrace.__name__ = true
__haxe_NativeStackTrace.saveStack = function ( exception )
end
__haxe_NativeStackTrace.callStack = function ( )
local _g = debug.traceback ( ) ;
if ( _g == nil ) then
do return _hx_tab_array ( { } , 0 ) end ;
else
local s = _g ;
local idx = 1 ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( idx ~= nil ) do
local newidx = 0 ;
if ( __lua_lib_luautf8_Utf8.len ( " \n " ) > 0 ) then
newidx = __lua_lib_luautf8_Utf8.find ( s , " \n " , idx , true ) ;
else
if ( idx >= __lua_lib_luautf8_Utf8.len ( s ) ) then
newidx = nil ;
else
newidx = idx + 1 ;
end ;
end ;
if ( newidx ~= nil ) then
local match = __lua_lib_luautf8_Utf8.sub ( s , idx , newidx - 1 ) ;
ret : push ( match ) ;
idx = newidx + __lua_lib_luautf8_Utf8.len ( " \n " ) ;
else
ret : push ( __lua_lib_luautf8_Utf8.sub ( s , idx , __lua_lib_luautf8_Utf8.len ( s ) ) ) ;
idx = nil ;
end ;
end ;
do return ret : slice ( 3 ) end ;
end ;
end
__haxe_NativeStackTrace.exceptionStack = function ( )
do return _hx_tab_array ( { } , 0 ) end ;
end
__haxe_ValueException.new = function ( value , previous , native )
local self = _hx_new ( __haxe_ValueException.prototype )
__haxe_ValueException.super ( self , value , previous , native )
return self
end
__haxe_ValueException.super = function ( self , value , previous , native )
__haxe_Exception.super ( self , Std.string ( value ) , previous , native ) ;
self.value = value ;
end
__haxe_ValueException.__name__ = true
__haxe_ValueException.prototype = _hx_e ( ) ;
__haxe_ValueException.prototype . __class__ = __haxe_ValueException
__haxe_ValueException.__super__ = __haxe_Exception
setmetatable ( __haxe_ValueException.prototype , { __index = __haxe_Exception.prototype } )
__haxe_ds_StringMap.new = { }
__haxe_ds_StringMap.__name__ = true
__haxe_ds_StringMap.__interfaces__ = { __haxe_IMap }
__haxe_iterators_ArrayIterator.new = function ( array )
local self = _hx_new ( __haxe_iterators_ArrayIterator.prototype )
__haxe_iterators_ArrayIterator.super ( self , array )
return self
end
__haxe_iterators_ArrayIterator.super = function ( self , array )
self.current = 0 ;
self.array = array ;
end
__haxe_iterators_ArrayIterator.__name__ = true
__haxe_iterators_ArrayIterator.prototype = _hx_e ( ) ;
__haxe_iterators_ArrayIterator.prototype . hasNext = function ( self )
do return self.current < self.array . length end
end
__haxe_iterators_ArrayIterator.prototype . next = function ( self )
do return self.array [ ( function ( )
local _hx_obj = self ;
local _hx_fld = ' current ' ;
local _ = _hx_obj [ _hx_fld ] ;
_hx_obj [ _hx_fld ] = _hx_obj [ _hx_fld ] + 1 ;
return _ ;
end ) ( ) ] end
end
__haxe_iterators_ArrayIterator.prototype . __class__ = __haxe_iterators_ArrayIterator
__haxe_iterators_ArrayKeyValueIterator.new = function ( array )
local self = _hx_new ( __haxe_iterators_ArrayKeyValueIterator.prototype )
__haxe_iterators_ArrayKeyValueIterator.super ( self , array )
return self
end
__haxe_iterators_ArrayKeyValueIterator.super = function ( self , array )
self.array = array ;
end
__haxe_iterators_ArrayKeyValueIterator.__name__ = true
__haxe_iterators_ArrayKeyValueIterator.prototype = _hx_e ( ) ;
__haxe_iterators_ArrayKeyValueIterator.prototype . __class__ = __haxe_iterators_ArrayKeyValueIterator
__lua_Boot.new = { }
__lua_Boot.__name__ = true
__lua_Boot.__instanceof = function ( o , cl )
if ( cl == nil ) then
do return false end ;
end ;
local cl1 = cl ;
if ( cl1 ) == Array then
do return __lua_Boot.isArray ( o ) end ;
elseif ( cl1 ) == Bool then
do return _G.type ( o ) == " boolean " end ;
elseif ( cl1 ) == Dynamic then
do return o ~= nil end ;
elseif ( cl1 ) == Float then
do return _G.type ( o ) == " number " end ;
elseif ( cl1 ) == Int then
if ( _G.type ( o ) == " number " ) then
do return _hx_bit_clamp ( o ) == o end ;
else
do return false end ;
end ;
elseif ( cl1 ) == String then
do return _G.type ( o ) == " string " end ;
elseif ( cl1 ) == _G.table then
do return _G.type ( o ) == " table " end ;
elseif ( cl1 ) == __lua_Thread then
do return _G.type ( o ) == " thread " end ;
elseif ( cl1 ) == __lua_UserData then
do return _G.type ( o ) == " userdata " end ; else
if ( ( ( o ~= nil ) and ( _G.type ( o ) == " table " ) ) and ( _G.type ( cl ) == " table " ) ) then
local tmp ;
if ( __lua_Boot.__instanceof ( o , Array ) ) then
tmp = Array ;
else
if ( __lua_Boot.__instanceof ( o , String ) ) then
tmp = String ;
else
local cl = o.__class__ ;
tmp = ( function ( )
local _hx_1
if ( cl ~= nil ) then
_hx_1 = cl ; else
_hx_1 = nil ; end
return _hx_1
end ) ( ) ;
end ;
end ;
if ( __lua_Boot.extendsOrImplements ( tmp , cl ) ) then
do return true end ;
end ;
if ( ( function ( )
local _hx_2
if ( cl == Class ) then
_hx_2 = o.__name__ ~= nil ; else
_hx_2 = false ; end
return _hx_2
end ) ( ) ) then
do return true end ;
end ;
if ( ( function ( )
local _hx_3
if ( cl == Enum ) then
_hx_3 = o.__ename__ ~= nil ; else
_hx_3 = false ; end
return _hx_3
end ) ( ) ) then
do return true end ;
end ;
do return o.__enum__ == cl end ;
else
do return false end ;
end ; end ;
end
__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.extendsOrImplements = function ( cl1 , cl2 )
if ( ( cl1 == nil ) or ( cl2 == nil ) ) then
do return false end ;
else
if ( cl1 == cl2 ) then
do return true end ;
else
if ( cl1.__interfaces__ ~= nil ) then
local intf = cl1.__interfaces__ ;
local _g = 1 ;
local _g1 = _hx_table.maxn ( intf ) + 1 ;
while ( _g < _g1 ) do
_g = _g + 1 ;
local i = _g - 1 ;
if ( __lua_Boot.extendsOrImplements ( intf [ i ] , cl2 ) ) then
do return true end ;
end ;
end ;
end ;
end ;
end ;
do return __lua_Boot.extendsOrImplements ( cl1.__super__ , cl2 ) end ;
end
__lua_UserData.new = { }
__lua_UserData.__name__ = true
__lua_Lib.new = { }
__lua_Lib.__name__ = true
__lua_Lib.fillArray = function ( itr )
local i = nil ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( true ) do
i = itr ( ) ;
if ( not ( i ~= nil ) ) then
break ;
end ;
ret : push ( i ) ;
end ;
do return ret end ;
end
__lua_Thread.new = { }
__lua_Thread.__name__ = true
__xrfragment_Parser.new = { }
_hx_exports [ " xrfragment " ] [ " Parser " ] = __xrfragment_Parser
__xrfragment_Parser.__name__ = true
2023-06-27 09:43:10 +02:00
__xrfragment_Parser.parse = function ( key , value , store )
2023-06-07 17:42:21 +02:00
local Frag_h = ( { } ) ;
2023-08-15 18:27:26 +02:00
local value1 = _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.T_PREDEFINED_VIEW ) , __xrfragment_XRF.PV_EXECUTE ) ;
2023-06-07 17:42:21 +02:00
if ( value1 == nil ) then
Frag_h [ " # " ] = __haxe_ds_StringMap.tnull ;
else
Frag_h [ " # " ] = value1 ;
end ;
2023-08-15 18:27:26 +02:00
local value1 = _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.T_INT ) ;
2023-06-07 17:42:21 +02:00
if ( value1 == nil ) then
2023-08-15 18:27:26 +02:00
Frag_h.prio = __haxe_ds_StringMap.tnull ;
2023-06-07 17:42:21 +02:00
else
2023-08-15 18:27:26 +02:00
Frag_h.prio = value1 ;
2023-06-07 17:42:21 +02:00
end ;
local value1 = _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.T_URL ) ;
if ( value1 == nil ) then
Frag_h.src = __haxe_ds_StringMap.tnull ;
else
Frag_h.src = value1 ;
end ;
local value1 = _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.T_URL ) , __xrfragment_XRF.T_PREDEFINED_VIEW ) ;
if ( value1 == nil ) then
Frag_h.href = __haxe_ds_StringMap.tnull ;
else
Frag_h.href = value1 ;
end ;
2023-08-15 18:27:26 +02:00
local value1 = _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.T_STRING ) ;
if ( value1 == nil ) then
Frag_h.class = __haxe_ds_StringMap.tnull ;
else
Frag_h.class = value1 ;
end ;
local value1 = _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.PV_OVERRIDE , __xrfragment_XRF.ROUNDROBIN ) , __xrfragment_XRF.T_VECTOR3 ) , __xrfragment_XRF.T_STRING_OBJ ) , __xrfragment_XRF.METADATA ) , __xrfragment_XRF.NAVIGATOR ) ;
if ( value1 == nil ) then
Frag_h.pos = __haxe_ds_StringMap.tnull ;
else
Frag_h.pos = value1 ;
end ;
local value1 = _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.PV_OVERRIDE , __xrfragment_XRF.T_STRING ) , __xrfragment_XRF.METADATA ) ;
2023-06-07 17:42:21 +02:00
if ( value1 == nil ) then
Frag_h.q = __haxe_ds_StringMap.tnull ;
else
Frag_h.q = value1 ;
end ;
2023-08-15 18:27:26 +02:00
local value1 = _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.QUERY_OPERATOR , __xrfragment_XRF.PV_OVERRIDE ) , __xrfragment_XRF.ROUNDROBIN ) , __xrfragment_XRF.T_VECTOR3 ) , __xrfragment_XRF.METADATA ) ;
2023-06-07 17:42:21 +02:00
if ( value1 == nil ) then
Frag_h.scale = __haxe_ds_StringMap.tnull ;
else
Frag_h.scale = value1 ;
end ;
2023-08-15 18:27:26 +02:00
local value1 = _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.QUERY_OPERATOR , __xrfragment_XRF.PV_OVERRIDE ) , __xrfragment_XRF.ROUNDROBIN ) , __xrfragment_XRF.T_VECTOR3 ) , __xrfragment_XRF.METADATA ) , __xrfragment_XRF.NAVIGATOR ) ;
2023-06-07 17:42:21 +02:00
if ( value1 == nil ) then
Frag_h.rot = __haxe_ds_StringMap.tnull ;
else
Frag_h.rot = value1 ;
end ;
2023-08-15 18:27:26 +02:00
local value1 = _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.QUERY_OPERATOR , __xrfragment_XRF.PV_OVERRIDE ) , __xrfragment_XRF.ROUNDROBIN ) , __xrfragment_XRF.T_VECTOR3 ) , __xrfragment_XRF.METADATA ) ;
2023-06-07 17:42:21 +02:00
if ( value1 == nil ) then
2023-08-15 18:27:26 +02:00
Frag_h.mov = __haxe_ds_StringMap.tnull ;
2023-06-07 17:42:21 +02:00
else
2023-08-15 18:27:26 +02:00
Frag_h.mov = value1 ;
2023-06-07 17:42:21 +02:00
end ;
2023-08-15 18:27:26 +02:00
local value1 = _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.QUERY_OPERATOR , __xrfragment_XRF.PV_OVERRIDE ) , __xrfragment_XRF.ROUNDROBIN ) , __xrfragment_XRF.T_INT ) , __xrfragment_XRF.METADATA ) ;
2023-06-07 17:42:21 +02:00
if ( value1 == nil ) then
2023-08-15 18:27:26 +02:00
Frag_h.show = __haxe_ds_StringMap.tnull ;
2023-06-07 17:42:21 +02:00
else
2023-08-15 18:27:26 +02:00
Frag_h.show = value1 ;
2023-06-07 17:42:21 +02:00
end ;
2023-08-15 18:27:26 +02:00
local value1 = _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.PV_OVERRIDE ) , __xrfragment_XRF.T_STRING ) , __xrfragment_XRF.METADATA ) ;
2023-06-07 17:42:21 +02:00
if ( value1 == nil ) then
Frag_h.env = __haxe_ds_StringMap.tnull ;
else
Frag_h.env = value1 ;
end ;
2023-08-15 18:27:26 +02:00
local value1 = _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.PV_OVERRIDE ) , __xrfragment_XRF.ROUNDROBIN ) , __xrfragment_XRF.T_VECTOR2 ) , __xrfragment_XRF.NAVIGATOR ) , __xrfragment_XRF.METADATA ) ;
2023-06-07 17:42:21 +02:00
if ( value1 == nil ) then
Frag_h.t = __haxe_ds_StringMap.tnull ;
else
Frag_h.t = value1 ;
end ;
2023-08-15 18:27:26 +02:00
local value1 = _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.PV_OVERRIDE ) , __xrfragment_XRF.T_VECTOR3 ) , __xrfragment_XRF.METADATA ) ;
2023-06-07 17:42:21 +02:00
if ( value1 == nil ) then
Frag_h.gravity = __haxe_ds_StringMap.tnull ;
else
Frag_h.gravity = value1 ;
end ;
2023-08-15 18:27:26 +02:00
local value1 = _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.PV_OVERRIDE ) , __xrfragment_XRF.T_VECTOR3 ) , __xrfragment_XRF.METADATA ) ;
2023-06-07 17:42:21 +02:00
if ( value1 == nil ) then
Frag_h.physics = __haxe_ds_StringMap.tnull ;
else
Frag_h.physics = value1 ;
end ;
2023-08-15 18:27:26 +02:00
local value1 = _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.PV_OVERRIDE ) , __xrfragment_XRF.T_INT ) , __xrfragment_XRF.NAVIGATOR ) , __xrfragment_XRF.METADATA ) ;
2023-06-07 17:42:21 +02:00
if ( value1 == nil ) then
Frag_h.fov = __haxe_ds_StringMap.tnull ;
else
Frag_h.fov = value1 ;
end ;
2023-08-15 18:27:26 +02:00
local value1 = _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.PV_OVERRIDE ) , __xrfragment_XRF.T_VECTOR2 ) , __xrfragment_XRF.NAVIGATOR ) , __xrfragment_XRF.METADATA ) ;
2023-06-07 17:42:21 +02:00
if ( value1 == nil ) then
Frag_h.clip = __haxe_ds_StringMap.tnull ;
else
Frag_h.clip = value1 ;
end ;
2023-08-24 13:36:41 +02:00
local value1 = _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.PV_OVERRIDE ) , __xrfragment_XRF.T_VECTOR2 ) , __xrfragment_XRF.NAVIGATOR ) , __xrfragment_XRF.METADATA ) ;
2023-06-07 17:42:21 +02:00
if ( value1 == nil ) then
Frag_h.fog = __haxe_ds_StringMap.tnull ;
else
Frag_h.fog = value1 ;
end ;
2023-08-24 13:36:41 +02:00
local value1 = _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.PV_OVERRIDE ) , __xrfragment_XRF.T_VECTOR3 ) , __xrfragment_XRF.NAVIGATOR ) , __xrfragment_XRF.METADATA ) ;
if ( value1 == nil ) then
Frag_h.bg = __haxe_ds_StringMap.tnull ;
else
Frag_h.bg = value1 ;
end ;
2023-06-07 17:42:21 +02:00
local value1 = _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.T_STRING ) ;
if ( value1 == nil ) then
Frag_h.namespace = __haxe_ds_StringMap.tnull ;
else
Frag_h.namespace = value1 ;
end ;
local value1 = _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.T_STRING ) ;
if ( value1 == nil ) then
Frag_h.SPDX = __haxe_ds_StringMap.tnull ;
else
Frag_h.SPDX = value1 ;
end ;
local value1 = _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.T_STRING ) ;
if ( value1 == nil ) then
Frag_h.unit = __haxe_ds_StringMap.tnull ;
else
Frag_h.unit = value1 ;
end ;
local value1 = _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.T_STRING ) ;
if ( value1 == nil ) then
Frag_h.description = __haxe_ds_StringMap.tnull ;
else
Frag_h.description = value1 ;
end ;
2023-08-15 18:27:26 +02:00
local value1 = _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.T_URL ) , __xrfragment_XRF.PV_OVERRIDE ) , __xrfragment_XRF.NAVIGATOR ) , __xrfragment_XRF.METADATA ) , __xrfragment_XRF.PROMPT ) ;
2023-06-07 17:42:21 +02:00
if ( value1 == nil ) then
Frag_h.session = __haxe_ds_StringMap.tnull ;
else
Frag_h.session = value1 ;
end ;
2023-08-15 18:27:26 +02:00
local isPVDynamic = ( ( __lua_lib_luautf8_Utf8.len ( value ) == 0 ) and ( __lua_lib_luautf8_Utf8.len ( key ) > 0 ) ) and ( Frag_h [ key ] == nil ) ;
local isPVDefault = ( ( __lua_lib_luautf8_Utf8.len ( value ) == 0 ) and ( __lua_lib_luautf8_Utf8.len ( key ) > 0 ) ) and ( key == " # " ) ;
if ( isPVDynamic ) then
2023-06-09 16:40:08 +02:00
local v = __xrfragment_XRF.new ( key , _hx_bit.bor ( __xrfragment_XRF.PV_EXECUTE , __xrfragment_XRF.NAVIGATOR ) ) ;
v : validate ( key ) ;
2023-06-27 09:43:10 +02:00
store [ key ] = v ;
2023-06-07 17:42:21 +02:00
do return true end ;
end ;
local tmp ;
local idx = 1 ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( idx ~= nil ) do
local newidx = 0 ;
if ( __lua_lib_luautf8_Utf8.len ( " . " ) > 0 ) then
newidx = __lua_lib_luautf8_Utf8.find ( key , " . " , idx , true ) ;
else
if ( idx >= __lua_lib_luautf8_Utf8.len ( key ) ) then
newidx = nil ;
else
newidx = idx + 1 ;
end ;
end ;
if ( newidx ~= nil ) then
local match = __lua_lib_luautf8_Utf8.sub ( key , idx , newidx - 1 ) ;
ret : push ( match ) ;
idx = newidx + __lua_lib_luautf8_Utf8.len ( " . " ) ;
else
ret : push ( __lua_lib_luautf8_Utf8.sub ( key , idx , __lua_lib_luautf8_Utf8.len ( key ) ) ) ;
idx = nil ;
end ;
end ;
if ( ret.length > 1 ) then
local idx = 1 ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( idx ~= nil ) do
local newidx = 0 ;
if ( __lua_lib_luautf8_Utf8.len ( " . " ) > 0 ) then
newidx = __lua_lib_luautf8_Utf8.find ( value , " . " , idx , true ) ;
else
if ( idx >= __lua_lib_luautf8_Utf8.len ( value ) ) then
newidx = nil ;
else
newidx = idx + 1 ;
end ;
end ;
if ( newidx ~= nil ) then
local match = __lua_lib_luautf8_Utf8.sub ( value , idx , newidx - 1 ) ;
ret : push ( match ) ;
idx = newidx + __lua_lib_luautf8_Utf8.len ( " . " ) ;
else
ret : push ( __lua_lib_luautf8_Utf8.sub ( value , idx , __lua_lib_luautf8_Utf8.len ( value ) ) ) ;
idx = nil ;
end ;
end ;
tmp = ret.length > 1 ;
else
tmp = false ;
end ;
if ( tmp ) then
local value = __xrfragment_XRF.new ( key , _hx_bit.bor ( _hx_bit.bor ( _hx_bit.bor ( __xrfragment_XRF.ASSET , __xrfragment_XRF.PV_OVERRIDE ) , __xrfragment_XRF.T_STRING ) , __xrfragment_XRF.PROP_BIND ) ) ;
2023-06-27 09:43:10 +02:00
store [ key ] = value ;
2023-06-07 17:42:21 +02:00
do return true end ;
end ;
2023-06-27 09:43:10 +02:00
local ret = Frag_h [ key ] ;
if ( ret == __haxe_ds_StringMap.tnull ) then
ret = nil ;
end ;
local v = __xrfragment_XRF.new ( key , ret ) ;
2023-06-07 17:42:21 +02:00
if ( Frag_h [ key ] ~= nil ) then
if ( not v : validate ( value ) ) then
2023-08-24 13:36:41 +02:00
__haxe_Log.trace ( Std.string ( Std.string ( Std.string ( Std.string ( " ⚠ fragment ' " ) .. Std.string ( key ) ) .. Std.string ( " ' has incompatible value ( " ) ) .. Std.string ( value ) ) .. Std.string ( " ) " ) , _hx_o ( { __fields__ = { fileName = true , lineNumber = true , className = true , methodName = true } , fileName = " src/xrfragment/Parser.hx " , lineNumber = 83 , className = " xrfragment.Parser " , methodName = " parse " } ) ) ;
2023-06-07 17:42:21 +02:00
do return false end ;
end ;
2023-06-27 09:43:10 +02:00
store [ key ] = v ;
2023-06-07 17:42:21 +02:00
if ( __xrfragment_Parser.debug ) then
2023-08-24 13:36:41 +02:00
__haxe_Log.trace ( Std.string ( Std.string ( Std.string ( " ✔ " ) .. Std.string ( key ) ) .. Std.string ( " : " ) ) .. Std.string ( v.string ) , _hx_o ( { __fields__ = { fileName = true , lineNumber = true , className = true , methodName = true } , fileName = " src/xrfragment/Parser.hx " , lineNumber = 87 , className = " xrfragment.Parser " , methodName = " parse " } ) ) ;
2023-06-07 17:42:21 +02:00
end ;
2023-06-27 09:43:10 +02:00
else
2023-06-27 12:15:04 +02:00
if ( __lua_Boot.__instanceof ( value , String ) ) then
v : guessType ( v , value ) ;
end ;
2023-09-14 10:20:10 +02:00
v.noXRF = true ;
store [ key ] = v ;
2023-06-07 17:42:21 +02:00
end ;
do return true end ;
end
__xrfragment_Query.new = function ( str )
local self = _hx_new ( __xrfragment_Query.prototype )
__xrfragment_Query.super ( self , str )
return self
end
__xrfragment_Query.super = function ( self , str )
self.isNumber = EReg.new ( " ^[0-9 \\ .]+$ " , " " ) ;
self.isClass = EReg.new ( " ^[-]?class$ " , " " ) ;
2023-06-22 08:48:52 +02:00
self.isRoot = EReg.new ( " ^[-]?/ " , " " ) ;
2023-06-07 17:42:21 +02:00
self.isExclude = EReg.new ( " ^- " , " " ) ;
self.isProp = EReg.new ( " ^.*:[><=!]? " , " " ) ;
self.q = _hx_e ( ) ;
self.str = " " ;
if ( str ~= nil ) then
self : parse ( str ) ;
end ;
end
_hx_exports [ " xrfragment " ] [ " Query " ] = __xrfragment_Query
__xrfragment_Query.__name__ = true
__xrfragment_Query.prototype = _hx_e ( ) ;
__xrfragment_Query.prototype . toObject = function ( self )
do return self.q end
end
__xrfragment_Query.prototype . expandAliases = function ( self , token )
local classAlias = EReg.new ( " ^(-)? \\ . " , " " ) ;
if ( classAlias : match ( token ) ) then
do return StringTools.replace ( token , " . " , " class: " ) end ;
else
do return token end ;
end ;
end
__xrfragment_Query.prototype . get = function ( self )
do return self.q end
end
2023-06-27 09:43:10 +02:00
__xrfragment_Query.prototype . parse = function ( self , str )
2023-06-07 17:42:21 +02:00
local _gthis = self ;
local idx = 1 ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( idx ~= nil ) do
local newidx = 0 ;
if ( __lua_lib_luautf8_Utf8.len ( " " ) > 0 ) then
newidx = __lua_lib_luautf8_Utf8.find ( str , " " , idx , true ) ;
else
if ( idx >= __lua_lib_luautf8_Utf8.len ( str ) ) then
newidx = nil ;
else
newidx = idx + 1 ;
end ;
end ;
if ( newidx ~= nil ) then
local match = __lua_lib_luautf8_Utf8.sub ( str , idx , newidx - 1 ) ;
ret : push ( match ) ;
idx = newidx + __lua_lib_luautf8_Utf8.len ( " " ) ;
else
ret : push ( __lua_lib_luautf8_Utf8.sub ( str , idx , __lua_lib_luautf8_Utf8.len ( str ) ) ) ;
idx = nil ;
end ;
end ;
local token = ret ;
local q = _hx_e ( ) ;
local process = function ( str , prefix )
if ( prefix == nil ) then
prefix = " " ;
end ;
str = StringTools.trim ( str ) ;
local idx = 1 ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( idx ~= nil ) do
local newidx = 0 ;
if ( __lua_lib_luautf8_Utf8.len ( " : " ) > 0 ) then
newidx = __lua_lib_luautf8_Utf8.find ( str , " : " , idx , true ) ;
else
if ( idx >= __lua_lib_luautf8_Utf8.len ( str ) ) then
newidx = nil ;
else
newidx = idx + 1 ;
end ;
end ;
if ( newidx ~= nil ) then
local match = __lua_lib_luautf8_Utf8.sub ( str , idx , newidx - 1 ) ;
ret : push ( match ) ;
idx = newidx + __lua_lib_luautf8_Utf8.len ( " : " ) ;
else
ret : push ( __lua_lib_luautf8_Utf8.sub ( str , idx , __lua_lib_luautf8_Utf8.len ( str ) ) ) ;
idx = nil ;
end ;
end ;
local k = ret [ 0 ] ;
local idx = 1 ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( idx ~= nil ) do
local newidx = 0 ;
if ( __lua_lib_luautf8_Utf8.len ( " : " ) > 0 ) then
newidx = __lua_lib_luautf8_Utf8.find ( str , " : " , idx , true ) ;
else
if ( idx >= __lua_lib_luautf8_Utf8.len ( str ) ) then
newidx = nil ;
else
newidx = idx + 1 ;
end ;
end ;
if ( newidx ~= nil ) then
local match = __lua_lib_luautf8_Utf8.sub ( str , idx , newidx - 1 ) ;
ret : push ( match ) ;
idx = newidx + __lua_lib_luautf8_Utf8.len ( " : " ) ;
else
ret : push ( __lua_lib_luautf8_Utf8.sub ( str , idx , __lua_lib_luautf8_Utf8.len ( str ) ) ) ;
idx = nil ;
end ;
end ;
local v = ret [ 1 ] ;
local filter = _hx_e ( ) ;
if ( Reflect.field ( q , Std.string ( prefix ) .. Std.string ( k ) ) ) then
filter = Reflect.field ( q , Std.string ( prefix ) .. Std.string ( k ) ) ;
end ;
local value = ( function ( )
local _hx_1
if ( Reflect.field ( filter , " rules " ) ~= nil ) then
_hx_1 = Reflect.field ( filter , " rules " ) ; else
_hx_1 = Array.new ( ) ; end
return _hx_1
end ) ( ) ;
filter.rules = value ;
if ( _gthis.isProp : match ( str ) ) then
local oper = " " ;
local startIndex = nil ;
if ( startIndex == nil ) then
startIndex = 1 ;
else
startIndex = startIndex + 1 ;
end ;
local r = __lua_lib_luautf8_Utf8.find ( str , " * " , startIndex , true ) ;
if ( ( function ( )
local _hx_2
if ( ( r ~= nil ) and ( r > 0 ) ) then
_hx_2 = r - 1 ; else
_hx_2 = - 1 ; end
return _hx_2
end ) ( ) ~= - 1 ) then
oper = " * " ;
end ;
local startIndex = nil ;
if ( startIndex == nil ) then
startIndex = 1 ;
else
startIndex = startIndex + 1 ;
end ;
local r = __lua_lib_luautf8_Utf8.find ( str , " > " , startIndex , true ) ;
if ( ( function ( )
local _hx_3
if ( ( r ~= nil ) and ( r > 0 ) ) then
_hx_3 = r - 1 ; else
_hx_3 = - 1 ; end
return _hx_3
end ) ( ) ~= - 1 ) then
oper = " > " ;
end ;
local startIndex = nil ;
if ( startIndex == nil ) then
startIndex = 1 ;
else
startIndex = startIndex + 1 ;
end ;
local r = __lua_lib_luautf8_Utf8.find ( str , " < " , startIndex , true ) ;
if ( ( function ( )
local _hx_4
if ( ( r ~= nil ) and ( r > 0 ) ) then
_hx_4 = r - 1 ; else
_hx_4 = - 1 ; end
return _hx_4
end ) ( ) ~= - 1 ) then
oper = " < " ;
end ;
local startIndex = nil ;
if ( startIndex == nil ) then
startIndex = 1 ;
else
startIndex = startIndex + 1 ;
end ;
local r = __lua_lib_luautf8_Utf8.find ( str , " >= " , startIndex , true ) ;
if ( ( function ( )
local _hx_5
if ( ( r ~= nil ) and ( r > 0 ) ) then
_hx_5 = r - 1 ; else
_hx_5 = - 1 ; end
return _hx_5
end ) ( ) ~= - 1 ) then
oper = " >= " ;
end ;
local startIndex = nil ;
if ( startIndex == nil ) then
startIndex = 1 ;
else
startIndex = startIndex + 1 ;
end ;
local r = __lua_lib_luautf8_Utf8.find ( str , " <= " , startIndex , true ) ;
if ( ( function ( )
local _hx_6
if ( ( r ~= nil ) and ( r > 0 ) ) then
_hx_6 = r - 1 ; else
_hx_6 = - 1 ; end
return _hx_6
end ) ( ) ~= - 1 ) then
oper = " <= " ;
end ;
if ( _gthis.isExclude : match ( k ) ) then
oper = " != " ;
local pos = 1 ;
local len = nil ;
if ( ( len == nil ) or ( len > ( pos + __lua_lib_luautf8_Utf8.len ( k ) ) ) ) then
len = __lua_lib_luautf8_Utf8.len ( k ) ;
else
if ( len < 0 ) then
len = __lua_lib_luautf8_Utf8.len ( k ) + len ;
end ;
end ;
if ( pos < 0 ) then
pos = __lua_lib_luautf8_Utf8.len ( k ) + pos ;
end ;
if ( pos < 0 ) then
pos = 0 ;
end ;
k = __lua_lib_luautf8_Utf8.sub ( k , pos + 1 , pos + len ) ;
else
2023-06-20 14:59:25 +02:00
local pos = __lua_lib_luautf8_Utf8.len ( oper ) ;
local len = nil ;
if ( ( len == nil ) or ( len > ( pos + __lua_lib_luautf8_Utf8.len ( v ) ) ) ) then
len = __lua_lib_luautf8_Utf8.len ( v ) ;
2023-06-07 17:42:21 +02:00
else
2023-06-20 14:59:25 +02:00
if ( len < 0 ) then
len = __lua_lib_luautf8_Utf8.len ( v ) + len ;
2023-06-07 17:42:21 +02:00
end ;
end ;
2023-06-20 14:59:25 +02:00
if ( pos < 0 ) then
pos = __lua_lib_luautf8_Utf8.len ( v ) + pos ;
end ;
if ( pos < 0 ) then
pos = 0 ;
end ;
v = __lua_lib_luautf8_Utf8.sub ( v , pos + 1 , pos + len ) ;
2023-06-07 17:42:21 +02:00
end ;
if ( __lua_lib_luautf8_Utf8.len ( oper ) == 0 ) then
oper = " = " ;
end ;
if ( _gthis.isClass : match ( k ) ) then
local value = oper ~= " != " ;
filter [ Std.string ( prefix ) .. Std.string ( k ) ] = value ;
q [ v ] = filter ;
else
local rule = _hx_e ( ) ;
if ( _gthis.isNumber : match ( v ) ) then
local value = Std.parseFloat ( v ) ;
rule [ oper ] = value ;
else
rule [ oper ] = v ;
end ;
Reflect.field ( filter , " rules " ) : push ( rule ) ;
q [ k ] = filter ;
end ;
do return end ;
else
2023-06-22 08:48:52 +02:00
local value = ( function ( )
local _hx_7
if ( _gthis.isExclude : match ( str ) ) then
_hx_7 = false ; else
_hx_7 = true ; end
return _hx_7
end ) ( ) ;
filter.id = value ;
local value = _gthis.isRoot : match ( str ) ;
filter.root = value ;
if ( _gthis.isExclude : match ( str ) ) then
2023-06-20 14:59:25 +02:00
local pos = 1 ;
local len = nil ;
2023-06-22 08:48:52 +02:00
if ( ( len == nil ) or ( len > ( pos + __lua_lib_luautf8_Utf8.len ( str ) ) ) ) then
len = __lua_lib_luautf8_Utf8.len ( str ) ;
2023-06-20 14:59:25 +02:00
else
if ( len < 0 ) then
2023-06-22 08:48:52 +02:00
len = __lua_lib_luautf8_Utf8.len ( str ) + len ;
2023-06-20 14:59:25 +02:00
end ;
end ;
if ( pos < 0 ) then
2023-06-22 08:48:52 +02:00
pos = __lua_lib_luautf8_Utf8.len ( str ) + pos ;
2023-06-20 14:59:25 +02:00
end ;
if ( pos < 0 ) then
pos = 0 ;
end ;
2023-06-22 08:48:52 +02:00
str = __lua_lib_luautf8_Utf8.sub ( str , pos + 1 , pos + len ) ;
2023-06-20 14:59:25 +02:00
end ;
2023-06-22 08:48:52 +02:00
if ( _gthis.isRoot : match ( str ) ) then
2023-06-07 17:42:21 +02:00
local pos = 1 ;
local len = nil ;
if ( ( len == nil ) or ( len > ( pos + __lua_lib_luautf8_Utf8.len ( str ) ) ) ) then
len = __lua_lib_luautf8_Utf8.len ( str ) ;
else
if ( len < 0 ) then
len = __lua_lib_luautf8_Utf8.len ( str ) + len ;
end ;
end ;
if ( pos < 0 ) then
pos = __lua_lib_luautf8_Utf8.len ( str ) + pos ;
end ;
if ( pos < 0 ) then
pos = 0 ;
end ;
2023-06-22 08:48:52 +02:00
str = __lua_lib_luautf8_Utf8.sub ( str , pos + 1 , pos + len ) ;
2023-06-07 17:42:21 +02:00
end ;
2023-06-22 08:48:52 +02:00
q [ str ] = filter ;
2023-06-07 17:42:21 +02:00
end ;
end ;
local _g = 0 ;
local _g1 = token.length ;
while ( _g < _g1 ) do
_g = _g + 1 ;
local i = _g - 1 ;
process ( self : expandAliases ( token [ i ] ) ) ;
end ;
self.q = q do return self.q end
end
__xrfragment_Query.prototype . test = function ( self , obj )
local qualify = false ;
local _g = 0 ;
local _g1 = Reflect.fields ( obj ) ;
while ( _g < _g1.length ) do
local k = _g1 [ _g ] ;
_g = _g + 1 ;
local v = Std.string ( Reflect.field ( obj , k ) ) ;
if ( self : testProperty ( k , v ) ) then
qualify = true ;
end ;
end ;
local _g = 0 ;
local _g1 = Reflect.fields ( obj ) ;
while ( _g < _g1.length ) do
local k = _g1 [ _g ] ;
_g = _g + 1 ;
local v = Std.string ( Reflect.field ( obj , k ) ) ;
if ( self : testProperty ( k , v , true ) ) then
qualify = false ;
end ;
end ;
do return qualify end
end
__xrfragment_Query.prototype . testProperty = function ( self , property , value , exclude )
local conds = 0 ;
local fails = 0 ;
local qualify = 0 ;
local testprop = function ( expr )
conds = conds + 1 ;
fails = fails + ( function ( )
local _hx_1
if ( expr ) then
_hx_1 = 0 ; else
_hx_1 = 1 ; end
return _hx_1
end ) ( ) ;
do return expr end ;
end ;
if ( Reflect.field ( self.q , value ) ~= nil ) then
local v = Reflect.field ( self.q , value ) ;
if ( Reflect.field ( v , property ) ~= nil ) then
do return Reflect.field ( v , property ) end ;
end ;
end ;
local _g = 0 ;
local _g1 = Reflect.fields ( self.q ) ;
local _hx_continue_1 = false ;
while ( _g < _g1.length ) do repeat
local k = _g1 [ _g ] ;
_g = _g + 1 ;
local filter = Reflect.field ( self.q , k ) ;
if ( filter.rules == nil ) then
break ;
end ;
local rules = filter.rules ;
local _g = 0 ;
while ( _g < rules.length ) do
local rule = rules [ _g ] ;
_g = _g + 1 ;
if ( exclude ) then
if ( ( ( Reflect.field ( rule , " != " ) ~= nil ) and testprop ( Std.string ( value ) == Std.string ( Reflect.field ( rule , " != " ) ) ) ) and exclude ) then
qualify = qualify + 1 ;
end ;
else
if ( ( Reflect.field ( rule , " * " ) ~= nil ) and testprop ( Std.parseFloat ( value ) ~= nil ) ) then
qualify = qualify + 1 ;
end ;
if ( ( Reflect.field ( rule , " > " ) ~= nil ) and testprop ( Std.parseFloat ( value ) > Std.parseFloat ( Reflect.field ( rule , " > " ) ) ) ) then
qualify = qualify + 1 ;
end ;
if ( ( Reflect.field ( rule , " < " ) ~= nil ) and testprop ( Std.parseFloat ( value ) < Std.parseFloat ( Reflect.field ( rule , " < " ) ) ) ) then
qualify = qualify + 1 ;
end ;
if ( ( Reflect.field ( rule , " >= " ) ~= nil ) and testprop ( Std.parseFloat ( value ) >= Std.parseFloat ( Reflect.field ( rule , " >= " ) ) ) ) then
qualify = qualify + 1 ;
end ;
if ( ( Reflect.field ( rule , " <= " ) ~= nil ) and testprop ( Std.parseFloat ( value ) <= Std.parseFloat ( Reflect.field ( rule , " <= " ) ) ) ) then
qualify = qualify + 1 ;
end ;
if ( ( Reflect.field ( rule , " = " ) ~= nil ) and ( testprop ( value == Reflect.field ( rule , " = " ) ) or testprop ( Std.parseFloat ( value ) == Std.parseFloat ( Reflect.field ( rule , " = " ) ) ) ) ) then
qualify = qualify + 1 ;
end ;
end ;
end ; until true
if _hx_continue_1 then
_hx_continue_1 = false ;
break ;
end ;
end ;
do return qualify > 0 end
end
__xrfragment_Query.prototype . __class__ = __xrfragment_Query
__xrfragment_URI.new = { }
_hx_exports [ " xrfragment " ] [ " URI " ] = __xrfragment_URI
__xrfragment_URI.__name__ = true
__xrfragment_URI.parse = function ( url , filter )
local store = _hx_e ( ) ;
2023-06-10 14:43:07 +02:00
local tmp ;
if ( url ~= nil ) then
local startIndex = nil ;
if ( startIndex == nil ) then
startIndex = 1 ;
else
startIndex = startIndex + 1 ;
end ;
local r = __lua_lib_luautf8_Utf8.find ( url , " # " , startIndex , true ) ;
tmp = ( function ( )
local _hx_1
if ( ( r ~= nil ) and ( r > 0 ) ) then
_hx_1 = r - 1 ; else
_hx_1 = - 1 ; end
return _hx_1
end ) ( ) == - 1 ;
2023-06-07 17:42:21 +02:00
else
2023-06-10 14:43:07 +02:00
tmp = true ;
2023-06-07 17:42:21 +02:00
end ;
2023-06-10 14:43:07 +02:00
if ( tmp ) then
2023-06-07 17:42:21 +02:00
do return store end ;
end ;
local idx = 1 ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( idx ~= nil ) do
local newidx = 0 ;
if ( __lua_lib_luautf8_Utf8.len ( " # " ) > 0 ) then
newidx = __lua_lib_luautf8_Utf8.find ( url , " # " , idx , true ) ;
else
if ( idx >= __lua_lib_luautf8_Utf8.len ( url ) ) then
newidx = nil ;
else
newidx = idx + 1 ;
end ;
end ;
if ( newidx ~= nil ) then
local match = __lua_lib_luautf8_Utf8.sub ( url , idx , newidx - 1 ) ;
ret : push ( match ) ;
idx = newidx + __lua_lib_luautf8_Utf8.len ( " # " ) ;
else
ret : push ( __lua_lib_luautf8_Utf8.sub ( url , idx , __lua_lib_luautf8_Utf8.len ( url ) ) ) ;
idx = nil ;
end ;
end ;
local fragment = ret ;
local _this = fragment [ 1 ] ;
local idx = 1 ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( idx ~= nil ) do
local newidx = 0 ;
if ( __lua_lib_luautf8_Utf8.len ( " & " ) > 0 ) then
newidx = __lua_lib_luautf8_Utf8.find ( _this , " & " , idx , true ) ;
else
if ( idx >= __lua_lib_luautf8_Utf8.len ( _this ) ) then
newidx = nil ;
else
newidx = idx + 1 ;
end ;
end ;
if ( newidx ~= nil ) then
local match = __lua_lib_luautf8_Utf8.sub ( _this , idx , newidx - 1 ) ;
ret : push ( match ) ;
idx = newidx + __lua_lib_luautf8_Utf8.len ( " & " ) ;
else
ret : push ( __lua_lib_luautf8_Utf8.sub ( _this , idx , __lua_lib_luautf8_Utf8.len ( _this ) ) ) ;
idx = nil ;
end ;
end ;
local splitArray = ret ;
local _g = 0 ;
local _g1 = splitArray.length ;
while ( _g < _g1 ) do
_g = _g + 1 ;
local i = _g - 1 ;
local _this = splitArray [ i ] ;
local idx = 1 ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( idx ~= nil ) do
local newidx = 0 ;
if ( __lua_lib_luautf8_Utf8.len ( " = " ) > 0 ) then
newidx = __lua_lib_luautf8_Utf8.find ( _this , " = " , idx , true ) ;
else
if ( idx >= __lua_lib_luautf8_Utf8.len ( _this ) ) then
newidx = nil ;
else
newidx = idx + 1 ;
end ;
end ;
if ( newidx ~= nil ) then
local match = __lua_lib_luautf8_Utf8.sub ( _this , idx , newidx - 1 ) ;
ret : push ( match ) ;
idx = newidx + __lua_lib_luautf8_Utf8.len ( " = " ) ;
else
ret : push ( __lua_lib_luautf8_Utf8.sub ( _this , idx , __lua_lib_luautf8_Utf8.len ( _this ) ) ) ;
idx = nil ;
end ;
end ;
local splitByEqual = ret ;
local regexPlus = EReg.new ( " \\ + " , " g " ) ;
local key = splitByEqual [ 0 ] ;
local value = " " ;
if ( splitByEqual.length > 1 ) then
value = StringTools.urlDecode ( regexPlus : split ( splitByEqual [ 1 ] ) : join ( " " ) ) ;
end ;
local ok = __xrfragment_Parser.parse ( key , value , store ) ;
end ;
if ( ( filter ~= nil ) and ( filter ~= 0 ) ) then
local _g = 0 ;
local _g1 = Reflect.fields ( store ) ;
while ( _g < _g1.length ) do
local key = _g1 [ _g ] ;
_g = _g + 1 ;
local xrf = Reflect.field ( store , key ) ;
if ( not xrf : is ( filter ) ) then
Reflect.deleteField ( store , key ) ;
end ;
end ;
end ;
do return store end ;
end
__xrfragment_XRF.new = function ( _fragment , _flags )
local self = _hx_new ( __xrfragment_XRF.prototype )
__xrfragment_XRF.super ( self , _fragment , _flags )
return self
end
__xrfragment_XRF.super = function ( self , _fragment , _flags )
self.fragment = _fragment ;
self.flags = _flags ;
end
_hx_exports [ " xrfragment " ] [ " XRF " ] = __xrfragment_XRF
__xrfragment_XRF.__name__ = true
__xrfragment_XRF.set = function ( flag , flags )
do return _hx_bit.bor ( flags , flag ) end ;
end
__xrfragment_XRF.unset = function ( flag , flags )
do return _hx_bit.band ( flags , _hx_bit.bnot ( flag ) ) end ;
end
__xrfragment_XRF.prototype = _hx_e ( ) ;
__xrfragment_XRF.prototype . is = function ( self , flag )
do return ( _hx_bit.band ( self.flags , flag ) ) ~= 0 end
end
__xrfragment_XRF.prototype . validate = function ( self , value )
self : guessType ( self , value ) ;
local idx = 1 ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( idx ~= nil ) do
local newidx = 0 ;
if ( __lua_lib_luautf8_Utf8.len ( " | " ) > 0 ) then
newidx = __lua_lib_luautf8_Utf8.find ( value , " | " , idx , true ) ;
else
if ( idx >= __lua_lib_luautf8_Utf8.len ( value ) ) then
newidx = nil ;
else
newidx = idx + 1 ;
end ;
end ;
if ( newidx ~= nil ) then
local match = __lua_lib_luautf8_Utf8.sub ( value , idx , newidx - 1 ) ;
ret : push ( match ) ;
idx = newidx + __lua_lib_luautf8_Utf8.len ( " | " ) ;
else
ret : push ( __lua_lib_luautf8_Utf8.sub ( value , idx , __lua_lib_luautf8_Utf8.len ( value ) ) ) ;
idx = nil ;
end ;
end ;
if ( ret.length > 1 ) then
self.args = Array.new ( ) ;
local idx = 1 ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( idx ~= nil ) do
local newidx = 0 ;
if ( __lua_lib_luautf8_Utf8.len ( " | " ) > 0 ) then
newidx = __lua_lib_luautf8_Utf8.find ( value , " | " , idx , true ) ;
else
if ( idx >= __lua_lib_luautf8_Utf8.len ( value ) ) then
newidx = nil ;
else
newidx = idx + 1 ;
end ;
end ;
if ( newidx ~= nil ) then
local match = __lua_lib_luautf8_Utf8.sub ( value , idx , newidx - 1 ) ;
ret : push ( match ) ;
idx = newidx + __lua_lib_luautf8_Utf8.len ( " | " ) ;
else
ret : push ( __lua_lib_luautf8_Utf8.sub ( value , idx , __lua_lib_luautf8_Utf8.len ( value ) ) ) ;
idx = nil ;
end ;
end ;
local args = ret ;
local _g = 0 ;
local _g1 = args.length ;
while ( _g < _g1 ) do
_g = _g + 1 ;
local i = _g - 1 ;
local x = __xrfragment_XRF.new ( self.fragment , self.flags ) ;
self : guessType ( x , args [ i ] ) ;
self.args : push ( x ) ;
end ;
end ;
if ( self.fragment == " q " ) then
self.query = __xrfragment_Query.new ( value ) : get ( ) ;
end ;
local ok = true ;
if ( not __lua_Boot.__instanceof ( self.args , Array ) ) then
if ( self : is ( __xrfragment_XRF.T_VECTOR3 ) and not ( ( __lua_Boot.__instanceof ( self.x , Float ) and __lua_Boot.__instanceof ( self.y , Float ) ) and __lua_Boot.__instanceof ( self.z , Float ) ) ) then
ok = false ;
end ;
if ( self : is ( __xrfragment_XRF.T_VECTOR2 ) and not ( __lua_Boot.__instanceof ( self.x , Float ) and __lua_Boot.__instanceof ( self.y , Float ) ) ) then
ok = false ;
end ;
if ( self : is ( __xrfragment_XRF.T_INT ) and not __lua_Boot.__instanceof ( self.int , Int ) ) then
ok = false ;
end ;
end ;
do return ok end
end
__xrfragment_XRF.prototype . guessType = function ( self , v , str )
v.string = str ;
local idx = 1 ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( idx ~= nil ) do
local newidx = 0 ;
if ( __lua_lib_luautf8_Utf8.len ( " , " ) > 0 ) then
newidx = __lua_lib_luautf8_Utf8.find ( str , " , " , idx , true ) ;
else
if ( idx >= __lua_lib_luautf8_Utf8.len ( str ) ) then
newidx = nil ;
else
newidx = idx + 1 ;
end ;
end ;
if ( newidx ~= nil ) then
local match = __lua_lib_luautf8_Utf8.sub ( str , idx , newidx - 1 ) ;
ret : push ( match ) ;
idx = newidx + __lua_lib_luautf8_Utf8.len ( " , " ) ;
else
ret : push ( __lua_lib_luautf8_Utf8.sub ( str , idx , __lua_lib_luautf8_Utf8.len ( str ) ) ) ;
idx = nil ;
end ;
end ;
if ( ret.length > 1 ) then
local idx = 1 ;
local ret = _hx_tab_array ( { } , 0 ) ;
while ( idx ~= nil ) do
local newidx = 0 ;
if ( __lua_lib_luautf8_Utf8.len ( " , " ) > 0 ) then
newidx = __lua_lib_luautf8_Utf8.find ( str , " , " , idx , true ) ;
else
if ( idx >= __lua_lib_luautf8_Utf8.len ( str ) ) then
newidx = nil ;
else
newidx = idx + 1 ;
end ;
end ;
if ( newidx ~= nil ) then
local match = __lua_lib_luautf8_Utf8.sub ( str , idx , newidx - 1 ) ;
ret : push ( match ) ;
idx = newidx + __lua_lib_luautf8_Utf8.len ( " , " ) ;
else
ret : push ( __lua_lib_luautf8_Utf8.sub ( str , idx , __lua_lib_luautf8_Utf8.len ( str ) ) ) ;
idx = nil ;
end ;
end ;
local xyz = ret ;
if ( xyz.length > 0 ) then
v.x = Std.parseFloat ( xyz [ 0 ] ) ;
end ;
if ( xyz.length > 1 ) then
v.y = Std.parseFloat ( xyz [ 1 ] ) ;
end ;
if ( xyz.length > 2 ) then
v.z = Std.parseFloat ( xyz [ 2 ] ) ;
end ;
end ;
if ( __xrfragment_XRF.isColor : match ( str ) ) then
v.color = str ;
end ;
if ( __xrfragment_XRF.isFloat : match ( str ) ) then
v.float = Std.parseFloat ( str ) ;
end ;
if ( __xrfragment_XRF.isInt : match ( str ) ) then
v.int = Std.parseInt ( str ) ;
end ;
end
__xrfragment_XRF.prototype . __class__ = __xrfragment_XRF
-- require this for lua 5.1
pcall ( require , ' bit ' )
if bit then
_hx_bit_raw = bit
_hx_bit = setmetatable ( { } , { __index = _hx_bit_raw } ) ;
else
_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
-- see https://github.com/HaxeFoundation/haxe/issues/8849
_hx_bit.bor = function ( ... ) return _hx_bit_clamp ( _hx_bit_raw.bor ( ... ) ) end ;
_hx_bit.band = function ( ... ) return _hx_bit_clamp ( _hx_bit_raw.band ( ... ) ) end ;
_hx_bit.arshift = function ( ... ) return _hx_bit_clamp ( _hx_bit_raw.arshift ( ... ) ) end ;
if _hx_bit_raw then
_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_raw.band ( v , 2147483647 ) - math.abs ( _hx_bit_raw.band ( v , 2147483648 ) )
end
else
_hx_bit_clamp = function ( v )
if v < - 2147483648 then
return - 2147483648
elseif v > 2147483647 then
return 2147483647
elseif v > 0 then
return _G.math . floor ( v )
else
return _G.math . ceil ( v )
end
end
end ;
_hx_array_mt.__index = Array.prototype
local _hx_static_init = function ( )
if ( __lua_lib_lrexlib_Rex == nil ) then
_G.error ( __haxe_Exception.thrown ( " Rex is missing. Please install lrexlib-pcre. " ) , 0 ) ;
end ;
String.__name__ = true ;
Array.__name__ = true ; EReg.FLAGS = __lua_lib_lrexlib_Rex.flags ( ) ;
__haxe_ds_StringMap.tnull = ( { } ) ;
__xrfragment_Parser.error = " " ;
__xrfragment_Parser.debug = false ;
__xrfragment_XRF.ASSET = 1 ;
__xrfragment_XRF.PROP_BIND = 2 ;
__xrfragment_XRF.QUERY_OPERATOR = 4 ;
__xrfragment_XRF.PROMPT = 8 ;
__xrfragment_XRF.ROUNDROBIN = 16 ;
__xrfragment_XRF.NAVIGATOR = 32 ;
2023-08-15 18:27:26 +02:00
__xrfragment_XRF.METADATA = 64 ;
2023-06-07 17:42:21 +02:00
__xrfragment_XRF.PV_OVERRIDE = 128 ;
__xrfragment_XRF.PV_EXECUTE = 256 ;
__xrfragment_XRF.T_COLOR = 8192 ;
__xrfragment_XRF.T_INT = 16384 ;
__xrfragment_XRF.T_FLOAT = 32768 ;
__xrfragment_XRF.T_VECTOR2 = 65536 ;
__xrfragment_XRF.T_VECTOR3 = 131072 ;
__xrfragment_XRF.T_URL = 262144 ;
__xrfragment_XRF.T_PREDEFINED_VIEW = 524288 ;
__xrfragment_XRF.T_STRING = 1048576 ;
__xrfragment_XRF.T_STRING_OBJ = 2097152 ;
__xrfragment_XRF.T_STRING_OBJ_PROP = 4194304 ;
__xrfragment_XRF.isColor = EReg.new ( " ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ " , " " ) ;
__xrfragment_XRF.isInt = EReg.new ( " ^[0-9]+$ " , " " ) ;
__xrfragment_XRF.isFloat = EReg.new ( " ^[0-9]+ \\ .[0-9]+$ " , " " ) ;
__xrfragment_XRF.isVector = EReg.new ( " ([,]+| \\ w) " , " " ) ;
__xrfragment_XRF.isUrl = EReg.new ( " (://)? \\ ..* " , " " ) ;
__xrfragment_XRF.isUrlOrPretypedView = EReg.new ( " (^#|://)? \\ ..* " , " " ) ;
__xrfragment_XRF.isString = EReg.new ( " .* " , " " ) ;
end
_hx_print = print or ( function ( ) end )
_hx_table = { }
_hx_table.pack = _G.table . pack or function ( ... )
return { ... }
end
_hx_table.unpack = _G.table . unpack or _G.unpack
_hx_table.maxn = _G.table . maxn or function ( t )
local maxn = 0 ;
for i in pairs ( t ) do
maxn = type ( i ) == ' number ' and i > maxn and i or maxn
end
return maxn
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 ( ) ;
return _hx_exports