# lexer tests for things that are not implemented, or have non-compliant behaviour

def test(code):
    try:
        exec(code)
        print('no Error')
    except SyntaxError:
        print('SyntaxError')
    except NotImplementedError:
        print('NotImplementedError')

# uPy requires spaces between literal numbers and keywords, CPy doesn't
try:
    eval('1and 0')
except SyntaxError:
    print('SyntaxError')
try:
    eval('1or 0')
except SyntaxError:
    print('SyntaxError')
try:
    eval('1if 1else 0')
except SyntaxError:
    print('SyntaxError')
try:
    eval('1if 0else 0')
except SyntaxError:
    print('SyntaxError')

# unicode name escapes are not implemented
test('"\\N{LATIN SMALL LETTER A}"')