# 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}"')