1# lexer tests for things that are not implemented, or have non-compliant behaviour
2
3
4def test(code):
5    try:
6        exec(code)
7        print("no Error")
8    except SyntaxError:
9        print("SyntaxError")
10    except NotImplementedError:
11        print("NotImplementedError")
12
13
14# uPy requires spaces between literal numbers and keywords, CPy doesn't
15try:
16    eval("1and 0")
17except SyntaxError:
18    print("SyntaxError")
19try:
20    eval("1or 0")
21except SyntaxError:
22    print("SyntaxError")
23try:
24    eval("1if 1else 0")
25except SyntaxError:
26    print("SyntaxError")
27try:
28    eval("1if 0else 0")
29except SyntaxError:
30    print("SyntaxError")
31
32# unicode name escapes are not implemented
33test('"\\N{LATIN SMALL LETTER A}"')
34