/home/mdboom/Work/builds/cpython/Parser/token.c
Line | Count | Source (jump to first uncovered line) |
1 | /* Auto-generated by Tools/scripts/generate_token.py */ |
2 | |
3 | #include "Python.h" |
4 | #include "pycore_token.h" |
5 | |
6 | /* Token names */ |
7 | |
8 | const char * const _PyParser_TokenNames[] = { |
9 | "ENDMARKER", |
10 | "NAME", |
11 | "NUMBER", |
12 | "STRING", |
13 | "NEWLINE", |
14 | "INDENT", |
15 | "DEDENT", |
16 | "LPAR", |
17 | "RPAR", |
18 | "LSQB", |
19 | "RSQB", |
20 | "COLON", |
21 | "COMMA", |
22 | "SEMI", |
23 | "PLUS", |
24 | "MINUS", |
25 | "STAR", |
26 | "SLASH", |
27 | "VBAR", |
28 | "AMPER", |
29 | "LESS", |
30 | "GREATER", |
31 | "EQUAL", |
32 | "DOT", |
33 | "PERCENT", |
34 | "LBRACE", |
35 | "RBRACE", |
36 | "EQEQUAL", |
37 | "NOTEQUAL", |
38 | "LESSEQUAL", |
39 | "GREATEREQUAL", |
40 | "TILDE", |
41 | "CIRCUMFLEX", |
42 | "LEFTSHIFT", |
43 | "RIGHTSHIFT", |
44 | "DOUBLESTAR", |
45 | "PLUSEQUAL", |
46 | "MINEQUAL", |
47 | "STAREQUAL", |
48 | "SLASHEQUAL", |
49 | "PERCENTEQUAL", |
50 | "AMPEREQUAL", |
51 | "VBAREQUAL", |
52 | "CIRCUMFLEXEQUAL", |
53 | "LEFTSHIFTEQUAL", |
54 | "RIGHTSHIFTEQUAL", |
55 | "DOUBLESTAREQUAL", |
56 | "DOUBLESLASH", |
57 | "DOUBLESLASHEQUAL", |
58 | "AT", |
59 | "ATEQUAL", |
60 | "RARROW", |
61 | "ELLIPSIS", |
62 | "COLONEQUAL", |
63 | "OP", |
64 | "AWAIT", |
65 | "ASYNC", |
66 | "TYPE_IGNORE", |
67 | "TYPE_COMMENT", |
68 | "SOFT_KEYWORD", |
69 | "<ERRORTOKEN>", |
70 | "<COMMENT>", |
71 | "<NL>", |
72 | "<ENCODING>", |
73 | "<N_TOKENS>", |
74 | }; |
75 | |
76 | /* Return the token corresponding to a single character */ |
77 | |
78 | int |
79 | _PyToken_OneChar(int c1) |
80 | { |
81 | switch (c1) { Branch (81:13): [True: 26, False: 3.15M]
|
82 | case '%': return PERCENT; Branch (82:5): [True: 26.3k, False: 3.12M]
|
83 | case '&': return AMPER; Branch (83:5): [True: 749, False: 3.15M]
|
84 | case '(': return LPAR; Branch (84:5): [True: 565k, False: 2.58M]
|
85 | case ')': return RPAR; Branch (85:5): [True: 565k, False: 2.59M]
|
86 | case '*': return STAR; Branch (86:5): [True: 313k, False: 2.84M]
|
87 | case '+': return PLUS; Branch (87:5): [True: 14.7k, False: 3.14M]
|
88 | case ',': return COMMA; Branch (88:5): [True: 459k, False: 2.69M]
|
89 | case '-': return MINUS; Branch (89:5): [True: 48.6k, False: 3.10M]
|
90 | case '.': return DOT; Branch (90:5): [True: 0, False: 3.15M]
|
91 | case '/': return SLASH; Branch (91:5): [True: 2.11k, False: 3.15M]
|
92 | case ':': return COLON; Branch (92:5): [True: 372k, False: 2.78M]
|
93 | case ';': return SEMI; Branch (93:5): [True: 4.46k, False: 3.15M]
|
94 | case '<': return LESS; Branch (94:5): [True: 1.59k, False: 3.15M]
|
95 | case '=': return EQUAL; Branch (95:5): [True: 101k, False: 3.05M]
|
96 | case '>': return GREATER; Branch (96:5): [True: 1.44k, False: 3.15M]
|
97 | case '@': return AT; Branch (97:5): [True: 2.69k, False: 3.15M]
|
98 | case '[': return LSQB; Branch (98:5): [True: 332k, False: 2.82M]
|
99 | case ']': return RSQB; Branch (99:5): [True: 332k, False: 2.82M]
|
100 | case '^': return CIRCUMFLEX; Branch (100:5): [True: 159, False: 3.15M]
|
101 | case '{': return LBRACE; Branch (101:5): [True: 4.78k, False: 3.15M]
|
102 | case '|': return VBAR; Branch (102:5): [True: 817, False: 3.15M]
|
103 | case '}': return RBRACE; Branch (103:5): [True: 4.72k, False: 3.15M]
|
104 | case '~': return TILDE; Branch (104:5): [True: 156, False: 3.15M]
|
105 | } |
106 | return OP; |
107 | } |
108 | |
109 | int |
110 | _PyToken_TwoChars(int c1, int c2) |
111 | { |
112 | switch (c1) { Branch (112:13): [True: 2.26M, False: 905k]
|
113 | case '!': Branch (113:5): [True: 1.72k, False: 3.17M]
|
114 | switch (c2) { Branch (114:17): [True: 2, False: 1.72k]
|
115 | case '=': return NOTEQUAL; Branch (115:9): [True: 1.72k, False: 2]
|
116 | } |
117 | break; |
118 | case '%': Branch (118:5): [True: 26.3k, False: 3.14M]
|
119 | switch (c2) { Branch (119:17): [True: 26.3k, False: 16]
|
120 | case '=': return PERCENTEQUAL; Branch (120:9): [True: 16, False: 26.3k]
|
121 | } |
122 | break; |
123 | case '&': Branch (123:5): [True: 789, False: 3.17M]
|
124 | switch (c2) { Branch (124:17): [True: 749, False: 40]
|
125 | case '=': return AMPEREQUAL; Branch (125:9): [True: 40, False: 749]
|
126 | } |
127 | break; |
128 | case '*': Branch (128:5): [True: 317k, False: 2.85M]
|
129 | switch (c2) { Branch (129:17): [True: 313k, False: 4.37k]
|
130 | case '*': return DOUBLESTAR; Branch (130:9): [True: 4.32k, False: 313k]
|
131 | case '=': return STAREQUAL; Branch (131:9): [True: 48, False: 317k]
|
132 | } |
133 | break; |
134 | case '+': Branch (134:5): [True: 16.2k, False: 3.15M]
|
135 | switch (c2) { Branch (135:17): [True: 14.7k, False: 1.50k]
|
136 | case '=': return PLUSEQUAL; Branch (136:9): [True: 1.50k, False: 14.7k]
|
137 | } |
138 | break; |
139 | case '-': Branch (139:5): [True: 50.3k, False: 3.12M]
|
140 | switch (c2) { Branch (140:17): [True: 48.6k, False: 1.63k]
|
141 | case '=': return MINEQUAL; Branch (141:9): [True: 240, False: 50.0k]
|
142 | case '>': return RARROW; Branch (142:9): [True: 1.39k, False: 48.9k]
|
143 | } |
144 | break; |
145 | case '/': Branch (145:5): [True: 2.49k, False: 3.17M]
|
146 | switch (c2) { Branch (146:17): [True: 2.11k, False: 383]
|
147 | case '/': return DOUBLESLASH; Branch (147:9): [True: 364, False: 2.13k]
|
148 | case '=': return SLASHEQUAL; Branch (148:9): [True: 19, False: 2.47k]
|
149 | } |
150 | break; |
151 | case ':': Branch (151:5): [True: 372k, False: 2.80M]
|
152 | switch (c2) { Branch (152:17): [True: 372k, False: 367]
|
153 | case '=': return COLONEQUAL; Branch (153:9): [True: 367, False: 372k]
|
154 | } |
155 | break; |
156 | case '<': Branch (156:5): [True: 2.87k, False: 3.17M]
|
157 | switch (c2) { Branch (157:17): [True: 1.59k, False: 1.27k]
|
158 | case '<': return LEFTSHIFT; Branch (158:9): [True: 275, False: 2.59k]
|
159 | case '=': return LESSEQUAL; Branch (159:9): [True: 997, False: 1.87k]
|
160 | case '>': return NOTEQUAL; Branch (160:9): [True: 2, False: 2.87k]
|
161 | } |
162 | break; |
163 | case '=': Branch (163:5): [True: 107k, False: 3.06M]
|
164 | switch (c2) { Branch (164:17): [True: 101k, False: 5.83k]
|
165 | case '=': return EQEQUAL; Branch (165:9): [True: 5.83k, False: 101k]
|
166 | } |
167 | break; |
168 | case '>': Branch (168:5): [True: 2.55k, False: 3.17M]
|
169 | switch (c2) { Branch (169:17): [True: 1.44k, False: 1.10k]
|
170 | case '=': return GREATEREQUAL; Branch (170:9): [True: 960, False: 1.59k]
|
171 | case '>': return RIGHTSHIFT; Branch (171:9): [True: 149, False: 2.40k]
|
172 | } |
173 | break; |
174 | case '@': Branch (174:5): [True: 2.70k, False: 3.17M]
|
175 | switch (c2) { Branch (175:17): [True: 2.69k, False: 14]
|
176 | case '=': return ATEQUAL; Branch (176:9): [True: 14, False: 2.69k]
|
177 | } |
178 | break; |
179 | case '^': Branch (179:5): [True: 195, False: 3.17M]
|
180 | switch (c2) { Branch (180:17): [True: 159, False: 36]
|
181 | case '=': return CIRCUMFLEXEQUAL; Branch (181:9): [True: 36, False: 159]
|
182 | } |
183 | break; |
184 | case '|': Branch (184:5): [True: 981, False: 3.17M]
|
185 | switch (c2) { Branch (185:17): [True: 817, False: 164]
|
186 | case '=': return VBAREQUAL; Branch (186:9): [True: 164, False: 817]
|
187 | } |
188 | break; |
189 | } |
190 | return OP; |
191 | } |
192 | |
193 | int |
194 | _PyToken_ThreeChars(int c1, int c2, int c3) |
195 | { |
196 | switch (c1) { Branch (196:13): [True: 11.3k, False: 7.13k]
|
197 | case '*': Branch (197:5): [True: 4.37k, False: 14.1k]
|
198 | switch (c2) { Branch (198:17): [True: 48, False: 4.32k]
|
199 | case '*': Branch (199:9): [True: 4.32k, False: 48]
|
200 | switch (c3) { Branch (200:21): [True: 4.31k, False: 11]
|
201 | case '=': return DOUBLESTAREQUAL; Branch (201:13): [True: 11, False: 4.31k]
|
202 | } |
203 | break; |
204 | } |
205 | break; |
206 | case '.': Branch (206:5): [True: 0, False: 18.4k]
|
207 | switch (c2) { Branch (207:17): [True: 0, False: 0]
|
208 | case '.': Branch (208:9): [True: 0, False: 0]
|
209 | switch (c3) { Branch (209:21): [True: 0, False: 0]
|
210 | case '.': return ELLIPSIS; Branch (210:13): [True: 0, False: 0]
|
211 | } |
212 | break; |
213 | } |
214 | break; |
215 | case '/': Branch (215:5): [True: 383, False: 18.0k]
|
216 | switch (c2) { Branch (216:17): [True: 19, False: 364]
|
217 | case '/': Branch (217:9): [True: 364, False: 19]
|
218 | switch (c3) { Branch (218:21): [True: 330, False: 34]
|
219 | case '=': return DOUBLESLASHEQUAL; Branch (219:13): [True: 34, False: 330]
|
220 | } |
221 | break; |
222 | } |
223 | break; |
224 | case '<': Branch (224:5): [True: 1.27k, False: 17.1k]
|
225 | switch (c2) { Branch (225:17): [True: 999, False: 275]
|
226 | case '<': Branch (226:9): [True: 275, False: 999]
|
227 | switch (c3) { Branch (227:21): [True: 250, False: 25]
|
228 | case '=': return LEFTSHIFTEQUAL; Branch (228:13): [True: 25, False: 250]
|
229 | } |
230 | break; |
231 | } |
232 | break; |
233 | case '>': Branch (233:5): [True: 1.10k, False: 17.3k]
|
234 | switch (c2) { Branch (234:17): [True: 960, False: 149]
|
235 | case '>': Branch (235:9): [True: 149, False: 960]
|
236 | switch (c3) { Branch (236:21): [True: 130, False: 19]
|
237 | case '=': return RIGHTSHIFTEQUAL; Branch (237:13): [True: 19, False: 130]
|
238 | } |
239 | break; |
240 | } |
241 | break; |
242 | } |
243 | return OP; |
244 | } |