コード例 #1
0
ファイル: test_atflexer.py プロジェクト: cdli-gh/pyoracc
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
コード例 #2
0
ファイル: test_atflexer.py プロジェクト: cdli-gh/pyoracc
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
コード例 #3
0
 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)
コード例 #4
0
ファイル: atffile.py プロジェクト: julightzhong10/pyoracc
 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)
コード例 #5
0
ファイル: test_atflexer.py プロジェクト: cdli-gh/pyoracc
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'
コード例 #6
0
 def setUp(self):
     self.lexer = AtfLexer().lexer
コード例 #7
0
ファイル: test_atfparser.py プロジェクト: cdli-gh/pyoracc
def try_parse(content):
    if content[-1] != '\n':
        content += "\n"
    lexer = AtfLexer().lexer
    parser = AtfParser().parser
    return parser.parse(content, lexer=lexer)
コード例 #8
0
 def setUp(self):
     """
     Initialize lexer and parser.
     """
     self.lexer = AtfLexer().lexer
     self.parser = AtfParser().parser