2015-09-07 16:59:55 +01:00
|
|
|
# lexer tests for things that are not implemented, or have non-compliant behaviour
|
|
|
|
|
2015-09-07 17:08:49 +01:00
|
|
|
def test(code):
|
|
|
|
try:
|
|
|
|
exec(code)
|
|
|
|
print('no Error')
|
|
|
|
except SyntaxError:
|
|
|
|
print('SyntaxError')
|
|
|
|
except NotImplementedError:
|
|
|
|
print('NotImplementedError')
|
|
|
|
|
2015-09-07 16:59:55 +01:00
|
|
|
# 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')
|
2015-09-07 17:08:49 +01:00
|
|
|
|
|
|
|
# unicode name escapes are not implemented
|
|
|
|
test('"\\N{LATIN SMALL LETTER A}"')
|