def ensure_raises_and_not(string, nwarnings): lexer = AtfLexer().lexer lexer.input(string) with pytest.raises(SyntaxError) as excinfo: for i in lexer: pass # If we allow invalid syntax this should not raise lexer = AtfLexer(skipinvalid=True).lexer lexer.input(string) with pytest.warns(UserWarning) as record: for i in lexer: pass assert len(record) == nwarnings
def compare_tokens(content, expected_types, expected_values=None, expected_lineno=None, expected_lexpos=None): lexer = AtfLexer().lexer lexer.input(content) if expected_values is None: expected_values = repeat(None) if expected_lineno is None: expected_lineno = repeat(None) if expected_lexpos is None: expected_lexpos = repeat(None) for e_type, e_value, e_lineno, e_lexpos, token in zip_longest( expected_types, expected_values, expected_lineno, expected_lexpos, lexer): if token is None and e_type is None: break assert token.type == e_type if e_value: assert token.value == e_value if e_lineno: assert token.lineno == e_lineno if e_lexpos: assert token.lexpos == e_lexpos
def __init__(self, content, atftype='oracc', debug=False): skipinvalid = False if content[-1] != '\n': content += "\n" if atftype == 'cdli': lexer = AtfCDLILexer(debug=debug, skipinvalid=skipinvalid, log=log).lexer parser = AtfCDLIParser(debug=debug, log=log).parser elif atftype == 'oracc': lexer = AtfOraccLexer(debug=debug, skipinvalid=skipinvalid, log=log).lexer parser = AtfOraccParser(debug=debug, log=log).parser else: lexer = AtfLexer(debug=debug, skipinvalid=skipinvalid, log=log).lexer parser = AtfParser(debug=debug, log=log).parser if debug: self.text = parser.parse(content, lexer=lexer, debug=log) else: self.text = parser.parse(content, lexer=lexer)
def __init__(self, content, atftype='oracc', debug=False,skip=False): if content[-1] != '\n': content += "\n" if atftype == 'cdli': atflexer=AtfCDLILexer(debug=debug, skip=skip,log=log) atfparser=AtfCDLIParser(debug=debug, skip=skip,log=log) elif atftype == 'oracc': atflexer=AtfOraccLexer(debug=debug, skip=skip,log=log) atfparser=AtfOraccParser(debug=debug, skip=skip,log=log) else: atflexer=AtfLexer(debug=debug, skip=skip,log=log) atfparser=AtfParser(debug=debug, skip=skip,log=log) lexer = atflexer.lexer parser = atfparser.parser self.errors_lex=atflexer.errors self.errors_yacc=atfparser.errors if debug: self.text = parser.parse(content, lexer=lexer, debug=log) else: self.text = parser.parse(content, lexer=lexer)
def test_resolve_keyword_no_extra(): '''Test that resolve_keyword works correcty when extra is not passes This never happes in actual code. Hench this test''' mylexer = AtfLexer() result = mylexer.resolve_keyword('obverse', mylexer.structures) assert result == 'OBVERSE'
def setUp(self): self.lexer = AtfLexer().lexer
def try_parse(content): if content[-1] != '\n': content += "\n" lexer = AtfLexer().lexer parser = AtfParser().parser return parser.parse(content, lexer=lexer)
def setUp(self): """ Initialize lexer and parser. """ self.lexer = AtfLexer().lexer self.parser = AtfParser().parser