xrfragment/dist/xrfragment.py

2722 lines
105 KiB
Python

# Generated by Haxe 4.3.3
# coding: utf-8
import sys
import math as python_lib_Math
import math as Math
import inspect as python_lib_Inspect
import re as python_lib_Re
import sys as python_lib_Sys
import functools as python_lib_Functools
import traceback as python_lib_Traceback
from io import StringIO as python_lib_io_StringIO
import urllib.parse as python_lib_urllib_Parse
class _hx_AnonObject:
_hx_disable_getattr = False
def __init__(self, fields):
self.__dict__ = fields
def __repr__(self):
return repr(self.__dict__)
def __contains__(self, item):
return item in self.__dict__
def __getitem__(self, item):
return self.__dict__[item]
def __getattr__(self, name):
if (self._hx_disable_getattr):
raise AttributeError('field does not exist')
else:
return None
def _hx_hasattr(self,field):
self._hx_disable_getattr = True
try:
getattr(self, field)
self._hx_disable_getattr = False
return True
except AttributeError:
self._hx_disable_getattr = False
return False
class Enum:
_hx_class_name = "Enum"
__slots__ = ("tag", "index", "params")
_hx_fields = ["tag", "index", "params"]
_hx_methods = ["__str__"]
def __init__(self,tag,index,params):
self.tag = tag
self.index = index
self.params = params
def __str__(self):
if (self.params is None):
return self.tag
else:
return self.tag + '(' + (', '.join(str(v) for v in self.params)) + ')'
Enum._hx_class = Enum
class Class: pass
class EReg:
_hx_class_name = "EReg"
__slots__ = ("pattern", "matchObj", "_hx_global")
_hx_fields = ["pattern", "matchObj", "global"]
_hx_methods = ["split", "replace"]
def __init__(self,r,opt):
self.matchObj = None
self._hx_global = False
options = 0
_g = 0
_g1 = len(opt)
while (_g < _g1):
i = _g
_g = (_g + 1)
c = (-1 if ((i >= len(opt))) else ord(opt[i]))
if (c == 109):
options = (options | python_lib_Re.M)
if (c == 105):
options = (options | python_lib_Re.I)
if (c == 115):
options = (options | python_lib_Re.S)
if (c == 117):
options = (options | python_lib_Re.U)
if (c == 103):
self._hx_global = True
self.pattern = python_lib_Re.compile(r,options)
def split(self,s):
if self._hx_global:
ret = []
lastEnd = 0
x = python_HaxeIterator(python_lib_Re.finditer(self.pattern,s))
while x.hasNext():
x1 = x.next()
x2 = HxString.substring(s,lastEnd,x1.start())
ret.append(x2)
lastEnd = x1.end()
x = HxString.substr(s,lastEnd,None)
ret.append(x)
return ret
else:
self.matchObj = python_lib_Re.search(self.pattern,s)
if (self.matchObj is None):
return [s]
else:
return [HxString.substring(s,0,self.matchObj.start()), HxString.substr(s,self.matchObj.end(),None)]
def replace(self,s,by):
_this = by.split("$$")
by = "_hx_#repl#__".join([python_Boot.toString1(x1,'') for x1 in _this])
def _hx_local_0(x):
res = by
g = x.groups()
_g = 0
_g1 = len(g)
while (_g < _g1):
i = _g
_g = (_g + 1)
gs = g[i]
if (gs is None):
continue
delimiter = ("$" + HxOverrides.stringOrNull(str((i + 1))))
_this = (list(res) if ((delimiter == "")) else res.split(delimiter))
res = gs.join([python_Boot.toString1(x1,'') for x1 in _this])
_this = res.split("_hx_#repl#__")
res = "$".join([python_Boot.toString1(x1,'') for x1 in _this])
return res
replace = _hx_local_0
return python_lib_Re.sub(self.pattern,replace,s,(0 if (self._hx_global) else 1))
EReg._hx_class = EReg
class Reflect:
_hx_class_name = "Reflect"
__slots__ = ()
_hx_statics = ["field", "getProperty", "callMethod", "isObject", "deleteField", "copy"]
@staticmethod
def field(o,field):
return python_Boot.field(o,field)
@staticmethod
def getProperty(o,field):
if (o is None):
return None
if (field in python_Boot.keywords):
field = ("_hx_" + field)
elif ((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95))):
field = ("_hx_" + field)
if isinstance(o,_hx_AnonObject):
return Reflect.field(o,field)
tmp = Reflect.field(o,("get_" + ("null" if field is None else field)))
if ((tmp is not None) and callable(tmp)):
return tmp()
else:
return Reflect.field(o,field)
@staticmethod
def callMethod(o,func,args):
if callable(func):
return func(*args)
else:
return None
@staticmethod
def isObject(v):
_g = Type.typeof(v)
tmp = _g.index
if (tmp == 4):
return True
elif (tmp == 6):
_g1 = _g.params[0]
return True
else:
return False
@staticmethod
def deleteField(o,field):
if (field in python_Boot.keywords):
field = ("_hx_" + field)
elif ((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95))):
field = ("_hx_" + field)
if (not python_Boot.hasField(o,field)):
return False
o.__delattr__(field)
return True
@staticmethod
def copy(o):
if (o is None):
return None
o2 = _hx_AnonObject({})
_g = 0
_g1 = python_Boot.fields(o)
while (_g < len(_g1)):
f = (_g1[_g] if _g >= 0 and _g < len(_g1) else None)
_g = (_g + 1)
value = Reflect.field(o,f)
setattr(o2,(("_hx_" + f) if ((f in python_Boot.keywords)) else (("_hx_" + f) if (((((len(f) > 2) and ((ord(f[0]) == 95))) and ((ord(f[1]) == 95))) and ((ord(f[(len(f) - 1)]) != 95)))) else f)),value)
return o2
Reflect._hx_class = Reflect
class Std:
_hx_class_name = "Std"
__slots__ = ()
_hx_statics = ["isOfType", "string", "parseInt", "shortenPossibleNumber", "parseFloat"]
@staticmethod
def isOfType(v,t):
if ((v is None) and ((t is None))):
return False
if (t is None):
return False
if ((type(t) == type) and (t == Dynamic)):
return (v is not None)
isBool = isinstance(v,bool)
if (((type(t) == type) and (t == Bool)) and isBool):
return True
if ((((not isBool) and (not ((type(t) == type) and (t == Bool)))) and ((type(t) == type) and (t == Int))) and isinstance(v,int)):
return True
vIsFloat = isinstance(v,float)
tmp = None
tmp1 = None
if (((not isBool) and vIsFloat) and ((type(t) == type) and (t == Int))):
f = v
tmp1 = (((f != Math.POSITIVE_INFINITY) and ((f != Math.NEGATIVE_INFINITY))) and (not python_lib_Math.isnan(f)))
else:
tmp1 = False
if tmp1:
tmp1 = None
try:
tmp1 = int(v)
except BaseException as _g:
None
tmp1 = None
tmp = (v == tmp1)
else:
tmp = False
if ((tmp and ((v <= 2147483647))) and ((v >= -2147483648))):
return True
if (((not isBool) and ((type(t) == type) and (t == Float))) and isinstance(v,(float, int))):
return True
if ((type(t) == type) and (t == str)):
return isinstance(v,str)
isEnumType = ((type(t) == type) and (t == Enum))
if ((isEnumType and python_lib_Inspect.isclass(v)) and hasattr(v,"_hx_constructs")):
return True
if isEnumType:
return False
isClassType = ((type(t) == type) and (t == Class))
if ((((isClassType and (not isinstance(v,Enum))) and python_lib_Inspect.isclass(v)) and hasattr(v,"_hx_class_name")) and (not hasattr(v,"_hx_constructs"))):
return True
if isClassType:
return False
tmp = None
try:
tmp = isinstance(v,t)
except BaseException as _g:
None
tmp = False
if tmp:
return True
if python_lib_Inspect.isclass(t):
cls = t
loop = None
def _hx_local_1(intf):
f = (intf._hx_interfaces if (hasattr(intf,"_hx_interfaces")) else [])
if (f is not None):
_g = 0
while (_g < len(f)):
i = (f[_g] if _g >= 0 and _g < len(f) else None)
_g = (_g + 1)
if (i == cls):
return True
else:
l = loop(i)
if l:
return True
return False
else:
return False
loop = _hx_local_1
currentClass = v.__class__
result = False
while (currentClass is not None):
if loop(currentClass):
result = True
break
currentClass = python_Boot.getSuperClass(currentClass)
return result
else:
return False
@staticmethod
def string(s):
return python_Boot.toString1(s,"")
@staticmethod
def parseInt(x):
if (x is None):
return None
_hx_len = len(x)
index = 0
while (index < _hx_len):
if (not (x[index] in " \n\r\t\x0B\x0C")):
break
index = (index + 1)
isNegative = None
if (index < _hx_len):
sign = x[index]
if ((sign == "-") or ((sign == "+"))):
index = (index + 1)
isNegative = (sign == "-")
else:
isNegative = False
isHexadecimal = None
if ((index + 1) < _hx_len):
cur = x[index]
next = x[(index + 1)]
isHexadecimal = ((cur == "0") and (((next == "x") or ((next == "X")))))
else:
isHexadecimal = False
if isHexadecimal:
index = (index + 2)
cur = index
if isHexadecimal:
while (cur < _hx_len):
if (not (x[cur] in "0123456789abcdefABCDEF")):
break
cur = (cur + 1)
else:
while (cur < _hx_len):
if (not (x[cur] in "0123456789")):
break
cur = (cur + 1)
firstInvalidIndex = cur
if (index == firstInvalidIndex):
return None
result = int(HxString.substring(x,index,firstInvalidIndex),(16 if isHexadecimal else 10))
if isNegative:
return -result
else:
return result
@staticmethod
def shortenPossibleNumber(x):
r = ""
_g = 0
_g1 = len(x)
while (_g < _g1):
i = _g
_g = (_g + 1)
c = ("" if (((i < 0) or ((i >= len(x))))) else x[i])
_g2 = HxString.charCodeAt(c,0)
if (_g2 is None):
break
else:
_g3 = _g2
if (((((((((((_g3 == 57) or ((_g3 == 56))) or ((_g3 == 55))) or ((_g3 == 54))) or ((_g3 == 53))) or ((_g3 == 52))) or ((_g3 == 51))) or ((_g3 == 50))) or ((_g3 == 49))) or ((_g3 == 48))) or ((_g3 == 46))):
r = (("null" if r is None else r) + ("null" if c is None else c))
else:
break
return r
@staticmethod
def parseFloat(x):
try:
return float(x)
except BaseException as _g:
None
if (x is not None):
r1 = Std.shortenPossibleNumber(x)
if (r1 != x):
return Std.parseFloat(r1)
return Math.NaN
Std._hx_class = Std
class Float: pass
class Int: pass
class Bool: pass
class Dynamic: pass
class StringBuf:
_hx_class_name = "StringBuf"
__slots__ = ("b",)
_hx_fields = ["b"]
def __init__(self):
self.b = python_lib_io_StringIO()
StringBuf._hx_class = StringBuf
class StringTools:
_hx_class_name = "StringTools"
__slots__ = ()
_hx_statics = ["isSpace", "ltrim", "rtrim", "trim", "replace"]
@staticmethod
def isSpace(s,pos):
if (((len(s) == 0) or ((pos < 0))) or ((pos >= len(s)))):
return False
c = HxString.charCodeAt(s,pos)
if (not (((c > 8) and ((c < 14))))):
return (c == 32)
else:
return True
@staticmethod
def ltrim(s):
l = len(s)
r = 0
while ((r < l) and StringTools.isSpace(s,r)):
r = (r + 1)
if (r > 0):
return HxString.substr(s,r,(l - r))
else:
return s
@staticmethod
def rtrim(s):
l = len(s)
r = 0
while ((r < l) and StringTools.isSpace(s,((l - r) - 1))):
r = (r + 1)
if (r > 0):
return HxString.substr(s,0,(l - r))
else:
return s
@staticmethod
def trim(s):
return StringTools.ltrim(StringTools.rtrim(s))
@staticmethod
def replace(s,sub,by):
_this = (list(s) if ((sub == "")) else s.split(sub))
return by.join([python_Boot.toString1(x1,'') for x1 in _this])
StringTools._hx_class = StringTools
class ValueType(Enum):
__slots__ = ()
_hx_class_name = "ValueType"
_hx_constructs = ["TNull", "TInt", "TFloat", "TBool", "TObject", "TFunction", "TClass", "TEnum", "TUnknown"]
@staticmethod
def TClass(c):
return ValueType("TClass", 6, (c,))
@staticmethod
def TEnum(e):
return ValueType("TEnum", 7, (e,))
ValueType.TNull = ValueType("TNull", 0, ())
ValueType.TInt = ValueType("TInt", 1, ())
ValueType.TFloat = ValueType("TFloat", 2, ())
ValueType.TBool = ValueType("TBool", 3, ())
ValueType.TObject = ValueType("TObject", 4, ())
ValueType.TFunction = ValueType("TFunction", 5, ())
ValueType.TUnknown = ValueType("TUnknown", 8, ())
ValueType._hx_class = ValueType
class Type:
_hx_class_name = "Type"
__slots__ = ()
_hx_statics = ["typeof"]
@staticmethod
def typeof(v):
if (v is None):
return ValueType.TNull
elif isinstance(v,bool):
return ValueType.TBool
elif isinstance(v,int):
return ValueType.TInt
elif isinstance(v,float):
return ValueType.TFloat
elif isinstance(v,str):
return ValueType.TClass(str)
elif isinstance(v,list):
return ValueType.TClass(list)
elif (isinstance(v,_hx_AnonObject) or python_lib_Inspect.isclass(v)):
return ValueType.TObject
elif isinstance(v,Enum):
return ValueType.TEnum(v.__class__)
elif (isinstance(v,type) or hasattr(v,"_hx_class")):
return ValueType.TClass(v.__class__)
elif callable(v):
return ValueType.TFunction
else:
return ValueType.TUnknown
Type._hx_class = Type
class haxe_IMap:
_hx_class_name = "haxe.IMap"
__slots__ = ()
haxe_IMap._hx_class = haxe_IMap
class haxe_Exception(Exception):
_hx_class_name = "haxe.Exception"
__slots__ = ("_hx___nativeStack", "_hx___skipStack", "_hx___nativeException", "_hx___previousException")
_hx_fields = ["__nativeStack", "__skipStack", "__nativeException", "__previousException"]
_hx_methods = ["unwrap", "get_native"]
_hx_statics = ["caught", "thrown"]
_hx_interfaces = []
_hx_super = Exception
def __init__(self,message,previous = None,native = None):
self._hx___previousException = None
self._hx___nativeException = None
self._hx___nativeStack = None
self._hx___skipStack = 0
super().__init__(message)
self._hx___previousException = previous
if ((native is not None) and Std.isOfType(native,BaseException)):
self._hx___nativeException = native
self._hx___nativeStack = haxe_NativeStackTrace.exceptionStack()
else:
self._hx___nativeException = self
infos = python_lib_Traceback.extract_stack()
if (len(infos) != 0):
infos.pop()
infos.reverse()
self._hx___nativeStack = infos
def unwrap(self):
return self._hx___nativeException
def get_native(self):
return self._hx___nativeException
@staticmethod
def caught(value):
if Std.isOfType(value,haxe_Exception):
return value
elif Std.isOfType(value,BaseException):
return haxe_Exception(str(value),None,value)
else:
return haxe_ValueException(value,None,value)
@staticmethod
def thrown(value):
if Std.isOfType(value,haxe_Exception):
return value.get_native()
elif Std.isOfType(value,BaseException):
return value
else:
e = haxe_ValueException(value)
e._hx___skipStack = (e._hx___skipStack + 1)
return e
haxe_Exception._hx_class = haxe_Exception
class haxe_NativeStackTrace:
_hx_class_name = "haxe.NativeStackTrace"
__slots__ = ()
_hx_statics = ["saveStack", "exceptionStack"]
@staticmethod
def saveStack(exception):
pass
@staticmethod
def exceptionStack():
exc = python_lib_Sys.exc_info()
if (exc[2] is not None):
infos = python_lib_Traceback.extract_tb(exc[2])
infos.reverse()
return infos
else:
return []
haxe_NativeStackTrace._hx_class = haxe_NativeStackTrace
class haxe__Template_TemplateExpr(Enum):
__slots__ = ()
_hx_class_name = "haxe._Template.TemplateExpr"
_hx_constructs = ["OpVar", "OpExpr", "OpIf", "OpStr", "OpBlock", "OpForeach", "OpMacro"]
@staticmethod
def OpVar(v):
return haxe__Template_TemplateExpr("OpVar", 0, (v,))
@staticmethod
def OpExpr(expr):
return haxe__Template_TemplateExpr("OpExpr", 1, (expr,))
@staticmethod
def OpIf(expr,eif,eelse):
return haxe__Template_TemplateExpr("OpIf", 2, (expr,eif,eelse))
@staticmethod
def OpStr(str):
return haxe__Template_TemplateExpr("OpStr", 3, (str,))
@staticmethod
def OpBlock(l):
return haxe__Template_TemplateExpr("OpBlock", 4, (l,))
@staticmethod
def OpForeach(expr,loop):
return haxe__Template_TemplateExpr("OpForeach", 5, (expr,loop))
@staticmethod
def OpMacro(name,params):
return haxe__Template_TemplateExpr("OpMacro", 6, (name,params))
haxe__Template_TemplateExpr._hx_class = haxe__Template_TemplateExpr
class haxe_iterators_ArrayIterator:
_hx_class_name = "haxe.iterators.ArrayIterator"
__slots__ = ("array", "current")
_hx_fields = ["array", "current"]
_hx_methods = ["hasNext", "next"]
def __init__(self,array):
self.current = 0
self.array = array
def hasNext(self):
return (self.current < len(self.array))
def next(self):
def _hx_local_3():
def _hx_local_2():
_hx_local_0 = self
_hx_local_1 = _hx_local_0.current
_hx_local_0.current = (_hx_local_1 + 1)
return _hx_local_1
return python_internal_ArrayImpl._get(self.array, _hx_local_2())
return _hx_local_3()
haxe_iterators_ArrayIterator._hx_class = haxe_iterators_ArrayIterator
class haxe_Template:
_hx_class_name = "haxe.Template"
__slots__ = ("expr", "context", "macros", "stack", "buf")
_hx_fields = ["expr", "context", "macros", "stack", "buf"]
_hx_methods = ["execute", "resolve", "parseTokens", "parseBlock", "parse", "parseExpr", "makeConst", "makePath", "makeExpr", "skipSpaces", "makeExpr2", "run"]
_hx_statics = ["splitter", "expr_splitter", "expr_trim", "expr_int", "expr_float", "globals", "hxKeepArrayIterator"]
def __init__(self,_hx_str):
self.buf = None
self.stack = None
self.macros = None
self.context = None
self.expr = None
tokens = self.parseTokens(_hx_str)
self.expr = self.parseBlock(tokens)
if (not tokens.isEmpty()):
raise haxe_Exception.thrown((("Unexpected '" + Std.string(tokens.first().s)) + "'"))
def execute(self,context,macros = None):
self.macros = (_hx_AnonObject({}) if ((macros is None)) else macros)
self.context = context
self.stack = haxe_ds_List()
self.buf = StringBuf()
self.run(self.expr)
return self.buf.b.getvalue()
def resolve(self,v):
if (v == "__current__"):
return self.context
if Reflect.isObject(self.context):
value = Reflect.getProperty(self.context,v)
if ((value is not None) or python_Boot.hasField(self.context,v)):
return value
_g_head = self.stack.h
while (_g_head is not None):
val = _g_head.item
_g_head = _g_head.next
ctx = val
value = Reflect.getProperty(ctx,v)
if ((value is not None) or python_Boot.hasField(ctx,v)):
return value
return Reflect.field(haxe_Template.globals,v)
def parseTokens(self,data):
tokens = haxe_ds_List()
while True:
_this = haxe_Template.splitter
_this.matchObj = python_lib_Re.search(_this.pattern,data)
if (not ((_this.matchObj is not None))):
break
_this1 = haxe_Template.splitter
p_pos = _this1.matchObj.start()
p_len = (_this1.matchObj.end() - _this1.matchObj.start())
if (p_pos > 0):
tokens.add(_hx_AnonObject({'p': HxString.substr(data,0,p_pos), 's': True, 'l': None}))
if (HxString.charCodeAt(data,p_pos) == 58):
tokens.add(_hx_AnonObject({'p': HxString.substr(data,(p_pos + 2),(p_len - 4)), 's': False, 'l': None}))
_this2 = haxe_Template.splitter
data = HxString.substr(_this2.matchObj.string,_this2.matchObj.end(),None)
continue
parp = (p_pos + p_len)
npar = 1
params = []
part = ""
while True:
c = HxString.charCodeAt(data,parp)
parp = (parp + 1)
if (c == 40):
npar = (npar + 1)
elif (c == 41):
npar = (npar - 1)
if (npar <= 0):
break
elif (c is None):
raise haxe_Exception.thrown("Unclosed macro parenthesis")
if ((c == 44) and ((npar == 1))):
params.append(part)
part = ""
else:
part = (("null" if part is None else part) + HxOverrides.stringOrNull("".join(map(chr,[c]))))
params.append(part)
tokens.add(_hx_AnonObject({'p': haxe_Template.splitter.matchObj.group(2), 's': False, 'l': params}))
data = HxString.substr(data,parp,(len(data) - parp))
if (len(data) > 0):
tokens.add(_hx_AnonObject({'p': data, 's': True, 'l': None}))
return tokens
def parseBlock(self,tokens):
l = haxe_ds_List()
while True:
t = tokens.first()
if (t is None):
break
if ((not t.s) and ((((t.p == "end") or ((t.p == "else"))) or ((HxString.substr(t.p,0,7) == "elseif "))))):
break
l.add(self.parse(tokens))
if (l.length == 1):
return l.first()
return haxe__Template_TemplateExpr.OpBlock(l)
def parse(self,tokens):
t = tokens.pop()
p = t.p
if t.s:
return haxe__Template_TemplateExpr.OpStr(p)
if (t.l is not None):
pe = haxe_ds_List()
_g = 0
_g1 = t.l
while (_g < len(_g1)):
p1 = (_g1[_g] if _g >= 0 and _g < len(_g1) else None)
_g = (_g + 1)
pe.add(self.parseBlock(self.parseTokens(p1)))
return haxe__Template_TemplateExpr.OpMacro(p,pe)
def _hx_local_2(kwd):
pos = -1
length = len(kwd)
if (HxString.substr(p,0,length) == kwd):
pos = length
_g_offset = 0
_g_s = HxString.substr(p,length,None)
while (_g_offset < len(_g_s)):
index = _g_offset
_g_offset = (_g_offset + 1)
c = ord(_g_s[index])
if (c == 32):
pos = (pos + 1)
else:
break
return pos
kwdEnd = _hx_local_2
pos = kwdEnd("if")
if (pos > 0):
p = HxString.substr(p,pos,(len(p) - pos))
e = self.parseExpr(p)
eif = self.parseBlock(tokens)
t = tokens.first()
eelse = None
if (t is None):
raise haxe_Exception.thrown("Unclosed 'if'")
if (t.p == "end"):
tokens.pop()
eelse = None
elif (t.p == "else"):
tokens.pop()
eelse = self.parseBlock(tokens)
t = tokens.pop()
if ((t is None) or ((t.p != "end"))):
raise haxe_Exception.thrown("Unclosed 'else'")
else:
t.p = HxString.substr(t.p,4,(len(t.p) - 4))
eelse = self.parse(tokens)
return haxe__Template_TemplateExpr.OpIf(e,eif,eelse)
pos = kwdEnd("foreach")
if (pos >= 0):
p = HxString.substr(p,pos,(len(p) - pos))
e = self.parseExpr(p)
efor = self.parseBlock(tokens)
t = tokens.pop()
if ((t is None) or ((t.p != "end"))):
raise haxe_Exception.thrown("Unclosed 'foreach'")
return haxe__Template_TemplateExpr.OpForeach(e,efor)
_this = haxe_Template.expr_splitter
_this.matchObj = python_lib_Re.search(_this.pattern,p)
if (_this.matchObj is not None):
return haxe__Template_TemplateExpr.OpExpr(self.parseExpr(p))
return haxe__Template_TemplateExpr.OpVar(p)
def parseExpr(self,data):
l = haxe_ds_List()
expr = data
while True:
_this = haxe_Template.expr_splitter
_this.matchObj = python_lib_Re.search(_this.pattern,data)
if (not ((_this.matchObj is not None))):
break
_this1 = haxe_Template.expr_splitter
p_pos = _this1.matchObj.start()
p_len = (_this1.matchObj.end() - _this1.matchObj.start())
k = (p_pos + p_len)
if (p_pos != 0):
l.add(_hx_AnonObject({'p': HxString.substr(data,0,p_pos), 's': True}))
p = haxe_Template.expr_splitter.matchObj.group(0)
startIndex = None
l.add(_hx_AnonObject({'p': p, 's': (((p.find("\"") if ((startIndex is None)) else HxString.indexOfImpl(p,"\"",startIndex))) >= 0)}))
_this2 = haxe_Template.expr_splitter
data = HxString.substr(_this2.matchObj.string,_this2.matchObj.end(),None)
if (len(data) != 0):
_g_offset = 0
_g_s = data
while (_g_offset < len(_g_s)):
_g_key = _g_offset
s = _g_s
index = _g_offset
_g_offset = (_g_offset + 1)
_g_value = (-1 if ((index >= len(s))) else ord(s[index]))
i = _g_key
c = _g_value
if (c != 32):
l.add(_hx_AnonObject({'p': HxString.substr(data,i,None), 's': True}))
break
e = None
try:
e = self.makeExpr(l)
if (not l.isEmpty()):
raise haxe_Exception.thrown(l.first().p)
except BaseException as _g:
None
_g1 = haxe_Exception.caught(_g).unwrap()
if Std.isOfType(_g1,str):
s = _g1
raise haxe_Exception.thrown(((("Unexpected '" + ("null" if s is None else s)) + "' in ") + ("null" if expr is None else expr)))
else:
raise _g
def _hx_local_0():
try:
return e()
except BaseException as _g:
None
exc = haxe_Exception.caught(_g).unwrap()
raise haxe_Exception.thrown(((("Error : " + Std.string(exc)) + " in ") + ("null" if expr is None else expr)))
return _hx_local_0
def makeConst(self,v):
_this = haxe_Template.expr_trim
_this.matchObj = python_lib_Re.search(_this.pattern,v)
v = haxe_Template.expr_trim.matchObj.group(1)
if (HxString.charCodeAt(v,0) == 34):
_hx_str = HxString.substr(v,1,(len(v) - 2))
def _hx_local_0():
return _hx_str
return _hx_local_0
_this = haxe_Template.expr_int
_this.matchObj = python_lib_Re.search(_this.pattern,v)
if (_this.matchObj is not None):
i = Std.parseInt(v)
def _hx_local_1():
return i
return _hx_local_1
_this = haxe_Template.expr_float
_this.matchObj = python_lib_Re.search(_this.pattern,v)
if (_this.matchObj is not None):
f = Std.parseFloat(v)
def _hx_local_2():
return f
return _hx_local_2
me = self
def _hx_local_3():
return me.resolve(v)
return _hx_local_3
def makePath(self,e,l):
p = l.first()
if ((p is None) or ((p.p != "."))):
return e
l.pop()
field = l.pop()
if ((field is None) or (not field.s)):
raise haxe_Exception.thrown(field.p)
f = field.p
_this = haxe_Template.expr_trim
_this.matchObj = python_lib_Re.search(_this.pattern,f)
f = haxe_Template.expr_trim.matchObj.group(1)
def _hx_local_1():
def _hx_local_0():
return Reflect.field(e(),f)
return self.makePath(_hx_local_0,l)
return _hx_local_1()
def makeExpr(self,l):
return self.makePath(self.makeExpr2(l),l)
def skipSpaces(self,l):
p = l.first()
while (p is not None):
_g_offset = 0
_g_s = p.p
while (_g_offset < len(_g_s)):
index = _g_offset
_g_offset = (_g_offset + 1)
c = ord(_g_s[index])
if (c != 32):
return
l.pop()
p = l.first()
def makeExpr2(self,l):
self.skipSpaces(l)
p = l.pop()
self.skipSpaces(l)
if (p is None):
raise haxe_Exception.thrown("<eof>")
if p.s:
return self.makeConst(p.p)
_g = p.p
if (_g == "!"):
e = self.makeExpr(l)
def _hx_local_0():
v = e()
if (v is not None):
return (v == False)
else:
return True
return _hx_local_0
elif (_g == "("):
self.skipSpaces(l)
e1 = self.makeExpr(l)
self.skipSpaces(l)
p1 = l.pop()
if ((p1 is None) or p1.s):
raise haxe_Exception.thrown(p1)
if (p1.p == ")"):
return e1
self.skipSpaces(l)
e2 = self.makeExpr(l)
self.skipSpaces(l)
p2 = l.pop()
self.skipSpaces(l)
if ((p2 is None) or ((p2.p != ")"))):
raise haxe_Exception.thrown(p2)
_g = p1.p
_hx_local_1 = len(_g)
if (_hx_local_1 == 1):
if (_g == "*"):
def _hx_local_2():
return (e1() * e2())
return _hx_local_2
elif (_g == "+"):
def _hx_local_3():
return python_Boot._add_dynamic(e1(),e2())
return _hx_local_3
elif (_g == "-"):
def _hx_local_4():
return (e1() - e2())
return _hx_local_4
elif (_g == "/"):
def _hx_local_5():
return (e1() / e2())
return _hx_local_5
elif (_g == "<"):
def _hx_local_6():
return (e1() < e2())
return _hx_local_6
elif (_g == ">"):
def _hx_local_7():
return (e1() > e2())
return _hx_local_7
else:
raise haxe_Exception.thrown(("Unknown operation " + HxOverrides.stringOrNull(p1.p)))
elif (_hx_local_1 == 2):
if (_g == "!="):
def _hx_local_8():
return not HxOverrides.eq(e1(),e2())
return _hx_local_8
elif (_g == "&&"):
def _hx_local_9():
return (e1() and e2())
return _hx_local_9
elif (_g == "<="):
def _hx_local_10():
return (e1() <= e2())
return _hx_local_10
elif (_g == "=="):
def _hx_local_11():
return HxOverrides.eq(e1(),e2())
return _hx_local_11
elif (_g == ">="):
def _hx_local_12():
return (e1() >= e2())
return _hx_local_12
elif (_g == "||"):
def _hx_local_13():
return (e1() or e2())
return _hx_local_13
else:
raise haxe_Exception.thrown(("Unknown operation " + HxOverrides.stringOrNull(p1.p)))
else:
raise haxe_Exception.thrown(("Unknown operation " + HxOverrides.stringOrNull(p1.p)))
elif (_g == "-"):
e3 = self.makeExpr(l)
def _hx_local_14():
return -e3()
return _hx_local_14
else:
pass
raise haxe_Exception.thrown(p.p)
def run(self,e):
tmp = e.index
if (tmp == 0):
v = e.params[0]
_this = self.buf
s = Std.string(Std.string(self.resolve(v)))
_this.b.write(s)
elif (tmp == 1):
e1 = e.params[0]
_this = self.buf
s = Std.string(Std.string(e1()))
_this.b.write(s)
elif (tmp == 2):
e1 = e.params[0]
eif = e.params[1]
eelse = e.params[2]
v = e1()
if ((v is None) or ((v == False))):
if (eelse is not None):
self.run(eelse)
else:
self.run(eif)
elif (tmp == 3):
_hx_str = e.params[0]
_this = self.buf
s = Std.string(_hx_str)
_this.b.write(s)
elif (tmp == 4):
l = e.params[0]
_g_head = l.h
while (_g_head is not None):
val = _g_head.item
_g_head = _g_head.next
e1 = val
self.run(e1)
elif (tmp == 5):
e1 = e.params[0]
loop = e.params[1]
v = e1()
try:
x = Reflect.field(v,"iterator")()
if (Reflect.field(x,"hasNext") is None):
raise haxe_Exception.thrown(None)
v = x
except BaseException as _g:
None
try:
if (Reflect.field(v,"hasNext") is None):
raise haxe_Exception.thrown(None)
except BaseException as _g:
raise haxe_Exception.thrown(("Cannot iter on " + Std.string(v)))
self.stack.push(self.context)
v1 = v
ctx = v1
while ctx.hasNext():
ctx1 = ctx.next()
self.context = ctx1
self.run(loop)
self.context = self.stack.pop()
elif (tmp == 6):
m = e.params[0]
params = e.params[1]
v = Reflect.field(self.macros,m)
pl = list()
old = self.buf
pl.append(self.resolve)
_g_head = params.h
while (_g_head is not None):
val = _g_head.item
_g_head = _g_head.next
p = val
if (p.index == 0):
v1 = p.params[0]
x = self.resolve(v1)
pl.append(x)
else:
self.buf = StringBuf()
self.run(p)
x1 = self.buf.b.getvalue()
pl.append(x1)
self.buf = old
try:
_this = self.buf
s = Std.string(Std.string(Reflect.callMethod(self.macros,v,pl)))
_this.b.write(s)
except BaseException as _g:
None
e = haxe_Exception.caught(_g).unwrap()
plstr = None
try:
plstr = ",".join([python_Boot.toString1(x1,'') for x1 in pl])
except BaseException as _g:
plstr = "???"
msg = (((((("Macro call " + ("null" if m is None else m)) + "(") + ("null" if plstr is None else plstr)) + ") failed (") + Std.string(e)) + ")")
raise haxe_Exception.thrown(msg)
else:
pass
haxe_Template._hx_class = haxe_Template
class haxe_ValueException(haxe_Exception):
_hx_class_name = "haxe.ValueException"
__slots__ = ("value",)
_hx_fields = ["value"]
_hx_methods = ["unwrap"]
_hx_statics = []
_hx_interfaces = []
_hx_super = haxe_Exception
def __init__(self,value,previous = None,native = None):
self.value = None
super().__init__(("null" if ((value is None)) else Std.string(value)),previous,native)
self.value = value
def unwrap(self):
return self.value
haxe_ValueException._hx_class = haxe_ValueException
class haxe_ds_List:
_hx_class_name = "haxe.ds.List"
__slots__ = ("h", "q", "length")
_hx_fields = ["h", "q", "length"]
_hx_methods = ["add", "push", "first", "pop", "isEmpty", "toString"]
def __init__(self):
self.q = None
self.h = None
self.length = 0
def add(self,item):
x = haxe_ds__List_ListNode(item,None)
if (self.h is None):
self.h = x
else:
self.q.next = x
self.q = x
_hx_local_0 = self
_hx_local_1 = _hx_local_0.length
_hx_local_0.length = (_hx_local_1 + 1)
_hx_local_1
def push(self,item):
x = haxe_ds__List_ListNode(item,self.h)
self.h = x
if (self.q is None):
self.q = x
_hx_local_0 = self
_hx_local_1 = _hx_local_0.length
_hx_local_0.length = (_hx_local_1 + 1)
_hx_local_1
def first(self):
if (self.h is None):
return None
else:
return self.h.item
def pop(self):
if (self.h is None):
return None
x = self.h.item
self.h = self.h.next
if (self.h is None):
self.q = None
_hx_local_0 = self
_hx_local_1 = _hx_local_0.length
_hx_local_0.length = (_hx_local_1 - 1)
_hx_local_1
return x
def isEmpty(self):
return (self.h is None)
def toString(self):
s_b = python_lib_io_StringIO()
first = True
l = self.h
s_b.write("{")
while (l is not None):
if first:
first = False
else:
s_b.write(", ")
s_b.write(Std.string(Std.string(l.item)))
l = l.next
s_b.write("}")
return s_b.getvalue()
haxe_ds_List._hx_class = haxe_ds_List
class haxe_ds__List_ListNode:
_hx_class_name = "haxe.ds._List.ListNode"
__slots__ = ("item", "next")
_hx_fields = ["item", "next"]
def __init__(self,item,next):
self.item = item
self.next = next
haxe_ds__List_ListNode._hx_class = haxe_ds__List_ListNode
class haxe_ds_StringMap:
_hx_class_name = "haxe.ds.StringMap"
__slots__ = ("h",)
_hx_fields = ["h"]
_hx_interfaces = [haxe_IMap]
def __init__(self):
self.h = dict()
haxe_ds_StringMap._hx_class = haxe_ds_StringMap
class haxe_iterators_ArrayKeyValueIterator:
_hx_class_name = "haxe.iterators.ArrayKeyValueIterator"
__slots__ = ("current", "array")
_hx_fields = ["current", "array"]
_hx_methods = ["hasNext", "next"]
def __init__(self,array):
self.current = 0
self.array = array
def hasNext(self):
return (self.current < len(self.array))
def next(self):
def _hx_local_3():
def _hx_local_2():
_hx_local_0 = self
_hx_local_1 = _hx_local_0.current
_hx_local_0.current = (_hx_local_1 + 1)
return _hx_local_1
return _hx_AnonObject({'value': python_internal_ArrayImpl._get(self.array, self.current), 'key': _hx_local_2()})
return _hx_local_3()
haxe_iterators_ArrayKeyValueIterator._hx_class = haxe_iterators_ArrayKeyValueIterator
class python_Boot:
_hx_class_name = "python.Boot"
__slots__ = ()
_hx_statics = ["keywords", "_add_dynamic", "toString1", "fields", "simpleField", "hasField", "field", "getInstanceFields", "getSuperClass", "getClassFields", "prefixLength", "unhandleKeywords"]
@staticmethod
def _add_dynamic(a,b):
if (isinstance(a,str) and isinstance(b,str)):
return (a + b)
if (isinstance(a,str) or isinstance(b,str)):
return (python_Boot.toString1(a,"") + python_Boot.toString1(b,""))
return (a + b)
@staticmethod
def toString1(o,s):
if (o is None):
return "null"
if isinstance(o,str):
return o
if (s is None):
s = ""
if (len(s) >= 5):
return "<...>"
if isinstance(o,bool):
if o:
return "true"
else:
return "false"
if (isinstance(o,int) and (not isinstance(o,bool))):
return str(o)
if isinstance(o,float):
try:
if (o == int(o)):
return str(Math.floor((o + 0.5)))
else:
return str(o)
except BaseException as _g:
None
return str(o)
if isinstance(o,list):
o1 = o
l = len(o1)
st = "["
s = (("null" if s is None else s) + "\t")
_g = 0
_g1 = l
while (_g < _g1):
i = _g
_g = (_g + 1)
prefix = ""
if (i > 0):
prefix = ","
st = (("null" if st is None else st) + HxOverrides.stringOrNull(((("null" if prefix is None else prefix) + HxOverrides.stringOrNull(python_Boot.toString1((o1[i] if i >= 0 and i < len(o1) else None),s))))))
st = (("null" if st is None else st) + "]")
return st
try:
if hasattr(o,"toString"):
return o.toString()
except BaseException as _g:
None
if hasattr(o,"__class__"):
if isinstance(o,_hx_AnonObject):
toStr = None
try:
fields = python_Boot.fields(o)
_g = []
_g1 = 0
while (_g1 < len(fields)):
f = (fields[_g1] if _g1 >= 0 and _g1 < len(fields) else None)
_g1 = (_g1 + 1)
x = ((("" + ("null" if f is None else f)) + " : ") + HxOverrides.stringOrNull(python_Boot.toString1(python_Boot.simpleField(o,f),(("null" if s is None else s) + "\t"))))
_g.append(x)
fieldsStr = _g
toStr = (("{ " + HxOverrides.stringOrNull(", ".join([x1 for x1 in fieldsStr]))) + " }")
except BaseException as _g:
None
return "{ ... }"
if (toStr is None):
return "{ ... }"
else:
return toStr
if isinstance(o,Enum):
o1 = o
l = len(o1.params)
hasParams = (l > 0)
if hasParams:
paramsStr = ""
_g = 0
_g1 = l
while (_g < _g1):
i = _g
_g = (_g + 1)
prefix = ""
if (i > 0):
prefix = ","
paramsStr = (("null" if paramsStr is None else paramsStr) + HxOverrides.stringOrNull(((("null" if prefix is None else prefix) + HxOverrides.stringOrNull(python_Boot.toString1(o1.params[i],s))))))
return (((HxOverrides.stringOrNull(o1.tag) + "(") + ("null" if paramsStr is None else paramsStr)) + ")")
else:
return o1.tag
if hasattr(o,"_hx_class_name"):
if (o.__class__.__name__ != "type"):
fields = python_Boot.getInstanceFields(o)
_g = []
_g1 = 0
while (_g1 < len(fields)):
f = (fields[_g1] if _g1 >= 0 and _g1 < len(fields) else None)
_g1 = (_g1 + 1)
x = ((("" + ("null" if f is None else f)) + " : ") + HxOverrides.stringOrNull(python_Boot.toString1(python_Boot.simpleField(o,f),(("null" if s is None else s) + "\t"))))
_g.append(x)
fieldsStr = _g
toStr = (((HxOverrides.stringOrNull(o._hx_class_name) + "( ") + HxOverrides.stringOrNull(", ".join([x1 for x1 in fieldsStr]))) + " )")
return toStr
else:
fields = python_Boot.getClassFields(o)
_g = []
_g1 = 0
while (_g1 < len(fields)):
f = (fields[_g1] if _g1 >= 0 and _g1 < len(fields) else None)
_g1 = (_g1 + 1)
x = ((("" + ("null" if f is None else f)) + " : ") + HxOverrides.stringOrNull(python_Boot.toString1(python_Boot.simpleField(o,f),(("null" if s is None else s) + "\t"))))
_g.append(x)
fieldsStr = _g
toStr = (((("#" + HxOverrides.stringOrNull(o._hx_class_name)) + "( ") + HxOverrides.stringOrNull(", ".join([x1 for x1 in fieldsStr]))) + " )")
return toStr
if ((type(o) == type) and (o == str)):
return "#String"
if ((type(o) == type) and (o == list)):
return "#Array"
if callable(o):
return "function"
try:
if hasattr(o,"__repr__"):
return o.__repr__()
except BaseException as _g:
None
if hasattr(o,"__str__"):
return o.__str__([])
if hasattr(o,"__name__"):
return o.__name__
return "???"
else:
return str(o)
@staticmethod
def fields(o):
a = []
if (o is not None):
if hasattr(o,"_hx_fields"):
fields = o._hx_fields
if (fields is not None):
return list(fields)
if isinstance(o,_hx_AnonObject):
d = o.__dict__
keys = d.keys()
handler = python_Boot.unhandleKeywords
for k in keys:
if (k != '_hx_disable_getattr'):
a.append(handler(k))
elif hasattr(o,"__dict__"):
d = o.__dict__
keys1 = d.keys()
for k in keys1:
a.append(k)
return a
@staticmethod
def simpleField(o,field):
if (field is None):
return None
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
if hasattr(o,field1):
return getattr(o,field1)
else:
return None
@staticmethod
def hasField(o,field):
if isinstance(o,_hx_AnonObject):
return o._hx_hasattr(field)
return hasattr(o,(("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field)))
@staticmethod
def field(o,field):
if (field is None):
return None
if isinstance(o,str):
field1 = field
_hx_local_0 = len(field1)
if (_hx_local_0 == 10):
if (field1 == "charCodeAt"):
return python_internal_MethodClosure(o,HxString.charCodeAt)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
elif (_hx_local_0 == 11):
if (field1 == "lastIndexOf"):
return python_internal_MethodClosure(o,HxString.lastIndexOf)
elif (field1 == "toLowerCase"):
return python_internal_MethodClosure(o,HxString.toLowerCase)
elif (field1 == "toUpperCase"):
return python_internal_MethodClosure(o,HxString.toUpperCase)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
elif (_hx_local_0 == 9):
if (field1 == "substring"):
return python_internal_MethodClosure(o,HxString.substring)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
elif (_hx_local_0 == 5):
if (field1 == "split"):
return python_internal_MethodClosure(o,HxString.split)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
elif (_hx_local_0 == 7):
if (field1 == "indexOf"):
return python_internal_MethodClosure(o,HxString.indexOf)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
elif (_hx_local_0 == 8):
if (field1 == "toString"):
return python_internal_MethodClosure(o,HxString.toString)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
elif (_hx_local_0 == 6):
if (field1 == "charAt"):
return python_internal_MethodClosure(o,HxString.charAt)
elif (field1 == "length"):
return len(o)
elif (field1 == "substr"):
return python_internal_MethodClosure(o,HxString.substr)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
elif isinstance(o,list):
field1 = field
_hx_local_1 = len(field1)
if (_hx_local_1 == 11):
if (field1 == "lastIndexOf"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.lastIndexOf)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
elif (_hx_local_1 == 4):
if (field1 == "copy"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.copy)
elif (field1 == "join"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.join)
elif (field1 == "push"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.push)
elif (field1 == "sort"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.sort)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
elif (_hx_local_1 == 5):
if (field1 == "shift"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.shift)
elif (field1 == "slice"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.slice)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
elif (_hx_local_1 == 7):
if (field1 == "indexOf"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.indexOf)
elif (field1 == "reverse"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.reverse)
elif (field1 == "unshift"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.unshift)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
elif (_hx_local_1 == 3):
if (field1 == "map"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.map)
elif (field1 == "pop"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.pop)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
elif (_hx_local_1 == 8):
if (field1 == "contains"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.contains)
elif (field1 == "iterator"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.iterator)
elif (field1 == "toString"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.toString)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
elif (_hx_local_1 == 16):
if (field1 == "keyValueIterator"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.keyValueIterator)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
elif (_hx_local_1 == 6):
if (field1 == "concat"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.concat)
elif (field1 == "filter"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.filter)
elif (field1 == "insert"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.insert)
elif (field1 == "length"):
return len(o)
elif (field1 == "remove"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.remove)
elif (field1 == "splice"):
return python_internal_MethodClosure(o,python_internal_ArrayImpl.splice)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
else:
field1 = (("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field))
return (getattr(o,field1) if (hasattr(o,field1)) else None)
@staticmethod
def getInstanceFields(c):
f = (list(c._hx_fields) if (hasattr(c,"_hx_fields")) else [])
if hasattr(c,"_hx_methods"):
f = (f + c._hx_methods)
sc = python_Boot.getSuperClass(c)
if (sc is None):
return f
else:
scArr = python_Boot.getInstanceFields(sc)
scMap = set(scArr)
_g = 0
while (_g < len(f)):
f1 = (f[_g] if _g >= 0 and _g < len(f) else None)
_g = (_g + 1)
if (not (f1 in scMap)):
scArr.append(f1)
return scArr
@staticmethod
def getSuperClass(c):
if (c is None):
return None
try:
if hasattr(c,"_hx_super"):
return c._hx_super
return None
except BaseException as _g:
None
return None
@staticmethod
def getClassFields(c):
if hasattr(c,"_hx_statics"):
x = c._hx_statics
return list(x)
else:
return []
@staticmethod
def unhandleKeywords(name):
if (HxString.substr(name,0,python_Boot.prefixLength) == "_hx_"):
real = HxString.substr(name,python_Boot.prefixLength,None)
if (real in python_Boot.keywords):
return real
return name
python_Boot._hx_class = python_Boot
class python_HaxeIterator:
_hx_class_name = "python.HaxeIterator"
__slots__ = ("it", "x", "has", "checked")
_hx_fields = ["it", "x", "has", "checked"]
_hx_methods = ["next", "hasNext"]
def __init__(self,it):
self.checked = False
self.has = False
self.x = None
self.it = it
def next(self):
if (not self.checked):
self.hasNext()
self.checked = False
return self.x
def hasNext(self):
if (not self.checked):
try:
self.x = self.it.__next__()
self.has = True
except BaseException as _g:
None
if Std.isOfType(haxe_Exception.caught(_g).unwrap(),StopIteration):
self.has = False
self.x = None
else:
raise _g
self.checked = True
return self.has
python_HaxeIterator._hx_class = python_HaxeIterator
class python_Lib:
_hx_class_name = "python.Lib"
__slots__ = ()
_hx_statics = ["anonToDict"]
@staticmethod
def anonToDict(o):
if isinstance(o,_hx_AnonObject):
return o.__dict__.copy()
else:
return None
python_Lib._hx_class = python_Lib
class python_internal_ArrayImpl:
_hx_class_name = "python.internal.ArrayImpl"
__slots__ = ()
_hx_statics = ["get_length", "concat", "copy", "iterator", "keyValueIterator", "indexOf", "lastIndexOf", "join", "toString", "pop", "push", "unshift", "remove", "contains", "shift", "slice", "sort", "splice", "map", "filter", "insert", "reverse", "_get", "_set"]
@staticmethod
def get_length(x):
return len(x)
@staticmethod
def concat(a1,a2):
return (a1 + a2)
@staticmethod
def copy(x):
return list(x)
@staticmethod
def iterator(x):
return python_HaxeIterator(x.__iter__())
@staticmethod
def keyValueIterator(x):
return haxe_iterators_ArrayKeyValueIterator(x)
@staticmethod
def indexOf(a,x,fromIndex = None):
_hx_len = len(a)
l = (0 if ((fromIndex is None)) else ((_hx_len + fromIndex) if ((fromIndex < 0)) else fromIndex))
if (l < 0):
l = 0
_g = l
_g1 = _hx_len
while (_g < _g1):
i = _g
_g = (_g + 1)
if HxOverrides.eq(a[i],x):
return i
return -1
@staticmethod
def lastIndexOf(a,x,fromIndex = None):
_hx_len = len(a)
l = (_hx_len if ((fromIndex is None)) else (((_hx_len + fromIndex) + 1) if ((fromIndex < 0)) else (fromIndex + 1)))
if (l > _hx_len):
l = _hx_len
while True:
l = (l - 1)
tmp = l
if (not ((tmp > -1))):
break
if HxOverrides.eq(a[l],x):
return l
return -1
@staticmethod
def join(x,sep):
return sep.join([python_Boot.toString1(x1,'') for x1 in x])
@staticmethod
def toString(x):
return (("[" + HxOverrides.stringOrNull(",".join([python_Boot.toString1(x1,'') for x1 in x]))) + "]")
@staticmethod
def pop(x):
if (len(x) == 0):
return None
else:
return x.pop()
@staticmethod
def push(x,e):
x.append(e)
return len(x)
@staticmethod
def unshift(x,e):
x.insert(0, e)
@staticmethod
def remove(x,e):
try:
x.remove(e)
return True
except BaseException as _g:
None
return False
@staticmethod
def contains(x,e):
return (e in x)
@staticmethod
def shift(x):
if (len(x) == 0):
return None
return x.pop(0)
@staticmethod
def slice(x,pos,end = None):
return x[pos:end]
@staticmethod
def sort(x,f):
x.sort(key= python_lib_Functools.cmp_to_key(f))
@staticmethod
def splice(x,pos,_hx_len):
if (pos < 0):
pos = (len(x) + pos)
if (pos < 0):
pos = 0
res = x[pos:(pos + _hx_len)]
del x[pos:(pos + _hx_len)]
return res
@staticmethod
def map(x,f):
return list(map(f,x))
@staticmethod
def filter(x,f):
return list(filter(f,x))
@staticmethod
def insert(a,pos,x):
a.insert(pos, x)
@staticmethod
def reverse(a):
a.reverse()
@staticmethod
def _get(x,idx):
if ((idx > -1) and ((idx < len(x)))):
return x[idx]
else:
return None
@staticmethod
def _set(x,idx,v):
l = len(x)
while (l < idx):
x.append(None)
l = (l + 1)
if (l == idx):
x.append(v)
else:
x[idx] = v
return v
python_internal_ArrayImpl._hx_class = python_internal_ArrayImpl
class HxOverrides:
_hx_class_name = "HxOverrides"
__slots__ = ()
_hx_statics = ["iterator", "eq", "stringOrNull", "length", "arrayGet"]
@staticmethod
def iterator(x):
if isinstance(x,list):
return haxe_iterators_ArrayIterator(x)
return x.iterator()
@staticmethod
def eq(a,b):
if (isinstance(a,list) or isinstance(b,list)):
return a is b
return (a == b)
@staticmethod
def stringOrNull(s):
if (s is None):
return "null"
else:
return s
@staticmethod
def length(x):
if isinstance(x,str):
return len(x)
elif isinstance(x,list):
return len(x)
return x.length
@staticmethod
def arrayGet(a,i):
if isinstance(a,list):
x = a
if ((i > -1) and ((i < len(x)))):
return x[i]
else:
return None
else:
return a[i]
HxOverrides._hx_class = HxOverrides
class python_internal_MethodClosure:
_hx_class_name = "python.internal.MethodClosure"
__slots__ = ("obj", "func")
_hx_fields = ["obj", "func"]
_hx_methods = ["__call__"]
def __init__(self,obj,func):
self.obj = obj
self.func = func
def __call__(self,*args):
return self.func(self.obj,*args)
python_internal_MethodClosure._hx_class = python_internal_MethodClosure
class HxString:
_hx_class_name = "HxString"
__slots__ = ()
_hx_statics = ["split", "charCodeAt", "charAt", "lastIndexOf", "toUpperCase", "toLowerCase", "indexOf", "indexOfImpl", "toString", "get_length", "substring", "substr"]
@staticmethod
def split(s,d):
if (d == ""):
return list(s)
else:
return s.split(d)
@staticmethod
def charCodeAt(s,index):
if ((((s is None) or ((len(s) == 0))) or ((index < 0))) or ((index >= len(s)))):
return None
else:
return ord(s[index])
@staticmethod
def charAt(s,index):
if ((index < 0) or ((index >= len(s)))):
return ""
else:
return s[index]
@staticmethod
def lastIndexOf(s,_hx_str,startIndex = None):
if (startIndex is None):
return s.rfind(_hx_str, 0, len(s))
elif (_hx_str == ""):
length = len(s)
if (startIndex < 0):
startIndex = (length + startIndex)
if (startIndex < 0):
startIndex = 0
if (startIndex > length):
return length
else:
return startIndex
else:
i = s.rfind(_hx_str, 0, (startIndex + 1))
startLeft = (max(0,((startIndex + 1) - len(_hx_str))) if ((i == -1)) else (i + 1))
check = s.find(_hx_str, startLeft, len(s))
if ((check > i) and ((check <= startIndex))):
return check
else:
return i
@staticmethod
def toUpperCase(s):
return s.upper()
@staticmethod
def toLowerCase(s):
return s.lower()
@staticmethod
def indexOf(s,_hx_str,startIndex = None):
if (startIndex is None):
return s.find(_hx_str)
else:
return HxString.indexOfImpl(s,_hx_str,startIndex)
@staticmethod
def indexOfImpl(s,_hx_str,startIndex):
if (_hx_str == ""):
length = len(s)
if (startIndex < 0):
startIndex = (length + startIndex)
if (startIndex < 0):
startIndex = 0
if (startIndex > length):
return length
else:
return startIndex
return s.find(_hx_str, startIndex)
@staticmethod
def toString(s):
return s
@staticmethod
def get_length(s):
return len(s)
@staticmethod
def substring(s,startIndex,endIndex = None):
if (startIndex < 0):
startIndex = 0
if (endIndex is None):
return s[startIndex:]
else:
if (endIndex < 0):
endIndex = 0
if (endIndex < startIndex):
return s[endIndex:startIndex]
else:
return s[startIndex:endIndex]
@staticmethod
def substr(s,startIndex,_hx_len = None):
if (_hx_len is None):
return s[startIndex:]
else:
if (_hx_len == 0):
return ""
if (startIndex < 0):
startIndex = (len(s) + startIndex)
if (startIndex < 0):
startIndex = 0
return s[startIndex:(startIndex + _hx_len)]
HxString._hx_class = HxString
class xrfragment_Filter:
_hx_class_name = "xrfragment.Filter"
__slots__ = ("str", "q")
_hx_fields = ["str", "q"]
_hx_methods = ["toObject", "get", "parse", "test", "testProperty"]
def __init__(self,_hx_str):
self.q = _hx_AnonObject({})
self.str = ""
if (_hx_str is not None):
self.parse(_hx_str)
def toObject(self):
return Reflect.copy(self.q)
def get(self):
return Reflect.copy(self.q)
def parse(self,_hx_str):
token = _hx_str.split(" ")
q = _hx_AnonObject({})
def _hx_local_0(_hx_str,prefix = None):
if (prefix is None):
prefix = ""
_hx_str = StringTools.trim(_hx_str)
k = HxOverrides.arrayGet(_hx_str.split("="), 0)
v = HxOverrides.arrayGet(_hx_str.split("="), 1)
_hx_filter = _hx_AnonObject({})
if Reflect.field(q,(("null" if prefix is None else prefix) + ("null" if k is None else k))):
_hx_filter = Reflect.field(q,(("null" if prefix is None else prefix) + ("null" if k is None else k)))
_this = xrfragment_XRF.isProp
_this.matchObj = python_lib_Re.search(_this.pattern,_hx_str)
if (_this.matchObj is not None):
oper = ""
startIndex = None
if (((_hx_str.find(">") if ((startIndex is None)) else HxString.indexOfImpl(_hx_str,">",startIndex))) != -1):
oper = ">"
startIndex = None
if (((_hx_str.find("<") if ((startIndex is None)) else HxString.indexOfImpl(_hx_str,"<",startIndex))) != -1):
oper = "<"
_this = xrfragment_XRF.isExclude
_this.matchObj = python_lib_Re.search(_this.pattern,k)
if (_this.matchObj is not None):
k = HxString.substr(k,1,None)
v = HxString.substr(v,len(oper),None)
if (len(oper) == 0):
oper = "="
rule = _hx_AnonObject({})
_this = xrfragment_XRF.isNumber
_this.matchObj = python_lib_Re.search(_this.pattern,v)
if (_this.matchObj is not None):
value = Std.parseFloat(v)
setattr(rule,(("_hx_" + oper) if ((oper in python_Boot.keywords)) else (("_hx_" + oper) if (((((len(oper) > 2) and ((ord(oper[0]) == 95))) and ((ord(oper[1]) == 95))) and ((ord(oper[(len(oper) - 1)]) != 95)))) else oper)),value)
else:
setattr(rule,(("_hx_" + oper) if ((oper in python_Boot.keywords)) else (("_hx_" + oper) if (((((len(oper) > 2) and ((ord(oper[0]) == 95))) and ((ord(oper[1]) == 95))) and ((ord(oper[(len(oper) - 1)]) != 95)))) else oper)),v)
setattr(q,(("_hx_" + "expr") if (("expr" in python_Boot.keywords)) else (("_hx_" + "expr") if (((((len("expr") > 2) and ((ord("expr"[0]) == 95))) and ((ord("expr"[1]) == 95))) and ((ord("expr"[(len("expr") - 1)]) != 95)))) else "expr")),rule)
_this = xrfragment_XRF.isDeep
_this.matchObj = python_lib_Re.search(_this.pattern,_hx_str)
value = ((Reflect.field(k.split("*"),"length") - 1) if ((_this.matchObj is not None)) else 0)
setattr(q,(("_hx_" + "deep") if (("deep" in python_Boot.keywords)) else (("_hx_" + "deep") if (((((len("deep") > 2) and ((ord("deep"[0]) == 95))) and ((ord("deep"[1]) == 95))) and ((ord("deep"[(len("deep") - 1)]) != 95)))) else "deep")),value)
_this = xrfragment_XRF.isExclude
_this.matchObj = python_lib_Re.search(_this.pattern,_hx_str)
value = (False if ((_this.matchObj is not None)) else True)
setattr(q,(("_hx_" + "show") if (("show" in python_Boot.keywords)) else (("_hx_" + "show") if (((((len("show") > 2) and ((ord("show"[0]) == 95))) and ((ord("show"[1]) == 95))) and ((ord("show"[(len("show") - 1)]) != 95)))) else "show")),value)
value = xrfragment_XRF.operators.replace(k,"")
setattr(q,(("_hx_" + "key") if (("key" in python_Boot.keywords)) else (("_hx_" + "key") if (((((len("key") > 2) and ((ord("key"[0]) == 95))) and ((ord("key"[1]) == 95))) and ((ord("key"[(len("key") - 1)]) != 95)))) else "key")),value)
setattr(q,(("_hx_" + "value") if (("value" in python_Boot.keywords)) else (("_hx_" + "value") if (((((len("value") > 2) and ((ord("value"[0]) == 95))) and ((ord("value"[1]) == 95))) and ((ord("value"[(len("value") - 1)]) != 95)))) else "value")),v)
process = _hx_local_0
_g = 0
_g1 = len(token)
while (_g < _g1):
i = _g
_g = (_g + 1)
process((token[i] if i >= 0 and i < len(token) else None))
def _hx_local_2():
def _hx_local_1():
self.q = q
return self.q
return _hx_local_1()
return _hx_local_2()
def test(self,obj = None):
qualify = False
_g = 0
_g1 = python_Boot.fields(obj)
while (_g < len(_g1)):
k = (_g1[_g] if _g >= 0 and _g < len(_g1) else None)
_g = (_g + 1)
v = Std.string(Reflect.field(obj,k))
if self.testProperty(k,v):
qualify = True
_g = 0
_g1 = python_Boot.fields(obj)
while (_g < len(_g1)):
k = (_g1[_g] if _g >= 0 and _g < len(_g1) else None)
_g = (_g + 1)
v = Std.string(Reflect.field(obj,k))
if self.testProperty(k,v,True):
qualify = False
return qualify
def testProperty(self,property,value,exclude = None):
conds = 0
fails = 0
qualify = 0
def _hx_local_2(expr):
conds = (conds + 1)
fails = (fails + (0 if expr else 1))
return expr
testprop = _hx_local_2
if (Reflect.field(self.q,value) is not None):
v = Reflect.field(self.q,value)
if (Reflect.field(v,property) is not None):
return Reflect.field(v,property)
if Reflect.field(self.q,"expr"):
f = Reflect.field(self.q,"expr")
if (not Reflect.field(self.q,"show")):
if (((Reflect.field(f,"!=") is not None) and testprop((Std.string(value) == Std.string(Reflect.field(f,"!="))))) and exclude):
qualify = (qualify + 1)
else:
if ((Reflect.field(f,"*") is not None) and testprop((Std.parseFloat(value) is not None))):
qualify = (qualify + 1)
if ((Reflect.field(f,">") is not None) and testprop((Std.parseFloat(value) >= Std.parseFloat(Reflect.field(f,">"))))):
qualify = (qualify + 1)
if ((Reflect.field(f,"<") is not None) and testprop((Std.parseFloat(value) <= Std.parseFloat(Reflect.field(f,"<"))))):
qualify = (qualify + 1)
if ((Reflect.field(f,"=") is not None) and ((testprop((value == Reflect.field(f,"="))) or testprop((Std.parseFloat(value) == Std.parseFloat(Reflect.field(f,"="))))))):
qualify = (qualify + 1)
return (qualify > 0)
xrfragment_Filter._hx_class = xrfragment_Filter
class xrfragment_Parser:
_hx_class_name = "xrfragment.Parser"
__slots__ = ()
_hx_statics = ["error", "debug", "parse", "getMetaData"]
@staticmethod
def parse(key,value,store,index = None):
Frag = haxe_ds_StringMap()
Frag.h["#"] = ((xrfragment_XRF.IMMUTABLE | xrfragment_XRF.T_PREDEFINED_VIEW) | xrfragment_XRF.PV_EXECUTE)
Frag.h["src"] = xrfragment_XRF.T_URL
Frag.h["href"] = (xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW)
Frag.h["tag"] = (xrfragment_XRF.IMMUTABLE | xrfragment_XRF.T_STRING)
Frag.h["pos"] = ((((xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3) | xrfragment_XRF.T_STRING) | xrfragment_XRF.METADATA) | xrfragment_XRF.NAVIGATOR)
Frag.h["rot"] = ((((xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE) | xrfragment_XRF.T_VECTOR3) | xrfragment_XRF.METADATA) | xrfragment_XRF.NAVIGATOR)
Frag.h["t"] = ((((xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT) | xrfragment_XRF.T_VECTOR2) | xrfragment_XRF.NAVIGATOR) | xrfragment_XRF.METADATA)
Frag.h["s"] = (xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_MEDIAFRAG)
Frag.h["loop"] = (xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_PREDEFINED_VIEW)
Frag.h["uv"] = (xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_MEDIAFRAG)
Frag.h["namespace"] = (xrfragment_XRF.IMMUTABLE | xrfragment_XRF.T_STRING)
Frag.h["SPDX"] = (xrfragment_XRF.IMMUTABLE | xrfragment_XRF.T_STRING)
Frag.h["unit"] = (xrfragment_XRF.IMMUTABLE | xrfragment_XRF.T_STRING)
Frag.h["description"] = (xrfragment_XRF.IMMUTABLE | xrfragment_XRF.T_STRING)
keyStripped = xrfragment_XRF.operators.replace(key,"")
isPVDynamic = ((len(key) > 0) and (not (key in Frag.h)))
if isPVDynamic:
v = xrfragment_XRF(key,(xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR),index)
v.validate(value)
v.flags = xrfragment_XRF.set(xrfragment_XRF.T_DYNAMICKEY,v.flags)
if (not (key in Frag.h)):
v.flags = xrfragment_XRF.set(xrfragment_XRF.CUSTOMFRAG,v.flags)
if (len(value) == 0):
v.flags = xrfragment_XRF.set(xrfragment_XRF.T_DYNAMICKEYVALUE,v.flags)
setattr(store,(("_hx_" + keyStripped) if ((keyStripped in python_Boot.keywords)) else (("_hx_" + keyStripped) if (((((len(keyStripped) > 2) and ((ord(keyStripped[0]) == 95))) and ((ord(keyStripped[1]) == 95))) and ((ord(keyStripped[(len(keyStripped) - 1)]) != 95)))) else keyStripped)),v)
return True
v = xrfragment_XRF(key,Frag.h.get(key,None),index)
if (key in Frag.h):
if (not v.validate(value)):
print(str((((("⚠ fragment '" + ("null" if key is None else key)) + "' has incompatible value (") + ("null" if value is None else value)) + ")")))
return False
setattr(store,(("_hx_" + keyStripped) if ((keyStripped in python_Boot.keywords)) else (("_hx_" + keyStripped) if (((((len(keyStripped) > 2) and ((ord(keyStripped[0]) == 95))) and ((ord(keyStripped[1]) == 95))) and ((ord(keyStripped[(len(keyStripped) - 1)]) != 95)))) else keyStripped)),v)
if xrfragment_Parser.debug:
print(str(((("" + ("null" if key is None else key)) + ": ") + HxOverrides.stringOrNull(v.string))))
else:
if Std.isOfType(value,str):
v.guessType(v,value)
v.flags = xrfragment_XRF.set(xrfragment_XRF.CUSTOMFRAG,v.flags)
setattr(store,(("_hx_" + keyStripped) if ((keyStripped in python_Boot.keywords)) else (("_hx_" + keyStripped) if (((((len(keyStripped) > 2) and ((ord(keyStripped[0]) == 95))) and ((ord(keyStripped[1]) == 95))) and ((ord(keyStripped[(len(keyStripped) - 1)]) != 95)))) else keyStripped)),v)
return True
@staticmethod
def getMetaData():
meta = _hx_AnonObject({'title': ["title", "og:title", "dc.title"], 'description': ["aria-description", "og:description", "dc.description"], 'author': ["author", "dc.creator"], 'publisher': ["publisher", "dc.publisher"], 'website': ["og:site_name", "og:url", "dc.publisher"], 'license': ["SPDX", "dc.rights"]})
return meta
xrfragment_Parser._hx_class = xrfragment_Parser
class xrfragment_URI:
_hx_class_name = "xrfragment.URI"
__slots__ = ("url", "source", "scheme", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "fileExt", "query", "fragment", "hash", "XRF", "URN")
_hx_fields = ["url", "source", "scheme", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "fileExt", "query", "fragment", "hash", "XRF", "URN"]
_hx_statics = ["__meta__", "_parts", "parseFragment", "template", "parse", "computeVars", "toString", "appendURI", "isRelative", "appendToRelativeURI", "appendToAbsoluteURI", "toAbsolute", "cloneURI"]
def __init__(self):
self.URN = None
self.query = None
self.fileExt = None
self.file = None
self.directory = None
self.path = None
self.relative = None
self.port = None
self.host = None
self.password = None
self.user = None
self.userInfo = None
self.authority = None
self.scheme = None
self.source = None
self.url = None
self.XRF = _hx_AnonObject({})
self.hash = _hx_AnonObject({})
self.fragment = ""
@staticmethod
def parseFragment(url,_hx_filter):
store = _hx_AnonObject({})
tmp = None
if (url is not None):
startIndex = None
tmp = (((url.find("#") if ((startIndex is None)) else HxString.indexOfImpl(url,"#",startIndex))) == -1)
else:
tmp = True
if tmp:
return store
fragment = url.split("#")
_this = (fragment[1] if 1 < len(fragment) else None)
splitArray = _this.split("&")
_g = 0
_g1 = len(splitArray)
while (_g < _g1):
i = _g
_g = (_g + 1)
_this = (splitArray[i] if i >= 0 and i < len(splitArray) else None)
splitByEqual = _this.split("=")
regexPlus = EReg("\\+","g")
key = (splitByEqual[0] if 0 < len(splitByEqual) else None)
value = ""
if (len(splitByEqual) > 1):
_this1 = xrfragment_XRF.isVector
_this1.matchObj = python_lib_Re.search(_this1.pattern,(splitByEqual[1] if 1 < len(splitByEqual) else None))
if (_this1.matchObj is not None):
value = (splitByEqual[1] if 1 < len(splitByEqual) else None)
else:
_this2 = regexPlus.split((splitByEqual[1] if 1 < len(splitByEqual) else None))
value = python_lib_urllib_Parse.unquote(" ".join([python_Boot.toString1(x1,'') for x1 in _this2]))
ok = xrfragment_Parser.parse(key,value,store,i)
if ((_hx_filter is not None) and ((_hx_filter != 0))):
_g = 0
_g1 = python_Boot.fields(store)
while (_g < len(_g1)):
key = (_g1[_g] if _g >= 0 and _g < len(_g1) else None)
_g = (_g + 1)
xrf = Reflect.field(store,key)
if (not xrf._hx_is(_hx_filter)):
Reflect.deleteField(store,key)
return store
@staticmethod
def template(uri,vars):
parts = uri.split("#")
if (len(parts) == 1):
return uri
frag = (parts[1] if 1 < len(parts) else None)
frag = StringTools.replace(frag,"{","::")
frag = StringTools.replace(frag,"}","::")
frag = haxe_Template(frag).execute(vars)
frag = StringTools.replace(frag,"null","")
python_internal_ArrayImpl._set(parts, 1, frag)
return "#".join([python_Boot.toString1(x1,'') for x1 in parts])
@staticmethod
def parse(stringUrl,flags):
r = EReg("^(?:(?![^:@]+:[^:@/]*@)([^:/?#.]+):)?(?://)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:/?#]*)(?::(\\d*))?)(((/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[?#]|$)))*/?)?([^?#/]*))(?:\\?([^#]*))?(?:#(.*))?)","")
startIndex = None
if (((((stringUrl.find("://") if ((startIndex is None)) else HxString.indexOfImpl(stringUrl,"://",startIndex))) == -1) and (((("" if ((0 >= len(stringUrl))) else stringUrl[0])) != "/"))) and (((("" if ((0 >= len(stringUrl))) else stringUrl[0])) != "#"))):
stringUrl = ("/" + ("null" if stringUrl is None else stringUrl))
r.matchObj = python_lib_Re.search(r.pattern,stringUrl)
url = xrfragment_URI()
_g = 0
_g1 = len(xrfragment_URI._parts)
while (_g < _g1):
i = _g
_g = (_g + 1)
field = python_internal_ArrayImpl._get(xrfragment_URI._parts, i)
value = r.matchObj.group(i)
setattr(url,(("_hx_" + field) if ((field in python_Boot.keywords)) else (("_hx_" + field) if (((((len(field) > 2) and ((ord(field[0]) == 95))) and ((ord(field[1]) == 95))) and ((ord(field[(len(field) - 1)]) != 95)))) else field)),value)
if (xrfragment_URI.isRelative(url) == True):
if ((url.directory is None) and ((url.host is not None))):
url.file = url.host
url.host = ""
url.hash = _hx_AnonObject({})
if ((url.fragment is not None) and ((len(url.fragment) > 0))):
url.XRF = xrfragment_URI.parseFragment(("#" + HxOverrides.stringOrNull(url.fragment)),flags)
key = None
_g = 0
_g1 = python_Boot.fields(url.XRF)
while (_g < len(_g1)):
key = (_g1[_g] if _g >= 0 and _g < len(_g1) else None)
_g = (_g + 1)
v = Reflect.field(url.XRF,key)
this1 = url.hash
value = Reflect.field(v,"string")
setattr(this1,(("_hx_" + key) if ((key in python_Boot.keywords)) else (("_hx_" + key) if (((((len(key) > 2) and ((ord(key[0]) == 95))) and ((ord(key[1]) == 95))) and ((ord(key[(len(key) - 1)]) != 95)))) else key)),value)
xrfragment_URI.computeVars(url)
return url
@staticmethod
def computeVars(url):
r = EReg("//","g")
tmp = None
if (url.directory is not None):
_this = url.directory
startIndex = None
tmp = (((_this.find("//") if ((startIndex is None)) else HxString.indexOfImpl(_this,"//",startIndex))) != -1)
else:
tmp = False
if tmp:
url.directory = r.replace(url.directory,"/")
tmp = None
if (url.path is not None):
_this = url.path
startIndex = None
tmp = (((_this.find("//") if ((startIndex is None)) else HxString.indexOfImpl(_this,"//",startIndex))) != -1)
else:
tmp = False
if tmp:
url.path = r.replace(url.path,"/")
tmp = None
if (url.file is not None):
_this = url.file
startIndex = None
tmp = (((_this.find("//") if ((startIndex is None)) else HxString.indexOfImpl(_this,"//",startIndex))) != -1)
else:
tmp = False
if tmp:
url.file = r.replace(url.file,"/")
url.URN = ((HxOverrides.stringOrNull(url.scheme) + "://") + HxOverrides.stringOrNull(url.host))
if (url.port is not None):
url.URN = (HxOverrides.stringOrNull(url.URN) + HxOverrides.stringOrNull(((":" + HxOverrides.stringOrNull(url.port)))))
url.URN = (HxOverrides.stringOrNull(url.URN) + HxOverrides.stringOrNull(url.directory))
if (url.file is not None):
_this = url.file
parts = _this.split(".")
if (len(parts) > 1):
url.fileExt = (None if ((len(parts) == 0)) else parts.pop())
@staticmethod
def toString(url):
result = ""
if (url.scheme is not None):
result = (("null" if result is None else result) + HxOverrides.stringOrNull(((HxOverrides.stringOrNull(url.scheme) + "://"))))
if (url.user is not None):
result = (("null" if result is None else result) + HxOverrides.stringOrNull(((HxOverrides.stringOrNull(url.user) + ":"))))
if (url.password is not None):
result = (("null" if result is None else result) + HxOverrides.stringOrNull(((HxOverrides.stringOrNull(url.password) + "@"))))
if (url.host is not None):
result = (("null" if result is None else result) + HxOverrides.stringOrNull(url.host))
if (url.port is not None):
result = (("null" if result is None else result) + HxOverrides.stringOrNull(((":" + HxOverrides.stringOrNull(url.port)))))
if (url.directory is not None):
result = (("null" if result is None else result) + HxOverrides.stringOrNull(url.directory))
if (url.file is not None):
result = (("null" if result is None else result) + HxOverrides.stringOrNull(url.file))
if (url.query is not None):
result = (("null" if result is None else result) + HxOverrides.stringOrNull((("?" + HxOverrides.stringOrNull(url.query)))))
if (url.fragment is not None):
result = (("null" if result is None else result) + HxOverrides.stringOrNull((("#" + HxOverrides.stringOrNull(url.fragment)))))
return result
@staticmethod
def appendURI(url,appendedURI):
if (xrfragment_URI.isRelative(url) == True):
return xrfragment_URI.appendToRelativeURI(url,appendedURI)
else:
return xrfragment_URI.appendToAbsoluteURI(url,appendedURI)
@staticmethod
def isRelative(url):
return (url.scheme is None)
@staticmethod
def appendToRelativeURI(url,appendedURI):
if ((url.directory is None) or ((url.host is None))):
return xrfragment_URI.cloneURI(appendedURI)
resultURI = xrfragment_URI()
resultURI.host = url.host
resultURI.directory = url.directory
if (appendedURI.host is not None):
resultURI.directory = (HxOverrides.stringOrNull(resultURI.directory) + HxOverrides.stringOrNull(appendedURI.host))
if (appendedURI.directory is not None):
directory = appendedURI.directory
if (appendedURI.host is None):
resultURI.directory = (HxOverrides.stringOrNull(resultURI.directory) + HxOverrides.stringOrNull(HxString.substr(directory,1,None)))
else:
resultURI.directory = (HxOverrides.stringOrNull(resultURI.directory) + ("null" if directory is None else directory))
if (appendedURI.file is not None):
resultURI.file = appendedURI.file
resultURI.path = (HxOverrides.stringOrNull(resultURI.directory) + HxOverrides.stringOrNull(resultURI.file))
if (appendedURI.query is not None):
resultURI.query = appendedURI.query
if (appendedURI.fragment is not None):
resultURI.fragment = appendedURI.fragment
return resultURI
@staticmethod
def appendToAbsoluteURI(url,appendedURI):
resultURI = xrfragment_URI()
if (url.scheme is not None):
resultURI.scheme = url.scheme
if (url.host is not None):
resultURI.host = url.host
directory = ""
if (url.directory is not None):
directory = url.directory
if (appendedURI.host is not None):
appendedURI.directory = (HxOverrides.stringOrNull(appendedURI.directory) + HxOverrides.stringOrNull(appendedURI.host))
if (appendedURI.directory is not None):
directory = (("null" if directory is None else directory) + HxOverrides.stringOrNull(appendedURI.directory))
resultURI.directory = directory
if (appendedURI.file is not None):
resultURI.file = appendedURI.file
resultURI.path = (HxOverrides.stringOrNull(resultURI.directory) + HxOverrides.stringOrNull(resultURI.file))
if (appendedURI.query is not None):
resultURI.query = appendedURI.query
if (appendedURI.fragment is not None):
resultURI.fragment = appendedURI.fragment
return resultURI
@staticmethod
def toAbsolute(url,newUrl):
newURI = xrfragment_URI.parse(newUrl,0)
resultURI = xrfragment_URI()
resultURI.port = url.port
resultURI.source = newUrl
if (newURI.scheme is not None):
resultURI.scheme = newURI.scheme
else:
resultURI.scheme = url.scheme
if ((newURI.host is not None) and ((len(newURI.host) > 0))):
resultURI.host = newURI.host
resultURI.port = None
resultURI.fragment = None
resultURI.hash = _hx_AnonObject({})
resultURI.XRF = _hx_AnonObject({})
if (newURI.port is not None):
resultURI.port = newURI.port
else:
resultURI.host = url.host
directory = ""
if (url.directory is not None):
directory = url.directory
tmp = None
if (newURI.directory is not None):
_this = newURI.source
tmp = ((("" if ((0 >= len(_this))) else _this[0])) != "#")
else:
tmp = False
if (tmp and ((len(newURI.directory) > 0))):
tmp = None
if ((("" if ((0 >= len(newUrl))) else newUrl[0])) != "/"):
startIndex = None
tmp = (((newUrl.find("://") if ((startIndex is None)) else HxString.indexOfImpl(newUrl,"://",startIndex))) == -1)
else:
tmp = False
if tmp:
stripRelative = EReg("\\./.*","")
directory = stripRelative.replace(directory,"")
directory = (("null" if directory is None else directory) + HxOverrides.stringOrNull(newURI.directory))
else:
directory = newURI.directory
resultURI.directory = directory
if ((newURI.file is not None) and ((len(newURI.file) > 0))):
resultURI.file = newURI.file
else:
resultURI.file = url.file
resultURI.path = (HxOverrides.stringOrNull(resultURI.directory) + HxOverrides.stringOrNull(resultURI.file))
if (newURI.query is not None):
resultURI.query = newURI.query
if (newURI.fragment is not None):
resultURI.fragment = newURI.fragment
resultURI.hash = newURI.hash
resultURI.XRF = newURI.XRF
xrfragment_URI.computeVars(resultURI)
return resultURI
@staticmethod
def cloneURI(url):
clonedURI = xrfragment_URI()
clonedURI.url = url.url
clonedURI.source = url.source
clonedURI.scheme = url.scheme
clonedURI.authority = url.authority
clonedURI.userInfo = url.userInfo
clonedURI.password = url.password
clonedURI.host = url.host
clonedURI.port = url.port
clonedURI.relative = url.relative
clonedURI.path = url.path
clonedURI.directory = url.directory
clonedURI.file = url.file
clonedURI.query = url.query
clonedURI.fragment = url.fragment
return clonedURI
xrfragment_URI._hx_class = xrfragment_URI
class xrfragment_XRF:
_hx_class_name = "xrfragment.XRF"
__slots__ = ("fragment", "flags", "index", "x", "y", "z", "shift", "floats", "color", "string", "int", "float", "filter", "reset", "loop", "xrfScheme")
_hx_fields = ["fragment", "flags", "index", "x", "y", "z", "shift", "floats", "color", "string", "int", "float", "filter", "reset", "loop", "xrfScheme"]
_hx_methods = ["is", "validate", "guessType"]
_hx_statics = ["__meta__", "IMMUTABLE", "PROP_BIND", "QUERY_OPERATOR", "PROMPT", "CUSTOMFRAG", "NAVIGATOR", "METADATA", "PV_OVERRIDE", "PV_EXECUTE", "T_COLOR", "T_INT", "T_FLOAT", "T_VECTOR2", "T_VECTOR3", "T_URL", "T_PREDEFINED_VIEW", "T_STRING", "T_MEDIAFRAG", "T_DYNAMICKEY", "T_DYNAMICKEYVALUE", "isColor", "isInt", "isFloat", "isVector", "isUrl", "isUrlOrPretypedView", "isString", "operators", "isProp", "isExclude", "isDeep", "isNumber", "isMediaFrag", "isReset", "isShift", "isXRFScheme", "set", "unset", "toDict"]
def __init__(self,_fragment,_flags,_index = None):
self.xrfScheme = None
self.loop = None
self.reset = None
self.filter = None
self.float = None
self.int = None
self.string = None
self.color = None
self.z = None
self.y = None
self.x = None
self.floats = list()
self.shift = list()
self.fragment = _fragment
self.flags = _flags
self.index = _index
def _hx_is(self,flag):
if (not Std.isOfType(self.flags,Int)):
self.flags = 0
return (((self.flags & flag)) != 0)
def validate(self,value):
self.guessType(self,value)
ok = True
if ((len(value) == 0) and (not self._hx_is(xrfragment_XRF.T_PREDEFINED_VIEW))):
ok = False
if (((not self._hx_is(xrfragment_XRF.T_FLOAT)) and self._hx_is(xrfragment_XRF.T_VECTOR2)) and (not ((Std.isOfType(self.x,Float) and Std.isOfType(self.y,Float))))):
ok = False
if (((not ((self._hx_is(xrfragment_XRF.T_VECTOR2) or self._hx_is(xrfragment_XRF.T_STRING)))) and self._hx_is(xrfragment_XRF.T_VECTOR3)) and (not (((Std.isOfType(self.x,Float) and Std.isOfType(self.y,Float)) and Std.isOfType(self.z,Float))))):
ok = False
return ok
def guessType(self,v,_hx_str):
v.string = _hx_str
_this = xrfragment_XRF.isReset
_this.matchObj = python_lib_Re.search(_this.pattern,v.fragment)
if (_this.matchObj is not None):
v.reset = True
if (v.fragment == "loop"):
v.loop = True
if (not Std.isOfType(_hx_str,str)):
return
if (len(_hx_str) > 0):
_this = xrfragment_XRF.isXRFScheme
_this.matchObj = python_lib_Re.search(_this.pattern,_hx_str)
if (_this.matchObj is not None):
v.xrfScheme = True
_hx_str = xrfragment_XRF.isXRFScheme.replace(_hx_str,"")
v.string = _hx_str
if (len(_hx_str.split(",")) > 1):
xyzn = _hx_str.split(",")
if (len(xyzn) > 0):
v.x = Std.parseFloat((xyzn[0] if 0 < len(xyzn) else None))
if (len(xyzn) > 1):
v.y = Std.parseFloat((xyzn[1] if 1 < len(xyzn) else None))
if (len(xyzn) > 2):
v.z = Std.parseFloat((xyzn[2] if 2 < len(xyzn) else None))
_g = 0
_g1 = len(xyzn)
while (_g < _g1):
i = _g
_g = (_g + 1)
_this = v.shift
_this1 = xrfragment_XRF.isShift
_this1.matchObj = python_lib_Re.search(_this1.pattern,(xyzn[i] if i >= 0 and i < len(xyzn) else None))
x = (_this1.matchObj is not None)
_this.append(x)
_this2 = v.floats
x1 = Std.parseFloat(xrfragment_XRF.isShift.replace((xyzn[i] if i >= 0 and i < len(xyzn) else None),""))
_this2.append(x1)
_this = xrfragment_XRF.isColor
_this.matchObj = python_lib_Re.search(_this.pattern,_hx_str)
if (_this.matchObj is not None):
v.color = _hx_str
_this = xrfragment_XRF.isFloat
_this.matchObj = python_lib_Re.search(_this.pattern,_hx_str)
if (_this.matchObj is not None):
v.x = Std.parseFloat(_hx_str)
v.float = v.x
_this = xrfragment_XRF.isInt
_this.matchObj = python_lib_Re.search(_this.pattern,_hx_str)
if (_this.matchObj is not None):
v.int = Std.parseInt(_hx_str)
v.x = v.int
_this = v.floats
x = v.x
_this.append(x)
v.filter = xrfragment_Filter(((HxOverrides.stringOrNull(v.fragment) + "=") + HxOverrides.stringOrNull(v.string)))
else:
v.filter = xrfragment_Filter(v.fragment)
@staticmethod
def set(flag,flags):
return (flags | flag)
@staticmethod
def unset(flag,flags):
return (flags & ~flag)
@staticmethod
def toDict(o):
return python_Lib.anonToDict(o)
xrfragment_XRF._hx_class = xrfragment_XRF
Math.NEGATIVE_INFINITY = float("-inf")
Math.POSITIVE_INFINITY = float("inf")
Math.NaN = float("nan")
Math.PI = python_lib_Math.pi
haxe_Template.splitter = EReg("(::[A-Za-z0-9_ ()&|!+=/><*.\"-]+::|\\$\\$([A-Za-z0-9_-]+)\\()","")
haxe_Template.expr_splitter = EReg("(\\(|\\)|[ \r\n\t]*\"[^\"]*\"[ \r\n\t]*|[!+=/><*.&|-]+)","")
haxe_Template.expr_trim = EReg("^[ ]*([^ ]+)[ ]*$","")
haxe_Template.expr_int = EReg("^[0-9]+$","")
haxe_Template.expr_float = EReg("^([+-]?)(?=\\d|,\\d)\\d*(,\\d*)?([Ee]([+-]?\\d+))?$","")
haxe_Template.globals = _hx_AnonObject({})
haxe_Template.hxKeepArrayIterator = haxe_iterators_ArrayIterator([])
python_Boot.keywords = set(["and", "del", "from", "not", "with", "as", "elif", "global", "or", "yield", "assert", "else", "if", "pass", "None", "break", "except", "import", "raise", "True", "class", "exec", "in", "return", "False", "continue", "finally", "is", "try", "def", "for", "lambda", "while"])
python_Boot.prefixLength = len("_hx_")
xrfragment_Parser.error = ""
xrfragment_Parser.debug = False
xrfragment_URI.__meta__ = _hx_AnonObject({'statics': _hx_AnonObject({'template': _hx_AnonObject({'keep': None})})})
xrfragment_URI._parts = ["source", "scheme", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "fragment"]
xrfragment_XRF.__meta__ = _hx_AnonObject({'statics': _hx_AnonObject({'toDict': _hx_AnonObject({'keep': None})})})
xrfragment_XRF.IMMUTABLE = 1
xrfragment_XRF.PROP_BIND = 2
xrfragment_XRF.QUERY_OPERATOR = 4
xrfragment_XRF.PROMPT = 8
xrfragment_XRF.CUSTOMFRAG = 16
xrfragment_XRF.NAVIGATOR = 32
xrfragment_XRF.METADATA = 64
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_MEDIAFRAG = 2097152
xrfragment_XRF.T_DYNAMICKEY = 4194304
xrfragment_XRF.T_DYNAMICKEYVALUE = 8388608
xrfragment_XRF.isColor = EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","")
xrfragment_XRF.isInt = EReg("^[-0-9]+$","")
xrfragment_XRF.isFloat = EReg("^[-0-9]+\\.[0-9]+$","")
xrfragment_XRF.isVector = EReg("([,]+|\\w)","")
xrfragment_XRF.isUrl = EReg("(://)?\\..*","")
xrfragment_XRF.isUrlOrPretypedView = EReg("(^#|://)?\\..*","")
xrfragment_XRF.isString = EReg(".*","")
xrfragment_XRF.operators = EReg("(^[-]|^[!]|[\\*]$)","g")
xrfragment_XRF.isProp = EReg("^.*=[><=]?","")
xrfragment_XRF.isExclude = EReg("^-","")
xrfragment_XRF.isDeep = EReg("\\*","")
xrfragment_XRF.isNumber = EReg("^[0-9\\.]+$","")
xrfragment_XRF.isMediaFrag = EReg("^([0-9\\.,\\*+-]+)$","")
xrfragment_XRF.isReset = EReg("^!","")
xrfragment_XRF.isShift = EReg("^(\\+|--)","")
xrfragment_XRF.isXRFScheme = EReg("^xrf://","")