Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | # Tests for the 'tokenize' module. |
2 | # Large bits stolen from test_grammar.py. | |
3 | ||
4 | # Comments | |
5 | "#" | |
6 | #' | |
7 | #" | |
8 | #\ | |
9 | # | |
10 | # abc | |
11 | '''# | |
12 | #''' | |
13 | ||
14 | x = 1 # | |
15 | ||
16 | # Balancing continuation | |
17 | ||
18 | a = (3, 4, | |
19 | 5, 6) | |
20 | y = [3, 4, | |
21 | 5] | |
22 | z = {'a':5, | |
23 | 'b':6} | |
24 | x = (len(`y`) + 5*x - a[ | |
25 | 3 ] | |
26 | - x + len({ | |
27 | } | |
28 | ) | |
29 | ) | |
30 | ||
31 | # Backslash means line continuation: | |
32 | x = 1 \ | |
33 | + 1 | |
34 | ||
35 | # Backslash does not means continuation in comments :\ | |
36 | x = 0 | |
37 | ||
38 | # Ordinary integers | |
39 | 0xff <> 255 | |
40 | 0377 <> 255 | |
41 | 2147483647 != 017777777777 | |
42 | -2147483647-1 != 020000000000 | |
43 | 037777777777 != -1 | |
44 | 0xffffffff != -1 | |
45 | ||
46 | # Long integers | |
47 | x = 0L | |
48 | x = 0l | |
49 | x = 0xffffffffffffffffL | |
50 | x = 0xffffffffffffffffl | |
51 | x = 077777777777777777L | |
52 | x = 077777777777777777l | |
53 | x = 123456789012345678901234567890L | |
54 | x = 123456789012345678901234567890l | |
55 | ||
56 | # Floating-point numbers | |
57 | x = 3.14 | |
58 | x = 314. | |
59 | x = 0.314 | |
60 | # XXX x = 000.314 | |
61 | x = .314 | |
62 | x = 3e14 | |
63 | x = 3E14 | |
64 | x = 3e-14 | |
65 | x = 3e+14 | |
66 | x = 3.e14 | |
67 | x = .3e14 | |
68 | x = 3.1e4 | |
69 | ||
70 | # String literals | |
71 | x = ''; y = ""; | |
72 | x = '\''; y = "'"; | |
73 | x = '"'; y = "\""; | |
74 | x = "doesn't \"shrink\" does it" | |
75 | y = 'doesn\'t "shrink" does it' | |
76 | x = "does \"shrink\" doesn't it" | |
77 | y = 'does "shrink" doesn\'t it' | |
78 | x = """ | |
79 | The "quick" | |
80 | brown fox | |
81 | jumps over | |
82 | the 'lazy' dog. | |
83 | """ | |
84 | y = '\nThe "quick"\nbrown fox\njumps over\nthe \'lazy\' dog.\n' | |
85 | y = ''' | |
86 | The "quick" | |
87 | brown fox | |
88 | jumps over | |
89 | the 'lazy' dog. | |
90 | '''; | |
91 | y = "\n\ | |
92 | The \"quick\"\n\ | |
93 | brown fox\n\ | |
94 | jumps over\n\ | |
95 | the 'lazy' dog.\n\ | |
96 | "; | |
97 | y = '\n\ | |
98 | The \"quick\"\n\ | |
99 | brown fox\n\ | |
100 | jumps over\n\ | |
101 | the \'lazy\' dog.\n\ | |
102 | '; | |
103 | x = r'\\' + R'\\' | |
104 | x = r'\'' + '' | |
105 | y = r''' | |
106 | foo bar \\ | |
107 | baz''' + R''' | |
108 | foo''' | |
109 | y = r"""foo | |
110 | bar \\ baz | |
111 | """ + R'''spam | |
112 | ''' | |
113 | x = u'abc' + U'ABC' | |
114 | y = u"abc" + U"ABC" | |
115 | x = ur'abc' + Ur'ABC' + uR'ABC' + UR'ABC' | |
116 | y = ur"abc" + Ur"ABC" + uR"ABC" + UR"ABC" | |
117 | x = ur'\\' + UR'\\' | |
118 | x = ur'\'' + '' | |
119 | y = ur''' | |
120 | foo bar \\ | |
121 | baz''' + UR''' | |
122 | foo''' | |
123 | y = Ur"""foo | |
124 | bar \\ baz | |
125 | """ + uR'''spam | |
126 | ''' | |
127 | ||
128 | # Indentation | |
129 | if 1: | |
130 | x = 2 | |
131 | if 1: | |
132 | x = 2 | |
133 | if 1: | |
134 | while 0: | |
135 | if 0: | |
136 | x = 2 | |
137 | x = 2 | |
138 | if 0: | |
139 | if 2: | |
140 | while 0: | |
141 | if 1: | |
142 | x = 2 | |
143 | ||
144 | # Operators | |
145 | ||
146 | def d22(a, b, c=1, d=2): pass | |
147 | def d01v(a=1, *restt, **restd): pass | |
148 | ||
149 | (x, y) <> ({'a':1}, {'b':2}) | |
150 | ||
151 | # comparison | |
152 | if 1 < 1 > 1 == 1 >= 1 <= 1 <> 1 != 1 in 1 not in 1 is 1 is not 1: pass | |
153 | ||
154 | # binary | |
155 | x = 1 & 1 | |
156 | x = 1 ^ 1 | |
157 | x = 1 | 1 | |
158 | ||
159 | # shift | |
160 | x = 1 << 1 >> 1 | |
161 | ||
162 | # additive | |
163 | x = 1 - 1 + 1 - 1 + 1 | |
164 | ||
165 | # multiplicative | |
166 | x = 1 / 1 * 1 % 1 | |
167 | ||
168 | # unary | |
169 | x = ~1 ^ 1 & 1 | 1 & 1 ^ -1 | |
170 | x = -1*1/1 + 1*1 - ---1*1 | |
171 | ||
172 | # selector | |
173 | import sys, time | |
174 | x = sys.modules['time'].time() | |
175 | ||
176 | @staticmethod | |
177 | def foo(): pass | |
178 |