17db96d56Sopenharmony_ci# Tests for the 'tokenize' module. 27db96d56Sopenharmony_ci# Large bits stolen from test_grammar.py. 37db96d56Sopenharmony_ci 47db96d56Sopenharmony_ci# Comments 57db96d56Sopenharmony_ci"#" 67db96d56Sopenharmony_ci#' 77db96d56Sopenharmony_ci#" 87db96d56Sopenharmony_ci#\ 97db96d56Sopenharmony_ci # 107db96d56Sopenharmony_ci # abc 117db96d56Sopenharmony_ci'''# 127db96d56Sopenharmony_ci#''' 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_cix = 1 # 157db96d56Sopenharmony_ci 167db96d56Sopenharmony_ci# Balancing continuation 177db96d56Sopenharmony_ci 187db96d56Sopenharmony_cia = (3, 4, 197db96d56Sopenharmony_ci 5, 6) 207db96d56Sopenharmony_ciy = [3, 4, 217db96d56Sopenharmony_ci 5] 227db96d56Sopenharmony_ciz = {'a':5, 237db96d56Sopenharmony_ci 'b':6} 247db96d56Sopenharmony_cix = (len(repr(y)) + 5*x - a[ 257db96d56Sopenharmony_ci 3 ] 267db96d56Sopenharmony_ci - x + len({ 277db96d56Sopenharmony_ci } 287db96d56Sopenharmony_ci ) 297db96d56Sopenharmony_ci ) 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_ci# Backslash means line continuation: 327db96d56Sopenharmony_cix = 1 \ 337db96d56Sopenharmony_ci+ 1 347db96d56Sopenharmony_ci 357db96d56Sopenharmony_ci# Backslash does not means continuation in comments :\ 367db96d56Sopenharmony_cix = 0 377db96d56Sopenharmony_ci 387db96d56Sopenharmony_ci# Ordinary integers 397db96d56Sopenharmony_ci0xff != 255 407db96d56Sopenharmony_ci0o377 != 255 417db96d56Sopenharmony_ci2147483647 != 0o17777777777 427db96d56Sopenharmony_ci-2147483647-1 != 0o20000000000 437db96d56Sopenharmony_ci0o37777777777 != -1 447db96d56Sopenharmony_ci0xffffffff != -1; 0o37777777777 != -1; -0o1234567 == 0O001234567; 0b10101 == 0B00010101 457db96d56Sopenharmony_ci 467db96d56Sopenharmony_ci# Long integers 477db96d56Sopenharmony_cix = 0 487db96d56Sopenharmony_cix = 0 497db96d56Sopenharmony_cix = 0xffffffffffffffff 507db96d56Sopenharmony_cix = 0xffffffffffffffff 517db96d56Sopenharmony_cix = 0o77777777777777777 527db96d56Sopenharmony_cix = 0B11101010111111111 537db96d56Sopenharmony_cix = 123456789012345678901234567890 547db96d56Sopenharmony_cix = 123456789012345678901234567890 557db96d56Sopenharmony_ci 567db96d56Sopenharmony_ci# Floating-point numbers 577db96d56Sopenharmony_cix = 3.14 587db96d56Sopenharmony_cix = 314. 597db96d56Sopenharmony_cix = 0.314 607db96d56Sopenharmony_ci# XXX x = 000.314 617db96d56Sopenharmony_cix = .314 627db96d56Sopenharmony_cix = 3e14 637db96d56Sopenharmony_cix = 3E14 647db96d56Sopenharmony_cix = 3e-14 657db96d56Sopenharmony_cix = 3e+14 667db96d56Sopenharmony_cix = 3.e14 677db96d56Sopenharmony_cix = .3e14 687db96d56Sopenharmony_cix = 3.1e4 697db96d56Sopenharmony_ci 707db96d56Sopenharmony_ci# String literals 717db96d56Sopenharmony_cix = ''; y = ""; 727db96d56Sopenharmony_cix = '\''; y = "'"; 737db96d56Sopenharmony_cix = '"'; y = "\""; 747db96d56Sopenharmony_cix = "doesn't \"shrink\" does it" 757db96d56Sopenharmony_ciy = 'doesn\'t "shrink" does it' 767db96d56Sopenharmony_cix = "does \"shrink\" doesn't it" 777db96d56Sopenharmony_ciy = 'does "shrink" doesn\'t it' 787db96d56Sopenharmony_cix = """ 797db96d56Sopenharmony_ciThe "quick" 807db96d56Sopenharmony_cibrown fox 817db96d56Sopenharmony_cijumps over 827db96d56Sopenharmony_cithe 'lazy' dog. 837db96d56Sopenharmony_ci""" 847db96d56Sopenharmony_ciy = '\nThe "quick"\nbrown fox\njumps over\nthe \'lazy\' dog.\n' 857db96d56Sopenharmony_ciy = ''' 867db96d56Sopenharmony_ciThe "quick" 877db96d56Sopenharmony_cibrown fox 887db96d56Sopenharmony_cijumps over 897db96d56Sopenharmony_cithe 'lazy' dog. 907db96d56Sopenharmony_ci'''; 917db96d56Sopenharmony_ciy = "\n\ 927db96d56Sopenharmony_ciThe \"quick\"\n\ 937db96d56Sopenharmony_cibrown fox\n\ 947db96d56Sopenharmony_cijumps over\n\ 957db96d56Sopenharmony_cithe 'lazy' dog.\n\ 967db96d56Sopenharmony_ci"; 977db96d56Sopenharmony_ciy = '\n\ 987db96d56Sopenharmony_ciThe \"quick\"\n\ 997db96d56Sopenharmony_cibrown fox\n\ 1007db96d56Sopenharmony_cijumps over\n\ 1017db96d56Sopenharmony_cithe \'lazy\' dog.\n\ 1027db96d56Sopenharmony_ci'; 1037db96d56Sopenharmony_cix = r'\\' + R'\\' 1047db96d56Sopenharmony_cix = r'\'' + '' 1057db96d56Sopenharmony_ciy = r''' 1067db96d56Sopenharmony_cifoo bar \\ 1077db96d56Sopenharmony_cibaz''' + R''' 1087db96d56Sopenharmony_cifoo''' 1097db96d56Sopenharmony_ciy = r"""foo 1107db96d56Sopenharmony_cibar \\ baz 1117db96d56Sopenharmony_ci""" + R'''spam 1127db96d56Sopenharmony_ci''' 1137db96d56Sopenharmony_cix = b'abc' + B'ABC' 1147db96d56Sopenharmony_ciy = b"abc" + B"ABC" 1157db96d56Sopenharmony_cix = br'abc' + Br'ABC' + bR'ABC' + BR'ABC' 1167db96d56Sopenharmony_ciy = br"abc" + Br"ABC" + bR"ABC" + BR"ABC" 1177db96d56Sopenharmony_cix = rb'abc' + rB'ABC' + Rb'ABC' + RB'ABC' 1187db96d56Sopenharmony_ciy = rb"abc" + rB"ABC" + Rb"ABC" + RB"ABC" 1197db96d56Sopenharmony_cix = br'\\' + BR'\\' 1207db96d56Sopenharmony_cix = rb'\\' + RB'\\' 1217db96d56Sopenharmony_cix = br'\'' + '' 1227db96d56Sopenharmony_cix = rb'\'' + '' 1237db96d56Sopenharmony_ciy = br''' 1247db96d56Sopenharmony_cifoo bar \\ 1257db96d56Sopenharmony_cibaz''' + BR''' 1267db96d56Sopenharmony_cifoo''' 1277db96d56Sopenharmony_ciy = Br"""foo 1287db96d56Sopenharmony_cibar \\ baz 1297db96d56Sopenharmony_ci""" + bR'''spam 1307db96d56Sopenharmony_ci''' 1317db96d56Sopenharmony_ciy = rB"""foo 1327db96d56Sopenharmony_cibar \\ baz 1337db96d56Sopenharmony_ci""" + Rb'''spam 1347db96d56Sopenharmony_ci''' 1357db96d56Sopenharmony_ci 1367db96d56Sopenharmony_ci# Indentation 1377db96d56Sopenharmony_ciif 1: 1387db96d56Sopenharmony_ci x = 2 1397db96d56Sopenharmony_ciif 1: 1407db96d56Sopenharmony_ci x = 2 1417db96d56Sopenharmony_ciif 1: 1427db96d56Sopenharmony_ci while 0: 1437db96d56Sopenharmony_ci if 0: 1447db96d56Sopenharmony_ci x = 2 1457db96d56Sopenharmony_ci x = 2 1467db96d56Sopenharmony_ciif 0: 1477db96d56Sopenharmony_ci if 2: 1487db96d56Sopenharmony_ci while 0: 1497db96d56Sopenharmony_ci if 1: 1507db96d56Sopenharmony_ci x = 2 1517db96d56Sopenharmony_ci 1527db96d56Sopenharmony_ci# Operators 1537db96d56Sopenharmony_ci 1547db96d56Sopenharmony_cidef d22(a, b, c=1, d=2): pass 1557db96d56Sopenharmony_cidef d01v(a=1, *restt, **restd): pass 1567db96d56Sopenharmony_ci 1577db96d56Sopenharmony_ci(x, y) != ({'a':1}, {'b':2}) 1587db96d56Sopenharmony_ci 1597db96d56Sopenharmony_ci# comparison 1607db96d56Sopenharmony_ciif 1 < 1 > 1 == 1 >= 1 <= 1 != 1 != 1 in 1 not in 1 is 1 is not 1: pass 1617db96d56Sopenharmony_ci 1627db96d56Sopenharmony_ci# binary 1637db96d56Sopenharmony_cix = 1 & 1 1647db96d56Sopenharmony_cix = 1 ^ 1 1657db96d56Sopenharmony_cix = 1 | 1 1667db96d56Sopenharmony_ci 1677db96d56Sopenharmony_ci# shift 1687db96d56Sopenharmony_cix = 1 << 1 >> 1 1697db96d56Sopenharmony_ci 1707db96d56Sopenharmony_ci# additive 1717db96d56Sopenharmony_cix = 1 - 1 + 1 - 1 + 1 1727db96d56Sopenharmony_ci 1737db96d56Sopenharmony_ci# multiplicative 1747db96d56Sopenharmony_cix = 1 / 1 * 1 % 1 1757db96d56Sopenharmony_ci 1767db96d56Sopenharmony_ci# unary 1777db96d56Sopenharmony_cix = ~1 ^ 1 & 1 | 1 & 1 ^ -1 1787db96d56Sopenharmony_cix = -1*1/1 + 1*1 - ---1*1 1797db96d56Sopenharmony_ci 1807db96d56Sopenharmony_ci# selector 1817db96d56Sopenharmony_ciimport sys, time 1827db96d56Sopenharmony_cix = sys.modules['time'].time() 1837db96d56Sopenharmony_ci 1847db96d56Sopenharmony_ci@staticmethod 1857db96d56Sopenharmony_cidef foo(): pass 1867db96d56Sopenharmony_ci 1877db96d56Sopenharmony_ci@staticmethod 1887db96d56Sopenharmony_cidef foo(x:1)->1: pass 1897db96d56Sopenharmony_ci 190