def grammar_stmt(self, token, buffer): tag, left, right, sublist = token map = singleMap(sublist) grammar = Grammar() grammar.name = getString(map['varname'], buffer) grammar.statements = self._suite(map['suite'], buffer) if 'inherit' in map: grammar.inherit = self._inherit(map['inherit'], buffer) self.context.grammars[grammar.name] = grammar
def instance_list(self, (tag, start, stop, subtags), buffer): """ Process C{complex_content} production. @return: a 2-tuple of (keywords, parameter lists), where keywords is the list of KEYWORD occurrences and parameter lists is a list of strings (each of which is an unparsed parameter list). """ inst = dp.multiMap((tag, start, stop, subtags), buffer) return inst.get("KEYWORD"), inst.get("parameter_list") def simple_instance(self, (tag, start, stop, subtags), buffer): """ Process C{simple_instance} production. """ inst = dp.singleMap(subtags, self, buffer) iname = int(inst.get("ENTITY_INSTANCE_NAME")) self.res["contents"][iname] = inst.get("parameter_list") self.res["insttype"][iname] = inst.get("KEYWORD") self.res["typeinst"][inst.get("KEYWORD")].append(iname) def complex_instance(self, (tag, start, stop, subtags), buffer): """ Process C{complex_instance} production. """ inst = dp.singleMap(subtags, self, buffer) iname = int(inst.get("ENTITY_INSTANCE_NAME")) self.res["contents"][iname] = inst.get("parameter_list") self.res["insttype"][iname] = "complex_type" self.res["typeinst"][inst.get("KEYWORD")].append(iname)
def parameters(self, value, buffer_): # @UnusedVariable # value = (tag, left, right, taglist) _av = singleMap(value[3], self, buffer_) if len(_av) == 1 and type(_av) in [dict] and "parameter_list" in _av: return {'parameters': _av["parameter_list"]} return {'parameters': _av}
def array_declaration(self, value, buffer_): # @UnusedVariable # value = (tag, left, right, taglist) return singleMap(value[3], self, buffer_)
def comment(self, value, buffer_): # @UnusedVariable # value = (tag, left, right, taglist) return {'comment': singleMap(value[3], self, buffer_)}
def designation(self, value, buffer_): # @UnusedVariable # value = (tag, left, right, taglist) return {'designation': singleMap(value[3], self, buffer_)}
def data_definition(self, value, buffer_): # value = (tag, left, right, taglist) return singleMap(value[3], self, buffer_)
def parameter(self, value, buffer_): # @UnusedVariable # value = (tag, left, right, taglist) return singleMap(value[3], self, buffer_)
def instance_list(self, (tag, start, stop, subtags), buffer): """ Process C{complex_content} production. @return: a 2-tuple of (keywords, parameter lists), where keywords is the list of KEYWORD occurrences and parameter lists is a list of strings (each of which is an unparsed parameter list). """ inst = dp.multiMap((tag, start, stop, subtags), buffer) return inst.get('KEYWORD'), inst.get('parameter_list') def simple_instance(self, (tag, start, stop, subtags), buffer): """ Process C{simple_instance} production. """ inst = dp.singleMap(subtags, self, buffer) iname = int(inst.get('ENTITY_INSTANCE_NAME')) self.res['contents'][iname] = inst.get('parameter_list') self.res['insttype'][iname] = inst.get('KEYWORD') self.res['typeinst'][inst.get('KEYWORD')].append(iname) def complex_instance(self, (tag, start, stop, subtags), buffer): """ Process C{complex_instance} production. """ inst = dp.singleMap(subtags, self, buffer) iname = int(inst.get('ENTITY_INSTANCE_NAME')) self.res['contents'][iname] = inst.get('parameter_list') self.res['insttype'][iname] = 'complex_type' self.res['typeinst'][inst.get('KEYWORD')].append(iname)
elif tag == 'function': statement = self._function(token, buffer) else: raise Exception('BUG: invalid token %s' % tag) statements.append(statement) return statements def define_stmt(self, (tag, left, right, sublist), buffer): name_tup, value_tup = sublist value_tag = value_tup[0] name = getString(name_tup, buffer) value = getString(value_tup, buffer) if value_tag == 'regex': value = self._regex(value_tup, buffer) elif value_tag == 'varname': if not self.context.lexicon.has_key(value): _error(buffer, value_tup[1], 'no such variable') value = self.context.lexicon[value] else: raise Exception('BUG: invalid token %s' % value_tag) self.context.lexicon[name] = value def grammar_stmt(self, (tag, left, right, sublist), buffer): map = singleMap(sublist) grammar = Grammar() grammar.name = getString(map['varname'], buffer) grammar.statements = self._suite(map['suite'], buffer) if map.has_key('inherit'): grammar.inherit = self._inherit(map['inherit'], buffer) self.context.grammars[grammar.name] = grammar