00001 from silme.core.object import L10nObject 00002 00003 class LOL(L10nObject): 00004 def __init__(self): 00005 self.structure = [] 00006 00007 def add(self, element): 00008 if element != None: 00009 self.structure.append(element) 00010 00011 def get_entities(self): 00012 entities = [] 00013 for element in self.structure: 00014 if isinstance(element, Entity): 00015 entities.append(element) 00016 return entities 00017 00018 class WS(): 00019 def __init__(self, content): 00020 self.content = content 00021 00022 class Group(): 00023 def __init__(self): 00024 self.structure = [] 00025 00026 def add(self, entry): 00027 self.structure.append(entry) 00028 00029 class Entity(): 00030 def __init__(self): 00031 self.id = None 00032 self.value = None 00033 00034 def get_value(self): 00035 if isinstance(self.value, String): 00036 return self.value.buffer 00037 else: 00038 return '' 00039 00040 class Comment(): 00041 def __init__(self, content=None): 00042 self.content = content 00043 00044 class Expression(): 00045 pass 00046 00047 class Index(): 00048 def __init__(self): 00049 self.expression = None 00050 00051 class String(): 00052 def __init__(self): 00053 self.buffer = '' 00054 pass 00055 00056 class Array(): 00057 def __init__(self): 00058 self.values = [] 00059 00060 class Hash(): 00061 def __init__(self): 00062 self.key_value_pairs = {} 00063 00064 class Expander(): 00065 pass 00066 00067 class Macro(): 00068 def __init__(self): 00069 self.structure=[] 00070 00071 class Operator(str): 00072 pass 00073 00074 class KeyValuePair(): 00075 def __init__(self): 00076 self.key = None 00077 self.value = None 00078 self.ws = [] 00079 00080 00081 class OperatorExpression(list): 00082 pass 00083 00084 class ConditionalExpression(OperatorExpression): 00085 pass 00086 00087 class OrExpression(OperatorExpression): 00088 pass 00089 00090 class AndExpression(OperatorExpression): 00091 pass 00092 00093 class EqualityExpression(OperatorExpression): 00094 pass 00095 00096 class RelationalExpression(OperatorExpression): 00097 pass 00098 00099 class AdditiveExpression(OperatorExpression): 00100 pass 00101 00102 class MultiplicativeExpression(OperatorExpression): 00103 pass 00104 00105 class UnaryExpression(OperatorExpression): 00106 pass 00107 00108 class BraceExpression(list): 00109 pass 00110 00111 class MacroCall(): 00112 def __init__(self): 00113 self.structure=[] 00114 00115 class Idref(list): 00116 pass 00117
1.5.8