2015-04-04 18:16:22 -04:00
|
|
|
# test the lexer
|
|
|
|
|
2018-02-14 00:46:44 -05:00
|
|
|
try:
|
|
|
|
eval
|
|
|
|
exec
|
|
|
|
except NameError:
|
|
|
|
print("SKIP")
|
|
|
|
raise SystemExit
|
|
|
|
|
2015-04-04 18:16:22 -04:00
|
|
|
# __debug__ is a special symbol
|
|
|
|
print(type(__debug__))
|
|
|
|
|
|
|
|
# short input
|
|
|
|
exec("")
|
|
|
|
exec("\n")
|
|
|
|
exec("\n\n")
|
|
|
|
exec("\r")
|
|
|
|
exec("\r\r")
|
2017-05-08 20:24:29 -04:00
|
|
|
exec("\t")
|
|
|
|
exec("\r\n")
|
|
|
|
exec("\nprint(1)")
|
|
|
|
exec("\rprint(2)")
|
|
|
|
exec("\r\nprint(3)")
|
|
|
|
exec("\n5")
|
|
|
|
exec("\r6")
|
|
|
|
exec("\r\n7")
|
2015-04-04 18:16:22 -04:00
|
|
|
print(eval("1"))
|
|
|
|
print(eval("12"))
|
|
|
|
print(eval("123"))
|
|
|
|
print(eval("1\n"))
|
|
|
|
print(eval("12\n"))
|
|
|
|
print(eval("123\n"))
|
|
|
|
print(eval("1\r"))
|
|
|
|
print(eval("12\r"))
|
|
|
|
print(eval("123\r"))
|
|
|
|
|
2017-05-09 16:17:04 -04:00
|
|
|
# line continuation
|
|
|
|
print(eval("'123' \\\r '456'"))
|
|
|
|
print(eval("'123' \\\n '456'"))
|
|
|
|
print(eval("'123' \\\r\n '456'"))
|
|
|
|
print(eval("'123'\\\r'456'"))
|
|
|
|
print(eval("'123'\\\n'456'"))
|
|
|
|
print(eval("'123'\\\r\n'456'"))
|
|
|
|
|
2016-12-21 18:32:06 -05:00
|
|
|
# backslash used to escape a line-break in a string
|
|
|
|
print('a\
|
|
|
|
b')
|
|
|
|
|
2015-04-04 18:16:22 -04:00
|
|
|
# lots of indentation
|
|
|
|
def a(x):
|
|
|
|
if x:
|
|
|
|
if x:
|
|
|
|
if x:
|
|
|
|
if x:
|
|
|
|
if x:
|
|
|
|
if x:
|
|
|
|
if x:
|
|
|
|
if x:
|
|
|
|
if x:
|
|
|
|
if x:
|
|
|
|
if x:
|
|
|
|
if x:
|
|
|
|
if x:
|
|
|
|
if x:
|
|
|
|
if x:
|
|
|
|
print(x)
|
|
|
|
a(1)
|
2015-07-23 18:20:37 -04:00
|
|
|
|
|
|
|
# badly formed hex escape sequences
|
|
|
|
try:
|
|
|
|
exec(r"'\x0'")
|
|
|
|
except SyntaxError:
|
|
|
|
print("SyntaxError")
|
|
|
|
try:
|
|
|
|
exec(r"b'\x0'")
|
|
|
|
except SyntaxError:
|
|
|
|
print("SyntaxError")
|
|
|
|
try:
|
|
|
|
exec(r"'\u000'")
|
|
|
|
except SyntaxError:
|
|
|
|
print("SyntaxError")
|
|
|
|
try:
|
|
|
|
exec(r"'\U0000000'")
|
|
|
|
except SyntaxError:
|
|
|
|
print("SyntaxError")
|