micropython: add micropython component
This commit is contained in:
85
components/language/micropython/tests/basics/lexer.py
Normal file
85
components/language/micropython/tests/basics/lexer.py
Normal file
@@ -0,0 +1,85 @@
|
||||
# test the lexer
|
||||
|
||||
try:
|
||||
eval
|
||||
exec
|
||||
except NameError:
|
||||
print("SKIP")
|
||||
raise SystemExit
|
||||
|
||||
# __debug__ is a special symbol
|
||||
print(type(__debug__))
|
||||
|
||||
# short input
|
||||
exec("")
|
||||
exec("\n")
|
||||
exec("\n\n")
|
||||
exec("\r")
|
||||
exec("\r\r")
|
||||
exec("\t")
|
||||
exec("\r\n")
|
||||
exec("\nprint(1)")
|
||||
exec("\rprint(2)")
|
||||
exec("\r\nprint(3)")
|
||||
exec("\n5")
|
||||
exec("\r6")
|
||||
exec("\r\n7")
|
||||
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"))
|
||||
|
||||
# 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'"))
|
||||
|
||||
# backslash used to escape a line-break in a string
|
||||
print('a\
|
||||
b')
|
||||
|
||||
# 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)
|
||||
|
||||
# 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")
|
Reference in New Issue
Block a user