def __init__(self, lexer=None): if lexer is None: self.lexer = MyLexer(stage="post_processed", optimize=_OPTIMIZE_LEX) else: self.lexer = lexer picklefile = _PICKLED_PARSETAB if not op.exists(picklefile): try: fid = open(picklefile, "wb") fid.close() except IOError: e = extract_exception() raise BentoError( "Could not write pickle file %r (original error was %r)" % (picklefile, e)) else: try: fid = open(_PICKLED_PARSETAB, "wb") fid.close() except IOError: # In case of read-only support (no write access, zip import, # etc...) e = extract_exception() if e.errno == errno.EACCES: if _has_parser_changed(_PICKLED_PARSETAB): raise BentoError( "Cannot write new updated grammar to file %r" % _PICKLED_PARSETAB) else: raise self.parser = ply.yacc.yacc(start="stmt_list", picklefile=picklefile, debug=_DEBUG_YACC)
def reset(self): # XXX: implements reset for lexer self.lexer = MyLexer(stage="post_processed", optimize=_OPTIMIZE_LEX) # XXX: ply parser.reset method expects those attributes to # exist self.parser.statestack = [] self.parser.symstack = [] return self.parser.restart()
def setUp(self): self.lexer = MyLexer(stage="escape_detected")
def setUp(self): self.lexer = MyLexer(stage="post_processed")
def setUp(self): self.lexer = MyLexer(stage="raw")
def setUp(self): self.lexer = MyLexer()
def setUp(self): self.lexer = MyLexer(stage="indent_generated")
def setUp(self): self.lexer = MyLexer(stage="escape_merged")