def __init__(self,
                 storage_class_specifiers=[],
                 type_qualifiers=[],
                 type_specifiers=[],
                 function_specifiers=[],
                 lexer_base=CLexer,
                 **kwargs):

        self.lexer_class = type("ExtensibleCLexer", (CLexer, ), dict())

        self.add_rule("storage_class_specifier", storage_class_specifiers,
                      self.p_storage_class_specifier)
        self.add_rule("type_qualifier", type_qualifiers, self.p_type_qualifier)
        self.add_rule("function_specifier", function_specifiers,
                      self.p_function_specifier)
        self.add_rule("type_specifier_no_typeid", type_specifiers,
                      self.p_type_specifier_no_typeid)

        kwargs['lexer'] = self.lexer_class
        kwargs['lex_optimize'] = False
        kwargs['yacc_optimize'] = False
        #kwargs['yacc_debug']=True

        CParser.__init__(self, **kwargs)
Exemple #2
0
 def __init__(self, **kwds):
     kwds['lexer'] = CPPLexer
     kwds['lextab'] = 'nicelib.parser.lextab'
     kwds['yacctab'] = 'nicelib.parser.yacctab'
     CParser.__init__(self, **kwds)