Lines Matching refs:self
134 def __init__(self, z):
136 self.tenx = int(float(z) * 10)
138 def __lt__(self, other):
139 return self.tenx < other.tenx
141 def __hash__(self):
142 return hash(self.tenx)
144 def __eq__(self, other):
145 return self.tenx == other.tenx
147 def prefix(self, token):
148 gen = self.tenx
160 def __init__(self, name):
161 self.name = name
162 self.token_name = safe_name(name)
163 self.length_by_gen = {}
164 self.fields = {}
165 self.allowed = False
167 def add_gen(self, gen, xml_attrs):
170 self.length_by_gen[gen] = xml_attrs['length']
172 def get_field(self, field_name, create=False):
174 if key not in self.fields:
176 self.fields[key] = Field(self, field_name)
179 return self.fields[key]
181 def has_prop(self, prop):
183 return bool(self.length_by_gen)
187 def iter_prop(self, prop):
189 return self.length_by_gen.items()
193 def get_prop(self, prop, gen):
198 return self.length_by_gen.get(gen, 0)
204 def __init__(self, container, name):
205 self.name = name
206 self.token_name = safe_name('_'.join([container.name, self.name]))
207 self.bits_by_gen = {}
208 self.start_by_gen = {}
209 self.allowed = False
211 def add_gen(self, gen, xml_attrs):
215 self.start_by_gen[gen] = start
216 self.bits_by_gen[gen] = 1 + end - start
218 def has_prop(self, prop):
221 def iter_prop(self, prop):
223 return self.bits_by_gen.items()
225 return self.start_by_gen.items()
229 def get_prop(self, prop, gen):
234 return self.bits_by_gen.get(gen, 0)
236 return self.start_by_gen.get(gen, 0)
242 def __init__(self, containers):
243 self.parser = xml.parsers.expat.ParserCreate()
244 self.parser.StartElementHandler = self.start_element
245 self.parser.EndElementHandler = self.end_element
247 self.gen = None
248 self.containers = containers
249 self.container_stack = []
250 self.container_stack.append(None)
252 def parse(self, filename):
254 self.parser.ParseFile(f)
256 def start_element(self, name, attrs):
258 self.gen = Gen(attrs['gen'])
262 if not engines & self.engines:
263 self.container_stack.append(None)
265 self.start_container(attrs)
267 self.container_stack.append(None)
269 self.start_field(attrs)
273 def end_element(self, name):
275 self.gen = None
277 self.container_stack.pop()
281 def start_container(self, attrs):
282 assert self.container_stack[-1] is None
284 if name not in self.containers:
285 self.containers[name] = Container(name)
286 self.container_stack.append(self.containers[name])
287 self.container_stack[-1].add_gen(self.gen, attrs)
289 def start_field(self, attrs):
290 if self.container_stack[-1] is None:
297 self.container_stack[-1].get_field(field_name, True).add_gen(self.gen, attrs)