Ejemplo n.º 1
0
 def test_backslash(self):
     grammar = r'main -> "\""'
     code = create_code_for_nearley_grammar(grammar, 'main', BUILTIN_PATH, './')
     d = {}
     exec (code, d)
     parse = d['parse']
     parse(u'"')
Ejemplo n.º 2
0
    def test_utf8(self):
        grammar = u'main -> "±a"'
        code = create_code_for_nearley_grammar(grammar, 'main', BUILTIN_PATH, './')
        d = {}
        exec (code, d)
        parse = d['parse']

        parse(u'±a')
Ejemplo n.º 3
0
 def test_null(self):
     grammar = r'main -> "a" | null'
     code = create_code_for_nearley_grammar(grammar, 'main', BUILTIN_PATH, './')
     d = {}
     exec (code, d)
     parse = d['parse']
     parse('a')
     parse('')
Ejemplo n.º 4
0
    def test_include(self):
        fn = os.path.join(NEARLEY_PATH, 'test/grammars/folder-test.ne')
        with open(fn) as f:
            grammar = f.read()

        code = create_code_for_nearley_grammar(grammar, 'main', BUILTIN_PATH, os.path.dirname(fn))
        d = {}
        exec (code, d)
        parse = d['parse']

        parse('a')
        parse('b')
Ejemplo n.º 5
0
    def test_css(self):
        fn = os.path.join(NEARLEY_PATH, 'examples/csscolor.ne')
        with open(fn) as f:
            grammar = f.read()

        code = create_code_for_nearley_grammar(grammar, 'csscolor', BUILTIN_PATH, os.path.dirname(fn))
        d = {}
        exec (code, d)
        parse = d['parse']

        c = parse('#a199ff')
        assert c['r'] == 161
        assert c['g'] == 153
        assert c['b'] == 255

        c = parse('rgb(255, 70%, 3)')
        assert c['r'] == 255
        assert c['g'] == 178
        assert c['b'] == 3