/src/cpython/Parser/parser.c
Line | Count | Source |
1 | | // @generated by pegen from python.gram |
2 | | #include "pegen.h" |
3 | | #include "pycore_ceval.h" |
4 | | |
5 | | #if defined(Py_DEBUG) && defined(Py_BUILD_CORE) |
6 | | # define D(x) if (p->debug) { x; } |
7 | | #else |
8 | | # define D(x) |
9 | | #endif |
10 | | |
11 | | #ifdef __wasi__ |
12 | | # ifdef Py_DEBUG |
13 | | # define MAXSTACK 1000 |
14 | | # else |
15 | | # define MAXSTACK 4000 |
16 | | # endif |
17 | | #else |
18 | 197M | # define MAXSTACK 6000 |
19 | | #endif |
20 | | static const int n_keyword_lists = 9; |
21 | | static KeywordToken *reserved_keywords[] = { |
22 | | (KeywordToken[]) {{NULL, -1}}, |
23 | | (KeywordToken[]) {{NULL, -1}}, |
24 | | (KeywordToken[]) { |
25 | | {"if", 514}, |
26 | | {"as", 520}, |
27 | | {"in", 523}, |
28 | | {"or", 529}, |
29 | | {"is", 532}, |
30 | | {NULL, -1}, |
31 | | }, |
32 | | (KeywordToken[]) { |
33 | | {"del", 505}, |
34 | | {"def", 512}, |
35 | | {"for", 517}, |
36 | | {"try", 518}, |
37 | | {"and", 530}, |
38 | | {"not", 531}, |
39 | | {NULL, -1}, |
40 | | }, |
41 | | (KeywordToken[]) { |
42 | | {"from", 501}, |
43 | | {"pass", 504}, |
44 | | {"with", 516}, |
45 | | {"elif", 521}, |
46 | | {"else", 522}, |
47 | | {"None", 526}, |
48 | | {"True", 527}, |
49 | | {NULL, -1}, |
50 | | }, |
51 | | (KeywordToken[]) { |
52 | | {"raise", 503}, |
53 | | {"yield", 506}, |
54 | | {"break", 508}, |
55 | | {"async", 513}, |
56 | | {"class", 515}, |
57 | | {"while", 519}, |
58 | | {"False", 528}, |
59 | | {"await", 533}, |
60 | | {NULL, -1}, |
61 | | }, |
62 | | (KeywordToken[]) { |
63 | | {"import", 500}, |
64 | | {"return", 502}, |
65 | | {"assert", 507}, |
66 | | {"global", 510}, |
67 | | {"except", 524}, |
68 | | {"lambda", 534}, |
69 | | {NULL, -1}, |
70 | | }, |
71 | | (KeywordToken[]) { |
72 | | {"finally", 525}, |
73 | | {NULL, -1}, |
74 | | }, |
75 | | (KeywordToken[]) { |
76 | | {"continue", 509}, |
77 | | {"nonlocal", 511}, |
78 | | {NULL, -1}, |
79 | | }, |
80 | | }; |
81 | | static char *soft_keywords[] = { |
82 | | "_", |
83 | | "case", |
84 | | "lazy", |
85 | | "match", |
86 | | "type", |
87 | | NULL, |
88 | | }; |
89 | | #define file_type 1000 |
90 | | #define interactive_type 1001 |
91 | | #define eval_type 1002 |
92 | | #define func_type_type 1003 |
93 | | #define statements_type 1004 |
94 | | #define statement_type 1005 |
95 | | #define single_compound_stmt_type 1006 |
96 | | #define statement_newline_type 1007 |
97 | | #define simple_stmts_type 1008 |
98 | 700k | #define simple_stmt_type 1009 |
99 | | #define compound_stmt_type 1010 |
100 | | #define assignment_type 1011 |
101 | | #define annotated_rhs_type 1012 |
102 | | #define augassign_type 1013 |
103 | | #define return_stmt_type 1014 |
104 | | #define raise_stmt_type 1015 |
105 | | #define pass_stmt_type 1016 |
106 | | #define break_stmt_type 1017 |
107 | | #define continue_stmt_type 1018 |
108 | | #define global_stmt_type 1019 |
109 | | #define nonlocal_stmt_type 1020 |
110 | | #define del_stmt_type 1021 |
111 | | #define yield_stmt_type 1022 |
112 | | #define assert_stmt_type 1023 |
113 | 18.7k | #define import_stmt_type 1024 |
114 | | #define import_name_type 1025 |
115 | | #define import_from_type 1026 |
116 | | #define import_from_targets_type 1027 |
117 | | #define import_from_as_names_type 1028 |
118 | | #define import_from_as_name_type 1029 |
119 | | #define dotted_as_names_type 1030 |
120 | | #define dotted_as_name_type 1031 |
121 | 64.3k | #define dotted_name_type 1032 // Left-recursive |
122 | 105k | #define block_type 1033 |
123 | | #define decorators_type 1034 |
124 | | #define class_def_type 1035 |
125 | | #define class_def_raw_type 1036 |
126 | | #define function_def_type 1037 |
127 | | #define function_def_raw_type 1038 |
128 | | #define params_type 1039 |
129 | | #define parameters_type 1040 |
130 | | #define slash_no_default_type 1041 |
131 | | #define slash_with_default_type 1042 |
132 | | #define star_etc_type 1043 |
133 | | #define kwds_type 1044 |
134 | | #define param_no_default_type 1045 |
135 | | #define param_no_default_star_annotation_type 1046 |
136 | | #define param_with_default_type 1047 |
137 | | #define param_maybe_default_type 1048 |
138 | | #define param_type 1049 |
139 | | #define param_star_annotation_type 1050 |
140 | | #define annotation_type 1051 |
141 | | #define star_annotation_type 1052 |
142 | | #define default_type 1053 |
143 | | #define if_stmt_type 1054 |
144 | | #define elif_stmt_type 1055 |
145 | | #define else_block_type 1056 |
146 | | #define while_stmt_type 1057 |
147 | | #define for_stmt_type 1058 |
148 | | #define with_stmt_type 1059 |
149 | | #define with_item_type 1060 |
150 | | #define try_stmt_type 1061 |
151 | | #define except_block_type 1062 |
152 | | #define except_star_block_type 1063 |
153 | | #define finally_block_type 1064 |
154 | | #define match_stmt_type 1065 |
155 | | #define subject_expr_type 1066 |
156 | | #define case_block_type 1067 |
157 | | #define guard_type 1068 |
158 | | #define patterns_type 1069 |
159 | | #define pattern_type 1070 |
160 | | #define as_pattern_type 1071 |
161 | | #define or_pattern_type 1072 |
162 | 335k | #define closed_pattern_type 1073 |
163 | | #define literal_pattern_type 1074 |
164 | | #define literal_expr_type 1075 |
165 | | #define complex_number_type 1076 |
166 | | #define signed_number_type 1077 |
167 | | #define signed_real_number_type 1078 |
168 | | #define real_number_type 1079 |
169 | | #define imaginary_number_type 1080 |
170 | | #define capture_pattern_type 1081 |
171 | | #define pattern_capture_target_type 1082 |
172 | | #define wildcard_pattern_type 1083 |
173 | | #define value_pattern_type 1084 |
174 | 176k | #define attr_type 1085 // Left-recursive |
175 | | #define name_or_attr_type 1086 // Left-recursive |
176 | | #define group_pattern_type 1087 |
177 | | #define sequence_pattern_type 1088 |
178 | | #define open_sequence_pattern_type 1089 |
179 | | #define maybe_sequence_pattern_type 1090 |
180 | | #define maybe_star_pattern_type 1091 |
181 | 51.2k | #define star_pattern_type 1092 |
182 | | #define mapping_pattern_type 1093 |
183 | | #define items_pattern_type 1094 |
184 | | #define key_value_pattern_type 1095 |
185 | | #define double_star_pattern_type 1096 |
186 | | #define class_pattern_type 1097 |
187 | | #define positional_patterns_type 1098 |
188 | | #define keyword_patterns_type 1099 |
189 | | #define keyword_pattern_type 1100 |
190 | | #define type_alias_type 1101 |
191 | | #define type_params_type 1102 |
192 | | #define type_param_seq_type 1103 |
193 | 24.8k | #define type_param_type 1104 |
194 | | #define type_param_bound_type 1105 |
195 | | #define type_param_default_type 1106 |
196 | | #define type_param_starred_default_type 1107 |
197 | | #define expressions_type 1108 |
198 | 2.72M | #define expression_type 1109 |
199 | | #define if_expression_type 1110 |
200 | | #define yield_expr_type 1111 |
201 | | #define star_expressions_type 1112 |
202 | 1.75M | #define star_expression_type 1113 |
203 | | #define star_named_expressions_type 1114 |
204 | | #define star_named_expression_type 1115 |
205 | | #define assignment_expression_type 1116 |
206 | | #define named_expression_type 1117 |
207 | 3.21M | #define disjunction_type 1118 |
208 | 1.46M | #define conjunction_type 1119 |
209 | 1.51M | #define inversion_type 1120 |
210 | | #define comparison_type 1121 |
211 | | #define compare_op_bitwise_or_pair_type 1122 |
212 | 3.12M | #define bitwise_or_type 1123 // Left-recursive |
213 | 2.61M | #define bitwise_xor_type 1124 // Left-recursive |
214 | 3.02M | #define bitwise_and_type 1125 // Left-recursive |
215 | 3.04M | #define shift_expr_type 1126 // Left-recursive |
216 | 3.50M | #define sum_type 1127 // Left-recursive |
217 | 4.51M | #define term_type 1128 // Left-recursive |
218 | 2.09M | #define factor_type 1129 |
219 | | #define power_type 1130 |
220 | 1.88M | #define await_primary_type 1131 |
221 | 5.22M | #define primary_type 1132 // Left-recursive |
222 | | #define slices_type 1133 |
223 | | #define slice_type 1134 |
224 | | #define atom_type 1135 |
225 | | #define group_type 1136 |
226 | | #define lambdef_type 1137 |
227 | | #define lambda_params_type 1138 |
228 | | #define lambda_parameters_type 1139 |
229 | | #define lambda_slash_no_default_type 1140 |
230 | | #define lambda_slash_with_default_type 1141 |
231 | | #define lambda_star_etc_type 1142 |
232 | | #define lambda_kwds_type 1143 |
233 | | #define lambda_param_no_default_type 1144 |
234 | | #define lambda_param_with_default_type 1145 |
235 | | #define lambda_param_maybe_default_type 1146 |
236 | | #define lambda_param_type 1147 |
237 | | #define fstring_middle_type 1148 |
238 | | #define fstring_replacement_field_type 1149 |
239 | | #define fstring_conversion_type 1150 |
240 | | #define fstring_full_format_spec_type 1151 |
241 | | #define fstring_format_spec_type 1152 |
242 | | #define fstring_type 1153 |
243 | | #define tstring_format_spec_replacement_field_type 1154 |
244 | | #define tstring_format_spec_type 1155 |
245 | | #define tstring_full_format_spec_type 1156 |
246 | | #define tstring_replacement_field_type 1157 |
247 | | #define tstring_middle_type 1158 |
248 | 164k | #define tstring_type 1159 |
249 | | #define string_type 1160 |
250 | 196k | #define strings_type 1161 |
251 | | #define display_items_type 1162 |
252 | | #define display_item_type 1163 |
253 | | #define list_type 1164 |
254 | | #define tuple_type 1165 |
255 | | #define set_type 1166 |
256 | | #define dict_type 1167 |
257 | | #define double_starred_kvpairs_type 1168 |
258 | | #define double_starred_kvpair_type 1169 |
259 | | #define kvpair_type 1170 |
260 | | #define for_if_clauses_type 1171 |
261 | | #define for_if_clause_type 1172 |
262 | | #define listcomp_type 1173 |
263 | | #define setcomp_type 1174 |
264 | | #define genexp_type 1175 |
265 | | #define dictcomp_type 1176 |
266 | 60.6k | #define arguments_type 1177 |
267 | | #define args_type 1178 |
268 | | #define kwargs_type 1179 |
269 | | #define starred_expression_type 1180 |
270 | | #define kwarg_or_starred_type 1181 |
271 | | #define kwarg_or_double_starred_type 1182 |
272 | | #define star_targets_type 1183 |
273 | 1.04M | #define star_target_type 1184 |
274 | 596k | #define target_type 1185 |
275 | | #define single_target_type 1186 |
276 | | #define attribute_or_subscript_target_type 1187 |
277 | | #define target_value_type 1188 |
278 | | #define del_targets_type 1189 |
279 | 4.39k | #define del_target_type 1190 |
280 | | #define type_expressions_type 1191 |
281 | | #define func_type_comment_type 1192 |
282 | | #define _loop0_1_type 1265 |
283 | | #define _loop1_2_type 1266 |
284 | | #define _loop0_3_type 1267 |
285 | | #define _gather_4_type 1268 |
286 | | #define _tmp_5_type 1269 |
287 | | #define _tmp_6_type 1270 |
288 | | #define _tmp_7_type 1271 |
289 | | #define _tmp_8_type 1272 |
290 | | #define _tmp_9_type 1273 |
291 | | #define _tmp_10_type 1274 |
292 | | #define _tmp_11_type 1275 |
293 | | #define _loop1_12_type 1276 |
294 | | #define _loop0_13_type 1277 |
295 | | #define _gather_14_type 1278 |
296 | | #define _tmp_15_type 1279 |
297 | | #define _tmp_16_type 1280 |
298 | | #define _loop0_17_type 1281 |
299 | | #define _loop1_18_type 1282 |
300 | | #define _loop0_19_type 1283 |
301 | | #define _gather_20_type 1284 |
302 | | #define _tmp_21_type 1285 |
303 | | #define _loop0_22_type 1286 |
304 | | #define _gather_23_type 1287 |
305 | | #define _loop1_24_type 1288 |
306 | | #define _tmp_25_type 1289 |
307 | | #define _tmp_26_type 1290 |
308 | | #define _loop0_27_type 1291 |
309 | | #define _loop0_28_type 1292 |
310 | | #define _loop1_29_type 1293 |
311 | | #define _loop1_30_type 1294 |
312 | | #define _loop0_31_type 1295 |
313 | | #define _loop1_32_type 1296 |
314 | | #define _loop0_33_type 1297 |
315 | | #define _gather_34_type 1298 |
316 | | #define _tmp_35_type 1299 |
317 | | #define _loop1_36_type 1300 |
318 | | #define _loop1_37_type 1301 |
319 | | #define _loop1_38_type 1302 |
320 | | #define _loop0_39_type 1303 |
321 | | #define _gather_40_type 1304 |
322 | | #define _tmp_41_type 1305 |
323 | | #define _tmp_42_type 1306 |
324 | | #define _tmp_43_type 1307 |
325 | | #define _loop0_44_type 1308 |
326 | | #define _gather_45_type 1309 |
327 | | #define _loop0_46_type 1310 |
328 | | #define _gather_47_type 1311 |
329 | | #define _tmp_48_type 1312 |
330 | | #define _loop0_49_type 1313 |
331 | | #define _gather_50_type 1314 |
332 | | #define _loop0_51_type 1315 |
333 | | #define _gather_52_type 1316 |
334 | | #define _loop0_53_type 1317 |
335 | | #define _gather_54_type 1318 |
336 | | #define _loop1_55_type 1319 |
337 | | #define _loop1_56_type 1320 |
338 | | #define _loop0_57_type 1321 |
339 | | #define _gather_58_type 1322 |
340 | | #define _loop1_59_type 1323 |
341 | | #define _loop1_60_type 1324 |
342 | | #define _loop1_61_type 1325 |
343 | | #define _tmp_62_type 1326 |
344 | | #define _loop0_63_type 1327 |
345 | | #define _gather_64_type 1328 |
346 | | #define _tmp_65_type 1329 |
347 | | #define _tmp_66_type 1330 |
348 | | #define _tmp_67_type 1331 |
349 | | #define _tmp_68_type 1332 |
350 | | #define _tmp_69_type 1333 |
351 | | #define _loop0_70_type 1334 |
352 | | #define _loop0_71_type 1335 |
353 | | #define _loop1_72_type 1336 |
354 | | #define _loop1_73_type 1337 |
355 | | #define _loop0_74_type 1338 |
356 | | #define _loop1_75_type 1339 |
357 | | #define _loop0_76_type 1340 |
358 | | #define _loop0_77_type 1341 |
359 | | #define _loop0_78_type 1342 |
360 | | #define _loop0_79_type 1343 |
361 | | #define _loop1_80_type 1344 |
362 | | #define _loop1_81_type 1345 |
363 | | #define _loop0_82_type 1346 |
364 | | #define _gather_83_type 1347 |
365 | | #define _tmp_84_type 1348 |
366 | | #define _loop0_85_type 1349 |
367 | | #define _gather_86_type 1350 |
368 | | #define _loop1_87_type 1351 |
369 | | #define _loop0_88_type 1352 |
370 | | #define _tmp_89_type 1353 |
371 | | #define _loop0_90_type 1354 |
372 | | #define _gather_91_type 1355 |
373 | | #define _tmp_92_type 1356 |
374 | | #define _loop0_93_type 1357 |
375 | | #define _gather_94_type 1358 |
376 | | #define _tmp_95_type 1359 |
377 | | #define _loop0_96_type 1360 |
378 | | #define _gather_97_type 1361 |
379 | | #define _loop0_98_type 1362 |
380 | | #define _tmp_99_type 1363 |
381 | | #define _tmp_100_type 1364 |
382 | | #define _loop0_101_type 1365 |
383 | | #define _gather_102_type 1366 |
384 | | #define _loop0_103_type 1367 |
385 | | #define _gather_104_type 1368 |
386 | | #define _tmp_105_type 1369 |
387 | | #define _tmp_178_type 1442 |
388 | | #define _tmp_179_type 1443 |
389 | | #define _tmp_180_type 1444 |
390 | | #define _tmp_181_type 1445 |
391 | | #define _tmp_182_type 1446 |
392 | | #define _tmp_183_type 1447 |
393 | | #define _tmp_184_type 1448 |
394 | | #define _tmp_185_type 1449 |
395 | | #define _tmp_186_type 1450 |
396 | | #define _tmp_187_type 1451 |
397 | | #define _tmp_188_type 1452 |
398 | | #define _tmp_200_type 1464 |
399 | | |
400 | | // Rules shared between the C files of this parser |
401 | 423k | #define simple_stmt_rule _PyPegen_simple_stmt_rule |
402 | | Py_LOCAL_SYMBOL stmt_ty simple_stmt_rule(Parser *p); |
403 | 48.6k | #define annotated_rhs_rule _PyPegen_annotated_rhs_rule |
404 | | Py_LOCAL_SYMBOL expr_ty annotated_rhs_rule(Parser *p); |
405 | 73.1k | #define augassign_rule _PyPegen_augassign_rule |
406 | | Py_LOCAL_SYMBOL AugOperator* augassign_rule(Parser *p); |
407 | 1.01k | #define pass_stmt_rule _PyPegen_pass_stmt_rule |
408 | | Py_LOCAL_SYMBOL stmt_ty pass_stmt_rule(Parser *p); |
409 | 1.09k | #define break_stmt_rule _PyPegen_break_stmt_rule |
410 | | Py_LOCAL_SYMBOL stmt_ty break_stmt_rule(Parser *p); |
411 | 895 | #define continue_stmt_rule _PyPegen_continue_stmt_rule |
412 | | Py_LOCAL_SYMBOL stmt_ty continue_stmt_rule(Parser *p); |
413 | 6.02k | #define import_from_targets_rule _PyPegen_import_from_targets_rule |
414 | | Py_LOCAL_SYMBOL asdl_alias_seq* import_from_targets_rule(Parser *p); |
415 | 6.15k | #define import_from_as_names_rule _PyPegen_import_from_as_names_rule |
416 | | Py_LOCAL_SYMBOL asdl_alias_seq* import_from_as_names_rule(Parser *p); |
417 | 43.4k | #define dotted_name_rule _PyPegen_dotted_name_rule |
418 | | Py_LOCAL_SYMBOL expr_ty dotted_name_rule(Parser *p); |
419 | 51.8k | #define block_rule _PyPegen_block_rule |
420 | | Py_LOCAL_SYMBOL asdl_stmt_seq* block_rule(Parser *p); |
421 | 7.84k | #define params_rule _PyPegen_params_rule |
422 | | Py_LOCAL_SYMBOL arguments_ty params_rule(Parser *p); |
423 | 12.4k | #define slash_no_default_rule _PyPegen_slash_no_default_rule |
424 | | Py_LOCAL_SYMBOL asdl_arg_seq* slash_no_default_rule(Parser *p); |
425 | 11.6k | #define slash_with_default_rule _PyPegen_slash_with_default_rule |
426 | | Py_LOCAL_SYMBOL SlashWithDefault* slash_with_default_rule(Parser *p); |
427 | 180k | #define param_no_default_rule _PyPegen_param_no_default_rule |
428 | | Py_LOCAL_SYMBOL arg_ty param_no_default_rule(Parser *p); |
429 | 78.7k | #define param_with_default_rule _PyPegen_param_with_default_rule |
430 | | Py_LOCAL_SYMBOL NameDefaultPair* param_with_default_rule(Parser *p); |
431 | 10.2k | #define param_maybe_default_rule _PyPegen_param_maybe_default_rule |
432 | | Py_LOCAL_SYMBOL NameDefaultPair* param_maybe_default_rule(Parser *p); |
433 | 563k | #define param_rule _PyPegen_param_rule |
434 | | Py_LOCAL_SYMBOL arg_ty param_rule(Parser *p); |
435 | 8.04k | #define except_block_rule _PyPegen_except_block_rule |
436 | | Py_LOCAL_SYMBOL excepthandler_ty except_block_rule(Parser *p); |
437 | 4.63k | #define except_star_block_rule _PyPegen_except_star_block_rule |
438 | | Py_LOCAL_SYMBOL excepthandler_ty except_star_block_rule(Parser *p); |
439 | 3.73k | #define subject_expr_rule _PyPegen_subject_expr_rule |
440 | | Py_LOCAL_SYMBOL expr_ty subject_expr_rule(Parser *p); |
441 | 3.32k | #define guard_rule _PyPegen_guard_rule |
442 | | Py_LOCAL_SYMBOL expr_ty guard_rule(Parser *p); |
443 | 3.80k | #define patterns_rule _PyPegen_patterns_rule |
444 | | Py_LOCAL_SYMBOL pattern_ty patterns_rule(Parser *p); |
445 | 167k | #define or_pattern_rule _PyPegen_or_pattern_rule |
446 | | Py_LOCAL_SYMBOL pattern_ty or_pattern_rule(Parser *p); |
447 | 107k | #define name_or_attr_rule _PyPegen_name_or_attr_rule |
448 | | Py_LOCAL_SYMBOL expr_ty name_or_attr_rule(Parser *p); |
449 | 8.40k | #define items_pattern_rule _PyPegen_items_pattern_rule |
450 | | Py_LOCAL_SYMBOL asdl_seq* items_pattern_rule(Parser *p); |
451 | 6.48k | #define double_star_pattern_rule _PyPegen_double_star_pattern_rule |
452 | | Py_LOCAL_SYMBOL expr_ty double_star_pattern_rule(Parser *p); |
453 | 12.9k | #define positional_patterns_rule _PyPegen_positional_patterns_rule |
454 | | Py_LOCAL_SYMBOL asdl_pattern_seq* positional_patterns_rule(Parser *p); |
455 | 8.47k | #define keyword_patterns_rule _PyPegen_keyword_patterns_rule |
456 | | Py_LOCAL_SYMBOL asdl_seq* keyword_patterns_rule(Parser *p); |
457 | 11.6k | #define type_params_rule _PyPegen_type_params_rule |
458 | | Py_LOCAL_SYMBOL asdl_type_param_seq* type_params_rule(Parser *p); |
459 | 6.90k | #define expressions_rule _PyPegen_expressions_rule |
460 | | Py_LOCAL_SYMBOL expr_ty expressions_rule(Parser *p); |
461 | 1.49M | #define expression_rule _PyPegen_expression_rule |
462 | | Py_LOCAL_SYMBOL expr_ty expression_rule(Parser *p); |
463 | 775k | #define if_expression_rule _PyPegen_if_expression_rule |
464 | | Py_LOCAL_SYMBOL expr_ty if_expression_rule(Parser *p); |
465 | 74.7k | #define yield_expr_rule _PyPegen_yield_expr_rule |
466 | | Py_LOCAL_SYMBOL expr_ty yield_expr_rule(Parser *p); |
467 | 312k | #define star_expressions_rule _PyPegen_star_expressions_rule |
468 | | Py_LOCAL_SYMBOL expr_ty star_expressions_rule(Parser *p); |
469 | 319 | #define star_named_expressions_rule _PyPegen_star_named_expressions_rule |
470 | | Py_LOCAL_SYMBOL asdl_expr_seq* star_named_expressions_rule(Parser *p); |
471 | 235k | #define star_named_expression_rule _PyPegen_star_named_expression_rule |
472 | | Py_LOCAL_SYMBOL expr_ty star_named_expression_rule(Parser *p); |
473 | 625k | #define assignment_expression_rule _PyPegen_assignment_expression_rule |
474 | | Py_LOCAL_SYMBOL expr_ty assignment_expression_rule(Parser *p); |
475 | 444k | #define named_expression_rule _PyPegen_named_expression_rule |
476 | | Py_LOCAL_SYMBOL expr_ty named_expression_rule(Parser *p); |
477 | 1.57M | #define disjunction_rule _PyPegen_disjunction_rule |
478 | | Py_LOCAL_SYMBOL expr_ty disjunction_rule(Parser *p); |
479 | 864k | #define inversion_rule _PyPegen_inversion_rule |
480 | | Py_LOCAL_SYMBOL expr_ty inversion_rule(Parser *p); |
481 | 1.84M | #define bitwise_or_rule _PyPegen_bitwise_or_rule |
482 | | Py_LOCAL_SYMBOL expr_ty bitwise_or_rule(Parser *p); |
483 | 1.89M | #define bitwise_and_rule _PyPegen_bitwise_and_rule |
484 | | Py_LOCAL_SYMBOL expr_ty bitwise_and_rule(Parser *p); |
485 | 2.36M | #define sum_rule _PyPegen_sum_rule |
486 | | Py_LOCAL_SYMBOL expr_ty sum_rule(Parser *p); |
487 | 1.19M | #define factor_rule _PyPegen_factor_rule |
488 | | Py_LOCAL_SYMBOL expr_ty factor_rule(Parser *p); |
489 | 413k | #define lambdef_rule _PyPegen_lambdef_rule |
490 | | Py_LOCAL_SYMBOL expr_ty lambdef_rule(Parser *p); |
491 | 113k | #define lambda_params_rule _PyPegen_lambda_params_rule |
492 | | Py_LOCAL_SYMBOL arguments_ty lambda_params_rule(Parser *p); |
493 | 223k | #define lambda_slash_no_default_rule _PyPegen_lambda_slash_no_default_rule |
494 | | Py_LOCAL_SYMBOL asdl_arg_seq* lambda_slash_no_default_rule(Parser *p); |
495 | 223k | #define lambda_slash_with_default_rule _PyPegen_lambda_slash_with_default_rule |
496 | | Py_LOCAL_SYMBOL SlashWithDefault* lambda_slash_with_default_rule(Parser *p); |
497 | 5.84M | #define lambda_param_no_default_rule _PyPegen_lambda_param_no_default_rule |
498 | | Py_LOCAL_SYMBOL arg_ty lambda_param_no_default_rule(Parser *p); |
499 | 1.68M | #define lambda_param_with_default_rule _PyPegen_lambda_param_with_default_rule |
500 | | Py_LOCAL_SYMBOL NameDefaultPair* lambda_param_with_default_rule(Parser *p); |
501 | 6.66k | #define lambda_param_maybe_default_rule _PyPegen_lambda_param_maybe_default_rule |
502 | | Py_LOCAL_SYMBOL NameDefaultPair* lambda_param_maybe_default_rule(Parser *p); |
503 | 17.9M | #define lambda_param_rule _PyPegen_lambda_param_rule |
504 | | Py_LOCAL_SYMBOL arg_ty lambda_param_rule(Parser *p); |
505 | 11.6k | #define fstring_format_spec_rule _PyPegen_fstring_format_spec_rule |
506 | | Py_LOCAL_SYMBOL expr_ty fstring_format_spec_rule(Parser *p); |
507 | 140k | #define fstring_rule _PyPegen_fstring_rule |
508 | | Py_LOCAL_SYMBOL expr_ty fstring_rule(Parser *p); |
509 | 55.7k | #define tstring_rule _PyPegen_tstring_rule |
510 | | Py_LOCAL_SYMBOL expr_ty tstring_rule(Parser *p); |
511 | 126k | #define string_rule _PyPegen_string_rule |
512 | | Py_LOCAL_SYMBOL expr_ty string_rule(Parser *p); |
513 | 27.3k | #define list_rule _PyPegen_list_rule |
514 | | Py_LOCAL_SYMBOL expr_ty list_rule(Parser *p); |
515 | 57.6k | #define tuple_rule _PyPegen_tuple_rule |
516 | | Py_LOCAL_SYMBOL expr_ty tuple_rule(Parser *p); |
517 | 38.2k | #define double_starred_kvpair_rule _PyPegen_double_starred_kvpair_rule |
518 | | Py_LOCAL_SYMBOL KeyValuePair* double_starred_kvpair_rule(Parser *p); |
519 | 81.7k | #define for_if_clauses_rule _PyPegen_for_if_clauses_rule |
520 | | Py_LOCAL_SYMBOL asdl_comprehension_seq* for_if_clauses_rule(Parser *p); |
521 | 450k | #define genexp_rule _PyPegen_genexp_rule |
522 | | Py_LOCAL_SYMBOL expr_ty genexp_rule(Parser *p); |
523 | 31.0k | #define arguments_rule _PyPegen_arguments_rule |
524 | | Py_LOCAL_SYMBOL expr_ty arguments_rule(Parser *p); |
525 | 30.7k | #define args_rule _PyPegen_args_rule |
526 | | Py_LOCAL_SYMBOL expr_ty args_rule(Parser *p); |
527 | 36.5k | #define kwargs_rule _PyPegen_kwargs_rule |
528 | | Py_LOCAL_SYMBOL asdl_seq* kwargs_rule(Parser *p); |
529 | 173k | #define starred_expression_rule _PyPegen_starred_expression_rule |
530 | | Py_LOCAL_SYMBOL expr_ty starred_expression_rule(Parser *p); |
531 | 294k | #define star_targets_rule _PyPegen_star_targets_rule |
532 | | Py_LOCAL_SYMBOL expr_ty star_targets_rule(Parser *p); |
533 | 742k | #define star_target_rule _PyPegen_star_target_rule |
534 | | Py_LOCAL_SYMBOL expr_ty star_target_rule(Parser *p); |
535 | 7.39k | #define func_type_comment_rule _PyPegen_func_type_comment_rule |
536 | | Py_LOCAL_SYMBOL Token* func_type_comment_rule(Parser *p); |
537 | 8.66k | #define invalid_arguments_rule _PyPegen_invalid_arguments_rule |
538 | | Py_LOCAL_SYMBOL void *invalid_arguments_rule(Parser *p); |
539 | 82.5k | #define invalid_kwarg_rule _PyPegen_invalid_kwarg_rule |
540 | | Py_LOCAL_SYMBOL void *invalid_kwarg_rule(Parser *p); |
541 | 339k | #define invalid_legacy_expression_rule _PyPegen_invalid_legacy_expression_rule |
542 | | Py_LOCAL_SYMBOL void *invalid_legacy_expression_rule(Parser *p); |
543 | 1.25k | #define invalid_type_param_rule _PyPegen_invalid_type_param_rule |
544 | | Py_LOCAL_SYMBOL void *invalid_type_param_rule(Parser *p); |
545 | 343k | #define invalid_expression_rule _PyPegen_invalid_expression_rule |
546 | | Py_LOCAL_SYMBOL void *invalid_expression_rule(Parser *p); |
547 | 376k | #define invalid_if_expression_rule _PyPegen_invalid_if_expression_rule |
548 | | Py_LOCAL_SYMBOL void *invalid_if_expression_rule(Parser *p); |
549 | 294k | #define invalid_named_expression_rule _PyPegen_invalid_named_expression_rule |
550 | | Py_LOCAL_SYMBOL void *invalid_named_expression_rule(Parser *p); |
551 | 99.6k | #define invalid_assignment_rule _PyPegen_invalid_assignment_rule |
552 | | Py_LOCAL_SYMBOL void *invalid_assignment_rule(Parser *p); |
553 | 513 | #define invalid_raise_stmt_rule _PyPegen_invalid_raise_stmt_rule |
554 | | Py_LOCAL_SYMBOL void *invalid_raise_stmt_rule(Parser *p); |
555 | 198 | #define invalid_del_stmt_rule _PyPegen_invalid_del_stmt_rule |
556 | | Py_LOCAL_SYMBOL void *invalid_del_stmt_rule(Parser *p); |
557 | 812 | #define invalid_assert_stmt_rule _PyPegen_invalid_assert_stmt_rule |
558 | | Py_LOCAL_SYMBOL void *invalid_assert_stmt_rule(Parser *p); |
559 | 2.15k | #define invalid_block_rule _PyPegen_invalid_block_rule |
560 | | Py_LOCAL_SYMBOL void *invalid_block_rule(Parser *p); |
561 | 317k | #define invalid_comprehension_rule _PyPegen_invalid_comprehension_rule |
562 | | Py_LOCAL_SYMBOL void *invalid_comprehension_rule(Parser *p); |
563 | 4.85k | #define invalid_parameters_rule _PyPegen_invalid_parameters_rule |
564 | | Py_LOCAL_SYMBOL void *invalid_parameters_rule(Parser *p); |
565 | 680k | #define invalid_default_rule _PyPegen_invalid_default_rule |
566 | | Py_LOCAL_SYMBOL void *invalid_default_rule(Parser *p); |
567 | 4.81k | #define invalid_star_etc_rule _PyPegen_invalid_star_etc_rule |
568 | | Py_LOCAL_SYMBOL void *invalid_star_etc_rule(Parser *p); |
569 | 4.80k | #define invalid_kwds_rule _PyPegen_invalid_kwds_rule |
570 | | Py_LOCAL_SYMBOL void *invalid_kwds_rule(Parser *p); |
571 | 166k | #define invalid_lambda_parameters_rule _PyPegen_invalid_lambda_parameters_rule |
572 | | Py_LOCAL_SYMBOL void *invalid_lambda_parameters_rule(Parser *p); |
573 | 165k | #define invalid_lambda_star_etc_rule _PyPegen_invalid_lambda_star_etc_rule |
574 | | Py_LOCAL_SYMBOL void *invalid_lambda_star_etc_rule(Parser *p); |
575 | 165k | #define invalid_lambda_kwds_rule _PyPegen_invalid_lambda_kwds_rule |
576 | | Py_LOCAL_SYMBOL void *invalid_lambda_kwds_rule(Parser *p); |
577 | 2.14k | #define invalid_double_type_comments_rule _PyPegen_invalid_double_type_comments_rule |
578 | | Py_LOCAL_SYMBOL void *invalid_double_type_comments_rule(Parser *p); |
579 | 6.75k | #define invalid_with_item_rule _PyPegen_invalid_with_item_rule |
580 | | Py_LOCAL_SYMBOL void *invalid_with_item_rule(Parser *p); |
581 | 55.3k | #define invalid_for_if_clause_rule _PyPegen_invalid_for_if_clause_rule |
582 | | Py_LOCAL_SYMBOL void *invalid_for_if_clause_rule(Parser *p); |
583 | 54.8k | #define invalid_for_target_rule _PyPegen_invalid_for_target_rule |
584 | | Py_LOCAL_SYMBOL void *invalid_for_target_rule(Parser *p); |
585 | 5.05k | #define invalid_group_rule _PyPegen_invalid_group_rule |
586 | | Py_LOCAL_SYMBOL void *invalid_group_rule(Parser *p); |
587 | 3.50k | #define invalid_import_rule _PyPegen_invalid_import_rule |
588 | | Py_LOCAL_SYMBOL void *invalid_import_rule(Parser *p); |
589 | 2.54k | #define invalid_dotted_as_name_rule _PyPegen_invalid_dotted_as_name_rule |
590 | | Py_LOCAL_SYMBOL void *invalid_dotted_as_name_rule(Parser *p); |
591 | 3.79k | #define invalid_import_from_as_name_rule _PyPegen_invalid_import_from_as_name_rule |
592 | | Py_LOCAL_SYMBOL void *invalid_import_from_as_name_rule(Parser *p); |
593 | 2.63k | #define invalid_import_from_rule _PyPegen_invalid_import_from_rule |
594 | | Py_LOCAL_SYMBOL void *invalid_import_from_rule(Parser *p); |
595 | 148 | #define invalid_import_from_targets_rule _PyPegen_invalid_import_from_targets_rule |
596 | | Py_LOCAL_SYMBOL void *invalid_import_from_targets_rule(Parser *p); |
597 | 301 | #define invalid_with_stmt_rule _PyPegen_invalid_with_stmt_rule |
598 | | Py_LOCAL_SYMBOL void *invalid_with_stmt_rule(Parser *p); |
599 | 2.30k | #define invalid_with_stmt_indent_rule _PyPegen_invalid_with_stmt_indent_rule |
600 | | Py_LOCAL_SYMBOL void *invalid_with_stmt_indent_rule(Parser *p); |
601 | 1.90k | #define invalid_try_stmt_rule _PyPegen_invalid_try_stmt_rule |
602 | | Py_LOCAL_SYMBOL void *invalid_try_stmt_rule(Parser *p); |
603 | 3.17k | #define invalid_except_stmt_rule _PyPegen_invalid_except_stmt_rule |
604 | | Py_LOCAL_SYMBOL void *invalid_except_stmt_rule(Parser *p); |
605 | 2.30k | #define invalid_except_star_stmt_rule _PyPegen_invalid_except_star_stmt_rule |
606 | | Py_LOCAL_SYMBOL void *invalid_except_star_stmt_rule(Parser *p); |
607 | 2.96k | #define invalid_finally_stmt_rule _PyPegen_invalid_finally_stmt_rule |
608 | | Py_LOCAL_SYMBOL void *invalid_finally_stmt_rule(Parser *p); |
609 | 6.44k | #define invalid_except_stmt_indent_rule _PyPegen_invalid_except_stmt_indent_rule |
610 | | Py_LOCAL_SYMBOL void *invalid_except_stmt_indent_rule(Parser *p); |
611 | 4.76k | #define invalid_except_star_stmt_indent_rule _PyPegen_invalid_except_star_stmt_indent_rule |
612 | | Py_LOCAL_SYMBOL void *invalid_except_star_stmt_indent_rule(Parser *p); |
613 | 80.3k | #define invalid_match_stmt_rule _PyPegen_invalid_match_stmt_rule |
614 | | Py_LOCAL_SYMBOL void *invalid_match_stmt_rule(Parser *p); |
615 | 1.75k | #define invalid_case_block_rule _PyPegen_invalid_case_block_rule |
616 | | Py_LOCAL_SYMBOL void *invalid_case_block_rule(Parser *p); |
617 | 46.8k | #define invalid_as_pattern_rule _PyPegen_invalid_as_pattern_rule |
618 | | Py_LOCAL_SYMBOL void *invalid_as_pattern_rule(Parser *p); |
619 | 9.90k | #define invalid_class_pattern_rule _PyPegen_invalid_class_pattern_rule |
620 | | Py_LOCAL_SYMBOL void *invalid_class_pattern_rule(Parser *p); |
621 | 11.6k | #define invalid_mapping_pattern_rule _PyPegen_invalid_mapping_pattern_rule |
622 | | Py_LOCAL_SYMBOL void *invalid_mapping_pattern_rule(Parser *p); |
623 | 1.02k | #define invalid_if_stmt_rule _PyPegen_invalid_if_stmt_rule |
624 | | Py_LOCAL_SYMBOL void *invalid_if_stmt_rule(Parser *p); |
625 | 1.32k | #define invalid_elif_stmt_rule _PyPegen_invalid_elif_stmt_rule |
626 | | Py_LOCAL_SYMBOL void *invalid_elif_stmt_rule(Parser *p); |
627 | 2.88k | #define invalid_else_stmt_rule _PyPegen_invalid_else_stmt_rule |
628 | | Py_LOCAL_SYMBOL void *invalid_else_stmt_rule(Parser *p); |
629 | 348 | #define invalid_while_stmt_rule _PyPegen_invalid_while_stmt_rule |
630 | | Py_LOCAL_SYMBOL void *invalid_while_stmt_rule(Parser *p); |
631 | 437 | #define invalid_for_stmt_rule _PyPegen_invalid_for_stmt_rule |
632 | | Py_LOCAL_SYMBOL void *invalid_for_stmt_rule(Parser *p); |
633 | 3.29k | #define invalid_def_raw_rule _PyPegen_invalid_def_raw_rule |
634 | | Py_LOCAL_SYMBOL void *invalid_def_raw_rule(Parser *p); |
635 | 1.12k | #define invalid_class_def_raw_rule _PyPegen_invalid_class_def_raw_rule |
636 | | Py_LOCAL_SYMBOL void *invalid_class_def_raw_rule(Parser *p); |
637 | 13.5k | #define invalid_double_starred_kvpairs_rule _PyPegen_invalid_double_starred_kvpairs_rule |
638 | | Py_LOCAL_SYMBOL void *invalid_double_starred_kvpairs_rule(Parser *p); |
639 | 127k | #define invalid_starred_expression_unpacking_rule _PyPegen_invalid_starred_expression_unpacking_rule |
640 | | Py_LOCAL_SYMBOL void *invalid_starred_expression_unpacking_rule(Parser *p); |
641 | 66.7k | #define invalid_starred_expression_unpacking_sequence_rule _PyPegen_invalid_starred_expression_unpacking_sequence_rule |
642 | | Py_LOCAL_SYMBOL void *invalid_starred_expression_unpacking_sequence_rule(Parser *p); |
643 | 115k | #define invalid_starred_expression_rule _PyPegen_invalid_starred_expression_rule |
644 | | Py_LOCAL_SYMBOL void *invalid_starred_expression_rule(Parser *p); |
645 | 14.5k | #define invalid_fstring_replacement_field_rule _PyPegen_invalid_fstring_replacement_field_rule |
646 | | Py_LOCAL_SYMBOL void *invalid_fstring_replacement_field_rule(Parser *p); |
647 | 4.71k | #define invalid_tstring_replacement_field_rule _PyPegen_invalid_tstring_replacement_field_rule |
648 | | Py_LOCAL_SYMBOL void *invalid_tstring_replacement_field_rule(Parser *p); |
649 | 33.3k | #define invalid_string_tstring_concat_rule _PyPegen_invalid_string_tstring_concat_rule |
650 | | Py_LOCAL_SYMBOL void *invalid_string_tstring_concat_rule(Parser *p); |
651 | 409k | #define invalid_arithmetic_rule _PyPegen_invalid_arithmetic_rule |
652 | | Py_LOCAL_SYMBOL void *invalid_arithmetic_rule(Parser *p); |
653 | 174k | #define invalid_factor_rule _PyPegen_invalid_factor_rule |
654 | | Py_LOCAL_SYMBOL void *invalid_factor_rule(Parser *p); |
655 | 8.28k | #define invalid_type_params_rule _PyPegen_invalid_type_params_rule |
656 | | Py_LOCAL_SYMBOL void *invalid_type_params_rule(Parser *p); |
657 | 404k | #define invalid_bitwise_and_rule _PyPegen_invalid_bitwise_and_rule |
658 | | Py_LOCAL_SYMBOL void *invalid_bitwise_and_rule(Parser *p); |
659 | 400k | #define invalid_bitwise_or_rule _PyPegen_invalid_bitwise_or_rule |
660 | | Py_LOCAL_SYMBOL void *invalid_bitwise_or_rule(Parser *p); |
661 | 53.7k | #define invalid_noteq_rule _PyPegen_invalid_noteq_rule |
662 | | Py_LOCAL_SYMBOL void *invalid_noteq_rule(Parser *p); |
663 | | |
664 | | static mod_ty file_rule(Parser *p); |
665 | | static mod_ty interactive_rule(Parser *p); |
666 | | static mod_ty eval_rule(Parser *p); |
667 | | static mod_ty func_type_rule(Parser *p); |
668 | | static asdl_stmt_seq* statements_rule(Parser *p); |
669 | | static asdl_stmt_seq* statement_rule(Parser *p); |
670 | | static asdl_stmt_seq* single_compound_stmt_rule(Parser *p); |
671 | | static asdl_stmt_seq* statement_newline_rule(Parser *p); |
672 | | static asdl_stmt_seq* simple_stmts_rule(Parser *p); |
673 | | static stmt_ty compound_stmt_rule(Parser *p); |
674 | | static stmt_ty assignment_rule(Parser *p); |
675 | | static stmt_ty return_stmt_rule(Parser *p); |
676 | | static stmt_ty raise_stmt_rule(Parser *p); |
677 | | static stmt_ty global_stmt_rule(Parser *p); |
678 | | static stmt_ty nonlocal_stmt_rule(Parser *p); |
679 | | static stmt_ty del_stmt_rule(Parser *p); |
680 | | static stmt_ty yield_stmt_rule(Parser *p); |
681 | | static stmt_ty assert_stmt_rule(Parser *p); |
682 | | static stmt_ty import_stmt_rule(Parser *p); |
683 | | static stmt_ty import_name_rule(Parser *p); |
684 | | static stmt_ty import_from_rule(Parser *p); |
685 | | static alias_ty import_from_as_name_rule(Parser *p); |
686 | | static asdl_alias_seq* dotted_as_names_rule(Parser *p); |
687 | | static alias_ty dotted_as_name_rule(Parser *p); |
688 | | static asdl_expr_seq* decorators_rule(Parser *p); |
689 | | static stmt_ty class_def_rule(Parser *p); |
690 | | static stmt_ty class_def_raw_rule(Parser *p); |
691 | | static stmt_ty function_def_rule(Parser *p); |
692 | | static stmt_ty function_def_raw_rule(Parser *p); |
693 | | static arguments_ty parameters_rule(Parser *p); |
694 | | static StarEtc* star_etc_rule(Parser *p); |
695 | | static arg_ty kwds_rule(Parser *p); |
696 | | static arg_ty param_no_default_star_annotation_rule(Parser *p); |
697 | | static arg_ty param_star_annotation_rule(Parser *p); |
698 | | static expr_ty annotation_rule(Parser *p); |
699 | | static expr_ty star_annotation_rule(Parser *p); |
700 | | static expr_ty default_rule(Parser *p); |
701 | | static stmt_ty if_stmt_rule(Parser *p); |
702 | | static stmt_ty elif_stmt_rule(Parser *p); |
703 | | static asdl_stmt_seq* else_block_rule(Parser *p); |
704 | | static stmt_ty while_stmt_rule(Parser *p); |
705 | | static stmt_ty for_stmt_rule(Parser *p); |
706 | | static stmt_ty with_stmt_rule(Parser *p); |
707 | | static withitem_ty with_item_rule(Parser *p); |
708 | | static stmt_ty try_stmt_rule(Parser *p); |
709 | | static asdl_stmt_seq* finally_block_rule(Parser *p); |
710 | | static stmt_ty match_stmt_rule(Parser *p); |
711 | | static match_case_ty case_block_rule(Parser *p); |
712 | | static pattern_ty pattern_rule(Parser *p); |
713 | | static pattern_ty as_pattern_rule(Parser *p); |
714 | | static pattern_ty closed_pattern_rule(Parser *p); |
715 | | static pattern_ty literal_pattern_rule(Parser *p); |
716 | | static expr_ty literal_expr_rule(Parser *p); |
717 | | static expr_ty complex_number_rule(Parser *p); |
718 | | static expr_ty signed_number_rule(Parser *p); |
719 | | static expr_ty signed_real_number_rule(Parser *p); |
720 | | static expr_ty real_number_rule(Parser *p); |
721 | | static expr_ty imaginary_number_rule(Parser *p); |
722 | | static pattern_ty capture_pattern_rule(Parser *p); |
723 | | static expr_ty pattern_capture_target_rule(Parser *p); |
724 | | static pattern_ty wildcard_pattern_rule(Parser *p); |
725 | | static pattern_ty value_pattern_rule(Parser *p); |
726 | | static expr_ty attr_rule(Parser *p); |
727 | | static pattern_ty group_pattern_rule(Parser *p); |
728 | | static pattern_ty sequence_pattern_rule(Parser *p); |
729 | | static asdl_seq* open_sequence_pattern_rule(Parser *p); |
730 | | static asdl_seq* maybe_sequence_pattern_rule(Parser *p); |
731 | | static pattern_ty maybe_star_pattern_rule(Parser *p); |
732 | | static pattern_ty star_pattern_rule(Parser *p); |
733 | | static pattern_ty mapping_pattern_rule(Parser *p); |
734 | | static KeyPatternPair* key_value_pattern_rule(Parser *p); |
735 | | static pattern_ty class_pattern_rule(Parser *p); |
736 | | static KeyPatternPair* keyword_pattern_rule(Parser *p); |
737 | | static stmt_ty type_alias_rule(Parser *p); |
738 | | static asdl_type_param_seq* type_param_seq_rule(Parser *p); |
739 | | static type_param_ty type_param_rule(Parser *p); |
740 | | static expr_ty type_param_bound_rule(Parser *p); |
741 | | static expr_ty type_param_default_rule(Parser *p); |
742 | | static expr_ty type_param_starred_default_rule(Parser *p); |
743 | | static expr_ty star_expression_rule(Parser *p); |
744 | | static expr_ty conjunction_rule(Parser *p); |
745 | | static expr_ty comparison_rule(Parser *p); |
746 | | static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p); |
747 | | static expr_ty bitwise_xor_rule(Parser *p); |
748 | | static expr_ty shift_expr_rule(Parser *p); |
749 | | static expr_ty term_rule(Parser *p); |
750 | | static expr_ty power_rule(Parser *p); |
751 | | static expr_ty await_primary_rule(Parser *p); |
752 | | static expr_ty primary_rule(Parser *p); |
753 | | static expr_ty slices_rule(Parser *p); |
754 | | static expr_ty slice_rule(Parser *p); |
755 | | static expr_ty atom_rule(Parser *p); |
756 | | static expr_ty group_rule(Parser *p); |
757 | | static arguments_ty lambda_parameters_rule(Parser *p); |
758 | | static StarEtc* lambda_star_etc_rule(Parser *p); |
759 | | static arg_ty lambda_kwds_rule(Parser *p); |
760 | | static expr_ty fstring_middle_rule(Parser *p); |
761 | | static expr_ty fstring_replacement_field_rule(Parser *p); |
762 | | static ResultTokenWithMetadata* fstring_conversion_rule(Parser *p); |
763 | | static ResultTokenWithMetadata* fstring_full_format_spec_rule(Parser *p); |
764 | | static expr_ty tstring_format_spec_replacement_field_rule(Parser *p); |
765 | | static expr_ty tstring_format_spec_rule(Parser *p); |
766 | | static ResultTokenWithMetadata* tstring_full_format_spec_rule(Parser *p); |
767 | | static expr_ty tstring_replacement_field_rule(Parser *p); |
768 | | static expr_ty tstring_middle_rule(Parser *p); |
769 | | static expr_ty strings_rule(Parser *p); |
770 | | static asdl_expr_seq* display_items_rule(Parser *p); |
771 | | static expr_ty display_item_rule(Parser *p); |
772 | | static expr_ty set_rule(Parser *p); |
773 | | static expr_ty dict_rule(Parser *p); |
774 | | static asdl_seq* double_starred_kvpairs_rule(Parser *p); |
775 | | static KeyValuePair* kvpair_rule(Parser *p); |
776 | | static comprehension_ty for_if_clause_rule(Parser *p); |
777 | | static expr_ty listcomp_rule(Parser *p); |
778 | | static expr_ty setcomp_rule(Parser *p); |
779 | | static expr_ty dictcomp_rule(Parser *p); |
780 | | static KeywordOrStarred* kwarg_or_starred_rule(Parser *p); |
781 | | static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p); |
782 | | static expr_ty target_rule(Parser *p); |
783 | | static expr_ty single_target_rule(Parser *p); |
784 | | static expr_ty attribute_or_subscript_target_rule(Parser *p); |
785 | | static expr_ty target_value_rule(Parser *p); |
786 | | static asdl_expr_seq* del_targets_rule(Parser *p); |
787 | | static expr_ty del_target_rule(Parser *p); |
788 | | static asdl_expr_seq* type_expressions_rule(Parser *p); |
789 | | static asdl_seq *_loop0_1_rule(Parser *p); |
790 | | static asdl_seq *_loop1_2_rule(Parser *p); |
791 | | static asdl_seq *_loop0_3_rule(Parser *p); |
792 | | static asdl_seq *_gather_4_rule(Parser *p); |
793 | | static void *_tmp_5_rule(Parser *p); |
794 | | static void *_tmp_6_rule(Parser *p); |
795 | | static void *_tmp_7_rule(Parser *p); |
796 | | static void *_tmp_8_rule(Parser *p); |
797 | | static void *_tmp_9_rule(Parser *p); |
798 | | static void *_tmp_10_rule(Parser *p); |
799 | | static void *_tmp_11_rule(Parser *p); |
800 | | static asdl_seq *_loop1_12_rule(Parser *p); |
801 | | static asdl_seq *_loop0_13_rule(Parser *p); |
802 | | static asdl_seq *_gather_14_rule(Parser *p); |
803 | | static void *_tmp_15_rule(Parser *p); |
804 | | static void *_tmp_16_rule(Parser *p); |
805 | | static asdl_seq *_loop0_17_rule(Parser *p); |
806 | | static asdl_seq *_loop1_18_rule(Parser *p); |
807 | | static asdl_seq *_loop0_19_rule(Parser *p); |
808 | | static asdl_seq *_gather_20_rule(Parser *p); |
809 | | static void *_tmp_21_rule(Parser *p); |
810 | | static asdl_seq *_loop0_22_rule(Parser *p); |
811 | | static asdl_seq *_gather_23_rule(Parser *p); |
812 | | static asdl_seq *_loop1_24_rule(Parser *p); |
813 | | static void *_tmp_25_rule(Parser *p); |
814 | | static void *_tmp_26_rule(Parser *p); |
815 | | static asdl_seq *_loop0_27_rule(Parser *p); |
816 | | static asdl_seq *_loop0_28_rule(Parser *p); |
817 | | static asdl_seq *_loop1_29_rule(Parser *p); |
818 | | static asdl_seq *_loop1_30_rule(Parser *p); |
819 | | static asdl_seq *_loop0_31_rule(Parser *p); |
820 | | static asdl_seq *_loop1_32_rule(Parser *p); |
821 | | static asdl_seq *_loop0_33_rule(Parser *p); |
822 | | static asdl_seq *_gather_34_rule(Parser *p); |
823 | | static void *_tmp_35_rule(Parser *p); |
824 | | static asdl_seq *_loop1_36_rule(Parser *p); |
825 | | static asdl_seq *_loop1_37_rule(Parser *p); |
826 | | static asdl_seq *_loop1_38_rule(Parser *p); |
827 | | static asdl_seq *_loop0_39_rule(Parser *p); |
828 | | static asdl_seq *_gather_40_rule(Parser *p); |
829 | | static void *_tmp_41_rule(Parser *p); |
830 | | static void *_tmp_42_rule(Parser *p); |
831 | | static void *_tmp_43_rule(Parser *p); |
832 | | static asdl_seq *_loop0_44_rule(Parser *p); |
833 | | static asdl_seq *_gather_45_rule(Parser *p); |
834 | | static asdl_seq *_loop0_46_rule(Parser *p); |
835 | | static asdl_seq *_gather_47_rule(Parser *p); |
836 | | static void *_tmp_48_rule(Parser *p); |
837 | | static asdl_seq *_loop0_49_rule(Parser *p); |
838 | | static asdl_seq *_gather_50_rule(Parser *p); |
839 | | static asdl_seq *_loop0_51_rule(Parser *p); |
840 | | static asdl_seq *_gather_52_rule(Parser *p); |
841 | | static asdl_seq *_loop0_53_rule(Parser *p); |
842 | | static asdl_seq *_gather_54_rule(Parser *p); |
843 | | static asdl_seq *_loop1_55_rule(Parser *p); |
844 | | static asdl_seq *_loop1_56_rule(Parser *p); |
845 | | static asdl_seq *_loop0_57_rule(Parser *p); |
846 | | static asdl_seq *_gather_58_rule(Parser *p); |
847 | | static asdl_seq *_loop1_59_rule(Parser *p); |
848 | | static asdl_seq *_loop1_60_rule(Parser *p); |
849 | | static asdl_seq *_loop1_61_rule(Parser *p); |
850 | | static void *_tmp_62_rule(Parser *p); |
851 | | static asdl_seq *_loop0_63_rule(Parser *p); |
852 | | static asdl_seq *_gather_64_rule(Parser *p); |
853 | | static void *_tmp_65_rule(Parser *p); |
854 | | static void *_tmp_66_rule(Parser *p); |
855 | | static void *_tmp_67_rule(Parser *p); |
856 | | static void *_tmp_68_rule(Parser *p); |
857 | | static void *_tmp_69_rule(Parser *p); |
858 | | static asdl_seq *_loop0_70_rule(Parser *p); |
859 | | static asdl_seq *_loop0_71_rule(Parser *p); |
860 | | static asdl_seq *_loop1_72_rule(Parser *p); |
861 | | static asdl_seq *_loop1_73_rule(Parser *p); |
862 | | static asdl_seq *_loop0_74_rule(Parser *p); |
863 | | static asdl_seq *_loop1_75_rule(Parser *p); |
864 | | static asdl_seq *_loop0_76_rule(Parser *p); |
865 | | static asdl_seq *_loop0_77_rule(Parser *p); |
866 | | static asdl_seq *_loop0_78_rule(Parser *p); |
867 | | static asdl_seq *_loop0_79_rule(Parser *p); |
868 | | static asdl_seq *_loop1_80_rule(Parser *p); |
869 | | static asdl_seq *_loop1_81_rule(Parser *p); |
870 | | static asdl_seq *_loop0_82_rule(Parser *p); |
871 | | static asdl_seq *_gather_83_rule(Parser *p); |
872 | | static void *_tmp_84_rule(Parser *p); |
873 | | static asdl_seq *_loop0_85_rule(Parser *p); |
874 | | static asdl_seq *_gather_86_rule(Parser *p); |
875 | | static asdl_seq *_loop1_87_rule(Parser *p); |
876 | | static asdl_seq *_loop0_88_rule(Parser *p); |
877 | | static void *_tmp_89_rule(Parser *p); |
878 | | static asdl_seq *_loop0_90_rule(Parser *p); |
879 | | static asdl_seq *_gather_91_rule(Parser *p); |
880 | | static void *_tmp_92_rule(Parser *p); |
881 | | static asdl_seq *_loop0_93_rule(Parser *p); |
882 | | static asdl_seq *_gather_94_rule(Parser *p); |
883 | | static void *_tmp_95_rule(Parser *p); |
884 | | static asdl_seq *_loop0_96_rule(Parser *p); |
885 | | static asdl_seq *_gather_97_rule(Parser *p); |
886 | | static asdl_seq *_loop0_98_rule(Parser *p); |
887 | | static void *_tmp_99_rule(Parser *p); |
888 | | static void *_tmp_100_rule(Parser *p); |
889 | | static asdl_seq *_loop0_101_rule(Parser *p); |
890 | | static asdl_seq *_gather_102_rule(Parser *p); |
891 | | static asdl_seq *_loop0_103_rule(Parser *p); |
892 | | static asdl_seq *_gather_104_rule(Parser *p); |
893 | | static void *_tmp_105_rule(Parser *p); |
894 | | static void *_tmp_178_rule(Parser *p); |
895 | | static void *_tmp_179_rule(Parser *p); |
896 | | static void *_tmp_180_rule(Parser *p); |
897 | | static void *_tmp_181_rule(Parser *p); |
898 | | static void *_tmp_182_rule(Parser *p); |
899 | | static void *_tmp_183_rule(Parser *p); |
900 | | static void *_tmp_184_rule(Parser *p); |
901 | | static void *_tmp_185_rule(Parser *p); |
902 | | static void *_tmp_186_rule(Parser *p); |
903 | | static void *_tmp_187_rule(Parser *p); |
904 | | static void *_tmp_188_rule(Parser *p); |
905 | | static void *_tmp_200_rule(Parser *p); |
906 | | |
907 | | |
908 | | // file: statements? $ |
909 | | static mod_ty |
910 | | file_rule(Parser *p) |
911 | 138k | { |
912 | 138k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
913 | 0 | _Pypegen_stack_overflow(p); |
914 | 0 | } |
915 | 138k | if (p->error_indicator) { |
916 | 2.58k | p->level--; |
917 | 2.58k | return NULL; |
918 | 2.58k | } |
919 | 135k | mod_ty _res = NULL; |
920 | 135k | int _mark = p->mark; |
921 | 135k | { // statements? $ |
922 | 135k | if (p->error_indicator) { |
923 | 0 | p->level--; |
924 | 0 | return NULL; |
925 | 0 | } |
926 | 135k | D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $")); |
927 | 135k | void *a; |
928 | 135k | Token * endmarker_var; |
929 | 135k | if ( |
930 | 135k | (a = statements_rule(p), !p->error_indicator) // statements? |
931 | 129k | && |
932 | 129k | (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER' |
933 | 135k | ) |
934 | 8.12k | { |
935 | 8.12k | D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $")); |
936 | 8.12k | _res = _PyPegen_make_module ( p , a ); |
937 | 8.12k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
938 | 0 | p->error_indicator = 1; |
939 | 0 | p->level--; |
940 | 0 | return NULL; |
941 | 0 | } |
942 | 8.12k | goto done; |
943 | 8.12k | } |
944 | 127k | p->mark = _mark; |
945 | 127k | D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ', |
946 | 127k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $")); |
947 | 127k | } |
948 | 127k | _res = NULL; |
949 | 135k | done: |
950 | 135k | p->level--; |
951 | 135k | return _res; |
952 | 127k | } |
953 | | |
954 | | // interactive: statement_newline |
955 | | static mod_ty |
956 | | interactive_rule(Parser *p) |
957 | 0 | { |
958 | 0 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
959 | 0 | _Pypegen_stack_overflow(p); |
960 | 0 | } |
961 | 0 | if (p->error_indicator) { |
962 | 0 | p->level--; |
963 | 0 | return NULL; |
964 | 0 | } |
965 | 0 | mod_ty _res = NULL; |
966 | 0 | int _mark = p->mark; |
967 | 0 | { // statement_newline |
968 | 0 | if (p->error_indicator) { |
969 | 0 | p->level--; |
970 | 0 | return NULL; |
971 | 0 | } |
972 | 0 | D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline")); |
973 | 0 | asdl_stmt_seq* a; |
974 | 0 | if ( |
975 | 0 | (a = statement_newline_rule(p)) // statement_newline |
976 | 0 | ) |
977 | 0 | { |
978 | 0 | D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline")); |
979 | 0 | _res = _PyAST_Interactive ( a , p -> arena ); |
980 | 0 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
981 | 0 | p->error_indicator = 1; |
982 | 0 | p->level--; |
983 | 0 | return NULL; |
984 | 0 | } |
985 | 0 | goto done; |
986 | 0 | } |
987 | 0 | p->mark = _mark; |
988 | 0 | D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ', |
989 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline")); |
990 | 0 | } |
991 | 0 | _res = NULL; |
992 | 0 | done: |
993 | 0 | p->level--; |
994 | 0 | return _res; |
995 | 0 | } |
996 | | |
997 | | // eval: expressions NEWLINE* $ |
998 | | static mod_ty |
999 | | eval_rule(Parser *p) |
1000 | 172 | { |
1001 | 172 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
1002 | 0 | _Pypegen_stack_overflow(p); |
1003 | 0 | } |
1004 | 172 | if (p->error_indicator) { |
1005 | 0 | p->level--; |
1006 | 0 | return NULL; |
1007 | 0 | } |
1008 | 172 | mod_ty _res = NULL; |
1009 | 172 | int _mark = p->mark; |
1010 | 172 | { // expressions NEWLINE* $ |
1011 | 172 | if (p->error_indicator) { |
1012 | 0 | p->level--; |
1013 | 0 | return NULL; |
1014 | 0 | } |
1015 | 172 | D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $")); |
1016 | 172 | asdl_seq * _loop0_1_var; |
1017 | 172 | expr_ty a; |
1018 | 172 | Token * endmarker_var; |
1019 | 172 | if ( |
1020 | 172 | (a = expressions_rule(p)) // expressions |
1021 | 172 | && |
1022 | 172 | (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE* |
1023 | 172 | && |
1024 | 172 | (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER' |
1025 | 172 | ) |
1026 | 172 | { |
1027 | 172 | D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $")); |
1028 | 172 | _res = _PyAST_Expression ( a , p -> arena ); |
1029 | 172 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
1030 | 0 | p->error_indicator = 1; |
1031 | 0 | p->level--; |
1032 | 0 | return NULL; |
1033 | 0 | } |
1034 | 172 | goto done; |
1035 | 172 | } |
1036 | 0 | p->mark = _mark; |
1037 | 0 | D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ', |
1038 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $")); |
1039 | 0 | } |
1040 | 0 | _res = NULL; |
1041 | 172 | done: |
1042 | 172 | p->level--; |
1043 | 172 | return _res; |
1044 | 0 | } |
1045 | | |
1046 | | // func_type: '(' type_expressions? ')' '->' expression NEWLINE* $ |
1047 | | static mod_ty |
1048 | | func_type_rule(Parser *p) |
1049 | 0 | { |
1050 | 0 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
1051 | 0 | _Pypegen_stack_overflow(p); |
1052 | 0 | } |
1053 | 0 | if (p->error_indicator) { |
1054 | 0 | p->level--; |
1055 | 0 | return NULL; |
1056 | 0 | } |
1057 | 0 | mod_ty _res = NULL; |
1058 | 0 | int _mark = p->mark; |
1059 | 0 | { // '(' type_expressions? ')' '->' expression NEWLINE* $ |
1060 | 0 | if (p->error_indicator) { |
1061 | 0 | p->level--; |
1062 | 0 | return NULL; |
1063 | 0 | } |
1064 | 0 | D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $")); |
1065 | 0 | Token * _literal; |
1066 | 0 | Token * _literal_1; |
1067 | 0 | Token * _literal_2; |
1068 | 0 | asdl_seq * _loop0_1_var; |
1069 | 0 | void *a; |
1070 | 0 | expr_ty b; |
1071 | 0 | Token * endmarker_var; |
1072 | 0 | if ( |
1073 | 0 | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
1074 | 0 | && |
1075 | 0 | (a = type_expressions_rule(p), !p->error_indicator) // type_expressions? |
1076 | 0 | && |
1077 | 0 | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
1078 | 0 | && |
1079 | 0 | (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->' |
1080 | 0 | && |
1081 | 0 | (b = expression_rule(p)) // expression |
1082 | 0 | && |
1083 | 0 | (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE* |
1084 | 0 | && |
1085 | 0 | (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER' |
1086 | 0 | ) |
1087 | 0 | { |
1088 | 0 | D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $")); |
1089 | 0 | _res = _PyAST_FunctionType ( a , b , p -> arena ); |
1090 | 0 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
1091 | 0 | p->error_indicator = 1; |
1092 | 0 | p->level--; |
1093 | 0 | return NULL; |
1094 | 0 | } |
1095 | 0 | goto done; |
1096 | 0 | } |
1097 | 0 | p->mark = _mark; |
1098 | 0 | D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ', |
1099 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $")); |
1100 | 0 | } |
1101 | 0 | _res = NULL; |
1102 | 0 | done: |
1103 | 0 | p->level--; |
1104 | 0 | return _res; |
1105 | 0 | } |
1106 | | |
1107 | | // statements: statement+ |
1108 | | static asdl_stmt_seq* |
1109 | | statements_rule(Parser *p) |
1110 | 145k | { |
1111 | 145k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
1112 | 0 | _Pypegen_stack_overflow(p); |
1113 | 0 | } |
1114 | 145k | if (p->error_indicator) { |
1115 | 0 | p->level--; |
1116 | 0 | return NULL; |
1117 | 0 | } |
1118 | 145k | asdl_stmt_seq* _res = NULL; |
1119 | 145k | int _mark = p->mark; |
1120 | 145k | { // statement+ |
1121 | 145k | if (p->error_indicator) { |
1122 | 0 | p->level--; |
1123 | 0 | return NULL; |
1124 | 0 | } |
1125 | 145k | D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+")); |
1126 | 145k | asdl_seq * a; |
1127 | 145k | if ( |
1128 | 145k | (a = _loop1_2_rule(p)) // statement+ |
1129 | 145k | ) |
1130 | 18.5k | { |
1131 | 18.5k | D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+")); |
1132 | 18.5k | _res = ( asdl_stmt_seq* ) _PyPegen_seq_flatten ( p , a ); |
1133 | 18.5k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
1134 | 0 | p->error_indicator = 1; |
1135 | 0 | p->level--; |
1136 | 0 | return NULL; |
1137 | 0 | } |
1138 | 18.5k | goto done; |
1139 | 18.5k | } |
1140 | 127k | p->mark = _mark; |
1141 | 127k | D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ', |
1142 | 127k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+")); |
1143 | 127k | } |
1144 | 127k | _res = NULL; |
1145 | 145k | done: |
1146 | 145k | p->level--; |
1147 | 145k | return _res; |
1148 | 127k | } |
1149 | | |
1150 | | // statement: compound_stmt | simple_stmts |
1151 | | static asdl_stmt_seq* |
1152 | | statement_rule(Parser *p) |
1153 | 236k | { |
1154 | 236k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
1155 | 0 | _Pypegen_stack_overflow(p); |
1156 | 0 | } |
1157 | 236k | if (p->error_indicator) { |
1158 | 0 | p->level--; |
1159 | 0 | return NULL; |
1160 | 0 | } |
1161 | 236k | asdl_stmt_seq* _res = NULL; |
1162 | 236k | int _mark = p->mark; |
1163 | 236k | { // compound_stmt |
1164 | 236k | if (p->error_indicator) { |
1165 | 0 | p->level--; |
1166 | 0 | return NULL; |
1167 | 0 | } |
1168 | 236k | D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt")); |
1169 | 236k | stmt_ty a; |
1170 | 236k | if ( |
1171 | 236k | (a = compound_stmt_rule(p)) // compound_stmt |
1172 | 236k | ) |
1173 | 27.7k | { |
1174 | 27.7k | D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt")); |
1175 | 27.7k | _res = _PyPegen_register_stmts ( p , ( asdl_stmt_seq* ) _PyPegen_singleton_seq ( p , a ) ); |
1176 | 27.7k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
1177 | 0 | p->error_indicator = 1; |
1178 | 0 | p->level--; |
1179 | 0 | return NULL; |
1180 | 0 | } |
1181 | 27.7k | goto done; |
1182 | 27.7k | } |
1183 | 208k | p->mark = _mark; |
1184 | 208k | D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ', |
1185 | 208k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt")); |
1186 | 208k | } |
1187 | 0 | { // simple_stmts |
1188 | 208k | if (p->error_indicator) { |
1189 | 2.00k | p->level--; |
1190 | 2.00k | return NULL; |
1191 | 2.00k | } |
1192 | 206k | D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts")); |
1193 | 206k | asdl_stmt_seq* a; |
1194 | 206k | if ( |
1195 | 206k | (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts |
1196 | 206k | ) |
1197 | 62.9k | { |
1198 | 62.9k | D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts")); |
1199 | 62.9k | _res = a; |
1200 | 62.9k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
1201 | 0 | p->error_indicator = 1; |
1202 | 0 | p->level--; |
1203 | 0 | return NULL; |
1204 | 0 | } |
1205 | 62.9k | goto done; |
1206 | 62.9k | } |
1207 | 143k | p->mark = _mark; |
1208 | 143k | D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ', |
1209 | 143k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts")); |
1210 | 143k | } |
1211 | 143k | _res = NULL; |
1212 | 234k | done: |
1213 | 234k | p->level--; |
1214 | 234k | return _res; |
1215 | 143k | } |
1216 | | |
1217 | | // single_compound_stmt: compound_stmt |
1218 | | static asdl_stmt_seq* |
1219 | | single_compound_stmt_rule(Parser *p) |
1220 | 0 | { |
1221 | 0 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
1222 | 0 | _Pypegen_stack_overflow(p); |
1223 | 0 | } |
1224 | 0 | if (p->error_indicator) { |
1225 | 0 | p->level--; |
1226 | 0 | return NULL; |
1227 | 0 | } |
1228 | 0 | asdl_stmt_seq* _res = NULL; |
1229 | 0 | int _mark = p->mark; |
1230 | 0 | { // compound_stmt |
1231 | 0 | if (p->error_indicator) { |
1232 | 0 | p->level--; |
1233 | 0 | return NULL; |
1234 | 0 | } |
1235 | 0 | D(fprintf(stderr, "%*c> single_compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt")); |
1236 | 0 | stmt_ty a; |
1237 | 0 | if ( |
1238 | 0 | (a = compound_stmt_rule(p)) // compound_stmt |
1239 | 0 | ) |
1240 | 0 | { |
1241 | 0 | D(fprintf(stderr, "%*c+ single_compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt")); |
1242 | 0 | _res = _PyPegen_register_stmts ( p , ( asdl_stmt_seq* ) _PyPegen_singleton_seq ( p , a ) ); |
1243 | 0 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
1244 | 0 | p->error_indicator = 1; |
1245 | 0 | p->level--; |
1246 | 0 | return NULL; |
1247 | 0 | } |
1248 | 0 | goto done; |
1249 | 0 | } |
1250 | 0 | p->mark = _mark; |
1251 | 0 | D(fprintf(stderr, "%*c%s single_compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1252 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt")); |
1253 | 0 | } |
1254 | 0 | _res = NULL; |
1255 | 0 | done: |
1256 | 0 | p->level--; |
1257 | 0 | return _res; |
1258 | 0 | } |
1259 | | |
1260 | | // statement_newline: single_compound_stmt NEWLINE | simple_stmts | NEWLINE | $ |
1261 | | static asdl_stmt_seq* |
1262 | | statement_newline_rule(Parser *p) |
1263 | 0 | { |
1264 | 0 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
1265 | 0 | _Pypegen_stack_overflow(p); |
1266 | 0 | } |
1267 | 0 | if (p->error_indicator) { |
1268 | 0 | p->level--; |
1269 | 0 | return NULL; |
1270 | 0 | } |
1271 | 0 | asdl_stmt_seq* _res = NULL; |
1272 | 0 | int _mark = p->mark; |
1273 | 0 | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
1274 | 0 | p->error_indicator = 1; |
1275 | 0 | p->level--; |
1276 | 0 | return NULL; |
1277 | 0 | } |
1278 | 0 | int _start_lineno = p->tokens[_mark]->lineno; |
1279 | 0 | UNUSED(_start_lineno); // Only used by EXTRA macro |
1280 | 0 | int _start_col_offset = p->tokens[_mark]->col_offset; |
1281 | 0 | UNUSED(_start_col_offset); // Only used by EXTRA macro |
1282 | 0 | { // single_compound_stmt NEWLINE |
1283 | 0 | if (p->error_indicator) { |
1284 | 0 | p->level--; |
1285 | 0 | return NULL; |
1286 | 0 | } |
1287 | 0 | D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_compound_stmt NEWLINE")); |
1288 | 0 | asdl_stmt_seq* a; |
1289 | 0 | Token * newline_var; |
1290 | 0 | if ( |
1291 | 0 | (a = single_compound_stmt_rule(p)) // single_compound_stmt |
1292 | 0 | && |
1293 | 0 | (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' |
1294 | 0 | ) |
1295 | 0 | { |
1296 | 0 | D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_compound_stmt NEWLINE")); |
1297 | 0 | _res = a; |
1298 | 0 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
1299 | 0 | p->error_indicator = 1; |
1300 | 0 | p->level--; |
1301 | 0 | return NULL; |
1302 | 0 | } |
1303 | 0 | goto done; |
1304 | 0 | } |
1305 | 0 | p->mark = _mark; |
1306 | 0 | D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ', |
1307 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_compound_stmt NEWLINE")); |
1308 | 0 | } |
1309 | 0 | { // simple_stmts |
1310 | 0 | if (p->error_indicator) { |
1311 | 0 | p->level--; |
1312 | 0 | return NULL; |
1313 | 0 | } |
1314 | 0 | D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts")); |
1315 | 0 | asdl_stmt_seq* simple_stmts_var; |
1316 | 0 | if ( |
1317 | 0 | (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts |
1318 | 0 | ) |
1319 | 0 | { |
1320 | 0 | D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts")); |
1321 | 0 | _res = simple_stmts_var; |
1322 | 0 | goto done; |
1323 | 0 | } |
1324 | 0 | p->mark = _mark; |
1325 | 0 | D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ', |
1326 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts")); |
1327 | 0 | } |
1328 | 0 | { // NEWLINE |
1329 | 0 | if (p->error_indicator) { |
1330 | 0 | p->level--; |
1331 | 0 | return NULL; |
1332 | 0 | } |
1333 | 0 | D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE")); |
1334 | 0 | Token * newline_var; |
1335 | 0 | if ( |
1336 | 0 | (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' |
1337 | 0 | ) |
1338 | 0 | { |
1339 | 0 | D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE")); |
1340 | 0 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
1341 | 0 | if (_token == NULL) { |
1342 | 0 | p->level--; |
1343 | 0 | return NULL; |
1344 | 0 | } |
1345 | 0 | int _end_lineno = _token->end_lineno; |
1346 | 0 | UNUSED(_end_lineno); // Only used by EXTRA macro |
1347 | 0 | int _end_col_offset = _token->end_col_offset; |
1348 | 0 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
1349 | 0 | _res = ( asdl_stmt_seq* ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) ); |
1350 | 0 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
1351 | 0 | p->error_indicator = 1; |
1352 | 0 | p->level--; |
1353 | 0 | return NULL; |
1354 | 0 | } |
1355 | 0 | goto done; |
1356 | 0 | } |
1357 | 0 | p->mark = _mark; |
1358 | 0 | D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ', |
1359 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); |
1360 | 0 | } |
1361 | 0 | { // $ |
1362 | 0 | if (p->error_indicator) { |
1363 | 0 | p->level--; |
1364 | 0 | return NULL; |
1365 | 0 | } |
1366 | 0 | D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$")); |
1367 | 0 | Token * endmarker_var; |
1368 | 0 | if ( |
1369 | 0 | (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER' |
1370 | 0 | ) |
1371 | 0 | { |
1372 | 0 | D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$")); |
1373 | 0 | _res = _PyPegen_interactive_exit ( p ); |
1374 | 0 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
1375 | 0 | p->error_indicator = 1; |
1376 | 0 | p->level--; |
1377 | 0 | return NULL; |
1378 | 0 | } |
1379 | 0 | goto done; |
1380 | 0 | } |
1381 | 0 | p->mark = _mark; |
1382 | 0 | D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ', |
1383 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$")); |
1384 | 0 | } |
1385 | 0 | _res = NULL; |
1386 | 0 | done: |
1387 | 0 | p->level--; |
1388 | 0 | return _res; |
1389 | 0 | } |
1390 | | |
1391 | | // simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE |
1392 | | static asdl_stmt_seq* |
1393 | | simple_stmts_rule(Parser *p) |
1394 | 240k | { |
1395 | 240k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
1396 | 0 | _Pypegen_stack_overflow(p); |
1397 | 0 | } |
1398 | 240k | if (p->error_indicator) { |
1399 | 0 | p->level--; |
1400 | 0 | return NULL; |
1401 | 0 | } |
1402 | 240k | asdl_stmt_seq* _res = NULL; |
1403 | 240k | int _mark = p->mark; |
1404 | 240k | { // simple_stmt !';' NEWLINE |
1405 | 240k | if (p->error_indicator) { |
1406 | 0 | p->level--; |
1407 | 0 | return NULL; |
1408 | 0 | } |
1409 | 240k | D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE")); |
1410 | 240k | stmt_ty a; |
1411 | 240k | Token * newline_var; |
1412 | 240k | if ( |
1413 | 240k | (a = simple_stmt_rule(p)) // simple_stmt |
1414 | 104k | && |
1415 | 104k | _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';' |
1416 | 101k | && |
1417 | 101k | (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' |
1418 | 240k | ) |
1419 | 91.1k | { |
1420 | 91.1k | D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE")); |
1421 | 91.1k | _res = ( asdl_stmt_seq* ) _PyPegen_singleton_seq ( p , a ); |
1422 | 91.1k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
1423 | 0 | p->error_indicator = 1; |
1424 | 0 | p->level--; |
1425 | 0 | return NULL; |
1426 | 0 | } |
1427 | 91.1k | goto done; |
1428 | 91.1k | } |
1429 | 149k | p->mark = _mark; |
1430 | 149k | D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ', |
1431 | 149k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE")); |
1432 | 149k | } |
1433 | 0 | { // ';'.simple_stmt+ ';'? NEWLINE |
1434 | 149k | if (p->error_indicator) { |
1435 | 4.08k | p->level--; |
1436 | 4.08k | return NULL; |
1437 | 4.08k | } |
1438 | 145k | D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE")); |
1439 | 145k | void *_opt_var; |
1440 | 145k | UNUSED(_opt_var); // Silence compiler warnings |
1441 | 145k | asdl_stmt_seq* a; |
1442 | 145k | Token * newline_var; |
1443 | 145k | if ( |
1444 | 145k | (a = (asdl_stmt_seq*)_gather_4_rule(p)) // ';'.simple_stmt+ |
1445 | 13.4k | && |
1446 | 13.4k | (_opt_var = _PyPegen_expect_token(p, 13), !p->error_indicator) // ';'? |
1447 | 13.3k | && |
1448 | 13.3k | (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' |
1449 | 145k | ) |
1450 | 2.42k | { |
1451 | 2.42k | D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE")); |
1452 | 2.42k | _res = a; |
1453 | 2.42k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
1454 | 0 | p->error_indicator = 1; |
1455 | 0 | p->level--; |
1456 | 0 | return NULL; |
1457 | 0 | } |
1458 | 2.42k | goto done; |
1459 | 2.42k | } |
1460 | 142k | p->mark = _mark; |
1461 | 142k | D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ', |
1462 | 142k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE")); |
1463 | 142k | } |
1464 | 142k | _res = NULL; |
1465 | 236k | done: |
1466 | 236k | p->level--; |
1467 | 236k | return _res; |
1468 | 142k | } |
1469 | | |
1470 | | // simple_stmt: |
1471 | | // | assignment |
1472 | | // | &"type" type_alias |
1473 | | // | &('import' | 'from' | "lazy") import_stmt |
1474 | | // | star_expressions |
1475 | | // | &'return' return_stmt |
1476 | | // | &'raise' raise_stmt |
1477 | | // | &'pass' pass_stmt |
1478 | | // | &'del' del_stmt |
1479 | | // | &'yield' yield_stmt |
1480 | | // | &'assert' assert_stmt |
1481 | | // | &'break' break_stmt |
1482 | | // | &'continue' continue_stmt |
1483 | | // | &'global' global_stmt |
1484 | | // | &'nonlocal' nonlocal_stmt |
1485 | | Py_LOCAL_SYMBOL stmt_ty |
1486 | | simple_stmt_rule(Parser *p) |
1487 | 425k | { |
1488 | 425k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
1489 | 0 | _Pypegen_stack_overflow(p); |
1490 | 0 | } |
1491 | 425k | if (p->error_indicator) { |
1492 | 0 | p->level--; |
1493 | 0 | return NULL; |
1494 | 0 | } |
1495 | 425k | stmt_ty _res = NULL; |
1496 | 425k | if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) { |
1497 | 145k | p->level--; |
1498 | 145k | return _res; |
1499 | 145k | } |
1500 | 280k | int _mark = p->mark; |
1501 | 280k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
1502 | 0 | p->error_indicator = 1; |
1503 | 0 | p->level--; |
1504 | 0 | return NULL; |
1505 | 0 | } |
1506 | 280k | int _start_lineno = p->tokens[_mark]->lineno; |
1507 | 280k | UNUSED(_start_lineno); // Only used by EXTRA macro |
1508 | 280k | int _start_col_offset = p->tokens[_mark]->col_offset; |
1509 | 280k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
1510 | 280k | { // assignment |
1511 | 280k | if (p->error_indicator) { |
1512 | 0 | p->level--; |
1513 | 0 | return NULL; |
1514 | 0 | } |
1515 | 280k | D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment")); |
1516 | 280k | stmt_ty assignment_var; |
1517 | 280k | if ( |
1518 | 280k | (assignment_var = assignment_rule(p)) // assignment |
1519 | 280k | ) |
1520 | 10.4k | { |
1521 | 10.4k | D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment")); |
1522 | 10.4k | _res = assignment_var; |
1523 | 10.4k | goto done; |
1524 | 10.4k | } |
1525 | 270k | p->mark = _mark; |
1526 | 270k | D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1527 | 270k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment")); |
1528 | 270k | } |
1529 | 0 | { // &"type" type_alias |
1530 | 270k | if (p->error_indicator) { |
1531 | 4.51k | p->level--; |
1532 | 4.51k | return NULL; |
1533 | 4.51k | } |
1534 | 265k | D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&\"type\" type_alias")); |
1535 | 265k | stmt_ty type_alias_var; |
1536 | 265k | if ( |
1537 | 265k | _PyPegen_lookahead_with_string(1, _PyPegen_expect_soft_keyword, p, "type") |
1538 | 965 | && |
1539 | 965 | (type_alias_var = type_alias_rule(p)) // type_alias |
1540 | 265k | ) |
1541 | 404 | { |
1542 | 404 | D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&\"type\" type_alias")); |
1543 | 404 | _res = type_alias_var; |
1544 | 404 | goto done; |
1545 | 404 | } |
1546 | 265k | p->mark = _mark; |
1547 | 265k | D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1548 | 265k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&\"type\" type_alias")); |
1549 | 265k | } |
1550 | 0 | { // &('import' | 'from' | "lazy") import_stmt |
1551 | 265k | if (p->error_indicator) { |
1552 | 331 | p->level--; |
1553 | 331 | return NULL; |
1554 | 331 | } |
1555 | 265k | D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from' | \"lazy\") import_stmt")); |
1556 | 265k | stmt_ty import_stmt_var; |
1557 | 265k | if ( |
1558 | 265k | _PyPegen_lookahead(1, _tmp_5_rule, p) |
1559 | 9.45k | && |
1560 | 9.45k | (import_stmt_var = import_stmt_rule(p)) // import_stmt |
1561 | 265k | ) |
1562 | 8.24k | { |
1563 | 8.24k | D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from' | \"lazy\") import_stmt")); |
1564 | 8.24k | _res = import_stmt_var; |
1565 | 8.24k | goto done; |
1566 | 8.24k | } |
1567 | 256k | p->mark = _mark; |
1568 | 256k | D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1569 | 256k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from' | \"lazy\") import_stmt")); |
1570 | 256k | } |
1571 | 0 | { // star_expressions |
1572 | 256k | if (p->error_indicator) { |
1573 | 334 | p->level--; |
1574 | 334 | return NULL; |
1575 | 334 | } |
1576 | 256k | D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); |
1577 | 256k | expr_ty e; |
1578 | 256k | if ( |
1579 | 256k | (e = star_expressions_rule(p)) // star_expressions |
1580 | 256k | ) |
1581 | 110k | { |
1582 | 110k | D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); |
1583 | 110k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
1584 | 110k | if (_token == NULL) { |
1585 | 0 | p->level--; |
1586 | 0 | return NULL; |
1587 | 0 | } |
1588 | 110k | int _end_lineno = _token->end_lineno; |
1589 | 110k | UNUSED(_end_lineno); // Only used by EXTRA macro |
1590 | 110k | int _end_col_offset = _token->end_col_offset; |
1591 | 110k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
1592 | 110k | _res = _PyAST_Expr ( e , EXTRA ); |
1593 | 110k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
1594 | 0 | p->error_indicator = 1; |
1595 | 0 | p->level--; |
1596 | 0 | return NULL; |
1597 | 0 | } |
1598 | 110k | goto done; |
1599 | 110k | } |
1600 | 146k | p->mark = _mark; |
1601 | 146k | D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1602 | 146k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); |
1603 | 146k | } |
1604 | 0 | { // &'return' return_stmt |
1605 | 146k | if (p->error_indicator) { |
1606 | 366 | p->level--; |
1607 | 366 | return NULL; |
1608 | 366 | } |
1609 | 145k | D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt")); |
1610 | 145k | stmt_ty return_stmt_var; |
1611 | 145k | if ( |
1612 | 145k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 502) // token='return' |
1613 | 2.75k | && |
1614 | 2.75k | (return_stmt_var = return_stmt_rule(p)) // return_stmt |
1615 | 145k | ) |
1616 | 2.69k | { |
1617 | 2.69k | D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt")); |
1618 | 2.69k | _res = return_stmt_var; |
1619 | 2.69k | goto done; |
1620 | 2.69k | } |
1621 | 143k | p->mark = _mark; |
1622 | 143k | D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1623 | 143k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt")); |
1624 | 143k | } |
1625 | 0 | { // &'raise' raise_stmt |
1626 | 143k | if (p->error_indicator) { |
1627 | 66 | p->level--; |
1628 | 66 | return NULL; |
1629 | 66 | } |
1630 | 142k | D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt")); |
1631 | 142k | stmt_ty raise_stmt_var; |
1632 | 142k | if ( |
1633 | 142k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='raise' |
1634 | 2.25k | && |
1635 | 2.25k | (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt |
1636 | 142k | ) |
1637 | 2.18k | { |
1638 | 2.18k | D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt")); |
1639 | 2.18k | _res = raise_stmt_var; |
1640 | 2.18k | goto done; |
1641 | 2.18k | } |
1642 | 140k | p->mark = _mark; |
1643 | 140k | D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1644 | 140k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt")); |
1645 | 140k | } |
1646 | 0 | { // &'pass' pass_stmt |
1647 | 140k | if (p->error_indicator) { |
1648 | 72 | p->level--; |
1649 | 72 | return NULL; |
1650 | 72 | } |
1651 | 140k | D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'pass' pass_stmt")); |
1652 | 140k | stmt_ty pass_stmt_var; |
1653 | 140k | if ( |
1654 | 140k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='pass' |
1655 | 1.01k | && |
1656 | 1.01k | (pass_stmt_var = pass_stmt_rule(p)) // pass_stmt |
1657 | 140k | ) |
1658 | 1.01k | { |
1659 | 1.01k | D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'pass' pass_stmt")); |
1660 | 1.01k | _res = pass_stmt_var; |
1661 | 1.01k | goto done; |
1662 | 1.01k | } |
1663 | 139k | p->mark = _mark; |
1664 | 139k | D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1665 | 139k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'pass' pass_stmt")); |
1666 | 139k | } |
1667 | 0 | { // &'del' del_stmt |
1668 | 139k | if (p->error_indicator) { |
1669 | 0 | p->level--; |
1670 | 0 | return NULL; |
1671 | 0 | } |
1672 | 139k | D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt")); |
1673 | 139k | stmt_ty del_stmt_var; |
1674 | 139k | if ( |
1675 | 139k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='del' |
1676 | 1.00k | && |
1677 | 1.00k | (del_stmt_var = del_stmt_rule(p)) // del_stmt |
1678 | 139k | ) |
1679 | 619 | { |
1680 | 619 | D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt")); |
1681 | 619 | _res = del_stmt_var; |
1682 | 619 | goto done; |
1683 | 619 | } |
1684 | 139k | p->mark = _mark; |
1685 | 139k | D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1686 | 139k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt")); |
1687 | 139k | } |
1688 | 0 | { // &'yield' yield_stmt |
1689 | 139k | if (p->error_indicator) { |
1690 | 208 | p->level--; |
1691 | 208 | return NULL; |
1692 | 208 | } |
1693 | 138k | D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt")); |
1694 | 138k | stmt_ty yield_stmt_var; |
1695 | 138k | if ( |
1696 | 138k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 506) // token='yield' |
1697 | 1.18k | && |
1698 | 1.18k | (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt |
1699 | 138k | ) |
1700 | 1.17k | { |
1701 | 1.17k | D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt")); |
1702 | 1.17k | _res = yield_stmt_var; |
1703 | 1.17k | goto done; |
1704 | 1.17k | } |
1705 | 137k | p->mark = _mark; |
1706 | 137k | D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1707 | 137k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt")); |
1708 | 137k | } |
1709 | 0 | { // &'assert' assert_stmt |
1710 | 137k | if (p->error_indicator) { |
1711 | 7 | p->level--; |
1712 | 7 | return NULL; |
1713 | 7 | } |
1714 | 137k | D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt")); |
1715 | 137k | stmt_ty assert_stmt_var; |
1716 | 137k | if ( |
1717 | 137k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 507) // token='assert' |
1718 | 1.49k | && |
1719 | 1.49k | (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt |
1720 | 137k | ) |
1721 | 1.13k | { |
1722 | 1.13k | D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt")); |
1723 | 1.13k | _res = assert_stmt_var; |
1724 | 1.13k | goto done; |
1725 | 1.13k | } |
1726 | 136k | p->mark = _mark; |
1727 | 136k | D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1728 | 136k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt")); |
1729 | 136k | } |
1730 | 0 | { // &'break' break_stmt |
1731 | 136k | if (p->error_indicator) { |
1732 | 318 | p->level--; |
1733 | 318 | return NULL; |
1734 | 318 | } |
1735 | 136k | D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'break' break_stmt")); |
1736 | 136k | stmt_ty break_stmt_var; |
1737 | 136k | if ( |
1738 | 136k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='break' |
1739 | 1.09k | && |
1740 | 1.09k | (break_stmt_var = break_stmt_rule(p)) // break_stmt |
1741 | 136k | ) |
1742 | 1.09k | { |
1743 | 1.09k | D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'break' break_stmt")); |
1744 | 1.09k | _res = break_stmt_var; |
1745 | 1.09k | goto done; |
1746 | 1.09k | } |
1747 | 135k | p->mark = _mark; |
1748 | 135k | D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1749 | 135k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'break' break_stmt")); |
1750 | 135k | } |
1751 | 0 | { // &'continue' continue_stmt |
1752 | 135k | if (p->error_indicator) { |
1753 | 0 | p->level--; |
1754 | 0 | return NULL; |
1755 | 0 | } |
1756 | 135k | D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'continue' continue_stmt")); |
1757 | 135k | stmt_ty continue_stmt_var; |
1758 | 135k | if ( |
1759 | 135k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='continue' |
1760 | 895 | && |
1761 | 895 | (continue_stmt_var = continue_stmt_rule(p)) // continue_stmt |
1762 | 135k | ) |
1763 | 895 | { |
1764 | 895 | D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'continue' continue_stmt")); |
1765 | 895 | _res = continue_stmt_var; |
1766 | 895 | goto done; |
1767 | 895 | } |
1768 | 134k | p->mark = _mark; |
1769 | 134k | D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1770 | 134k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'continue' continue_stmt")); |
1771 | 134k | } |
1772 | 0 | { // &'global' global_stmt |
1773 | 134k | if (p->error_indicator) { |
1774 | 0 | p->level--; |
1775 | 0 | return NULL; |
1776 | 0 | } |
1777 | 134k | D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt")); |
1778 | 134k | stmt_ty global_stmt_var; |
1779 | 134k | if ( |
1780 | 134k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='global' |
1781 | 764 | && |
1782 | 764 | (global_stmt_var = global_stmt_rule(p)) // global_stmt |
1783 | 134k | ) |
1784 | 756 | { |
1785 | 756 | D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt")); |
1786 | 756 | _res = global_stmt_var; |
1787 | 756 | goto done; |
1788 | 756 | } |
1789 | 133k | p->mark = _mark; |
1790 | 133k | D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1791 | 133k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt")); |
1792 | 133k | } |
1793 | 0 | { // &'nonlocal' nonlocal_stmt |
1794 | 133k | if (p->error_indicator) { |
1795 | 2 | p->level--; |
1796 | 2 | return NULL; |
1797 | 2 | } |
1798 | 133k | D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt")); |
1799 | 133k | stmt_ty nonlocal_stmt_var; |
1800 | 133k | if ( |
1801 | 133k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='nonlocal' |
1802 | 385 | && |
1803 | 385 | (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt |
1804 | 133k | ) |
1805 | 379 | { |
1806 | 379 | D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt")); |
1807 | 379 | _res = nonlocal_stmt_var; |
1808 | 379 | goto done; |
1809 | 379 | } |
1810 | 133k | p->mark = _mark; |
1811 | 133k | D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1812 | 133k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt")); |
1813 | 133k | } |
1814 | 133k | _res = NULL; |
1815 | 274k | done: |
1816 | 274k | _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res); |
1817 | 274k | p->level--; |
1818 | 274k | return _res; |
1819 | 133k | } |
1820 | | |
1821 | | // compound_stmt: |
1822 | | // | &('def' | '@' | 'async') function_def |
1823 | | // | &'if' if_stmt |
1824 | | // | &('class' | '@') class_def |
1825 | | // | &('with' | 'async') with_stmt |
1826 | | // | &('for' | 'async') for_stmt |
1827 | | // | &'try' try_stmt |
1828 | | // | &'while' while_stmt |
1829 | | // | match_stmt |
1830 | | static stmt_ty |
1831 | | compound_stmt_rule(Parser *p) |
1832 | 236k | { |
1833 | 236k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
1834 | 0 | _Pypegen_stack_overflow(p); |
1835 | 0 | } |
1836 | 236k | if (p->error_indicator) { |
1837 | 0 | p->level--; |
1838 | 0 | return NULL; |
1839 | 0 | } |
1840 | 236k | stmt_ty _res = NULL; |
1841 | 236k | int _mark = p->mark; |
1842 | 236k | { // &('def' | '@' | 'async') function_def |
1843 | 236k | if (p->error_indicator) { |
1844 | 0 | p->level--; |
1845 | 0 | return NULL; |
1846 | 0 | } |
1847 | 236k | D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | 'async') function_def")); |
1848 | 236k | stmt_ty function_def_var; |
1849 | 236k | if ( |
1850 | 236k | _PyPegen_lookahead(1, _tmp_6_rule, p) |
1851 | 11.8k | && |
1852 | 11.8k | (function_def_var = function_def_rule(p)) // function_def |
1853 | 236k | ) |
1854 | 9.22k | { |
1855 | 9.22k | D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | 'async') function_def")); |
1856 | 9.22k | _res = function_def_var; |
1857 | 9.22k | goto done; |
1858 | 9.22k | } |
1859 | 227k | p->mark = _mark; |
1860 | 227k | D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1861 | 227k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | 'async') function_def")); |
1862 | 227k | } |
1863 | 0 | { // &'if' if_stmt |
1864 | 227k | if (p->error_indicator) { |
1865 | 1.18k | p->level--; |
1866 | 1.18k | return NULL; |
1867 | 1.18k | } |
1868 | 226k | D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt")); |
1869 | 226k | stmt_ty if_stmt_var; |
1870 | 226k | if ( |
1871 | 226k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 514) // token='if' |
1872 | 3.87k | && |
1873 | 3.87k | (if_stmt_var = if_stmt_rule(p)) // if_stmt |
1874 | 226k | ) |
1875 | 3.71k | { |
1876 | 3.71k | D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt")); |
1877 | 3.71k | _res = if_stmt_var; |
1878 | 3.71k | goto done; |
1879 | 3.71k | } |
1880 | 222k | p->mark = _mark; |
1881 | 222k | D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1882 | 222k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt")); |
1883 | 222k | } |
1884 | 0 | { // &('class' | '@') class_def |
1885 | 222k | if (p->error_indicator) { |
1886 | 62 | p->level--; |
1887 | 62 | return NULL; |
1888 | 62 | } |
1889 | 222k | D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def")); |
1890 | 222k | stmt_ty class_def_var; |
1891 | 222k | if ( |
1892 | 222k | _PyPegen_lookahead(1, _tmp_7_rule, p) |
1893 | 3.13k | && |
1894 | 3.13k | (class_def_var = class_def_rule(p)) // class_def |
1895 | 222k | ) |
1896 | 2.77k | { |
1897 | 2.77k | D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def")); |
1898 | 2.77k | _res = class_def_var; |
1899 | 2.77k | goto done; |
1900 | 2.77k | } |
1901 | 219k | p->mark = _mark; |
1902 | 219k | D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1903 | 219k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def")); |
1904 | 219k | } |
1905 | 0 | { // &('with' | 'async') with_stmt |
1906 | 219k | if (p->error_indicator) { |
1907 | 36 | p->level--; |
1908 | 36 | return NULL; |
1909 | 36 | } |
1910 | 219k | D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | 'async') with_stmt")); |
1911 | 219k | stmt_ty with_stmt_var; |
1912 | 219k | if ( |
1913 | 219k | _PyPegen_lookahead(1, _tmp_8_rule, p) |
1914 | 5.46k | && |
1915 | 5.46k | (with_stmt_var = with_stmt_rule(p)) // with_stmt |
1916 | 219k | ) |
1917 | 4.59k | { |
1918 | 4.59k | D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | 'async') with_stmt")); |
1919 | 4.59k | _res = with_stmt_var; |
1920 | 4.59k | goto done; |
1921 | 4.59k | } |
1922 | 215k | p->mark = _mark; |
1923 | 215k | D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1924 | 215k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | 'async') with_stmt")); |
1925 | 215k | } |
1926 | 0 | { // &('for' | 'async') for_stmt |
1927 | 215k | if (p->error_indicator) { |
1928 | 140 | p->level--; |
1929 | 140 | return NULL; |
1930 | 140 | } |
1931 | 214k | D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | 'async') for_stmt")); |
1932 | 214k | stmt_ty for_stmt_var; |
1933 | 214k | if ( |
1934 | 214k | _PyPegen_lookahead(1, _tmp_9_rule, p) |
1935 | 1.48k | && |
1936 | 1.48k | (for_stmt_var = for_stmt_rule(p)) // for_stmt |
1937 | 214k | ) |
1938 | 1.22k | { |
1939 | 1.22k | D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | 'async') for_stmt")); |
1940 | 1.22k | _res = for_stmt_var; |
1941 | 1.22k | goto done; |
1942 | 1.22k | } |
1943 | 213k | p->mark = _mark; |
1944 | 213k | D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1945 | 213k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | 'async') for_stmt")); |
1946 | 213k | } |
1947 | 0 | { // &'try' try_stmt |
1948 | 213k | if (p->error_indicator) { |
1949 | 36 | p->level--; |
1950 | 36 | return NULL; |
1951 | 36 | } |
1952 | 213k | D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt")); |
1953 | 213k | stmt_ty try_stmt_var; |
1954 | 213k | if ( |
1955 | 213k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 518) // token='try' |
1956 | 5.15k | && |
1957 | 5.15k | (try_stmt_var = try_stmt_rule(p)) // try_stmt |
1958 | 213k | ) |
1959 | 4.53k | { |
1960 | 4.53k | D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt")); |
1961 | 4.53k | _res = try_stmt_var; |
1962 | 4.53k | goto done; |
1963 | 4.53k | } |
1964 | 209k | p->mark = _mark; |
1965 | 209k | D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1966 | 209k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt")); |
1967 | 209k | } |
1968 | 0 | { // &'while' while_stmt |
1969 | 209k | if (p->error_indicator) { |
1970 | 198 | p->level--; |
1971 | 198 | return NULL; |
1972 | 198 | } |
1973 | 208k | D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt")); |
1974 | 208k | stmt_ty while_stmt_var; |
1975 | 208k | if ( |
1976 | 208k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 519) // token='while' |
1977 | 1.02k | && |
1978 | 1.02k | (while_stmt_var = while_stmt_rule(p)) // while_stmt |
1979 | 208k | ) |
1980 | 959 | { |
1981 | 959 | D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt")); |
1982 | 959 | _res = while_stmt_var; |
1983 | 959 | goto done; |
1984 | 959 | } |
1985 | 208k | p->mark = _mark; |
1986 | 208k | D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
1987 | 208k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt")); |
1988 | 208k | } |
1989 | 0 | { // match_stmt |
1990 | 208k | if (p->error_indicator) { |
1991 | 19 | p->level--; |
1992 | 19 | return NULL; |
1993 | 19 | } |
1994 | 207k | D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt")); |
1995 | 207k | stmt_ty match_stmt_var; |
1996 | 207k | if ( |
1997 | 207k | (match_stmt_var = match_stmt_rule(p)) // match_stmt |
1998 | 207k | ) |
1999 | 756 | { |
2000 | 756 | D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt")); |
2001 | 756 | _res = match_stmt_var; |
2002 | 756 | goto done; |
2003 | 756 | } |
2004 | 207k | p->mark = _mark; |
2005 | 207k | D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
2006 | 207k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt")); |
2007 | 207k | } |
2008 | 207k | _res = NULL; |
2009 | 235k | done: |
2010 | 235k | p->level--; |
2011 | 235k | return _res; |
2012 | 207k | } |
2013 | | |
2014 | | // assignment: |
2015 | | // | NAME ':' expression ['=' annotated_rhs] |
2016 | | // | ('(' single_target ')' | attribute_or_subscript_target) ':' expression ['=' annotated_rhs] |
2017 | | // | ((star_targets '='))+ annotated_rhs !'=' TYPE_COMMENT? |
2018 | | // | single_target augassign ~ annotated_rhs |
2019 | | // | invalid_assignment |
2020 | | static stmt_ty |
2021 | | assignment_rule(Parser *p) |
2022 | 280k | { |
2023 | 280k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
2024 | 0 | _Pypegen_stack_overflow(p); |
2025 | 0 | } |
2026 | 280k | if (p->error_indicator) { |
2027 | 0 | p->level--; |
2028 | 0 | return NULL; |
2029 | 0 | } |
2030 | 280k | stmt_ty _res = NULL; |
2031 | 280k | int _mark = p->mark; |
2032 | 280k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
2033 | 0 | p->error_indicator = 1; |
2034 | 0 | p->level--; |
2035 | 0 | return NULL; |
2036 | 0 | } |
2037 | 280k | int _start_lineno = p->tokens[_mark]->lineno; |
2038 | 280k | UNUSED(_start_lineno); // Only used by EXTRA macro |
2039 | 280k | int _start_col_offset = p->tokens[_mark]->col_offset; |
2040 | 280k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
2041 | 280k | { // NAME ':' expression ['=' annotated_rhs] |
2042 | 280k | if (p->error_indicator) { |
2043 | 0 | p->level--; |
2044 | 0 | return NULL; |
2045 | 0 | } |
2046 | 280k | D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]")); |
2047 | 280k | Token * _literal; |
2048 | 280k | expr_ty a; |
2049 | 280k | expr_ty b; |
2050 | 280k | void *c; |
2051 | 280k | if ( |
2052 | 280k | (a = _PyPegen_name_token(p)) // NAME |
2053 | 86.5k | && |
2054 | 86.5k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
2055 | 2.56k | && |
2056 | 2.56k | (b = expression_rule(p)) // expression |
2057 | 2.37k | && |
2058 | 2.37k | (c = _tmp_10_rule(p), !p->error_indicator) // ['=' annotated_rhs] |
2059 | 280k | ) |
2060 | 2.31k | { |
2061 | 2.31k | D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]")); |
2062 | 2.31k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
2063 | 2.31k | if (_token == NULL) { |
2064 | 0 | p->level--; |
2065 | 0 | return NULL; |
2066 | 0 | } |
2067 | 2.31k | int _end_lineno = _token->end_lineno; |
2068 | 2.31k | UNUSED(_end_lineno); // Only used by EXTRA macro |
2069 | 2.31k | int _end_col_offset = _token->end_col_offset; |
2070 | 2.31k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
2071 | 2.31k | _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotation syntax is" , _PyAST_AnnAssign ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) ); |
2072 | 2.31k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2073 | 0 | p->error_indicator = 1; |
2074 | 0 | p->level--; |
2075 | 0 | return NULL; |
2076 | 0 | } |
2077 | 2.31k | goto done; |
2078 | 2.31k | } |
2079 | 278k | p->mark = _mark; |
2080 | 278k | D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ', |
2081 | 278k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]")); |
2082 | 278k | } |
2083 | 0 | { // ('(' single_target ')' | attribute_or_subscript_target) ':' expression ['=' annotated_rhs] |
2084 | 278k | if (p->error_indicator) { |
2085 | 260 | p->level--; |
2086 | 260 | return NULL; |
2087 | 260 | } |
2088 | 278k | D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | attribute_or_subscript_target) ':' expression ['=' annotated_rhs]")); |
2089 | 278k | Token * _literal; |
2090 | 278k | void *a; |
2091 | 278k | expr_ty b; |
2092 | 278k | void *c; |
2093 | 278k | if ( |
2094 | 278k | (a = _tmp_11_rule(p)) // '(' single_target ')' | attribute_or_subscript_target |
2095 | 3.41k | && |
2096 | 3.41k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
2097 | 1.14k | && |
2098 | 1.14k | (b = expression_rule(p)) // expression |
2099 | 1.07k | && |
2100 | 1.07k | (c = _tmp_10_rule(p), !p->error_indicator) // ['=' annotated_rhs] |
2101 | 278k | ) |
2102 | 1.01k | { |
2103 | 1.01k | D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | attribute_or_subscript_target) ':' expression ['=' annotated_rhs]")); |
2104 | 1.01k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
2105 | 1.01k | if (_token == NULL) { |
2106 | 0 | p->level--; |
2107 | 0 | return NULL; |
2108 | 0 | } |
2109 | 1.01k | int _end_lineno = _token->end_lineno; |
2110 | 1.01k | UNUSED(_end_lineno); // Only used by EXTRA macro |
2111 | 1.01k | int _end_col_offset = _token->end_col_offset; |
2112 | 1.01k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
2113 | 1.01k | _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) ); |
2114 | 1.01k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2115 | 0 | p->error_indicator = 1; |
2116 | 0 | p->level--; |
2117 | 0 | return NULL; |
2118 | 0 | } |
2119 | 1.01k | goto done; |
2120 | 1.01k | } |
2121 | 277k | p->mark = _mark; |
2122 | 277k | D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ', |
2123 | 277k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | attribute_or_subscript_target) ':' expression ['=' annotated_rhs]")); |
2124 | 277k | } |
2125 | 0 | { // ((star_targets '='))+ annotated_rhs !'=' TYPE_COMMENT? |
2126 | 277k | if (p->error_indicator) { |
2127 | 2.68k | p->level--; |
2128 | 2.68k | return NULL; |
2129 | 2.68k | } |
2130 | 274k | D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ annotated_rhs !'=' TYPE_COMMENT?")); |
2131 | 274k | asdl_expr_seq* a; |
2132 | 274k | expr_ty b; |
2133 | 274k | void *tc; |
2134 | 274k | if ( |
2135 | 274k | (a = (asdl_expr_seq*)_loop1_12_rule(p)) // ((star_targets '='))+ |
2136 | 4.15k | && |
2137 | 4.15k | (b = annotated_rhs_rule(p)) // annotated_rhs |
2138 | 3.85k | && |
2139 | 3.85k | _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='=' |
2140 | 3.84k | && |
2141 | 3.84k | (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? |
2142 | 274k | ) |
2143 | 3.84k | { |
2144 | 3.84k | D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ annotated_rhs !'=' TYPE_COMMENT?")); |
2145 | 3.84k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
2146 | 3.84k | if (_token == NULL) { |
2147 | 0 | p->level--; |
2148 | 0 | return NULL; |
2149 | 0 | } |
2150 | 3.84k | int _end_lineno = _token->end_lineno; |
2151 | 3.84k | UNUSED(_end_lineno); // Only used by EXTRA macro |
2152 | 3.84k | int _end_col_offset = _token->end_col_offset; |
2153 | 3.84k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
2154 | 3.84k | _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ); |
2155 | 3.84k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2156 | 0 | p->error_indicator = 1; |
2157 | 0 | p->level--; |
2158 | 0 | return NULL; |
2159 | 0 | } |
2160 | 3.84k | goto done; |
2161 | 3.84k | } |
2162 | 270k | p->mark = _mark; |
2163 | 270k | D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ', |
2164 | 270k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ annotated_rhs !'=' TYPE_COMMENT?")); |
2165 | 270k | } |
2166 | 0 | { // single_target augassign ~ annotated_rhs |
2167 | 270k | if (p->error_indicator) { |
2168 | 236 | p->level--; |
2169 | 236 | return NULL; |
2170 | 236 | } |
2171 | 270k | D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ annotated_rhs")); |
2172 | 270k | int _cut_var = 0; |
2173 | 270k | expr_ty a; |
2174 | 270k | AugOperator* b; |
2175 | 270k | expr_ty c; |
2176 | 270k | if ( |
2177 | 270k | (a = single_target_rule(p)) // single_target |
2178 | 73.1k | && |
2179 | 73.1k | (b = augassign_rule(p)) // augassign |
2180 | 3.46k | && |
2181 | 3.46k | (_cut_var = 1) |
2182 | 3.46k | && |
2183 | 3.46k | (c = annotated_rhs_rule(p)) // annotated_rhs |
2184 | 270k | ) |
2185 | 3.31k | { |
2186 | 3.31k | D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ annotated_rhs")); |
2187 | 3.31k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
2188 | 3.31k | if (_token == NULL) { |
2189 | 0 | p->level--; |
2190 | 0 | return NULL; |
2191 | 0 | } |
2192 | 3.31k | int _end_lineno = _token->end_lineno; |
2193 | 3.31k | UNUSED(_end_lineno); // Only used by EXTRA macro |
2194 | 3.31k | int _end_col_offset = _token->end_col_offset; |
2195 | 3.31k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
2196 | 3.31k | _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA ); |
2197 | 3.31k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2198 | 0 | p->error_indicator = 1; |
2199 | 0 | p->level--; |
2200 | 0 | return NULL; |
2201 | 0 | } |
2202 | 3.31k | goto done; |
2203 | 3.31k | } |
2204 | 267k | p->mark = _mark; |
2205 | 267k | D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ', |
2206 | 267k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ annotated_rhs")); |
2207 | 267k | if (_cut_var) { |
2208 | 155 | p->level--; |
2209 | 155 | return NULL; |
2210 | 155 | } |
2211 | 267k | } |
2212 | 266k | if (p->call_invalid_rules) { // invalid_assignment |
2213 | 99.6k | if (p->error_indicator) { |
2214 | 0 | p->level--; |
2215 | 0 | return NULL; |
2216 | 0 | } |
2217 | 99.6k | D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment")); |
2218 | 99.6k | void *invalid_assignment_var; |
2219 | 99.6k | if ( |
2220 | 99.6k | (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment |
2221 | 99.6k | ) |
2222 | 0 | { |
2223 | 0 | D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment")); |
2224 | 0 | _res = invalid_assignment_var; |
2225 | 0 | goto done; |
2226 | 0 | } |
2227 | 99.6k | p->mark = _mark; |
2228 | 99.6k | D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ', |
2229 | 99.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment")); |
2230 | 99.6k | } |
2231 | 266k | _res = NULL; |
2232 | 277k | done: |
2233 | 277k | p->level--; |
2234 | 277k | return _res; |
2235 | 266k | } |
2236 | | |
2237 | | // annotated_rhs: yield_expr | star_expressions |
2238 | | Py_LOCAL_SYMBOL expr_ty |
2239 | | annotated_rhs_rule(Parser *p) |
2240 | 49.8k | { |
2241 | 49.8k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
2242 | 1 | _Pypegen_stack_overflow(p); |
2243 | 1 | } |
2244 | 49.8k | if (p->error_indicator) { |
2245 | 1 | p->level--; |
2246 | 1 | return NULL; |
2247 | 1 | } |
2248 | 49.8k | expr_ty _res = NULL; |
2249 | 49.8k | int _mark = p->mark; |
2250 | 49.8k | { // yield_expr |
2251 | 49.8k | if (p->error_indicator) { |
2252 | 0 | p->level--; |
2253 | 0 | return NULL; |
2254 | 0 | } |
2255 | 49.8k | D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); |
2256 | 49.8k | expr_ty yield_expr_var; |
2257 | 49.8k | if ( |
2258 | 49.8k | (yield_expr_var = yield_expr_rule(p)) // yield_expr |
2259 | 49.8k | ) |
2260 | 130 | { |
2261 | 130 | D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); |
2262 | 130 | _res = yield_expr_var; |
2263 | 130 | goto done; |
2264 | 130 | } |
2265 | 49.7k | p->mark = _mark; |
2266 | 49.7k | D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ', |
2267 | 49.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); |
2268 | 49.7k | } |
2269 | 0 | { // star_expressions |
2270 | 49.7k | if (p->error_indicator) { |
2271 | 160 | p->level--; |
2272 | 160 | return NULL; |
2273 | 160 | } |
2274 | 49.5k | D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); |
2275 | 49.5k | expr_ty star_expressions_var; |
2276 | 49.5k | if ( |
2277 | 49.5k | (star_expressions_var = star_expressions_rule(p)) // star_expressions |
2278 | 49.5k | ) |
2279 | 40.6k | { |
2280 | 40.6k | D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); |
2281 | 40.6k | _res = star_expressions_var; |
2282 | 40.6k | goto done; |
2283 | 40.6k | } |
2284 | 8.88k | p->mark = _mark; |
2285 | 8.88k | D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ', |
2286 | 8.88k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); |
2287 | 8.88k | } |
2288 | 8.88k | _res = NULL; |
2289 | 49.6k | done: |
2290 | 49.6k | p->level--; |
2291 | 49.6k | return _res; |
2292 | 8.88k | } |
2293 | | |
2294 | | // augassign: |
2295 | | // | '+=' |
2296 | | // | '-=' |
2297 | | // | '*=' |
2298 | | // | '@=' |
2299 | | // | '/=' |
2300 | | // | '%=' |
2301 | | // | '&=' |
2302 | | // | '|=' |
2303 | | // | '^=' |
2304 | | // | '<<=' |
2305 | | // | '>>=' |
2306 | | // | '**=' |
2307 | | // | '//=' |
2308 | | Py_LOCAL_SYMBOL AugOperator* |
2309 | | augassign_rule(Parser *p) |
2310 | 105k | { |
2311 | 105k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
2312 | 0 | _Pypegen_stack_overflow(p); |
2313 | 0 | } |
2314 | 105k | if (p->error_indicator) { |
2315 | 0 | p->level--; |
2316 | 0 | return NULL; |
2317 | 0 | } |
2318 | 105k | AugOperator* _res = NULL; |
2319 | 105k | int _mark = p->mark; |
2320 | 105k | { // '+=' |
2321 | 105k | if (p->error_indicator) { |
2322 | 0 | p->level--; |
2323 | 0 | return NULL; |
2324 | 0 | } |
2325 | 105k | D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='")); |
2326 | 105k | Token * _literal; |
2327 | 105k | if ( |
2328 | 105k | (_literal = _PyPegen_expect_token(p, 36)) // token='+=' |
2329 | 105k | ) |
2330 | 246 | { |
2331 | 246 | D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='")); |
2332 | 246 | _res = _PyPegen_augoperator ( p , Add ); |
2333 | 246 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2334 | 0 | p->error_indicator = 1; |
2335 | 0 | p->level--; |
2336 | 0 | return NULL; |
2337 | 0 | } |
2338 | 246 | goto done; |
2339 | 246 | } |
2340 | 105k | p->mark = _mark; |
2341 | 105k | D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', |
2342 | 105k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='")); |
2343 | 105k | } |
2344 | 0 | { // '-=' |
2345 | 105k | if (p->error_indicator) { |
2346 | 0 | p->level--; |
2347 | 0 | return NULL; |
2348 | 0 | } |
2349 | 105k | D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='")); |
2350 | 105k | Token * _literal; |
2351 | 105k | if ( |
2352 | 105k | (_literal = _PyPegen_expect_token(p, 37)) // token='-=' |
2353 | 105k | ) |
2354 | 240 | { |
2355 | 240 | D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='")); |
2356 | 240 | _res = _PyPegen_augoperator ( p , Sub ); |
2357 | 240 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2358 | 0 | p->error_indicator = 1; |
2359 | 0 | p->level--; |
2360 | 0 | return NULL; |
2361 | 0 | } |
2362 | 240 | goto done; |
2363 | 240 | } |
2364 | 105k | p->mark = _mark; |
2365 | 105k | D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', |
2366 | 105k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='")); |
2367 | 105k | } |
2368 | 0 | { // '*=' |
2369 | 105k | if (p->error_indicator) { |
2370 | 0 | p->level--; |
2371 | 0 | return NULL; |
2372 | 0 | } |
2373 | 105k | D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='")); |
2374 | 105k | Token * _literal; |
2375 | 105k | if ( |
2376 | 105k | (_literal = _PyPegen_expect_token(p, 38)) // token='*=' |
2377 | 105k | ) |
2378 | 172 | { |
2379 | 172 | D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='")); |
2380 | 172 | _res = _PyPegen_augoperator ( p , Mult ); |
2381 | 172 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2382 | 0 | p->error_indicator = 1; |
2383 | 0 | p->level--; |
2384 | 0 | return NULL; |
2385 | 0 | } |
2386 | 172 | goto done; |
2387 | 172 | } |
2388 | 105k | p->mark = _mark; |
2389 | 105k | D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', |
2390 | 105k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='")); |
2391 | 105k | } |
2392 | 0 | { // '@=' |
2393 | 105k | if (p->error_indicator) { |
2394 | 0 | p->level--; |
2395 | 0 | return NULL; |
2396 | 0 | } |
2397 | 105k | D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='")); |
2398 | 105k | Token * _literal; |
2399 | 105k | if ( |
2400 | 105k | (_literal = _PyPegen_expect_token(p, 50)) // token='@=' |
2401 | 105k | ) |
2402 | 87 | { |
2403 | 87 | D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='")); |
2404 | 87 | _res = CHECK_VERSION ( AugOperator* , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) ); |
2405 | 87 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2406 | 0 | p->error_indicator = 1; |
2407 | 0 | p->level--; |
2408 | 0 | return NULL; |
2409 | 0 | } |
2410 | 87 | goto done; |
2411 | 87 | } |
2412 | 104k | p->mark = _mark; |
2413 | 104k | D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', |
2414 | 104k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='")); |
2415 | 104k | } |
2416 | 0 | { // '/=' |
2417 | 104k | if (p->error_indicator) { |
2418 | 0 | p->level--; |
2419 | 0 | return NULL; |
2420 | 0 | } |
2421 | 104k | D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='")); |
2422 | 104k | Token * _literal; |
2423 | 104k | if ( |
2424 | 104k | (_literal = _PyPegen_expect_token(p, 39)) // token='/=' |
2425 | 104k | ) |
2426 | 371 | { |
2427 | 371 | D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='")); |
2428 | 371 | _res = _PyPegen_augoperator ( p , Div ); |
2429 | 371 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2430 | 0 | p->error_indicator = 1; |
2431 | 0 | p->level--; |
2432 | 0 | return NULL; |
2433 | 0 | } |
2434 | 371 | goto done; |
2435 | 371 | } |
2436 | 104k | p->mark = _mark; |
2437 | 104k | D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', |
2438 | 104k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='")); |
2439 | 104k | } |
2440 | 0 | { // '%=' |
2441 | 104k | if (p->error_indicator) { |
2442 | 0 | p->level--; |
2443 | 0 | return NULL; |
2444 | 0 | } |
2445 | 104k | D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='")); |
2446 | 104k | Token * _literal; |
2447 | 104k | if ( |
2448 | 104k | (_literal = _PyPegen_expect_token(p, 40)) // token='%=' |
2449 | 104k | ) |
2450 | 206 | { |
2451 | 206 | D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='")); |
2452 | 206 | _res = _PyPegen_augoperator ( p , Mod ); |
2453 | 206 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2454 | 0 | p->error_indicator = 1; |
2455 | 0 | p->level--; |
2456 | 0 | return NULL; |
2457 | 0 | } |
2458 | 206 | goto done; |
2459 | 206 | } |
2460 | 104k | p->mark = _mark; |
2461 | 104k | D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', |
2462 | 104k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='")); |
2463 | 104k | } |
2464 | 0 | { // '&=' |
2465 | 104k | if (p->error_indicator) { |
2466 | 0 | p->level--; |
2467 | 0 | return NULL; |
2468 | 0 | } |
2469 | 104k | D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='")); |
2470 | 104k | Token * _literal; |
2471 | 104k | if ( |
2472 | 104k | (_literal = _PyPegen_expect_token(p, 41)) // token='&=' |
2473 | 104k | ) |
2474 | 234 | { |
2475 | 234 | D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='")); |
2476 | 234 | _res = _PyPegen_augoperator ( p , BitAnd ); |
2477 | 234 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2478 | 0 | p->error_indicator = 1; |
2479 | 0 | p->level--; |
2480 | 0 | return NULL; |
2481 | 0 | } |
2482 | 234 | goto done; |
2483 | 234 | } |
2484 | 104k | p->mark = _mark; |
2485 | 104k | D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', |
2486 | 104k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='")); |
2487 | 104k | } |
2488 | 0 | { // '|=' |
2489 | 104k | if (p->error_indicator) { |
2490 | 0 | p->level--; |
2491 | 0 | return NULL; |
2492 | 0 | } |
2493 | 104k | D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='")); |
2494 | 104k | Token * _literal; |
2495 | 104k | if ( |
2496 | 104k | (_literal = _PyPegen_expect_token(p, 42)) // token='|=' |
2497 | 104k | ) |
2498 | 61 | { |
2499 | 61 | D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='")); |
2500 | 61 | _res = _PyPegen_augoperator ( p , BitOr ); |
2501 | 61 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2502 | 0 | p->error_indicator = 1; |
2503 | 0 | p->level--; |
2504 | 0 | return NULL; |
2505 | 0 | } |
2506 | 61 | goto done; |
2507 | 61 | } |
2508 | 104k | p->mark = _mark; |
2509 | 104k | D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', |
2510 | 104k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='")); |
2511 | 104k | } |
2512 | 0 | { // '^=' |
2513 | 104k | if (p->error_indicator) { |
2514 | 0 | p->level--; |
2515 | 0 | return NULL; |
2516 | 0 | } |
2517 | 104k | D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='")); |
2518 | 104k | Token * _literal; |
2519 | 104k | if ( |
2520 | 104k | (_literal = _PyPegen_expect_token(p, 43)) // token='^=' |
2521 | 104k | ) |
2522 | 972 | { |
2523 | 972 | D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='")); |
2524 | 972 | _res = _PyPegen_augoperator ( p , BitXor ); |
2525 | 972 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2526 | 0 | p->error_indicator = 1; |
2527 | 0 | p->level--; |
2528 | 0 | return NULL; |
2529 | 0 | } |
2530 | 972 | goto done; |
2531 | 972 | } |
2532 | 103k | p->mark = _mark; |
2533 | 103k | D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', |
2534 | 103k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='")); |
2535 | 103k | } |
2536 | 0 | { // '<<=' |
2537 | 103k | if (p->error_indicator) { |
2538 | 0 | p->level--; |
2539 | 0 | return NULL; |
2540 | 0 | } |
2541 | 103k | D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='")); |
2542 | 103k | Token * _literal; |
2543 | 103k | if ( |
2544 | 103k | (_literal = _PyPegen_expect_token(p, 44)) // token='<<=' |
2545 | 103k | ) |
2546 | 214 | { |
2547 | 214 | D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='")); |
2548 | 214 | _res = _PyPegen_augoperator ( p , LShift ); |
2549 | 214 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2550 | 0 | p->error_indicator = 1; |
2551 | 0 | p->level--; |
2552 | 0 | return NULL; |
2553 | 0 | } |
2554 | 214 | goto done; |
2555 | 214 | } |
2556 | 102k | p->mark = _mark; |
2557 | 102k | D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', |
2558 | 102k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='")); |
2559 | 102k | } |
2560 | 0 | { // '>>=' |
2561 | 102k | if (p->error_indicator) { |
2562 | 0 | p->level--; |
2563 | 0 | return NULL; |
2564 | 0 | } |
2565 | 102k | D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='")); |
2566 | 102k | Token * _literal; |
2567 | 102k | if ( |
2568 | 102k | (_literal = _PyPegen_expect_token(p, 45)) // token='>>=' |
2569 | 102k | ) |
2570 | 220 | { |
2571 | 220 | D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='")); |
2572 | 220 | _res = _PyPegen_augoperator ( p , RShift ); |
2573 | 220 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2574 | 0 | p->error_indicator = 1; |
2575 | 0 | p->level--; |
2576 | 0 | return NULL; |
2577 | 0 | } |
2578 | 220 | goto done; |
2579 | 220 | } |
2580 | 102k | p->mark = _mark; |
2581 | 102k | D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', |
2582 | 102k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='")); |
2583 | 102k | } |
2584 | 0 | { // '**=' |
2585 | 102k | if (p->error_indicator) { |
2586 | 0 | p->level--; |
2587 | 0 | return NULL; |
2588 | 0 | } |
2589 | 102k | D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='")); |
2590 | 102k | Token * _literal; |
2591 | 102k | if ( |
2592 | 102k | (_literal = _PyPegen_expect_token(p, 46)) // token='**=' |
2593 | 102k | ) |
2594 | 328 | { |
2595 | 328 | D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='")); |
2596 | 328 | _res = _PyPegen_augoperator ( p , Pow ); |
2597 | 328 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2598 | 0 | p->error_indicator = 1; |
2599 | 0 | p->level--; |
2600 | 0 | return NULL; |
2601 | 0 | } |
2602 | 328 | goto done; |
2603 | 328 | } |
2604 | 102k | p->mark = _mark; |
2605 | 102k | D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', |
2606 | 102k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='")); |
2607 | 102k | } |
2608 | 0 | { // '//=' |
2609 | 102k | if (p->error_indicator) { |
2610 | 0 | p->level--; |
2611 | 0 | return NULL; |
2612 | 0 | } |
2613 | 102k | D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='")); |
2614 | 102k | Token * _literal; |
2615 | 102k | if ( |
2616 | 102k | (_literal = _PyPegen_expect_token(p, 48)) // token='//=' |
2617 | 102k | ) |
2618 | 208 | { |
2619 | 208 | D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='")); |
2620 | 208 | _res = _PyPegen_augoperator ( p , FloorDiv ); |
2621 | 208 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2622 | 0 | p->error_indicator = 1; |
2623 | 0 | p->level--; |
2624 | 0 | return NULL; |
2625 | 0 | } |
2626 | 208 | goto done; |
2627 | 208 | } |
2628 | 102k | p->mark = _mark; |
2629 | 102k | D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', |
2630 | 102k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='")); |
2631 | 102k | } |
2632 | 102k | _res = NULL; |
2633 | 105k | done: |
2634 | 105k | p->level--; |
2635 | 105k | return _res; |
2636 | 102k | } |
2637 | | |
2638 | | // return_stmt: 'return' star_expressions? |
2639 | | static stmt_ty |
2640 | | return_stmt_rule(Parser *p) |
2641 | 2.75k | { |
2642 | 2.75k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
2643 | 0 | _Pypegen_stack_overflow(p); |
2644 | 0 | } |
2645 | 2.75k | if (p->error_indicator) { |
2646 | 0 | p->level--; |
2647 | 0 | return NULL; |
2648 | 0 | } |
2649 | 2.75k | stmt_ty _res = NULL; |
2650 | 2.75k | int _mark = p->mark; |
2651 | 2.75k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
2652 | 0 | p->error_indicator = 1; |
2653 | 0 | p->level--; |
2654 | 0 | return NULL; |
2655 | 0 | } |
2656 | 2.75k | int _start_lineno = p->tokens[_mark]->lineno; |
2657 | 2.75k | UNUSED(_start_lineno); // Only used by EXTRA macro |
2658 | 2.75k | int _start_col_offset = p->tokens[_mark]->col_offset; |
2659 | 2.75k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
2660 | 2.75k | { // 'return' star_expressions? |
2661 | 2.75k | if (p->error_indicator) { |
2662 | 0 | p->level--; |
2663 | 0 | return NULL; |
2664 | 0 | } |
2665 | 2.75k | D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?")); |
2666 | 2.75k | Token * _keyword; |
2667 | 2.75k | void *a; |
2668 | 2.75k | if ( |
2669 | 2.75k | (_keyword = _PyPegen_expect_token(p, 502)) // token='return' |
2670 | 2.75k | && |
2671 | 2.75k | (a = star_expressions_rule(p), !p->error_indicator) // star_expressions? |
2672 | 2.75k | ) |
2673 | 2.69k | { |
2674 | 2.69k | D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?")); |
2675 | 2.69k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
2676 | 2.69k | if (_token == NULL) { |
2677 | 0 | p->level--; |
2678 | 0 | return NULL; |
2679 | 0 | } |
2680 | 2.69k | int _end_lineno = _token->end_lineno; |
2681 | 2.69k | UNUSED(_end_lineno); // Only used by EXTRA macro |
2682 | 2.69k | int _end_col_offset = _token->end_col_offset; |
2683 | 2.69k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
2684 | 2.69k | _res = _PyAST_Return ( a , EXTRA ); |
2685 | 2.69k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2686 | 0 | p->error_indicator = 1; |
2687 | 0 | p->level--; |
2688 | 0 | return NULL; |
2689 | 0 | } |
2690 | 2.69k | goto done; |
2691 | 2.69k | } |
2692 | 66 | p->mark = _mark; |
2693 | 66 | D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
2694 | 66 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?")); |
2695 | 66 | } |
2696 | 66 | _res = NULL; |
2697 | 2.75k | done: |
2698 | 2.75k | p->level--; |
2699 | 2.75k | return _res; |
2700 | 66 | } |
2701 | | |
2702 | | // raise_stmt: |
2703 | | // | 'raise' expression 'from' expression |
2704 | | // | invalid_raise_stmt |
2705 | | // | 'raise' expression |
2706 | | // | 'raise' |
2707 | | static stmt_ty |
2708 | | raise_stmt_rule(Parser *p) |
2709 | 2.25k | { |
2710 | 2.25k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
2711 | 0 | _Pypegen_stack_overflow(p); |
2712 | 0 | } |
2713 | 2.25k | if (p->error_indicator) { |
2714 | 0 | p->level--; |
2715 | 0 | return NULL; |
2716 | 0 | } |
2717 | 2.25k | stmt_ty _res = NULL; |
2718 | 2.25k | int _mark = p->mark; |
2719 | 2.25k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
2720 | 0 | p->error_indicator = 1; |
2721 | 0 | p->level--; |
2722 | 0 | return NULL; |
2723 | 0 | } |
2724 | 2.25k | int _start_lineno = p->tokens[_mark]->lineno; |
2725 | 2.25k | UNUSED(_start_lineno); // Only used by EXTRA macro |
2726 | 2.25k | int _start_col_offset = p->tokens[_mark]->col_offset; |
2727 | 2.25k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
2728 | 2.25k | { // 'raise' expression 'from' expression |
2729 | 2.25k | if (p->error_indicator) { |
2730 | 0 | p->level--; |
2731 | 0 | return NULL; |
2732 | 0 | } |
2733 | 2.25k | D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression 'from' expression")); |
2734 | 2.25k | Token * _keyword; |
2735 | 2.25k | Token * _keyword_1; |
2736 | 2.25k | expr_ty a; |
2737 | 2.25k | expr_ty b; |
2738 | 2.25k | if ( |
2739 | 2.25k | (_keyword = _PyPegen_expect_token(p, 503)) // token='raise' |
2740 | 2.25k | && |
2741 | 2.25k | (a = expression_rule(p)) // expression |
2742 | 1.42k | && |
2743 | 1.42k | (_keyword_1 = _PyPegen_expect_token(p, 501)) // token='from' |
2744 | 386 | && |
2745 | 386 | (b = expression_rule(p)) // expression |
2746 | 2.25k | ) |
2747 | 383 | { |
2748 | 383 | D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression 'from' expression")); |
2749 | 383 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
2750 | 383 | if (_token == NULL) { |
2751 | 0 | p->level--; |
2752 | 0 | return NULL; |
2753 | 0 | } |
2754 | 383 | int _end_lineno = _token->end_lineno; |
2755 | 383 | UNUSED(_end_lineno); // Only used by EXTRA macro |
2756 | 383 | int _end_col_offset = _token->end_col_offset; |
2757 | 383 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
2758 | 383 | _res = _PyAST_Raise ( a , b , EXTRA ); |
2759 | 383 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2760 | 0 | p->error_indicator = 1; |
2761 | 0 | p->level--; |
2762 | 0 | return NULL; |
2763 | 0 | } |
2764 | 383 | goto done; |
2765 | 383 | } |
2766 | 1.86k | p->mark = _mark; |
2767 | 1.86k | D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
2768 | 1.86k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression 'from' expression")); |
2769 | 1.86k | } |
2770 | 1.86k | if (p->call_invalid_rules) { // invalid_raise_stmt |
2771 | 581 | if (p->error_indicator) { |
2772 | 68 | p->level--; |
2773 | 68 | return NULL; |
2774 | 68 | } |
2775 | 513 | D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_raise_stmt")); |
2776 | 513 | void *invalid_raise_stmt_var; |
2777 | 513 | if ( |
2778 | 513 | (invalid_raise_stmt_var = invalid_raise_stmt_rule(p)) // invalid_raise_stmt |
2779 | 513 | ) |
2780 | 0 | { |
2781 | 0 | D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_raise_stmt")); |
2782 | 0 | _res = invalid_raise_stmt_var; |
2783 | 0 | goto done; |
2784 | 0 | } |
2785 | 513 | p->mark = _mark; |
2786 | 513 | D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
2787 | 513 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_raise_stmt")); |
2788 | 513 | } |
2789 | 1.80k | { // 'raise' expression |
2790 | 1.80k | if (p->error_indicator) { |
2791 | 4 | p->level--; |
2792 | 4 | return NULL; |
2793 | 4 | } |
2794 | 1.79k | D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression")); |
2795 | 1.79k | Token * _keyword; |
2796 | 1.79k | expr_ty a; |
2797 | 1.79k | if ( |
2798 | 1.79k | (_keyword = _PyPegen_expect_token(p, 503)) // token='raise' |
2799 | 1.79k | && |
2800 | 1.79k | (a = expression_rule(p)) // expression |
2801 | 1.79k | ) |
2802 | 1.03k | { |
2803 | 1.03k | D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression")); |
2804 | 1.03k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
2805 | 1.03k | if (_token == NULL) { |
2806 | 0 | p->level--; |
2807 | 0 | return NULL; |
2808 | 0 | } |
2809 | 1.03k | int _end_lineno = _token->end_lineno; |
2810 | 1.03k | UNUSED(_end_lineno); // Only used by EXTRA macro |
2811 | 1.03k | int _end_col_offset = _token->end_col_offset; |
2812 | 1.03k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
2813 | 1.03k | _res = _PyAST_Raise ( a , NULL , EXTRA ); |
2814 | 1.03k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2815 | 0 | p->error_indicator = 1; |
2816 | 0 | p->level--; |
2817 | 0 | return NULL; |
2818 | 0 | } |
2819 | 1.03k | goto done; |
2820 | 1.03k | } |
2821 | 761 | p->mark = _mark; |
2822 | 761 | D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
2823 | 761 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression")); |
2824 | 761 | } |
2825 | 0 | { // 'raise' |
2826 | 761 | if (p->error_indicator) { |
2827 | 0 | p->level--; |
2828 | 0 | return NULL; |
2829 | 0 | } |
2830 | 761 | D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'")); |
2831 | 761 | Token * _keyword; |
2832 | 761 | if ( |
2833 | 761 | (_keyword = _PyPegen_expect_token(p, 503)) // token='raise' |
2834 | 761 | ) |
2835 | 761 | { |
2836 | 761 | D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'")); |
2837 | 761 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
2838 | 761 | if (_token == NULL) { |
2839 | 0 | p->level--; |
2840 | 0 | return NULL; |
2841 | 0 | } |
2842 | 761 | int _end_lineno = _token->end_lineno; |
2843 | 761 | UNUSED(_end_lineno); // Only used by EXTRA macro |
2844 | 761 | int _end_col_offset = _token->end_col_offset; |
2845 | 761 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
2846 | 761 | _res = _PyAST_Raise ( NULL , NULL , EXTRA ); |
2847 | 761 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2848 | 0 | p->error_indicator = 1; |
2849 | 0 | p->level--; |
2850 | 0 | return NULL; |
2851 | 0 | } |
2852 | 761 | goto done; |
2853 | 761 | } |
2854 | 0 | p->mark = _mark; |
2855 | 0 | D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
2856 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'")); |
2857 | 0 | } |
2858 | 0 | _res = NULL; |
2859 | 2.18k | done: |
2860 | 2.18k | p->level--; |
2861 | 2.18k | return _res; |
2862 | 0 | } |
2863 | | |
2864 | | // pass_stmt: 'pass' |
2865 | | Py_LOCAL_SYMBOL stmt_ty |
2866 | | pass_stmt_rule(Parser *p) |
2867 | 337k | { |
2868 | 337k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
2869 | 0 | _Pypegen_stack_overflow(p); |
2870 | 0 | } |
2871 | 337k | if (p->error_indicator) { |
2872 | 0 | p->level--; |
2873 | 0 | return NULL; |
2874 | 0 | } |
2875 | 337k | stmt_ty _res = NULL; |
2876 | 337k | int _mark = p->mark; |
2877 | 337k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
2878 | 0 | p->error_indicator = 1; |
2879 | 0 | p->level--; |
2880 | 0 | return NULL; |
2881 | 0 | } |
2882 | 337k | int _start_lineno = p->tokens[_mark]->lineno; |
2883 | 337k | UNUSED(_start_lineno); // Only used by EXTRA macro |
2884 | 337k | int _start_col_offset = p->tokens[_mark]->col_offset; |
2885 | 337k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
2886 | 337k | { // 'pass' |
2887 | 337k | if (p->error_indicator) { |
2888 | 0 | p->level--; |
2889 | 0 | return NULL; |
2890 | 0 | } |
2891 | 337k | D(fprintf(stderr, "%*c> pass_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'")); |
2892 | 337k | Token * _keyword; |
2893 | 337k | if ( |
2894 | 337k | (_keyword = _PyPegen_expect_token(p, 504)) // token='pass' |
2895 | 337k | ) |
2896 | 1.44k | { |
2897 | 1.44k | D(fprintf(stderr, "%*c+ pass_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'")); |
2898 | 1.44k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
2899 | 1.44k | if (_token == NULL) { |
2900 | 0 | p->level--; |
2901 | 0 | return NULL; |
2902 | 0 | } |
2903 | 1.44k | int _end_lineno = _token->end_lineno; |
2904 | 1.44k | UNUSED(_end_lineno); // Only used by EXTRA macro |
2905 | 1.44k | int _end_col_offset = _token->end_col_offset; |
2906 | 1.44k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
2907 | 1.44k | _res = _PyAST_Pass ( EXTRA ); |
2908 | 1.44k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2909 | 0 | p->error_indicator = 1; |
2910 | 0 | p->level--; |
2911 | 0 | return NULL; |
2912 | 0 | } |
2913 | 1.44k | goto done; |
2914 | 1.44k | } |
2915 | 336k | p->mark = _mark; |
2916 | 336k | D(fprintf(stderr, "%*c%s pass_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
2917 | 336k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'")); |
2918 | 336k | } |
2919 | 336k | _res = NULL; |
2920 | 337k | done: |
2921 | 337k | p->level--; |
2922 | 337k | return _res; |
2923 | 336k | } |
2924 | | |
2925 | | // break_stmt: 'break' |
2926 | | Py_LOCAL_SYMBOL stmt_ty |
2927 | | break_stmt_rule(Parser *p) |
2928 | 337k | { |
2929 | 337k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
2930 | 0 | _Pypegen_stack_overflow(p); |
2931 | 0 | } |
2932 | 337k | if (p->error_indicator) { |
2933 | 0 | p->level--; |
2934 | 0 | return NULL; |
2935 | 0 | } |
2936 | 337k | stmt_ty _res = NULL; |
2937 | 337k | int _mark = p->mark; |
2938 | 337k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
2939 | 0 | p->error_indicator = 1; |
2940 | 0 | p->level--; |
2941 | 0 | return NULL; |
2942 | 0 | } |
2943 | 337k | int _start_lineno = p->tokens[_mark]->lineno; |
2944 | 337k | UNUSED(_start_lineno); // Only used by EXTRA macro |
2945 | 337k | int _start_col_offset = p->tokens[_mark]->col_offset; |
2946 | 337k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
2947 | 337k | { // 'break' |
2948 | 337k | if (p->error_indicator) { |
2949 | 0 | p->level--; |
2950 | 0 | return NULL; |
2951 | 0 | } |
2952 | 337k | D(fprintf(stderr, "%*c> break_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'")); |
2953 | 337k | Token * _keyword; |
2954 | 337k | if ( |
2955 | 337k | (_keyword = _PyPegen_expect_token(p, 508)) // token='break' |
2956 | 337k | ) |
2957 | 1.47k | { |
2958 | 1.47k | D(fprintf(stderr, "%*c+ break_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'")); |
2959 | 1.47k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
2960 | 1.47k | if (_token == NULL) { |
2961 | 0 | p->level--; |
2962 | 0 | return NULL; |
2963 | 0 | } |
2964 | 1.47k | int _end_lineno = _token->end_lineno; |
2965 | 1.47k | UNUSED(_end_lineno); // Only used by EXTRA macro |
2966 | 1.47k | int _end_col_offset = _token->end_col_offset; |
2967 | 1.47k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
2968 | 1.47k | _res = _PyAST_Break ( EXTRA ); |
2969 | 1.47k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
2970 | 0 | p->error_indicator = 1; |
2971 | 0 | p->level--; |
2972 | 0 | return NULL; |
2973 | 0 | } |
2974 | 1.47k | goto done; |
2975 | 1.47k | } |
2976 | 336k | p->mark = _mark; |
2977 | 336k | D(fprintf(stderr, "%*c%s break_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
2978 | 336k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'")); |
2979 | 336k | } |
2980 | 336k | _res = NULL; |
2981 | 337k | done: |
2982 | 337k | p->level--; |
2983 | 337k | return _res; |
2984 | 336k | } |
2985 | | |
2986 | | // continue_stmt: 'continue' |
2987 | | Py_LOCAL_SYMBOL stmt_ty |
2988 | | continue_stmt_rule(Parser *p) |
2989 | 336k | { |
2990 | 336k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
2991 | 0 | _Pypegen_stack_overflow(p); |
2992 | 0 | } |
2993 | 336k | if (p->error_indicator) { |
2994 | 0 | p->level--; |
2995 | 0 | return NULL; |
2996 | 0 | } |
2997 | 336k | stmt_ty _res = NULL; |
2998 | 336k | int _mark = p->mark; |
2999 | 336k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
3000 | 0 | p->error_indicator = 1; |
3001 | 0 | p->level--; |
3002 | 0 | return NULL; |
3003 | 0 | } |
3004 | 336k | int _start_lineno = p->tokens[_mark]->lineno; |
3005 | 336k | UNUSED(_start_lineno); // Only used by EXTRA macro |
3006 | 336k | int _start_col_offset = p->tokens[_mark]->col_offset; |
3007 | 336k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
3008 | 336k | { // 'continue' |
3009 | 336k | if (p->error_indicator) { |
3010 | 0 | p->level--; |
3011 | 0 | return NULL; |
3012 | 0 | } |
3013 | 336k | D(fprintf(stderr, "%*c> continue_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'")); |
3014 | 336k | Token * _keyword; |
3015 | 336k | if ( |
3016 | 336k | (_keyword = _PyPegen_expect_token(p, 509)) // token='continue' |
3017 | 336k | ) |
3018 | 3.74k | { |
3019 | 3.74k | D(fprintf(stderr, "%*c+ continue_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'")); |
3020 | 3.74k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
3021 | 3.74k | if (_token == NULL) { |
3022 | 0 | p->level--; |
3023 | 0 | return NULL; |
3024 | 0 | } |
3025 | 3.74k | int _end_lineno = _token->end_lineno; |
3026 | 3.74k | UNUSED(_end_lineno); // Only used by EXTRA macro |
3027 | 3.74k | int _end_col_offset = _token->end_col_offset; |
3028 | 3.74k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
3029 | 3.74k | _res = _PyAST_Continue ( EXTRA ); |
3030 | 3.74k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
3031 | 0 | p->error_indicator = 1; |
3032 | 0 | p->level--; |
3033 | 0 | return NULL; |
3034 | 0 | } |
3035 | 3.74k | goto done; |
3036 | 3.74k | } |
3037 | 333k | p->mark = _mark; |
3038 | 333k | D(fprintf(stderr, "%*c%s continue_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
3039 | 333k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'")); |
3040 | 333k | } |
3041 | 333k | _res = NULL; |
3042 | 336k | done: |
3043 | 336k | p->level--; |
3044 | 336k | return _res; |
3045 | 333k | } |
3046 | | |
3047 | | // global_stmt: 'global' ','.NAME+ |
3048 | | static stmt_ty |
3049 | | global_stmt_rule(Parser *p) |
3050 | 764 | { |
3051 | 764 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
3052 | 0 | _Pypegen_stack_overflow(p); |
3053 | 0 | } |
3054 | 764 | if (p->error_indicator) { |
3055 | 0 | p->level--; |
3056 | 0 | return NULL; |
3057 | 0 | } |
3058 | 764 | stmt_ty _res = NULL; |
3059 | 764 | int _mark = p->mark; |
3060 | 764 | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
3061 | 0 | p->error_indicator = 1; |
3062 | 0 | p->level--; |
3063 | 0 | return NULL; |
3064 | 0 | } |
3065 | 764 | int _start_lineno = p->tokens[_mark]->lineno; |
3066 | 764 | UNUSED(_start_lineno); // Only used by EXTRA macro |
3067 | 764 | int _start_col_offset = p->tokens[_mark]->col_offset; |
3068 | 764 | UNUSED(_start_col_offset); // Only used by EXTRA macro |
3069 | 764 | { // 'global' ','.NAME+ |
3070 | 764 | if (p->error_indicator) { |
3071 | 0 | p->level--; |
3072 | 0 | return NULL; |
3073 | 0 | } |
3074 | 764 | D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+")); |
3075 | 764 | Token * _keyword; |
3076 | 764 | asdl_expr_seq* a; |
3077 | 764 | if ( |
3078 | 764 | (_keyword = _PyPegen_expect_token(p, 510)) // token='global' |
3079 | 764 | && |
3080 | 764 | (a = (asdl_expr_seq*)_gather_14_rule(p)) // ','.NAME+ |
3081 | 764 | ) |
3082 | 757 | { |
3083 | 757 | D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+")); |
3084 | 757 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
3085 | 757 | if (_token == NULL) { |
3086 | 0 | p->level--; |
3087 | 0 | return NULL; |
3088 | 0 | } |
3089 | 757 | int _end_lineno = _token->end_lineno; |
3090 | 757 | UNUSED(_end_lineno); // Only used by EXTRA macro |
3091 | 757 | int _end_col_offset = _token->end_col_offset; |
3092 | 757 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
3093 | 757 | _res = _PyAST_Global ( CHECK ( asdl_identifier_seq* , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA ); |
3094 | 757 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
3095 | 1 | p->error_indicator = 1; |
3096 | 1 | p->level--; |
3097 | 1 | return NULL; |
3098 | 1 | } |
3099 | 756 | goto done; |
3100 | 757 | } |
3101 | 7 | p->mark = _mark; |
3102 | 7 | D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
3103 | 7 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+")); |
3104 | 7 | } |
3105 | 7 | _res = NULL; |
3106 | 763 | done: |
3107 | 763 | p->level--; |
3108 | 763 | return _res; |
3109 | 7 | } |
3110 | | |
3111 | | // nonlocal_stmt: 'nonlocal' ','.NAME+ |
3112 | | static stmt_ty |
3113 | | nonlocal_stmt_rule(Parser *p) |
3114 | 385 | { |
3115 | 385 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
3116 | 0 | _Pypegen_stack_overflow(p); |
3117 | 0 | } |
3118 | 385 | if (p->error_indicator) { |
3119 | 0 | p->level--; |
3120 | 0 | return NULL; |
3121 | 0 | } |
3122 | 385 | stmt_ty _res = NULL; |
3123 | 385 | int _mark = p->mark; |
3124 | 385 | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
3125 | 0 | p->error_indicator = 1; |
3126 | 0 | p->level--; |
3127 | 0 | return NULL; |
3128 | 0 | } |
3129 | 385 | int _start_lineno = p->tokens[_mark]->lineno; |
3130 | 385 | UNUSED(_start_lineno); // Only used by EXTRA macro |
3131 | 385 | int _start_col_offset = p->tokens[_mark]->col_offset; |
3132 | 385 | UNUSED(_start_col_offset); // Only used by EXTRA macro |
3133 | 385 | { // 'nonlocal' ','.NAME+ |
3134 | 385 | if (p->error_indicator) { |
3135 | 0 | p->level--; |
3136 | 0 | return NULL; |
3137 | 0 | } |
3138 | 385 | D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+")); |
3139 | 385 | Token * _keyword; |
3140 | 385 | asdl_expr_seq* a; |
3141 | 385 | if ( |
3142 | 385 | (_keyword = _PyPegen_expect_token(p, 511)) // token='nonlocal' |
3143 | 385 | && |
3144 | 385 | (a = (asdl_expr_seq*)_gather_14_rule(p)) // ','.NAME+ |
3145 | 385 | ) |
3146 | 380 | { |
3147 | 380 | D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+")); |
3148 | 380 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
3149 | 380 | if (_token == NULL) { |
3150 | 0 | p->level--; |
3151 | 0 | return NULL; |
3152 | 0 | } |
3153 | 380 | int _end_lineno = _token->end_lineno; |
3154 | 380 | UNUSED(_end_lineno); // Only used by EXTRA macro |
3155 | 380 | int _end_col_offset = _token->end_col_offset; |
3156 | 380 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
3157 | 380 | _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq* , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA ); |
3158 | 380 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
3159 | 1 | p->error_indicator = 1; |
3160 | 1 | p->level--; |
3161 | 1 | return NULL; |
3162 | 1 | } |
3163 | 379 | goto done; |
3164 | 380 | } |
3165 | 5 | p->mark = _mark; |
3166 | 5 | D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
3167 | 5 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+")); |
3168 | 5 | } |
3169 | 5 | _res = NULL; |
3170 | 384 | done: |
3171 | 384 | p->level--; |
3172 | 384 | return _res; |
3173 | 5 | } |
3174 | | |
3175 | | // del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt |
3176 | | static stmt_ty |
3177 | | del_stmt_rule(Parser *p) |
3178 | 1.00k | { |
3179 | 1.00k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
3180 | 0 | _Pypegen_stack_overflow(p); |
3181 | 0 | } |
3182 | 1.00k | if (p->error_indicator) { |
3183 | 0 | p->level--; |
3184 | 0 | return NULL; |
3185 | 0 | } |
3186 | 1.00k | stmt_ty _res = NULL; |
3187 | 1.00k | int _mark = p->mark; |
3188 | 1.00k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
3189 | 0 | p->error_indicator = 1; |
3190 | 0 | p->level--; |
3191 | 0 | return NULL; |
3192 | 0 | } |
3193 | 1.00k | int _start_lineno = p->tokens[_mark]->lineno; |
3194 | 1.00k | UNUSED(_start_lineno); // Only used by EXTRA macro |
3195 | 1.00k | int _start_col_offset = p->tokens[_mark]->col_offset; |
3196 | 1.00k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
3197 | 1.00k | { // 'del' del_targets &(';' | NEWLINE) |
3198 | 1.00k | if (p->error_indicator) { |
3199 | 0 | p->level--; |
3200 | 0 | return NULL; |
3201 | 0 | } |
3202 | 1.00k | D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)")); |
3203 | 1.00k | Token * _keyword; |
3204 | 1.00k | asdl_expr_seq* a; |
3205 | 1.00k | if ( |
3206 | 1.00k | (_keyword = _PyPegen_expect_token(p, 505)) // token='del' |
3207 | 1.00k | && |
3208 | 1.00k | (a = del_targets_rule(p)) // del_targets |
3209 | 767 | && |
3210 | 767 | _PyPegen_lookahead(1, _tmp_15_rule, p) |
3211 | 1.00k | ) |
3212 | 619 | { |
3213 | 619 | D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)")); |
3214 | 619 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
3215 | 619 | if (_token == NULL) { |
3216 | 0 | p->level--; |
3217 | 0 | return NULL; |
3218 | 0 | } |
3219 | 619 | int _end_lineno = _token->end_lineno; |
3220 | 619 | UNUSED(_end_lineno); // Only used by EXTRA macro |
3221 | 619 | int _end_col_offset = _token->end_col_offset; |
3222 | 619 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
3223 | 619 | _res = _PyAST_Delete ( a , EXTRA ); |
3224 | 619 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
3225 | 0 | p->error_indicator = 1; |
3226 | 0 | p->level--; |
3227 | 0 | return NULL; |
3228 | 0 | } |
3229 | 619 | goto done; |
3230 | 619 | } |
3231 | 390 | p->mark = _mark; |
3232 | 390 | D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
3233 | 390 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)")); |
3234 | 390 | } |
3235 | 390 | if (p->call_invalid_rules) { // invalid_del_stmt |
3236 | 325 | if (p->error_indicator) { |
3237 | 127 | p->level--; |
3238 | 127 | return NULL; |
3239 | 127 | } |
3240 | 198 | D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt")); |
3241 | 198 | void *invalid_del_stmt_var; |
3242 | 198 | if ( |
3243 | 198 | (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt |
3244 | 198 | ) |
3245 | 0 | { |
3246 | 0 | D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt")); |
3247 | 0 | _res = invalid_del_stmt_var; |
3248 | 0 | goto done; |
3249 | 0 | } |
3250 | 198 | p->mark = _mark; |
3251 | 198 | D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
3252 | 198 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt")); |
3253 | 198 | } |
3254 | 263 | _res = NULL; |
3255 | 882 | done: |
3256 | 882 | p->level--; |
3257 | 882 | return _res; |
3258 | 263 | } |
3259 | | |
3260 | | // yield_stmt: yield_expr |
3261 | | static stmt_ty |
3262 | | yield_stmt_rule(Parser *p) |
3263 | 1.18k | { |
3264 | 1.18k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
3265 | 0 | _Pypegen_stack_overflow(p); |
3266 | 0 | } |
3267 | 1.18k | if (p->error_indicator) { |
3268 | 0 | p->level--; |
3269 | 0 | return NULL; |
3270 | 0 | } |
3271 | 1.18k | stmt_ty _res = NULL; |
3272 | 1.18k | int _mark = p->mark; |
3273 | 1.18k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
3274 | 0 | p->error_indicator = 1; |
3275 | 0 | p->level--; |
3276 | 0 | return NULL; |
3277 | 0 | } |
3278 | 1.18k | int _start_lineno = p->tokens[_mark]->lineno; |
3279 | 1.18k | UNUSED(_start_lineno); // Only used by EXTRA macro |
3280 | 1.18k | int _start_col_offset = p->tokens[_mark]->col_offset; |
3281 | 1.18k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
3282 | 1.18k | { // yield_expr |
3283 | 1.18k | if (p->error_indicator) { |
3284 | 0 | p->level--; |
3285 | 0 | return NULL; |
3286 | 0 | } |
3287 | 1.18k | D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); |
3288 | 1.18k | expr_ty y; |
3289 | 1.18k | if ( |
3290 | 1.18k | (y = yield_expr_rule(p)) // yield_expr |
3291 | 1.18k | ) |
3292 | 1.17k | { |
3293 | 1.17k | D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); |
3294 | 1.17k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
3295 | 1.17k | if (_token == NULL) { |
3296 | 0 | p->level--; |
3297 | 0 | return NULL; |
3298 | 0 | } |
3299 | 1.17k | int _end_lineno = _token->end_lineno; |
3300 | 1.17k | UNUSED(_end_lineno); // Only used by EXTRA macro |
3301 | 1.17k | int _end_col_offset = _token->end_col_offset; |
3302 | 1.17k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
3303 | 1.17k | _res = _PyAST_Expr ( y , EXTRA ); |
3304 | 1.17k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
3305 | 0 | p->error_indicator = 1; |
3306 | 0 | p->level--; |
3307 | 0 | return NULL; |
3308 | 0 | } |
3309 | 1.17k | goto done; |
3310 | 1.17k | } |
3311 | 7 | p->mark = _mark; |
3312 | 7 | D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
3313 | 7 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); |
3314 | 7 | } |
3315 | 7 | _res = NULL; |
3316 | 1.18k | done: |
3317 | 1.18k | p->level--; |
3318 | 1.18k | return _res; |
3319 | 7 | } |
3320 | | |
3321 | | // assert_stmt: invalid_assert_stmt | 'assert' expression [',' expression] |
3322 | | static stmt_ty |
3323 | | assert_stmt_rule(Parser *p) |
3324 | 1.49k | { |
3325 | 1.49k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
3326 | 0 | _Pypegen_stack_overflow(p); |
3327 | 0 | } |
3328 | 1.49k | if (p->error_indicator) { |
3329 | 0 | p->level--; |
3330 | 0 | return NULL; |
3331 | 0 | } |
3332 | 1.49k | stmt_ty _res = NULL; |
3333 | 1.49k | int _mark = p->mark; |
3334 | 1.49k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
3335 | 0 | p->error_indicator = 1; |
3336 | 0 | p->level--; |
3337 | 0 | return NULL; |
3338 | 0 | } |
3339 | 1.49k | int _start_lineno = p->tokens[_mark]->lineno; |
3340 | 1.49k | UNUSED(_start_lineno); // Only used by EXTRA macro |
3341 | 1.49k | int _start_col_offset = p->tokens[_mark]->col_offset; |
3342 | 1.49k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
3343 | 1.49k | if (p->call_invalid_rules) { // invalid_assert_stmt |
3344 | 812 | if (p->error_indicator) { |
3345 | 0 | p->level--; |
3346 | 0 | return NULL; |
3347 | 0 | } |
3348 | 812 | D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assert_stmt")); |
3349 | 812 | void *invalid_assert_stmt_var; |
3350 | 812 | if ( |
3351 | 812 | (invalid_assert_stmt_var = invalid_assert_stmt_rule(p)) // invalid_assert_stmt |
3352 | 812 | ) |
3353 | 0 | { |
3354 | 0 | D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assert_stmt")); |
3355 | 0 | _res = invalid_assert_stmt_var; |
3356 | 0 | goto done; |
3357 | 0 | } |
3358 | 812 | p->mark = _mark; |
3359 | 812 | D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
3360 | 812 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assert_stmt")); |
3361 | 812 | } |
3362 | 1.49k | { // 'assert' expression [',' expression] |
3363 | 1.49k | if (p->error_indicator) { |
3364 | 315 | p->level--; |
3365 | 315 | return NULL; |
3366 | 315 | } |
3367 | 1.17k | D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]")); |
3368 | 1.17k | Token * _keyword; |
3369 | 1.17k | expr_ty a; |
3370 | 1.17k | void *b; |
3371 | 1.17k | if ( |
3372 | 1.17k | (_keyword = _PyPegen_expect_token(p, 507)) // token='assert' |
3373 | 1.17k | && |
3374 | 1.17k | (a = expression_rule(p)) // expression |
3375 | 1.13k | && |
3376 | 1.13k | (b = _tmp_16_rule(p), !p->error_indicator) // [',' expression] |
3377 | 1.17k | ) |
3378 | 1.13k | { |
3379 | 1.13k | D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]")); |
3380 | 1.13k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
3381 | 1.13k | if (_token == NULL) { |
3382 | 0 | p->level--; |
3383 | 0 | return NULL; |
3384 | 0 | } |
3385 | 1.13k | int _end_lineno = _token->end_lineno; |
3386 | 1.13k | UNUSED(_end_lineno); // Only used by EXTRA macro |
3387 | 1.13k | int _end_col_offset = _token->end_col_offset; |
3388 | 1.13k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
3389 | 1.13k | _res = _PyAST_Assert ( a , b , EXTRA ); |
3390 | 1.13k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
3391 | 0 | p->error_indicator = 1; |
3392 | 0 | p->level--; |
3393 | 0 | return NULL; |
3394 | 0 | } |
3395 | 1.13k | goto done; |
3396 | 1.13k | } |
3397 | 47 | p->mark = _mark; |
3398 | 47 | D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
3399 | 47 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]")); |
3400 | 47 | } |
3401 | 47 | _res = NULL; |
3402 | 1.17k | done: |
3403 | 1.17k | p->level--; |
3404 | 1.17k | return _res; |
3405 | 47 | } |
3406 | | |
3407 | | // import_stmt: invalid_import | import_name | import_from |
3408 | | static stmt_ty |
3409 | | import_stmt_rule(Parser *p) |
3410 | 9.45k | { |
3411 | 9.45k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
3412 | 0 | _Pypegen_stack_overflow(p); |
3413 | 0 | } |
3414 | 9.45k | if (p->error_indicator) { |
3415 | 0 | p->level--; |
3416 | 0 | return NULL; |
3417 | 0 | } |
3418 | 9.45k | stmt_ty _res = NULL; |
3419 | 9.45k | if (_PyPegen_is_memoized(p, import_stmt_type, &_res)) { |
3420 | 0 | p->level--; |
3421 | 0 | return _res; |
3422 | 0 | } |
3423 | 9.45k | int _mark = p->mark; |
3424 | 9.45k | if (p->call_invalid_rules) { // invalid_import |
3425 | 3.50k | if (p->error_indicator) { |
3426 | 0 | p->level--; |
3427 | 0 | return NULL; |
3428 | 0 | } |
3429 | 3.50k | D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import")); |
3430 | 3.50k | void *invalid_import_var; |
3431 | 3.50k | if ( |
3432 | 3.50k | (invalid_import_var = invalid_import_rule(p)) // invalid_import |
3433 | 3.50k | ) |
3434 | 0 | { |
3435 | 0 | D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import")); |
3436 | 0 | _res = invalid_import_var; |
3437 | 0 | goto done; |
3438 | 0 | } |
3439 | 3.50k | p->mark = _mark; |
3440 | 3.50k | D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
3441 | 3.50k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import")); |
3442 | 3.50k | } |
3443 | 9.45k | { // import_name |
3444 | 9.45k | if (p->error_indicator) { |
3445 | 10 | p->level--; |
3446 | 10 | return NULL; |
3447 | 10 | } |
3448 | 9.44k | D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name")); |
3449 | 9.44k | stmt_ty import_name_var; |
3450 | 9.44k | if ( |
3451 | 9.44k | (import_name_var = import_name_rule(p)) // import_name |
3452 | 9.44k | ) |
3453 | 2.53k | { |
3454 | 2.53k | D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name")); |
3455 | 2.53k | _res = import_name_var; |
3456 | 2.53k | goto done; |
3457 | 2.53k | } |
3458 | 6.90k | p->mark = _mark; |
3459 | 6.90k | D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
3460 | 6.90k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name")); |
3461 | 6.90k | } |
3462 | 0 | { // import_from |
3463 | 6.90k | if (p->error_indicator) { |
3464 | 173 | p->level--; |
3465 | 173 | return NULL; |
3466 | 173 | } |
3467 | 6.73k | D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from")); |
3468 | 6.73k | stmt_ty import_from_var; |
3469 | 6.73k | if ( |
3470 | 6.73k | (import_from_var = import_from_rule(p)) // import_from |
3471 | 6.73k | ) |
3472 | 5.70k | { |
3473 | 5.70k | D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from")); |
3474 | 5.70k | _res = import_from_var; |
3475 | 5.70k | goto done; |
3476 | 5.70k | } |
3477 | 1.02k | p->mark = _mark; |
3478 | 1.02k | D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
3479 | 1.02k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from")); |
3480 | 1.02k | } |
3481 | 1.02k | _res = NULL; |
3482 | 9.26k | done: |
3483 | 9.26k | _PyPegen_insert_memo(p, _mark, import_stmt_type, _res); |
3484 | 9.26k | p->level--; |
3485 | 9.26k | return _res; |
3486 | 1.02k | } |
3487 | | |
3488 | | // import_name: "lazy" 'import' dotted_as_names | 'import' dotted_as_names |
3489 | | static stmt_ty |
3490 | | import_name_rule(Parser *p) |
3491 | 9.44k | { |
3492 | 9.44k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
3493 | 0 | _Pypegen_stack_overflow(p); |
3494 | 0 | } |
3495 | 9.44k | if (p->error_indicator) { |
3496 | 0 | p->level--; |
3497 | 0 | return NULL; |
3498 | 0 | } |
3499 | 9.44k | stmt_ty _res = NULL; |
3500 | 9.44k | int _mark = p->mark; |
3501 | 9.44k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
3502 | 0 | p->error_indicator = 1; |
3503 | 0 | p->level--; |
3504 | 0 | return NULL; |
3505 | 0 | } |
3506 | 9.44k | int _start_lineno = p->tokens[_mark]->lineno; |
3507 | 9.44k | UNUSED(_start_lineno); // Only used by EXTRA macro |
3508 | 9.44k | int _start_col_offset = p->tokens[_mark]->col_offset; |
3509 | 9.44k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
3510 | 9.44k | { // "lazy" 'import' dotted_as_names |
3511 | 9.44k | if (p->error_indicator) { |
3512 | 0 | p->level--; |
3513 | 0 | return NULL; |
3514 | 0 | } |
3515 | 9.44k | D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"lazy\" 'import' dotted_as_names")); |
3516 | 9.44k | expr_ty _keyword; |
3517 | 9.44k | Token * _keyword_1; |
3518 | 9.44k | asdl_alias_seq* a; |
3519 | 9.44k | if ( |
3520 | 9.44k | (_keyword = _PyPegen_expect_soft_keyword(p, "lazy")) // soft_keyword='"lazy"' |
3521 | 605 | && |
3522 | 605 | (_keyword_1 = _PyPegen_expect_token(p, 500)) // token='import' |
3523 | 15 | && |
3524 | 15 | (a = dotted_as_names_rule(p)) // dotted_as_names |
3525 | 9.44k | ) |
3526 | 11 | { |
3527 | 11 | D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"lazy\" 'import' dotted_as_names")); |
3528 | 11 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
3529 | 11 | if (_token == NULL) { |
3530 | 0 | p->level--; |
3531 | 0 | return NULL; |
3532 | 0 | } |
3533 | 11 | int _end_lineno = _token->end_lineno; |
3534 | 11 | UNUSED(_end_lineno); // Only used by EXTRA macro |
3535 | 11 | int _end_col_offset = _token->end_col_offset; |
3536 | 11 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
3537 | 11 | _res = CHECK_VERSION ( stmt_ty , 15 , "Lazy imports are" , _PyAST_Import ( a , 1 , EXTRA ) ); |
3538 | 11 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
3539 | 0 | p->error_indicator = 1; |
3540 | 0 | p->level--; |
3541 | 0 | return NULL; |
3542 | 0 | } |
3543 | 11 | goto done; |
3544 | 11 | } |
3545 | 9.43k | p->mark = _mark; |
3546 | 9.43k | D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ', |
3547 | 9.43k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"lazy\" 'import' dotted_as_names")); |
3548 | 9.43k | } |
3549 | 0 | { // 'import' dotted_as_names |
3550 | 9.43k | if (p->error_indicator) { |
3551 | 2 | p->level--; |
3552 | 2 | return NULL; |
3553 | 2 | } |
3554 | 9.42k | D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names")); |
3555 | 9.42k | Token * _keyword; |
3556 | 9.42k | asdl_alias_seq* a; |
3557 | 9.42k | if ( |
3558 | 9.42k | (_keyword = _PyPegen_expect_token(p, 500)) // token='import' |
3559 | 2.70k | && |
3560 | 2.70k | (a = dotted_as_names_rule(p)) // dotted_as_names |
3561 | 9.42k | ) |
3562 | 2.52k | { |
3563 | 2.52k | D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names")); |
3564 | 2.52k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
3565 | 2.52k | if (_token == NULL) { |
3566 | 0 | p->level--; |
3567 | 0 | return NULL; |
3568 | 0 | } |
3569 | 2.52k | int _end_lineno = _token->end_lineno; |
3570 | 2.52k | UNUSED(_end_lineno); // Only used by EXTRA macro |
3571 | 2.52k | int _end_col_offset = _token->end_col_offset; |
3572 | 2.52k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
3573 | 2.52k | _res = _PyAST_Import ( a , 0 , EXTRA ); |
3574 | 2.52k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
3575 | 0 | p->error_indicator = 1; |
3576 | 0 | p->level--; |
3577 | 0 | return NULL; |
3578 | 0 | } |
3579 | 2.52k | goto done; |
3580 | 2.52k | } |
3581 | 6.90k | p->mark = _mark; |
3582 | 6.90k | D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ', |
3583 | 6.90k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names")); |
3584 | 6.90k | } |
3585 | 6.90k | _res = NULL; |
3586 | 9.44k | done: |
3587 | 9.44k | p->level--; |
3588 | 9.44k | return _res; |
3589 | 6.90k | } |
3590 | | |
3591 | | // import_from: |
3592 | | // | invalid_import_from |
3593 | | // | "lazy" 'from' (('.' | '...'))* dotted_name 'import' import_from_targets |
3594 | | // | "lazy" 'from' (('.' | '...'))+ 'import' import_from_targets |
3595 | | // | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets |
3596 | | // | 'from' (('.' | '...'))+ 'import' import_from_targets |
3597 | | static stmt_ty |
3598 | | import_from_rule(Parser *p) |
3599 | 6.73k | { |
3600 | 6.73k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
3601 | 0 | _Pypegen_stack_overflow(p); |
3602 | 0 | } |
3603 | 6.73k | if (p->error_indicator) { |
3604 | 0 | p->level--; |
3605 | 0 | return NULL; |
3606 | 0 | } |
3607 | 6.73k | stmt_ty _res = NULL; |
3608 | 6.73k | int _mark = p->mark; |
3609 | 6.73k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
3610 | 0 | p->error_indicator = 1; |
3611 | 0 | p->level--; |
3612 | 0 | return NULL; |
3613 | 0 | } |
3614 | 6.73k | int _start_lineno = p->tokens[_mark]->lineno; |
3615 | 6.73k | UNUSED(_start_lineno); // Only used by EXTRA macro |
3616 | 6.73k | int _start_col_offset = p->tokens[_mark]->col_offset; |
3617 | 6.73k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
3618 | 6.73k | if (p->call_invalid_rules) { // invalid_import_from |
3619 | 2.63k | if (p->error_indicator) { |
3620 | 0 | p->level--; |
3621 | 0 | return NULL; |
3622 | 0 | } |
3623 | 2.63k | D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from")); |
3624 | 2.63k | void *invalid_import_from_var; |
3625 | 2.63k | if ( |
3626 | 2.63k | (invalid_import_from_var = invalid_import_from_rule(p)) // invalid_import_from |
3627 | 2.63k | ) |
3628 | 0 | { |
3629 | 0 | D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from")); |
3630 | 0 | _res = invalid_import_from_var; |
3631 | 0 | goto done; |
3632 | 0 | } |
3633 | 2.63k | p->mark = _mark; |
3634 | 2.63k | D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ', |
3635 | 2.63k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from")); |
3636 | 2.63k | } |
3637 | 6.73k | { // "lazy" 'from' (('.' | '...'))* dotted_name 'import' import_from_targets |
3638 | 6.73k | if (p->error_indicator) { |
3639 | 5 | p->level--; |
3640 | 5 | return NULL; |
3641 | 5 | } |
3642 | 6.73k | D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"lazy\" 'from' (('.' | '...'))* dotted_name 'import' import_from_targets")); |
3643 | 6.73k | Token * _keyword; |
3644 | 6.73k | Token * _keyword_1; |
3645 | 6.73k | asdl_seq * a; |
3646 | 6.73k | expr_ty b; |
3647 | 6.73k | asdl_alias_seq* c; |
3648 | 6.73k | expr_ty lazy; |
3649 | 6.73k | if ( |
3650 | 6.73k | (lazy = _PyPegen_expect_soft_keyword(p, "lazy")) // soft_keyword='"lazy"' |
3651 | 592 | && |
3652 | 592 | (_keyword = _PyPegen_expect_token(p, 501)) // token='from' |
3653 | 61 | && |
3654 | 61 | (a = _loop0_17_rule(p)) // (('.' | '...'))* |
3655 | 61 | && |
3656 | 61 | (b = dotted_name_rule(p)) // dotted_name |
3657 | 50 | && |
3658 | 50 | (_keyword_1 = _PyPegen_expect_token(p, 500)) // token='import' |
3659 | 48 | && |
3660 | 48 | (c = import_from_targets_rule(p)) // import_from_targets |
3661 | 6.73k | ) |
3662 | 43 | { |
3663 | 43 | D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"lazy\" 'from' (('.' | '...'))* dotted_name 'import' import_from_targets")); |
3664 | 43 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
3665 | 43 | if (_token == NULL) { |
3666 | 0 | p->level--; |
3667 | 0 | return NULL; |
3668 | 0 | } |
3669 | 43 | int _end_lineno = _token->end_lineno; |
3670 | 43 | UNUSED(_end_lineno); // Only used by EXTRA macro |
3671 | 43 | int _end_col_offset = _token->end_col_offset; |
3672 | 43 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
3673 | 43 | _res = CHECK_VERSION ( stmt_ty , 15 , "Lazy imports are" , _PyPegen_checked_from_import ( p , a , b , c , lazy , EXTRA ) ); |
3674 | 43 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
3675 | 1 | p->error_indicator = 1; |
3676 | 1 | p->level--; |
3677 | 1 | return NULL; |
3678 | 1 | } |
3679 | 42 | goto done; |
3680 | 43 | } |
3681 | 6.68k | p->mark = _mark; |
3682 | 6.68k | D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ', |
3683 | 6.68k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"lazy\" 'from' (('.' | '...'))* dotted_name 'import' import_from_targets")); |
3684 | 6.68k | } |
3685 | 0 | { // "lazy" 'from' (('.' | '...'))+ 'import' import_from_targets |
3686 | 6.68k | if (p->error_indicator) { |
3687 | 4 | p->level--; |
3688 | 4 | return NULL; |
3689 | 4 | } |
3690 | 6.68k | D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"lazy\" 'from' (('.' | '...'))+ 'import' import_from_targets")); |
3691 | 6.68k | expr_ty _keyword; |
3692 | 6.68k | Token * _keyword_1; |
3693 | 6.68k | Token * _keyword_2; |
3694 | 6.68k | asdl_seq * a; |
3695 | 6.68k | asdl_alias_seq* b; |
3696 | 6.68k | if ( |
3697 | 6.68k | (_keyword = _PyPegen_expect_soft_keyword(p, "lazy")) // soft_keyword='"lazy"' |
3698 | 545 | && |
3699 | 545 | (_keyword_1 = _PyPegen_expect_token(p, 501)) // token='from' |
3700 | 14 | && |
3701 | 14 | (a = _loop1_18_rule(p)) // (('.' | '...'))+ |
3702 | 9 | && |
3703 | 9 | (_keyword_2 = _PyPegen_expect_token(p, 500)) // token='import' |
3704 | 6 | && |
3705 | 6 | (b = import_from_targets_rule(p)) // import_from_targets |
3706 | 6.68k | ) |
3707 | 3 | { |
3708 | 3 | D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"lazy\" 'from' (('.' | '...'))+ 'import' import_from_targets")); |
3709 | 3 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
3710 | 3 | if (_token == NULL) { |
3711 | 0 | p->level--; |
3712 | 0 | return NULL; |
3713 | 0 | } |
3714 | 3 | int _end_lineno = _token->end_lineno; |
3715 | 3 | UNUSED(_end_lineno); // Only used by EXTRA macro |
3716 | 3 | int _end_col_offset = _token->end_col_offset; |
3717 | 3 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
3718 | 3 | _res = CHECK_VERSION ( stmt_ty , 15 , "Lazy imports are" , _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , 1 , EXTRA ) ); |
3719 | 3 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
3720 | 0 | p->error_indicator = 1; |
3721 | 0 | p->level--; |
3722 | 0 | return NULL; |
3723 | 0 | } |
3724 | 3 | goto done; |
3725 | 3 | } |
3726 | 6.68k | p->mark = _mark; |
3727 | 6.68k | D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ', |
3728 | 6.68k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"lazy\" 'from' (('.' | '...'))+ 'import' import_from_targets")); |
3729 | 6.68k | } |
3730 | 0 | { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets |
3731 | 6.68k | if (p->error_indicator) { |
3732 | 1 | p->level--; |
3733 | 1 | return NULL; |
3734 | 1 | } |
3735 | 6.67k | D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets")); |
3736 | 6.67k | Token * _keyword; |
3737 | 6.67k | Token * _keyword_1; |
3738 | 6.67k | asdl_seq * a; |
3739 | 6.67k | expr_ty b; |
3740 | 6.67k | asdl_alias_seq* c; |
3741 | 6.67k | if ( |
3742 | 6.67k | (_keyword = _PyPegen_expect_token(p, 501)) // token='from' |
3743 | 6.12k | && |
3744 | 6.12k | (a = _loop0_17_rule(p)) // (('.' | '...'))* |
3745 | 6.12k | && |
3746 | 6.12k | (b = dotted_name_rule(p)) // dotted_name |
3747 | 3.93k | && |
3748 | 3.93k | (_keyword_1 = _PyPegen_expect_token(p, 500)) // token='import' |
3749 | 3.85k | && |
3750 | 3.85k | (c = import_from_targets_rule(p)) // import_from_targets |
3751 | 6.67k | ) |
3752 | 3.77k | { |
3753 | 3.77k | D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets")); |
3754 | 3.77k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
3755 | 3.77k | if (_token == NULL) { |
3756 | 0 | p->level--; |
3757 | 0 | return NULL; |
3758 | 0 | } |
3759 | 3.77k | int _end_lineno = _token->end_lineno; |
3760 | 3.77k | UNUSED(_end_lineno); // Only used by EXTRA macro |
3761 | 3.77k | int _end_col_offset = _token->end_col_offset; |
3762 | 3.77k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
3763 | 3.77k | _res = _PyPegen_checked_from_import ( p , a , b , c , NULL , EXTRA ); |
3764 | 3.77k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
3765 | 0 | p->error_indicator = 1; |
3766 | 0 | p->level--; |
3767 | 0 | return NULL; |
3768 | 0 | } |
3769 | 3.77k | goto done; |
3770 | 3.77k | } |
3771 | 2.90k | p->mark = _mark; |
3772 | 2.90k | D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ', |
3773 | 2.90k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets")); |
3774 | 2.90k | } |
3775 | 0 | { // 'from' (('.' | '...'))+ 'import' import_from_targets |
3776 | 2.90k | if (p->error_indicator) { |
3777 | 59 | p->level--; |
3778 | 59 | return NULL; |
3779 | 59 | } |
3780 | 2.84k | D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets")); |
3781 | 2.84k | Token * _keyword; |
3782 | 2.84k | Token * _keyword_1; |
3783 | 2.84k | asdl_seq * a; |
3784 | 2.84k | asdl_alias_seq* b; |
3785 | 2.84k | if ( |
3786 | 2.84k | (_keyword = _PyPegen_expect_token(p, 501)) // token='from' |
3787 | 2.29k | && |
3788 | 2.29k | (a = _loop1_18_rule(p)) // (('.' | '...'))+ |
3789 | 2.22k | && |
3790 | 2.22k | (_keyword_1 = _PyPegen_expect_token(p, 500)) // token='import' |
3791 | 2.11k | && |
3792 | 2.11k | (b = import_from_targets_rule(p)) // import_from_targets |
3793 | 2.84k | ) |
3794 | 1.88k | { |
3795 | 1.88k | D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets")); |
3796 | 1.88k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
3797 | 1.88k | if (_token == NULL) { |
3798 | 0 | p->level--; |
3799 | 0 | return NULL; |
3800 | 0 | } |
3801 | 1.88k | int _end_lineno = _token->end_lineno; |
3802 | 1.88k | UNUSED(_end_lineno); // Only used by EXTRA macro |
3803 | 1.88k | int _end_col_offset = _token->end_col_offset; |
3804 | 1.88k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
3805 | 1.88k | _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , 0 , EXTRA ); |
3806 | 1.88k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
3807 | 0 | p->error_indicator = 1; |
3808 | 0 | p->level--; |
3809 | 0 | return NULL; |
3810 | 0 | } |
3811 | 1.88k | goto done; |
3812 | 1.88k | } |
3813 | 957 | p->mark = _mark; |
3814 | 957 | D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ', |
3815 | 957 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets")); |
3816 | 957 | } |
3817 | 957 | _res = NULL; |
3818 | 6.66k | done: |
3819 | 6.66k | p->level--; |
3820 | 6.66k | return _res; |
3821 | 957 | } |
3822 | | |
3823 | | // import_from_targets: |
3824 | | // | '(' import_from_as_names ','? ')' |
3825 | | // | import_from_as_names !',' |
3826 | | // | '*' |
3827 | | // | invalid_import_from_targets |
3828 | | Py_LOCAL_SYMBOL asdl_alias_seq* |
3829 | | import_from_targets_rule(Parser *p) |
3830 | 6.02k | { |
3831 | 6.02k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
3832 | 0 | _Pypegen_stack_overflow(p); |
3833 | 0 | } |
3834 | 6.02k | if (p->error_indicator) { |
3835 | 0 | p->level--; |
3836 | 0 | return NULL; |
3837 | 0 | } |
3838 | 6.02k | asdl_alias_seq* _res = NULL; |
3839 | 6.02k | int _mark = p->mark; |
3840 | 6.02k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
3841 | 2 | p->error_indicator = 1; |
3842 | 2 | p->level--; |
3843 | 2 | return NULL; |
3844 | 2 | } |
3845 | 6.02k | int _start_lineno = p->tokens[_mark]->lineno; |
3846 | 6.02k | UNUSED(_start_lineno); // Only used by EXTRA macro |
3847 | 6.02k | int _start_col_offset = p->tokens[_mark]->col_offset; |
3848 | 6.02k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
3849 | 6.02k | { // '(' import_from_as_names ','? ')' |
3850 | 6.02k | if (p->error_indicator) { |
3851 | 0 | p->level--; |
3852 | 0 | return NULL; |
3853 | 0 | } |
3854 | 6.02k | D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'")); |
3855 | 6.02k | Token * _literal; |
3856 | 6.02k | Token * _literal_1; |
3857 | 6.02k | void *_opt_var; |
3858 | 6.02k | UNUSED(_opt_var); // Silence compiler warnings |
3859 | 6.02k | asdl_alias_seq* a; |
3860 | 6.02k | if ( |
3861 | 6.02k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
3862 | 480 | && |
3863 | 480 | (a = import_from_as_names_rule(p)) // import_from_as_names |
3864 | 409 | && |
3865 | 409 | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
3866 | 409 | && |
3867 | 409 | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
3868 | 6.02k | ) |
3869 | 277 | { |
3870 | 277 | D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'")); |
3871 | 277 | _res = a; |
3872 | 277 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
3873 | 0 | p->error_indicator = 1; |
3874 | 0 | p->level--; |
3875 | 0 | return NULL; |
3876 | 0 | } |
3877 | 277 | goto done; |
3878 | 277 | } |
3879 | 5.74k | p->mark = _mark; |
3880 | 5.74k | D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ', |
3881 | 5.74k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'")); |
3882 | 5.74k | } |
3883 | 0 | { // import_from_as_names !',' |
3884 | 5.74k | if (p->error_indicator) { |
3885 | 69 | p->level--; |
3886 | 69 | return NULL; |
3887 | 69 | } |
3888 | 5.67k | D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','")); |
3889 | 5.67k | asdl_alias_seq* import_from_as_names_var; |
3890 | 5.67k | if ( |
3891 | 5.67k | (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names |
3892 | 3.72k | && |
3893 | 3.72k | _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=',' |
3894 | 5.67k | ) |
3895 | 3.68k | { |
3896 | 3.68k | D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','")); |
3897 | 3.68k | _res = import_from_as_names_var; |
3898 | 3.68k | goto done; |
3899 | 3.68k | } |
3900 | 1.99k | p->mark = _mark; |
3901 | 1.99k | D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ', |
3902 | 1.99k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','")); |
3903 | 1.99k | } |
3904 | 0 | { // '*' |
3905 | 1.99k | if (p->error_indicator) { |
3906 | 38 | p->level--; |
3907 | 38 | return NULL; |
3908 | 38 | } |
3909 | 1.95k | D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); |
3910 | 1.95k | Token * _literal; |
3911 | 1.95k | if ( |
3912 | 1.95k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
3913 | 1.95k | ) |
3914 | 1.74k | { |
3915 | 1.74k | D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); |
3916 | 1.74k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
3917 | 1.74k | if (_token == NULL) { |
3918 | 0 | p->level--; |
3919 | 0 | return NULL; |
3920 | 0 | } |
3921 | 1.74k | int _end_lineno = _token->end_lineno; |
3922 | 1.74k | UNUSED(_end_lineno); // Only used by EXTRA macro |
3923 | 1.74k | int _end_col_offset = _token->end_col_offset; |
3924 | 1.74k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
3925 | 1.74k | _res = ( asdl_alias_seq* ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) ); |
3926 | 1.74k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
3927 | 0 | p->error_indicator = 1; |
3928 | 0 | p->level--; |
3929 | 0 | return NULL; |
3930 | 0 | } |
3931 | 1.74k | goto done; |
3932 | 1.74k | } |
3933 | 203 | p->mark = _mark; |
3934 | 203 | D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ', |
3935 | 203 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'")); |
3936 | 203 | } |
3937 | 203 | if (p->call_invalid_rules) { // invalid_import_from_targets |
3938 | 148 | if (p->error_indicator) { |
3939 | 0 | p->level--; |
3940 | 0 | return NULL; |
3941 | 0 | } |
3942 | 148 | D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets")); |
3943 | 148 | void *invalid_import_from_targets_var; |
3944 | 148 | if ( |
3945 | 148 | (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets |
3946 | 148 | ) |
3947 | 0 | { |
3948 | 0 | D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets")); |
3949 | 0 | _res = invalid_import_from_targets_var; |
3950 | 0 | goto done; |
3951 | 0 | } |
3952 | 148 | p->mark = _mark; |
3953 | 148 | D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ', |
3954 | 148 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets")); |
3955 | 148 | } |
3956 | 203 | _res = NULL; |
3957 | 5.91k | done: |
3958 | 5.91k | p->level--; |
3959 | 5.91k | return _res; |
3960 | 203 | } |
3961 | | |
3962 | | // import_from_as_names: ','.import_from_as_name+ |
3963 | | Py_LOCAL_SYMBOL asdl_alias_seq* |
3964 | | import_from_as_names_rule(Parser *p) |
3965 | 6.30k | { |
3966 | 6.30k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
3967 | 0 | _Pypegen_stack_overflow(p); |
3968 | 0 | } |
3969 | 6.30k | if (p->error_indicator) { |
3970 | 0 | p->level--; |
3971 | 0 | return NULL; |
3972 | 0 | } |
3973 | 6.30k | asdl_alias_seq* _res = NULL; |
3974 | 6.30k | int _mark = p->mark; |
3975 | 6.30k | { // ','.import_from_as_name+ |
3976 | 6.30k | if (p->error_indicator) { |
3977 | 0 | p->level--; |
3978 | 0 | return NULL; |
3979 | 0 | } |
3980 | 6.30k | D(fprintf(stderr, "%*c> import_from_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+")); |
3981 | 6.30k | asdl_alias_seq* a; |
3982 | 6.30k | if ( |
3983 | 6.30k | (a = (asdl_alias_seq*)_gather_20_rule(p)) // ','.import_from_as_name+ |
3984 | 6.30k | ) |
3985 | 4.19k | { |
3986 | 4.19k | D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+")); |
3987 | 4.19k | _res = a; |
3988 | 4.19k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
3989 | 34 | p->error_indicator = 1; |
3990 | 34 | p->level--; |
3991 | 34 | return NULL; |
3992 | 34 | } |
3993 | 4.15k | goto done; |
3994 | 4.19k | } |
3995 | 2.11k | p->mark = _mark; |
3996 | 2.11k | D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ', |
3997 | 2.11k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+")); |
3998 | 2.11k | } |
3999 | 2.11k | _res = NULL; |
4000 | 6.26k | done: |
4001 | 6.26k | p->level--; |
4002 | 6.26k | return _res; |
4003 | 2.11k | } |
4004 | | |
4005 | | // import_from_as_name: invalid_import_from_as_name | NAME ['as' NAME] |
4006 | | static alias_ty |
4007 | | import_from_as_name_rule(Parser *p) |
4008 | 9.02k | { |
4009 | 9.02k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
4010 | 0 | _Pypegen_stack_overflow(p); |
4011 | 0 | } |
4012 | 9.02k | if (p->error_indicator) { |
4013 | 0 | p->level--; |
4014 | 0 | return NULL; |
4015 | 0 | } |
4016 | 9.02k | alias_ty _res = NULL; |
4017 | 9.02k | int _mark = p->mark; |
4018 | 9.02k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
4019 | 3 | p->error_indicator = 1; |
4020 | 3 | p->level--; |
4021 | 3 | return NULL; |
4022 | 3 | } |
4023 | 9.02k | int _start_lineno = p->tokens[_mark]->lineno; |
4024 | 9.02k | UNUSED(_start_lineno); // Only used by EXTRA macro |
4025 | 9.02k | int _start_col_offset = p->tokens[_mark]->col_offset; |
4026 | 9.02k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
4027 | 9.02k | if (p->call_invalid_rules) { // invalid_import_from_as_name |
4028 | 3.79k | if (p->error_indicator) { |
4029 | 0 | p->level--; |
4030 | 0 | return NULL; |
4031 | 0 | } |
4032 | 3.79k | D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_as_name")); |
4033 | 3.79k | void *invalid_import_from_as_name_var; |
4034 | 3.79k | if ( |
4035 | 3.79k | (invalid_import_from_as_name_var = invalid_import_from_as_name_rule(p)) // invalid_import_from_as_name |
4036 | 3.79k | ) |
4037 | 0 | { |
4038 | 0 | D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_as_name")); |
4039 | 0 | _res = invalid_import_from_as_name_var; |
4040 | 0 | goto done; |
4041 | 0 | } |
4042 | 3.79k | p->mark = _mark; |
4043 | 3.79k | D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ', |
4044 | 3.79k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_as_name")); |
4045 | 3.79k | } |
4046 | 9.02k | { // NAME ['as' NAME] |
4047 | 9.02k | if (p->error_indicator) { |
4048 | 101 | p->level--; |
4049 | 101 | return NULL; |
4050 | 101 | } |
4051 | 8.92k | D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]")); |
4052 | 8.92k | expr_ty a; |
4053 | 8.92k | void *b; |
4054 | 8.92k | if ( |
4055 | 8.92k | (a = _PyPegen_name_token(p)) // NAME |
4056 | 6.81k | && |
4057 | 6.81k | (b = _tmp_21_rule(p), !p->error_indicator) // ['as' NAME] |
4058 | 8.92k | ) |
4059 | 6.81k | { |
4060 | 6.81k | D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]")); |
4061 | 6.81k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
4062 | 6.81k | if (_token == NULL) { |
4063 | 0 | p->level--; |
4064 | 0 | return NULL; |
4065 | 0 | } |
4066 | 6.81k | int _end_lineno = _token->end_lineno; |
4067 | 6.81k | UNUSED(_end_lineno); // Only used by EXTRA macro |
4068 | 6.81k | int _end_col_offset = _token->end_col_offset; |
4069 | 6.81k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
4070 | 6.81k | _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA ); |
4071 | 6.81k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
4072 | 0 | p->error_indicator = 1; |
4073 | 0 | p->level--; |
4074 | 0 | return NULL; |
4075 | 0 | } |
4076 | 6.81k | goto done; |
4077 | 6.81k | } |
4078 | 2.11k | p->mark = _mark; |
4079 | 2.11k | D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ', |
4080 | 2.11k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]")); |
4081 | 2.11k | } |
4082 | 2.11k | _res = NULL; |
4083 | 8.92k | done: |
4084 | 8.92k | p->level--; |
4085 | 8.92k | return _res; |
4086 | 2.11k | } |
4087 | | |
4088 | | // dotted_as_names: ','.dotted_as_name+ |
4089 | | static asdl_alias_seq* |
4090 | | dotted_as_names_rule(Parser *p) |
4091 | 2.72k | { |
4092 | 2.72k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
4093 | 0 | _Pypegen_stack_overflow(p); |
4094 | 0 | } |
4095 | 2.72k | if (p->error_indicator) { |
4096 | 0 | p->level--; |
4097 | 0 | return NULL; |
4098 | 0 | } |
4099 | 2.72k | asdl_alias_seq* _res = NULL; |
4100 | 2.72k | int _mark = p->mark; |
4101 | 2.72k | { // ','.dotted_as_name+ |
4102 | 2.72k | if (p->error_indicator) { |
4103 | 0 | p->level--; |
4104 | 0 | return NULL; |
4105 | 0 | } |
4106 | 2.72k | D(fprintf(stderr, "%*c> dotted_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+")); |
4107 | 2.72k | asdl_alias_seq* a; |
4108 | 2.72k | if ( |
4109 | 2.72k | (a = (asdl_alias_seq*)_gather_23_rule(p)) // ','.dotted_as_name+ |
4110 | 2.72k | ) |
4111 | 2.57k | { |
4112 | 2.57k | D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+")); |
4113 | 2.57k | _res = a; |
4114 | 2.57k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
4115 | 36 | p->error_indicator = 1; |
4116 | 36 | p->level--; |
4117 | 36 | return NULL; |
4118 | 36 | } |
4119 | 2.53k | goto done; |
4120 | 2.57k | } |
4121 | 152 | p->mark = _mark; |
4122 | 152 | D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ', |
4123 | 152 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+")); |
4124 | 152 | } |
4125 | 152 | _res = NULL; |
4126 | 2.68k | done: |
4127 | 2.68k | p->level--; |
4128 | 2.68k | return _res; |
4129 | 152 | } |
4130 | | |
4131 | | // dotted_as_name: invalid_dotted_as_name | dotted_name ['as' NAME] |
4132 | | static alias_ty |
4133 | | dotted_as_name_rule(Parser *p) |
4134 | 7.56k | { |
4135 | 7.56k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
4136 | 0 | _Pypegen_stack_overflow(p); |
4137 | 0 | } |
4138 | 7.56k | if (p->error_indicator) { |
4139 | 0 | p->level--; |
4140 | 0 | return NULL; |
4141 | 0 | } |
4142 | 7.56k | alias_ty _res = NULL; |
4143 | 7.56k | int _mark = p->mark; |
4144 | 7.56k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
4145 | 3 | p->error_indicator = 1; |
4146 | 3 | p->level--; |
4147 | 3 | return NULL; |
4148 | 3 | } |
4149 | 7.55k | int _start_lineno = p->tokens[_mark]->lineno; |
4150 | 7.55k | UNUSED(_start_lineno); // Only used by EXTRA macro |
4151 | 7.55k | int _start_col_offset = p->tokens[_mark]->col_offset; |
4152 | 7.55k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
4153 | 7.55k | if (p->call_invalid_rules) { // invalid_dotted_as_name |
4154 | 2.54k | if (p->error_indicator) { |
4155 | 0 | p->level--; |
4156 | 0 | return NULL; |
4157 | 0 | } |
4158 | 2.54k | D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dotted_as_name")); |
4159 | 2.54k | void *invalid_dotted_as_name_var; |
4160 | 2.54k | if ( |
4161 | 2.54k | (invalid_dotted_as_name_var = invalid_dotted_as_name_rule(p)) // invalid_dotted_as_name |
4162 | 2.54k | ) |
4163 | 0 | { |
4164 | 0 | D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dotted_as_name")); |
4165 | 0 | _res = invalid_dotted_as_name_var; |
4166 | 0 | goto done; |
4167 | 0 | } |
4168 | 2.54k | p->mark = _mark; |
4169 | 2.54k | D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ', |
4170 | 2.54k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dotted_as_name")); |
4171 | 2.54k | } |
4172 | 7.55k | { // dotted_name ['as' NAME] |
4173 | 7.55k | if (p->error_indicator) { |
4174 | 167 | p->level--; |
4175 | 167 | return NULL; |
4176 | 167 | } |
4177 | 7.39k | D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]")); |
4178 | 7.39k | expr_ty a; |
4179 | 7.39k | void *b; |
4180 | 7.39k | if ( |
4181 | 7.39k | (a = dotted_name_rule(p)) // dotted_name |
4182 | 7.31k | && |
4183 | 7.31k | (b = _tmp_21_rule(p), !p->error_indicator) // ['as' NAME] |
4184 | 7.39k | ) |
4185 | 7.31k | { |
4186 | 7.31k | D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]")); |
4187 | 7.31k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
4188 | 7.31k | if (_token == NULL) { |
4189 | 0 | p->level--; |
4190 | 0 | return NULL; |
4191 | 0 | } |
4192 | 7.31k | int _end_lineno = _token->end_lineno; |
4193 | 7.31k | UNUSED(_end_lineno); // Only used by EXTRA macro |
4194 | 7.31k | int _end_col_offset = _token->end_col_offset; |
4195 | 7.31k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
4196 | 7.31k | _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA ); |
4197 | 7.31k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
4198 | 0 | p->error_indicator = 1; |
4199 | 0 | p->level--; |
4200 | 0 | return NULL; |
4201 | 0 | } |
4202 | 7.31k | goto done; |
4203 | 7.31k | } |
4204 | 76 | p->mark = _mark; |
4205 | 76 | D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ', |
4206 | 76 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]")); |
4207 | 76 | } |
4208 | 76 | _res = NULL; |
4209 | 7.39k | done: |
4210 | 7.39k | p->level--; |
4211 | 7.39k | return _res; |
4212 | 76 | } |
4213 | | |
4214 | | // Left-recursive |
4215 | | // dotted_name: dotted_name '.' NAME | NAME |
4216 | | static expr_ty dotted_name_raw(Parser *); |
4217 | | Py_LOCAL_SYMBOL expr_ty |
4218 | | dotted_name_rule(Parser *p) |
4219 | 50.6k | { |
4220 | 50.6k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
4221 | 0 | _Pypegen_stack_overflow(p); |
4222 | 0 | } |
4223 | 50.6k | expr_ty _res = NULL; |
4224 | 50.6k | if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) { |
4225 | 36.8k | p->level--; |
4226 | 36.8k | return _res; |
4227 | 36.8k | } |
4228 | 13.7k | int _mark = p->mark; |
4229 | 13.7k | int _resmark = p->mark; |
4230 | 13.7k | Memo *_memo = _PyPegen_insert_memo_direct(p, _mark, dotted_name_type); |
4231 | 13.7k | if (_memo == NULL) { |
4232 | 0 | p->level--; |
4233 | 0 | return NULL; |
4234 | 0 | } |
4235 | 29.8k | while (1) { |
4236 | 29.8k | _memo->node = _res; |
4237 | 29.8k | _memo->mark = p->mark; |
4238 | 29.8k | p->mark = _mark; |
4239 | 29.8k | void *_raw = dotted_name_raw(p); |
4240 | 29.8k | if (p->error_indicator) { |
4241 | 16 | p->level--; |
4242 | 16 | return NULL; |
4243 | 16 | } |
4244 | 29.8k | if (_raw == NULL || p->mark <= _resmark) |
4245 | 13.7k | break; |
4246 | 16.0k | _resmark = p->mark; |
4247 | 16.0k | _res = _raw; |
4248 | 16.0k | } |
4249 | 13.7k | p->mark = _resmark; |
4250 | 13.7k | p->level--; |
4251 | 13.7k | return _res; |
4252 | 13.7k | } |
4253 | | static expr_ty |
4254 | | dotted_name_raw(Parser *p) |
4255 | 29.8k | { |
4256 | 29.8k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
4257 | 0 | _Pypegen_stack_overflow(p); |
4258 | 0 | } |
4259 | 29.8k | if (p->error_indicator) { |
4260 | 9 | p->level--; |
4261 | 9 | return NULL; |
4262 | 9 | } |
4263 | 29.8k | expr_ty _res = NULL; |
4264 | 29.8k | int _mark = p->mark; |
4265 | 29.8k | { // dotted_name '.' NAME |
4266 | 29.8k | if (p->error_indicator) { |
4267 | 0 | p->level--; |
4268 | 0 | return NULL; |
4269 | 0 | } |
4270 | 29.8k | D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME")); |
4271 | 29.8k | Token * _literal; |
4272 | 29.8k | expr_ty a; |
4273 | 29.8k | expr_ty b; |
4274 | 29.8k | if ( |
4275 | 29.8k | (a = dotted_name_rule(p)) // dotted_name |
4276 | 16.0k | && |
4277 | 16.0k | (_literal = _PyPegen_expect_token(p, 23)) // token='.' |
4278 | 4.64k | && |
4279 | 4.64k | (b = _PyPegen_name_token(p)) // NAME |
4280 | 29.8k | ) |
4281 | 4.61k | { |
4282 | 4.61k | D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME")); |
4283 | 4.61k | _res = _PyPegen_join_names_with_dot ( p , a , b ); |
4284 | 4.61k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
4285 | 0 | p->error_indicator = 1; |
4286 | 0 | p->level--; |
4287 | 0 | return NULL; |
4288 | 0 | } |
4289 | 4.61k | goto done; |
4290 | 4.61k | } |
4291 | 25.2k | p->mark = _mark; |
4292 | 25.2k | D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ', |
4293 | 25.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME")); |
4294 | 25.2k | } |
4295 | 0 | { // NAME |
4296 | 25.2k | if (p->error_indicator) { |
4297 | 7 | p->level--; |
4298 | 7 | return NULL; |
4299 | 7 | } |
4300 | 25.2k | D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME")); |
4301 | 25.2k | expr_ty name_var; |
4302 | 25.2k | if ( |
4303 | 25.2k | (name_var = _PyPegen_name_token(p)) // NAME |
4304 | 25.2k | ) |
4305 | 22.9k | { |
4306 | 22.9k | D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME")); |
4307 | 22.9k | _res = name_var; |
4308 | 22.9k | goto done; |
4309 | 22.9k | } |
4310 | 2.26k | p->mark = _mark; |
4311 | 2.26k | D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ', |
4312 | 2.26k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME")); |
4313 | 2.26k | } |
4314 | 2.26k | _res = NULL; |
4315 | 29.8k | done: |
4316 | 29.8k | p->level--; |
4317 | 29.8k | return _res; |
4318 | 2.26k | } |
4319 | | |
4320 | | // block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block |
4321 | | Py_LOCAL_SYMBOL asdl_stmt_seq* |
4322 | | block_rule(Parser *p) |
4323 | 63.0k | { |
4324 | 63.0k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
4325 | 0 | _Pypegen_stack_overflow(p); |
4326 | 0 | } |
4327 | 63.0k | if (p->error_indicator) { |
4328 | 0 | p->level--; |
4329 | 0 | return NULL; |
4330 | 0 | } |
4331 | 63.0k | asdl_stmt_seq* _res = NULL; |
4332 | 63.0k | if (_PyPegen_is_memoized(p, block_type, &_res)) { |
4333 | 19.9k | p->level--; |
4334 | 19.9k | return _res; |
4335 | 19.9k | } |
4336 | 43.1k | int _mark = p->mark; |
4337 | 43.1k | { // NEWLINE INDENT statements DEDENT |
4338 | 43.1k | if (p->error_indicator) { |
4339 | 0 | p->level--; |
4340 | 0 | return NULL; |
4341 | 0 | } |
4342 | 43.1k | D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT")); |
4343 | 43.1k | asdl_stmt_seq* a; |
4344 | 43.1k | Token * dedent_var; |
4345 | 43.1k | Token * indent_var; |
4346 | 43.1k | Token * newline_var; |
4347 | 43.1k | if ( |
4348 | 43.1k | (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' |
4349 | 10.3k | && |
4350 | 10.3k | (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT' |
4351 | 10.2k | && |
4352 | 10.2k | (a = statements_rule(p)) // statements |
4353 | 9.64k | && |
4354 | 9.64k | (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT' |
4355 | 43.1k | ) |
4356 | 9.57k | { |
4357 | 9.57k | D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT")); |
4358 | 9.57k | _res = a; |
4359 | 9.57k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
4360 | 0 | p->error_indicator = 1; |
4361 | 0 | p->level--; |
4362 | 0 | return NULL; |
4363 | 0 | } |
4364 | 9.57k | goto done; |
4365 | 9.57k | } |
4366 | 33.5k | p->mark = _mark; |
4367 | 33.5k | D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ', |
4368 | 33.5k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT")); |
4369 | 33.5k | } |
4370 | 0 | { // simple_stmts |
4371 | 33.5k | if (p->error_indicator) { |
4372 | 170 | p->level--; |
4373 | 170 | return NULL; |
4374 | 170 | } |
4375 | 33.3k | D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts")); |
4376 | 33.3k | asdl_stmt_seq* simple_stmts_var; |
4377 | 33.3k | if ( |
4378 | 33.3k | (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts |
4379 | 33.3k | ) |
4380 | 30.6k | { |
4381 | 30.6k | D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts")); |
4382 | 30.6k | _res = simple_stmts_var; |
4383 | 30.6k | goto done; |
4384 | 30.6k | } |
4385 | 2.75k | p->mark = _mark; |
4386 | 2.75k | D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ', |
4387 | 2.75k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts")); |
4388 | 2.75k | } |
4389 | 2.75k | if (p->call_invalid_rules) { // invalid_block |
4390 | 2.17k | if (p->error_indicator) { |
4391 | 21 | p->level--; |
4392 | 21 | return NULL; |
4393 | 21 | } |
4394 | 2.15k | D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block")); |
4395 | 2.15k | void *invalid_block_var; |
4396 | 2.15k | if ( |
4397 | 2.15k | (invalid_block_var = invalid_block_rule(p)) // invalid_block |
4398 | 2.15k | ) |
4399 | 0 | { |
4400 | 0 | D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block")); |
4401 | 0 | _res = invalid_block_var; |
4402 | 0 | goto done; |
4403 | 0 | } |
4404 | 2.15k | p->mark = _mark; |
4405 | 2.15k | D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ', |
4406 | 2.15k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block")); |
4407 | 2.15k | } |
4408 | 2.73k | _res = NULL; |
4409 | 42.9k | done: |
4410 | 42.9k | _PyPegen_insert_memo(p, _mark, block_type, _res); |
4411 | 42.9k | p->level--; |
4412 | 42.9k | return _res; |
4413 | 2.73k | } |
4414 | | |
4415 | | // decorators: (('@' named_expression NEWLINE))+ |
4416 | | static asdl_expr_seq* |
4417 | | decorators_rule(Parser *p) |
4418 | 14.9k | { |
4419 | 14.9k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
4420 | 0 | _Pypegen_stack_overflow(p); |
4421 | 0 | } |
4422 | 14.9k | if (p->error_indicator) { |
4423 | 0 | p->level--; |
4424 | 0 | return NULL; |
4425 | 0 | } |
4426 | 14.9k | asdl_expr_seq* _res = NULL; |
4427 | 14.9k | int _mark = p->mark; |
4428 | 14.9k | { // (('@' named_expression NEWLINE))+ |
4429 | 14.9k | if (p->error_indicator) { |
4430 | 0 | p->level--; |
4431 | 0 | return NULL; |
4432 | 0 | } |
4433 | 14.9k | D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+")); |
4434 | 14.9k | asdl_expr_seq* a; |
4435 | 14.9k | if ( |
4436 | 14.9k | (a = (asdl_expr_seq*)_loop1_24_rule(p)) // (('@' named_expression NEWLINE))+ |
4437 | 14.9k | ) |
4438 | 1.57k | { |
4439 | 1.57k | D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+")); |
4440 | 1.57k | _res = a; |
4441 | 1.57k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
4442 | 0 | p->error_indicator = 1; |
4443 | 0 | p->level--; |
4444 | 0 | return NULL; |
4445 | 0 | } |
4446 | 1.57k | goto done; |
4447 | 1.57k | } |
4448 | 13.3k | p->mark = _mark; |
4449 | 13.3k | D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ', |
4450 | 13.3k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+")); |
4451 | 13.3k | } |
4452 | 13.3k | _res = NULL; |
4453 | 14.9k | done: |
4454 | 14.9k | p->level--; |
4455 | 14.9k | return _res; |
4456 | 13.3k | } |
4457 | | |
4458 | | // class_def: decorators class_def_raw | class_def_raw |
4459 | | static stmt_ty |
4460 | | class_def_rule(Parser *p) |
4461 | 3.13k | { |
4462 | 3.13k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
4463 | 0 | _Pypegen_stack_overflow(p); |
4464 | 0 | } |
4465 | 3.13k | if (p->error_indicator) { |
4466 | 0 | p->level--; |
4467 | 0 | return NULL; |
4468 | 0 | } |
4469 | 3.13k | stmt_ty _res = NULL; |
4470 | 3.13k | int _mark = p->mark; |
4471 | 3.13k | { // decorators class_def_raw |
4472 | 3.13k | if (p->error_indicator) { |
4473 | 0 | p->level--; |
4474 | 0 | return NULL; |
4475 | 0 | } |
4476 | 3.13k | D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw")); |
4477 | 3.13k | asdl_expr_seq* a; |
4478 | 3.13k | stmt_ty b; |
4479 | 3.13k | if ( |
4480 | 3.13k | (a = decorators_rule(p)) // decorators |
4481 | 464 | && |
4482 | 464 | (b = class_def_raw_rule(p)) // class_def_raw |
4483 | 3.13k | ) |
4484 | 319 | { |
4485 | 319 | D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw")); |
4486 | 319 | _res = _PyPegen_class_def_decorators ( p , a , b ); |
4487 | 319 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
4488 | 0 | p->error_indicator = 1; |
4489 | 0 | p->level--; |
4490 | 0 | return NULL; |
4491 | 0 | } |
4492 | 319 | goto done; |
4493 | 319 | } |
4494 | 2.81k | p->mark = _mark; |
4495 | 2.81k | D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ', |
4496 | 2.81k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw")); |
4497 | 2.81k | } |
4498 | 0 | { // class_def_raw |
4499 | 2.81k | if (p->error_indicator) { |
4500 | 4 | p->level--; |
4501 | 4 | return NULL; |
4502 | 4 | } |
4503 | 2.81k | D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw")); |
4504 | 2.81k | stmt_ty class_def_raw_var; |
4505 | 2.81k | if ( |
4506 | 2.81k | (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw |
4507 | 2.81k | ) |
4508 | 2.45k | { |
4509 | 2.45k | D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw")); |
4510 | 2.45k | _res = class_def_raw_var; |
4511 | 2.45k | goto done; |
4512 | 2.45k | } |
4513 | 363 | p->mark = _mark; |
4514 | 363 | D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ', |
4515 | 363 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw")); |
4516 | 363 | } |
4517 | 363 | _res = NULL; |
4518 | 3.13k | done: |
4519 | 3.13k | p->level--; |
4520 | 3.13k | return _res; |
4521 | 363 | } |
4522 | | |
4523 | | // class_def_raw: |
4524 | | // | invalid_class_def_raw |
4525 | | // | 'class' NAME type_params? ['(' arguments? ')'] ':' block |
4526 | | static stmt_ty |
4527 | | class_def_raw_rule(Parser *p) |
4528 | 3.27k | { |
4529 | 3.27k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
4530 | 0 | _Pypegen_stack_overflow(p); |
4531 | 0 | } |
4532 | 3.27k | if (p->error_indicator) { |
4533 | 0 | p->level--; |
4534 | 0 | return NULL; |
4535 | 0 | } |
4536 | 3.27k | stmt_ty _res = NULL; |
4537 | 3.27k | int _mark = p->mark; |
4538 | 3.27k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
4539 | 0 | p->error_indicator = 1; |
4540 | 0 | p->level--; |
4541 | 0 | return NULL; |
4542 | 0 | } |
4543 | 3.27k | int _start_lineno = p->tokens[_mark]->lineno; |
4544 | 3.27k | UNUSED(_start_lineno); // Only used by EXTRA macro |
4545 | 3.27k | int _start_col_offset = p->tokens[_mark]->col_offset; |
4546 | 3.27k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
4547 | 3.27k | if (p->call_invalid_rules) { // invalid_class_def_raw |
4548 | 1.12k | if (p->error_indicator) { |
4549 | 0 | p->level--; |
4550 | 0 | return NULL; |
4551 | 0 | } |
4552 | 1.12k | D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw")); |
4553 | 1.12k | void *invalid_class_def_raw_var; |
4554 | 1.12k | if ( |
4555 | 1.12k | (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw |
4556 | 1.12k | ) |
4557 | 0 | { |
4558 | 0 | D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw")); |
4559 | 0 | _res = invalid_class_def_raw_var; |
4560 | 0 | goto done; |
4561 | 0 | } |
4562 | 1.12k | p->mark = _mark; |
4563 | 1.12k | D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ', |
4564 | 1.12k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw")); |
4565 | 1.12k | } |
4566 | 3.27k | { // 'class' NAME type_params? ['(' arguments? ')'] ':' block |
4567 | 3.27k | if (p->error_indicator) { |
4568 | 19 | p->level--; |
4569 | 19 | return NULL; |
4570 | 19 | } |
4571 | 3.25k | D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME type_params? ['(' arguments? ')'] ':' block")); |
4572 | 3.25k | Token * _keyword; |
4573 | 3.25k | Token * _literal; |
4574 | 3.25k | expr_ty a; |
4575 | 3.25k | void *b; |
4576 | 3.25k | asdl_stmt_seq* c; |
4577 | 3.25k | void *t; |
4578 | 3.25k | if ( |
4579 | 3.25k | (_keyword = _PyPegen_expect_token(p, 515)) // token='class' |
4580 | 2.90k | && |
4581 | 2.90k | (a = _PyPegen_name_token(p)) // NAME |
4582 | 2.89k | && |
4583 | 2.89k | (t = type_params_rule(p), !p->error_indicator) // type_params? |
4584 | 2.89k | && |
4585 | 2.89k | (b = _tmp_25_rule(p), !p->error_indicator) // ['(' arguments? ')'] |
4586 | 2.89k | && |
4587 | 2.89k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
4588 | 2.83k | && |
4589 | 2.83k | (c = block_rule(p)) // block |
4590 | 3.25k | ) |
4591 | 2.77k | { |
4592 | 2.77k | D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME type_params? ['(' arguments? ')'] ':' block")); |
4593 | 2.77k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
4594 | 2.77k | if (_token == NULL) { |
4595 | 0 | p->level--; |
4596 | 0 | return NULL; |
4597 | 0 | } |
4598 | 2.77k | int _end_lineno = _token->end_lineno; |
4599 | 2.77k | UNUSED(_end_lineno); // Only used by EXTRA macro |
4600 | 2.77k | int _end_col_offset = _token->end_col_offset; |
4601 | 2.77k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
4602 | 2.77k | _res = _PyAST_ClassDef ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , c , NULL , t , EXTRA ); |
4603 | 2.77k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
4604 | 0 | p->error_indicator = 1; |
4605 | 0 | p->level--; |
4606 | 0 | return NULL; |
4607 | 0 | } |
4608 | 2.77k | goto done; |
4609 | 2.77k | } |
4610 | 489 | p->mark = _mark; |
4611 | 489 | D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ', |
4612 | 489 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME type_params? ['(' arguments? ')'] ':' block")); |
4613 | 489 | } |
4614 | 489 | _res = NULL; |
4615 | 3.25k | done: |
4616 | 3.25k | p->level--; |
4617 | 3.25k | return _res; |
4618 | 489 | } |
4619 | | |
4620 | | // function_def: decorators function_def_raw | function_def_raw |
4621 | | static stmt_ty |
4622 | | function_def_rule(Parser *p) |
4623 | 11.8k | { |
4624 | 11.8k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
4625 | 0 | _Pypegen_stack_overflow(p); |
4626 | 0 | } |
4627 | 11.8k | if (p->error_indicator) { |
4628 | 0 | p->level--; |
4629 | 0 | return NULL; |
4630 | 0 | } |
4631 | 11.8k | stmt_ty _res = NULL; |
4632 | 11.8k | int _mark = p->mark; |
4633 | 11.8k | { // decorators function_def_raw |
4634 | 11.8k | if (p->error_indicator) { |
4635 | 0 | p->level--; |
4636 | 0 | return NULL; |
4637 | 0 | } |
4638 | 11.8k | D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw")); |
4639 | 11.8k | asdl_expr_seq* d; |
4640 | 11.8k | stmt_ty f; |
4641 | 11.8k | if ( |
4642 | 11.8k | (d = decorators_rule(p)) // decorators |
4643 | 1.10k | && |
4644 | 1.10k | (f = function_def_raw_rule(p)) // function_def_raw |
4645 | 11.8k | ) |
4646 | 638 | { |
4647 | 638 | D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw")); |
4648 | 638 | _res = _PyPegen_function_def_decorators ( p , d , f ); |
4649 | 638 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
4650 | 0 | p->error_indicator = 1; |
4651 | 0 | p->level--; |
4652 | 0 | return NULL; |
4653 | 0 | } |
4654 | 638 | goto done; |
4655 | 638 | } |
4656 | 11.1k | p->mark = _mark; |
4657 | 11.1k | D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ', |
4658 | 11.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw")); |
4659 | 11.1k | } |
4660 | 0 | { // function_def_raw |
4661 | 11.1k | if (p->error_indicator) { |
4662 | 38 | p->level--; |
4663 | 38 | return NULL; |
4664 | 38 | } |
4665 | 11.1k | D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw")); |
4666 | 11.1k | stmt_ty function_def_raw_var; |
4667 | 11.1k | if ( |
4668 | 11.1k | (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw |
4669 | 11.1k | ) |
4670 | 8.58k | { |
4671 | 8.58k | D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw")); |
4672 | 8.58k | _res = function_def_raw_var; |
4673 | 8.58k | goto done; |
4674 | 8.58k | } |
4675 | 2.54k | p->mark = _mark; |
4676 | 2.54k | D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ', |
4677 | 2.54k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw")); |
4678 | 2.54k | } |
4679 | 2.54k | _res = NULL; |
4680 | 11.7k | done: |
4681 | 11.7k | p->level--; |
4682 | 11.7k | return _res; |
4683 | 2.54k | } |
4684 | | |
4685 | | // function_def_raw: |
4686 | | // | invalid_def_raw |
4687 | | // | 'def' NAME type_params? '(' params? ')' ['->' expression] ':' func_type_comment? block |
4688 | | // | 'async' 'def' NAME type_params? '(' params? ')' ['->' expression] ':' func_type_comment? block |
4689 | | static stmt_ty |
4690 | | function_def_raw_rule(Parser *p) |
4691 | 12.2k | { |
4692 | 12.2k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
4693 | 0 | _Pypegen_stack_overflow(p); |
4694 | 0 | } |
4695 | 12.2k | if (p->error_indicator) { |
4696 | 0 | p->level--; |
4697 | 0 | return NULL; |
4698 | 0 | } |
4699 | 12.2k | stmt_ty _res = NULL; |
4700 | 12.2k | int _mark = p->mark; |
4701 | 12.2k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
4702 | 0 | p->error_indicator = 1; |
4703 | 0 | p->level--; |
4704 | 0 | return NULL; |
4705 | 0 | } |
4706 | 12.2k | int _start_lineno = p->tokens[_mark]->lineno; |
4707 | 12.2k | UNUSED(_start_lineno); // Only used by EXTRA macro |
4708 | 12.2k | int _start_col_offset = p->tokens[_mark]->col_offset; |
4709 | 12.2k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
4710 | 12.2k | if (p->call_invalid_rules) { // invalid_def_raw |
4711 | 3.29k | if (p->error_indicator) { |
4712 | 0 | p->level--; |
4713 | 0 | return NULL; |
4714 | 0 | } |
4715 | 3.29k | D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw")); |
4716 | 3.29k | void *invalid_def_raw_var; |
4717 | 3.29k | if ( |
4718 | 3.29k | (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw |
4719 | 3.29k | ) |
4720 | 2.00k | { |
4721 | 2.00k | D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw")); |
4722 | 2.00k | _res = invalid_def_raw_var; |
4723 | 2.00k | goto done; |
4724 | 2.00k | } |
4725 | 1.29k | p->mark = _mark; |
4726 | 1.29k | D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ', |
4727 | 1.29k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw")); |
4728 | 1.29k | } |
4729 | 10.2k | { // 'def' NAME type_params? '(' params? ')' ['->' expression] ':' func_type_comment? block |
4730 | 10.2k | if (p->error_indicator) { |
4731 | 244 | p->level--; |
4732 | 244 | return NULL; |
4733 | 244 | } |
4734 | 9.99k | D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def' NAME type_params? '(' params? ')' ['->' expression] ':' func_type_comment? block")); |
4735 | 9.99k | Token * _keyword; |
4736 | 9.99k | Token * _literal; |
4737 | 9.99k | Token * _literal_1; |
4738 | 9.99k | Token * _literal_2; |
4739 | 9.99k | void *a; |
4740 | 9.99k | asdl_stmt_seq* b; |
4741 | 9.99k | expr_ty n; |
4742 | 9.99k | void *params; |
4743 | 9.99k | void *t; |
4744 | 9.99k | void *tc; |
4745 | 9.99k | if ( |
4746 | 9.99k | (_keyword = _PyPegen_expect_token(p, 512)) // token='def' |
4747 | 7.10k | && |
4748 | 7.10k | (n = _PyPegen_name_token(p)) // NAME |
4749 | 7.08k | && |
4750 | 7.08k | (t = type_params_rule(p), !p->error_indicator) // type_params? |
4751 | 7.06k | && |
4752 | 7.06k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
4753 | 6.98k | && |
4754 | 6.98k | (params = params_rule(p), !p->error_indicator) // params? |
4755 | 6.94k | && |
4756 | 6.94k | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
4757 | 6.62k | && |
4758 | 6.62k | (a = _tmp_26_rule(p), !p->error_indicator) // ['->' expression] |
4759 | 6.61k | && |
4760 | 6.61k | (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':' |
4761 | 6.55k | && |
4762 | 6.55k | (tc = func_type_comment_rule(p), !p->error_indicator) // func_type_comment? |
4763 | 6.55k | && |
4764 | 6.55k | (b = block_rule(p)) // block |
4765 | 9.99k | ) |
4766 | 6.40k | { |
4767 | 6.40k | D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def' NAME type_params? '(' params? ')' ['->' expression] ':' func_type_comment? block")); |
4768 | 6.40k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
4769 | 6.40k | if (_token == NULL) { |
4770 | 0 | p->level--; |
4771 | 0 | return NULL; |
4772 | 0 | } |
4773 | 6.40k | int _end_lineno = _token->end_lineno; |
4774 | 6.40k | UNUSED(_end_lineno); // Only used by EXTRA macro |
4775 | 6.40k | int _end_col_offset = _token->end_col_offset; |
4776 | 6.40k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
4777 | 6.40k | _res = _PyAST_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , t , EXTRA ); |
4778 | 6.40k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
4779 | 0 | p->error_indicator = 1; |
4780 | 0 | p->level--; |
4781 | 0 | return NULL; |
4782 | 0 | } |
4783 | 6.40k | goto done; |
4784 | 6.40k | } |
4785 | 3.58k | p->mark = _mark; |
4786 | 3.58k | D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ', |
4787 | 3.58k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME type_params? '(' params? ')' ['->' expression] ':' func_type_comment? block")); |
4788 | 3.58k | } |
4789 | 0 | { // 'async' 'def' NAME type_params? '(' params? ')' ['->' expression] ':' func_type_comment? block |
4790 | 3.58k | if (p->error_indicator) { |
4791 | 78 | p->level--; |
4792 | 78 | return NULL; |
4793 | 78 | } |
4794 | 3.50k | D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async' 'def' NAME type_params? '(' params? ')' ['->' expression] ':' func_type_comment? block")); |
4795 | 3.50k | Token * _keyword; |
4796 | 3.50k | Token * _keyword_1; |
4797 | 3.50k | Token * _literal; |
4798 | 3.50k | Token * _literal_1; |
4799 | 3.50k | Token * _literal_2; |
4800 | 3.50k | void *a; |
4801 | 3.50k | asdl_stmt_seq* b; |
4802 | 3.50k | expr_ty n; |
4803 | 3.50k | void *params; |
4804 | 3.50k | void *t; |
4805 | 3.50k | void *tc; |
4806 | 3.50k | if ( |
4807 | 3.50k | (_keyword = _PyPegen_expect_token(p, 513)) // token='async' |
4808 | 1.90k | && |
4809 | 1.90k | (_keyword_1 = _PyPegen_expect_token(p, 512)) // token='def' |
4810 | 863 | && |
4811 | 863 | (n = _PyPegen_name_token(p)) // NAME |
4812 | 860 | && |
4813 | 860 | (t = type_params_rule(p), !p->error_indicator) // type_params? |
4814 | 859 | && |
4815 | 859 | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
4816 | 856 | && |
4817 | 856 | (params = params_rule(p), !p->error_indicator) // params? |
4818 | 855 | && |
4819 | 855 | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
4820 | 846 | && |
4821 | 846 | (a = _tmp_26_rule(p), !p->error_indicator) // ['->' expression] |
4822 | 845 | && |
4823 | 845 | (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':' |
4824 | 844 | && |
4825 | 844 | (tc = func_type_comment_rule(p), !p->error_indicator) // func_type_comment? |
4826 | 843 | && |
4827 | 843 | (b = block_rule(p)) // block |
4828 | 3.50k | ) |
4829 | 817 | { |
4830 | 817 | D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async' 'def' NAME type_params? '(' params? ')' ['->' expression] ':' func_type_comment? block")); |
4831 | 817 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
4832 | 817 | if (_token == NULL) { |
4833 | 0 | p->level--; |
4834 | 0 | return NULL; |
4835 | 0 | } |
4836 | 817 | int _end_lineno = _token->end_lineno; |
4837 | 817 | UNUSED(_end_lineno); // Only used by EXTRA macro |
4838 | 817 | int _end_col_offset = _token->end_col_offset; |
4839 | 817 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
4840 | 817 | _res = CHECK_VERSION ( stmt_ty , 5 , "Async functions are" , _PyAST_AsyncFunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , t , EXTRA ) ); |
4841 | 817 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
4842 | 0 | p->error_indicator = 1; |
4843 | 0 | p->level--; |
4844 | 0 | return NULL; |
4845 | 0 | } |
4846 | 817 | goto done; |
4847 | 817 | } |
4848 | 2.69k | p->mark = _mark; |
4849 | 2.69k | D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ', |
4850 | 2.69k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async' 'def' NAME type_params? '(' params? ')' ['->' expression] ':' func_type_comment? block")); |
4851 | 2.69k | } |
4852 | 2.69k | _res = NULL; |
4853 | 11.9k | done: |
4854 | 11.9k | p->level--; |
4855 | 11.9k | return _res; |
4856 | 2.69k | } |
4857 | | |
4858 | | // params: invalid_parameters | parameters |
4859 | | Py_LOCAL_SYMBOL arguments_ty |
4860 | | params_rule(Parser *p) |
4861 | 12.4k | { |
4862 | 12.4k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
4863 | 0 | _Pypegen_stack_overflow(p); |
4864 | 0 | } |
4865 | 12.4k | if (p->error_indicator) { |
4866 | 0 | p->level--; |
4867 | 0 | return NULL; |
4868 | 0 | } |
4869 | 12.4k | arguments_ty _res = NULL; |
4870 | 12.4k | int _mark = p->mark; |
4871 | 12.4k | if (p->call_invalid_rules) { // invalid_parameters |
4872 | 4.85k | if (p->error_indicator) { |
4873 | 0 | p->level--; |
4874 | 0 | return NULL; |
4875 | 0 | } |
4876 | 4.85k | D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters")); |
4877 | 4.85k | void *invalid_parameters_var; |
4878 | 4.85k | if ( |
4879 | 4.85k | (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters |
4880 | 4.85k | ) |
4881 | 0 | { |
4882 | 0 | D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters")); |
4883 | 0 | _res = invalid_parameters_var; |
4884 | 0 | goto done; |
4885 | 0 | } |
4886 | 4.85k | p->mark = _mark; |
4887 | 4.85k | D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ', |
4888 | 4.85k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters")); |
4889 | 4.85k | } |
4890 | 12.4k | { // parameters |
4891 | 12.4k | if (p->error_indicator) { |
4892 | 39 | p->level--; |
4893 | 39 | return NULL; |
4894 | 39 | } |
4895 | 12.4k | D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters")); |
4896 | 12.4k | arguments_ty parameters_var; |
4897 | 12.4k | if ( |
4898 | 12.4k | (parameters_var = parameters_rule(p)) // parameters |
4899 | 12.4k | ) |
4900 | 9.70k | { |
4901 | 9.70k | D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters")); |
4902 | 9.70k | _res = parameters_var; |
4903 | 9.70k | goto done; |
4904 | 9.70k | } |
4905 | 2.75k | p->mark = _mark; |
4906 | 2.75k | D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ', |
4907 | 2.75k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters")); |
4908 | 2.75k | } |
4909 | 2.75k | _res = NULL; |
4910 | 12.4k | done: |
4911 | 12.4k | p->level--; |
4912 | 12.4k | return _res; |
4913 | 2.75k | } |
4914 | | |
4915 | | // parameters: |
4916 | | // | slash_no_default param_no_default* param_with_default* star_etc? |
4917 | | // | slash_with_default param_with_default* star_etc? |
4918 | | // | param_no_default+ param_with_default* star_etc? |
4919 | | // | param_with_default+ star_etc? |
4920 | | // | star_etc |
4921 | | static arguments_ty |
4922 | | parameters_rule(Parser *p) |
4923 | 12.4k | { |
4924 | 12.4k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
4925 | 0 | _Pypegen_stack_overflow(p); |
4926 | 0 | } |
4927 | 12.4k | if (p->error_indicator) { |
4928 | 0 | p->level--; |
4929 | 0 | return NULL; |
4930 | 0 | } |
4931 | 12.4k | arguments_ty _res = NULL; |
4932 | 12.4k | int _mark = p->mark; |
4933 | 12.4k | { // slash_no_default param_no_default* param_with_default* star_etc? |
4934 | 12.4k | if (p->error_indicator) { |
4935 | 0 | p->level--; |
4936 | 0 | return NULL; |
4937 | 0 | } |
4938 | 12.4k | D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?")); |
4939 | 12.4k | asdl_arg_seq* a; |
4940 | 12.4k | asdl_arg_seq* b; |
4941 | 12.4k | asdl_seq * c; |
4942 | 12.4k | void *d; |
4943 | 12.4k | if ( |
4944 | 12.4k | (a = slash_no_default_rule(p)) // slash_no_default |
4945 | 794 | && |
4946 | 794 | (b = (asdl_arg_seq*)_loop0_27_rule(p)) // param_no_default* |
4947 | 794 | && |
4948 | 794 | (c = _loop0_28_rule(p)) // param_with_default* |
4949 | 793 | && |
4950 | 793 | (d = star_etc_rule(p), !p->error_indicator) // star_etc? |
4951 | 12.4k | ) |
4952 | 791 | { |
4953 | 791 | D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?")); |
4954 | 791 | _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , a , NULL , b , c , d ) ); |
4955 | 791 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
4956 | 0 | p->error_indicator = 1; |
4957 | 0 | p->level--; |
4958 | 0 | return NULL; |
4959 | 0 | } |
4960 | 791 | goto done; |
4961 | 791 | } |
4962 | 11.6k | p->mark = _mark; |
4963 | 11.6k | D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ', |
4964 | 11.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?")); |
4965 | 11.6k | } |
4966 | 0 | { // slash_with_default param_with_default* star_etc? |
4967 | 11.6k | if (p->error_indicator) { |
4968 | 14 | p->level--; |
4969 | 14 | return NULL; |
4970 | 14 | } |
4971 | 11.6k | D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?")); |
4972 | 11.6k | SlashWithDefault* a; |
4973 | 11.6k | asdl_seq * b; |
4974 | 11.6k | void *c; |
4975 | 11.6k | if ( |
4976 | 11.6k | (a = slash_with_default_rule(p)) // slash_with_default |
4977 | 530 | && |
4978 | 530 | (b = _loop0_28_rule(p)) // param_with_default* |
4979 | 530 | && |
4980 | 530 | (c = star_etc_rule(p), !p->error_indicator) // star_etc? |
4981 | 11.6k | ) |
4982 | 528 | { |
4983 | 528 | D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?")); |
4984 | 528 | _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , NULL , a , NULL , b , c ) ); |
4985 | 528 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
4986 | 0 | p->error_indicator = 1; |
4987 | 0 | p->level--; |
4988 | 0 | return NULL; |
4989 | 0 | } |
4990 | 528 | goto done; |
4991 | 528 | } |
4992 | 11.1k | p->mark = _mark; |
4993 | 11.1k | D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ', |
4994 | 11.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?")); |
4995 | 11.1k | } |
4996 | 0 | { // param_no_default+ param_with_default* star_etc? |
4997 | 11.1k | if (p->error_indicator) { |
4998 | 13 | p->level--; |
4999 | 13 | return NULL; |
5000 | 13 | } |
5001 | 11.1k | D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?")); |
5002 | 11.1k | asdl_arg_seq* a; |
5003 | 11.1k | asdl_seq * b; |
5004 | 11.1k | void *c; |
5005 | 11.1k | if ( |
5006 | 11.1k | (a = (asdl_arg_seq*)_loop1_29_rule(p)) // param_no_default+ |
5007 | 3.68k | && |
5008 | 3.68k | (b = _loop0_28_rule(p)) // param_with_default* |
5009 | 3.68k | && |
5010 | 3.68k | (c = star_etc_rule(p), !p->error_indicator) // star_etc? |
5011 | 11.1k | ) |
5012 | 3.68k | { |
5013 | 3.68k | D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?")); |
5014 | 3.68k | _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c ); |
5015 | 3.68k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5016 | 0 | p->error_indicator = 1; |
5017 | 0 | p->level--; |
5018 | 0 | return NULL; |
5019 | 0 | } |
5020 | 3.68k | goto done; |
5021 | 3.68k | } |
5022 | 7.42k | p->mark = _mark; |
5023 | 7.42k | D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ', |
5024 | 7.42k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?")); |
5025 | 7.42k | } |
5026 | 0 | { // param_with_default+ star_etc? |
5027 | 7.42k | if (p->error_indicator) { |
5028 | 2 | p->level--; |
5029 | 2 | return NULL; |
5030 | 2 | } |
5031 | 7.42k | D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?")); |
5032 | 7.42k | asdl_seq * a; |
5033 | 7.42k | void *b; |
5034 | 7.42k | if ( |
5035 | 7.42k | (a = _loop1_30_rule(p)) // param_with_default+ |
5036 | 890 | && |
5037 | 890 | (b = star_etc_rule(p), !p->error_indicator) // star_etc? |
5038 | 7.42k | ) |
5039 | 889 | { |
5040 | 889 | D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?")); |
5041 | 889 | _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b ); |
5042 | 889 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5043 | 0 | p->error_indicator = 1; |
5044 | 0 | p->level--; |
5045 | 0 | return NULL; |
5046 | 0 | } |
5047 | 889 | goto done; |
5048 | 889 | } |
5049 | 6.53k | p->mark = _mark; |
5050 | 6.53k | D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ', |
5051 | 6.53k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?")); |
5052 | 6.53k | } |
5053 | 0 | { // star_etc |
5054 | 6.53k | if (p->error_indicator) { |
5055 | 1 | p->level--; |
5056 | 1 | return NULL; |
5057 | 1 | } |
5058 | 6.53k | D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc")); |
5059 | 6.53k | StarEtc* a; |
5060 | 6.53k | if ( |
5061 | 6.53k | (a = star_etc_rule(p)) // star_etc |
5062 | 6.53k | ) |
5063 | 3.81k | { |
5064 | 3.81k | D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc")); |
5065 | 3.81k | _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a ); |
5066 | 3.81k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5067 | 0 | p->error_indicator = 1; |
5068 | 0 | p->level--; |
5069 | 0 | return NULL; |
5070 | 0 | } |
5071 | 3.81k | goto done; |
5072 | 3.81k | } |
5073 | 2.72k | p->mark = _mark; |
5074 | 2.72k | D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ', |
5075 | 2.72k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc")); |
5076 | 2.72k | } |
5077 | 2.72k | _res = NULL; |
5078 | 12.4k | done: |
5079 | 12.4k | p->level--; |
5080 | 12.4k | return _res; |
5081 | 2.72k | } |
5082 | | |
5083 | | // slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')' |
5084 | | Py_LOCAL_SYMBOL asdl_arg_seq* |
5085 | | slash_no_default_rule(Parser *p) |
5086 | 26.9k | { |
5087 | 26.9k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
5088 | 0 | _Pypegen_stack_overflow(p); |
5089 | 0 | } |
5090 | 26.9k | if (p->error_indicator) { |
5091 | 0 | p->level--; |
5092 | 0 | return NULL; |
5093 | 0 | } |
5094 | 26.9k | asdl_arg_seq* _res = NULL; |
5095 | 26.9k | int _mark = p->mark; |
5096 | 26.9k | { // param_no_default+ '/' ',' |
5097 | 26.9k | if (p->error_indicator) { |
5098 | 0 | p->level--; |
5099 | 0 | return NULL; |
5100 | 0 | } |
5101 | 26.9k | D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','")); |
5102 | 26.9k | Token * _literal; |
5103 | 26.9k | Token * _literal_1; |
5104 | 26.9k | asdl_arg_seq* a; |
5105 | 26.9k | if ( |
5106 | 26.9k | (a = (asdl_arg_seq*)_loop1_29_rule(p)) // param_no_default+ |
5107 | 7.00k | && |
5108 | 7.00k | (_literal = _PyPegen_expect_token(p, 17)) // token='/' |
5109 | 1.61k | && |
5110 | 1.61k | (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' |
5111 | 26.9k | ) |
5112 | 155 | { |
5113 | 155 | D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','")); |
5114 | 155 | _res = a; |
5115 | 155 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5116 | 0 | p->error_indicator = 1; |
5117 | 0 | p->level--; |
5118 | 0 | return NULL; |
5119 | 0 | } |
5120 | 155 | goto done; |
5121 | 155 | } |
5122 | 26.8k | p->mark = _mark; |
5123 | 26.8k | D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ', |
5124 | 26.8k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','")); |
5125 | 26.8k | } |
5126 | 0 | { // param_no_default+ '/' &')' |
5127 | 26.8k | if (p->error_indicator) { |
5128 | 12 | p->level--; |
5129 | 12 | return NULL; |
5130 | 12 | } |
5131 | 26.8k | D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'")); |
5132 | 26.8k | Token * _literal; |
5133 | 26.8k | asdl_arg_seq* a; |
5134 | 26.8k | if ( |
5135 | 26.8k | (a = (asdl_arg_seq*)_loop1_29_rule(p)) // param_no_default+ |
5136 | 6.84k | && |
5137 | 6.84k | (_literal = _PyPegen_expect_token(p, 17)) // token='/' |
5138 | 1.45k | && |
5139 | 1.45k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')' |
5140 | 26.8k | ) |
5141 | 1.42k | { |
5142 | 1.42k | D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'")); |
5143 | 1.42k | _res = a; |
5144 | 1.42k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5145 | 0 | p->error_indicator = 1; |
5146 | 0 | p->level--; |
5147 | 0 | return NULL; |
5148 | 0 | } |
5149 | 1.42k | goto done; |
5150 | 1.42k | } |
5151 | 25.3k | p->mark = _mark; |
5152 | 25.3k | D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ', |
5153 | 25.3k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'")); |
5154 | 25.3k | } |
5155 | 25.3k | _res = NULL; |
5156 | 26.9k | done: |
5157 | 26.9k | p->level--; |
5158 | 26.9k | return _res; |
5159 | 25.3k | } |
5160 | | |
5161 | | // slash_with_default: |
5162 | | // | param_no_default* param_with_default+ '/' ',' |
5163 | | // | param_no_default* param_with_default+ '/' &')' |
5164 | | Py_LOCAL_SYMBOL SlashWithDefault* |
5165 | | slash_with_default_rule(Parser *p) |
5166 | 25.6k | { |
5167 | 25.6k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
5168 | 0 | _Pypegen_stack_overflow(p); |
5169 | 0 | } |
5170 | 25.6k | if (p->error_indicator) { |
5171 | 0 | p->level--; |
5172 | 0 | return NULL; |
5173 | 0 | } |
5174 | 25.6k | SlashWithDefault* _res = NULL; |
5175 | 25.6k | int _mark = p->mark; |
5176 | 25.6k | { // param_no_default* param_with_default+ '/' ',' |
5177 | 25.6k | if (p->error_indicator) { |
5178 | 0 | p->level--; |
5179 | 0 | return NULL; |
5180 | 0 | } |
5181 | 25.6k | D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','")); |
5182 | 25.6k | Token * _literal; |
5183 | 25.6k | Token * _literal_1; |
5184 | 25.6k | asdl_seq * a; |
5185 | 25.6k | asdl_seq * b; |
5186 | 25.6k | if ( |
5187 | 25.6k | (a = _loop0_27_rule(p)) // param_no_default* |
5188 | 25.6k | && |
5189 | 25.6k | (b = _loop1_30_rule(p)) // param_with_default+ |
5190 | 4.93k | && |
5191 | 4.93k | (_literal = _PyPegen_expect_token(p, 17)) // token='/' |
5192 | 1.58k | && |
5193 | 1.58k | (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' |
5194 | 25.6k | ) |
5195 | 1.42k | { |
5196 | 1.42k | D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','")); |
5197 | 1.42k | _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq* ) a , b ); |
5198 | 1.42k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5199 | 0 | p->error_indicator = 1; |
5200 | 0 | p->level--; |
5201 | 0 | return NULL; |
5202 | 0 | } |
5203 | 1.42k | goto done; |
5204 | 1.42k | } |
5205 | 24.2k | p->mark = _mark; |
5206 | 24.2k | D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ', |
5207 | 24.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','")); |
5208 | 24.2k | } |
5209 | 0 | { // param_no_default* param_with_default+ '/' &')' |
5210 | 24.2k | if (p->error_indicator) { |
5211 | 16 | p->level--; |
5212 | 16 | return NULL; |
5213 | 16 | } |
5214 | 24.2k | D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'")); |
5215 | 24.2k | Token * _literal; |
5216 | 24.2k | asdl_seq * a; |
5217 | 24.2k | asdl_seq * b; |
5218 | 24.2k | if ( |
5219 | 24.2k | (a = _loop0_27_rule(p)) // param_no_default* |
5220 | 24.2k | && |
5221 | 24.2k | (b = _loop1_30_rule(p)) // param_with_default+ |
5222 | 3.50k | && |
5223 | 3.50k | (_literal = _PyPegen_expect_token(p, 17)) // token='/' |
5224 | 154 | && |
5225 | 154 | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')' |
5226 | 24.2k | ) |
5227 | 136 | { |
5228 | 136 | D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'")); |
5229 | 136 | _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq* ) a , b ); |
5230 | 136 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5231 | 0 | p->error_indicator = 1; |
5232 | 0 | p->level--; |
5233 | 0 | return NULL; |
5234 | 0 | } |
5235 | 136 | goto done; |
5236 | 136 | } |
5237 | 24.0k | p->mark = _mark; |
5238 | 24.0k | D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ', |
5239 | 24.0k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'")); |
5240 | 24.0k | } |
5241 | 24.0k | _res = NULL; |
5242 | 25.6k | done: |
5243 | 25.6k | p->level--; |
5244 | 25.6k | return _res; |
5245 | 24.0k | } |
5246 | | |
5247 | | // star_etc: |
5248 | | // | invalid_star_etc |
5249 | | // | '*' param_no_default param_maybe_default* kwds? |
5250 | | // | '*' param_no_default_star_annotation param_maybe_default* kwds? |
5251 | | // | '*' ',' param_maybe_default+ kwds? |
5252 | | // | kwds |
5253 | | static StarEtc* |
5254 | | star_etc_rule(Parser *p) |
5255 | 12.4k | { |
5256 | 12.4k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
5257 | 0 | _Pypegen_stack_overflow(p); |
5258 | 0 | } |
5259 | 12.4k | if (p->error_indicator) { |
5260 | 1 | p->level--; |
5261 | 1 | return NULL; |
5262 | 1 | } |
5263 | 12.4k | StarEtc* _res = NULL; |
5264 | 12.4k | int _mark = p->mark; |
5265 | 12.4k | if (p->call_invalid_rules) { // invalid_star_etc |
5266 | 4.81k | if (p->error_indicator) { |
5267 | 0 | p->level--; |
5268 | 0 | return NULL; |
5269 | 0 | } |
5270 | 4.81k | D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc")); |
5271 | 4.81k | void *invalid_star_etc_var; |
5272 | 4.81k | if ( |
5273 | 4.81k | (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc |
5274 | 4.81k | ) |
5275 | 0 | { |
5276 | 0 | D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc")); |
5277 | 0 | _res = invalid_star_etc_var; |
5278 | 0 | goto done; |
5279 | 0 | } |
5280 | 4.81k | p->mark = _mark; |
5281 | 4.81k | D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ', |
5282 | 4.81k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc")); |
5283 | 4.81k | } |
5284 | 12.4k | { // '*' param_no_default param_maybe_default* kwds? |
5285 | 12.4k | if (p->error_indicator) { |
5286 | 10 | p->level--; |
5287 | 10 | return NULL; |
5288 | 10 | } |
5289 | 12.4k | D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?")); |
5290 | 12.4k | Token * _literal; |
5291 | 12.4k | arg_ty a; |
5292 | 12.4k | asdl_seq * b; |
5293 | 12.4k | void *c; |
5294 | 12.4k | if ( |
5295 | 12.4k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
5296 | 3.17k | && |
5297 | 3.17k | (a = param_no_default_rule(p)) // param_no_default |
5298 | 703 | && |
5299 | 703 | (b = _loop0_31_rule(p)) // param_maybe_default* |
5300 | 703 | && |
5301 | 703 | (c = kwds_rule(p), !p->error_indicator) // kwds? |
5302 | 12.4k | ) |
5303 | 700 | { |
5304 | 700 | D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?")); |
5305 | 700 | _res = _PyPegen_star_etc ( p , a , b , c ); |
5306 | 700 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5307 | 0 | p->error_indicator = 1; |
5308 | 0 | p->level--; |
5309 | 0 | return NULL; |
5310 | 0 | } |
5311 | 700 | goto done; |
5312 | 700 | } |
5313 | 11.7k | p->mark = _mark; |
5314 | 11.7k | D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ', |
5315 | 11.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?")); |
5316 | 11.7k | } |
5317 | 0 | { // '*' param_no_default_star_annotation param_maybe_default* kwds? |
5318 | 11.7k | if (p->error_indicator) { |
5319 | 9 | p->level--; |
5320 | 9 | return NULL; |
5321 | 9 | } |
5322 | 11.7k | D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default_star_annotation param_maybe_default* kwds?")); |
5323 | 11.7k | Token * _literal; |
5324 | 11.7k | arg_ty a; |
5325 | 11.7k | asdl_seq * b; |
5326 | 11.7k | void *c; |
5327 | 11.7k | if ( |
5328 | 11.7k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
5329 | 2.46k | && |
5330 | 2.46k | (a = param_no_default_star_annotation_rule(p)) // param_no_default_star_annotation |
5331 | 1.48k | && |
5332 | 1.48k | (b = _loop0_31_rule(p)) // param_maybe_default* |
5333 | 1.48k | && |
5334 | 1.48k | (c = kwds_rule(p), !p->error_indicator) // kwds? |
5335 | 11.7k | ) |
5336 | 1.48k | { |
5337 | 1.48k | D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default_star_annotation param_maybe_default* kwds?")); |
5338 | 1.48k | _res = _PyPegen_star_etc ( p , a , b , c ); |
5339 | 1.48k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5340 | 0 | p->error_indicator = 1; |
5341 | 0 | p->level--; |
5342 | 0 | return NULL; |
5343 | 0 | } |
5344 | 1.48k | goto done; |
5345 | 1.48k | } |
5346 | 10.2k | p->mark = _mark; |
5347 | 10.2k | D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ', |
5348 | 10.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default_star_annotation param_maybe_default* kwds?")); |
5349 | 10.2k | } |
5350 | 0 | { // '*' ',' param_maybe_default+ kwds? |
5351 | 10.2k | if (p->error_indicator) { |
5352 | 5 | p->level--; |
5353 | 5 | return NULL; |
5354 | 5 | } |
5355 | 10.2k | D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?")); |
5356 | 10.2k | Token * _literal; |
5357 | 10.2k | Token * _literal_1; |
5358 | 10.2k | asdl_seq * b; |
5359 | 10.2k | void *c; |
5360 | 10.2k | if ( |
5361 | 10.2k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
5362 | 974 | && |
5363 | 974 | (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' |
5364 | 915 | && |
5365 | 915 | (b = _loop1_32_rule(p)) // param_maybe_default+ |
5366 | 854 | && |
5367 | 854 | (c = kwds_rule(p), !p->error_indicator) // kwds? |
5368 | 10.2k | ) |
5369 | 853 | { |
5370 | 853 | D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?")); |
5371 | 853 | _res = _PyPegen_star_etc ( p , NULL , b , c ); |
5372 | 853 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5373 | 0 | p->error_indicator = 1; |
5374 | 0 | p->level--; |
5375 | 0 | return NULL; |
5376 | 0 | } |
5377 | 853 | goto done; |
5378 | 853 | } |
5379 | 9.37k | p->mark = _mark; |
5380 | 9.37k | D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ', |
5381 | 9.37k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?")); |
5382 | 9.37k | } |
5383 | 0 | { // kwds |
5384 | 9.37k | if (p->error_indicator) { |
5385 | 7 | p->level--; |
5386 | 7 | return NULL; |
5387 | 7 | } |
5388 | 9.37k | D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds")); |
5389 | 9.37k | arg_ty a; |
5390 | 9.37k | if ( |
5391 | 9.37k | (a = kwds_rule(p)) // kwds |
5392 | 9.37k | ) |
5393 | 1.00k | { |
5394 | 1.00k | D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds")); |
5395 | 1.00k | _res = _PyPegen_star_etc ( p , NULL , NULL , a ); |
5396 | 1.00k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5397 | 0 | p->error_indicator = 1; |
5398 | 0 | p->level--; |
5399 | 0 | return NULL; |
5400 | 0 | } |
5401 | 1.00k | goto done; |
5402 | 1.00k | } |
5403 | 8.36k | p->mark = _mark; |
5404 | 8.36k | D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ', |
5405 | 8.36k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds")); |
5406 | 8.36k | } |
5407 | 8.36k | _res = NULL; |
5408 | 12.4k | done: |
5409 | 12.4k | p->level--; |
5410 | 12.4k | return _res; |
5411 | 8.36k | } |
5412 | | |
5413 | | // kwds: invalid_kwds | '**' param_no_default |
5414 | | static arg_ty |
5415 | | kwds_rule(Parser *p) |
5416 | 12.4k | { |
5417 | 12.4k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
5418 | 0 | _Pypegen_stack_overflow(p); |
5419 | 0 | } |
5420 | 12.4k | if (p->error_indicator) { |
5421 | 4 | p->level--; |
5422 | 4 | return NULL; |
5423 | 4 | } |
5424 | 12.4k | arg_ty _res = NULL; |
5425 | 12.4k | int _mark = p->mark; |
5426 | 12.4k | if (p->call_invalid_rules) { // invalid_kwds |
5427 | 4.80k | if (p->error_indicator) { |
5428 | 0 | p->level--; |
5429 | 0 | return NULL; |
5430 | 0 | } |
5431 | 4.80k | D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwds")); |
5432 | 4.80k | void *invalid_kwds_var; |
5433 | 4.80k | if ( |
5434 | 4.80k | (invalid_kwds_var = invalid_kwds_rule(p)) // invalid_kwds |
5435 | 4.80k | ) |
5436 | 0 | { |
5437 | 0 | D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwds")); |
5438 | 0 | _res = invalid_kwds_var; |
5439 | 0 | goto done; |
5440 | 0 | } |
5441 | 4.80k | p->mark = _mark; |
5442 | 4.80k | D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ', |
5443 | 4.80k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwds")); |
5444 | 4.80k | } |
5445 | 12.4k | { // '**' param_no_default |
5446 | 12.4k | if (p->error_indicator) { |
5447 | 8 | p->level--; |
5448 | 8 | return NULL; |
5449 | 8 | } |
5450 | 12.3k | D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default")); |
5451 | 12.3k | Token * _literal; |
5452 | 12.3k | arg_ty a; |
5453 | 12.3k | if ( |
5454 | 12.3k | (_literal = _PyPegen_expect_token(p, 35)) // token='**' |
5455 | 1.05k | && |
5456 | 1.05k | (a = param_no_default_rule(p)) // param_no_default |
5457 | 12.3k | ) |
5458 | 1.03k | { |
5459 | 1.03k | D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default")); |
5460 | 1.03k | _res = a; |
5461 | 1.03k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5462 | 0 | p->error_indicator = 1; |
5463 | 0 | p->level--; |
5464 | 0 | return NULL; |
5465 | 0 | } |
5466 | 1.03k | goto done; |
5467 | 1.03k | } |
5468 | 11.3k | p->mark = _mark; |
5469 | 11.3k | D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ', |
5470 | 11.3k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default")); |
5471 | 11.3k | } |
5472 | 11.3k | _res = NULL; |
5473 | 12.3k | done: |
5474 | 12.3k | p->level--; |
5475 | 12.3k | return _res; |
5476 | 11.3k | } |
5477 | | |
5478 | | // param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')' |
5479 | | Py_LOCAL_SYMBOL arg_ty |
5480 | | param_no_default_rule(Parser *p) |
5481 | 197k | { |
5482 | 197k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
5483 | 0 | _Pypegen_stack_overflow(p); |
5484 | 0 | } |
5485 | 197k | if (p->error_indicator) { |
5486 | 0 | p->level--; |
5487 | 0 | return NULL; |
5488 | 0 | } |
5489 | 197k | arg_ty _res = NULL; |
5490 | 197k | int _mark = p->mark; |
5491 | 197k | { // param ',' TYPE_COMMENT? |
5492 | 197k | if (p->error_indicator) { |
5493 | 0 | p->level--; |
5494 | 0 | return NULL; |
5495 | 0 | } |
5496 | 197k | D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?")); |
5497 | 197k | Token * _literal; |
5498 | 197k | arg_ty a; |
5499 | 197k | void *tc; |
5500 | 197k | if ( |
5501 | 197k | (a = param_rule(p)) // param |
5502 | 92.3k | && |
5503 | 92.3k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
5504 | 45.4k | && |
5505 | 45.4k | (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? |
5506 | 197k | ) |
5507 | 45.4k | { |
5508 | 45.4k | D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?")); |
5509 | 45.4k | _res = _PyPegen_add_type_comment_to_arg ( p , a , tc ); |
5510 | 45.4k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5511 | 0 | p->error_indicator = 1; |
5512 | 0 | p->level--; |
5513 | 0 | return NULL; |
5514 | 0 | } |
5515 | 45.4k | goto done; |
5516 | 45.4k | } |
5517 | 151k | p->mark = _mark; |
5518 | 151k | D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ', |
5519 | 151k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?")); |
5520 | 151k | } |
5521 | 0 | { // param TYPE_COMMENT? &')' |
5522 | 151k | if (p->error_indicator) { |
5523 | 31 | p->level--; |
5524 | 31 | return NULL; |
5525 | 31 | } |
5526 | 151k | D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'")); |
5527 | 151k | arg_ty a; |
5528 | 151k | void *tc; |
5529 | 151k | if ( |
5530 | 151k | (a = param_rule(p)) // param |
5531 | 46.8k | && |
5532 | 46.8k | (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? |
5533 | 46.8k | && |
5534 | 46.8k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')' |
5535 | 151k | ) |
5536 | 21.1k | { |
5537 | 21.1k | D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'")); |
5538 | 21.1k | _res = _PyPegen_add_type_comment_to_arg ( p , a , tc ); |
5539 | 21.1k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5540 | 0 | p->error_indicator = 1; |
5541 | 0 | p->level--; |
5542 | 0 | return NULL; |
5543 | 0 | } |
5544 | 21.1k | goto done; |
5545 | 21.1k | } |
5546 | 130k | p->mark = _mark; |
5547 | 130k | D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ', |
5548 | 130k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'")); |
5549 | 130k | } |
5550 | 130k | _res = NULL; |
5551 | 197k | done: |
5552 | 197k | p->level--; |
5553 | 197k | return _res; |
5554 | 130k | } |
5555 | | |
5556 | | // param_no_default_star_annotation: |
5557 | | // | param_star_annotation ',' TYPE_COMMENT? |
5558 | | // | param_star_annotation TYPE_COMMENT? &')' |
5559 | | static arg_ty |
5560 | | param_no_default_star_annotation_rule(Parser *p) |
5561 | 2.46k | { |
5562 | 2.46k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
5563 | 0 | _Pypegen_stack_overflow(p); |
5564 | 0 | } |
5565 | 2.46k | if (p->error_indicator) { |
5566 | 0 | p->level--; |
5567 | 0 | return NULL; |
5568 | 0 | } |
5569 | 2.46k | arg_ty _res = NULL; |
5570 | 2.46k | int _mark = p->mark; |
5571 | 2.46k | { // param_star_annotation ',' TYPE_COMMENT? |
5572 | 2.46k | if (p->error_indicator) { |
5573 | 0 | p->level--; |
5574 | 0 | return NULL; |
5575 | 0 | } |
5576 | 2.46k | D(fprintf(stderr, "%*c> param_no_default_star_annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_star_annotation ',' TYPE_COMMENT?")); |
5577 | 2.46k | Token * _literal; |
5578 | 2.46k | arg_ty a; |
5579 | 2.46k | void *tc; |
5580 | 2.46k | if ( |
5581 | 2.46k | (a = param_star_annotation_rule(p)) // param_star_annotation |
5582 | 1.50k | && |
5583 | 1.50k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
5584 | 56 | && |
5585 | 56 | (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? |
5586 | 2.46k | ) |
5587 | 55 | { |
5588 | 55 | D(fprintf(stderr, "%*c+ param_no_default_star_annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_star_annotation ',' TYPE_COMMENT?")); |
5589 | 55 | _res = _PyPegen_add_type_comment_to_arg ( p , a , tc ); |
5590 | 55 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5591 | 0 | p->error_indicator = 1; |
5592 | 0 | p->level--; |
5593 | 0 | return NULL; |
5594 | 0 | } |
5595 | 55 | goto done; |
5596 | 55 | } |
5597 | 2.40k | p->mark = _mark; |
5598 | 2.40k | D(fprintf(stderr, "%*c%s param_no_default_star_annotation[%d-%d]: %s failed!\n", p->level, ' ', |
5599 | 2.40k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_star_annotation ',' TYPE_COMMENT?")); |
5600 | 2.40k | } |
5601 | 0 | { // param_star_annotation TYPE_COMMENT? &')' |
5602 | 2.40k | if (p->error_indicator) { |
5603 | 3 | p->level--; |
5604 | 3 | return NULL; |
5605 | 3 | } |
5606 | 2.40k | D(fprintf(stderr, "%*c> param_no_default_star_annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_star_annotation TYPE_COMMENT? &')'")); |
5607 | 2.40k | arg_ty a; |
5608 | 2.40k | void *tc; |
5609 | 2.40k | if ( |
5610 | 2.40k | (a = param_star_annotation_rule(p)) // param_star_annotation |
5611 | 1.44k | && |
5612 | 1.44k | (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? |
5613 | 1.44k | && |
5614 | 1.44k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')' |
5615 | 2.40k | ) |
5616 | 1.42k | { |
5617 | 1.42k | D(fprintf(stderr, "%*c+ param_no_default_star_annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_star_annotation TYPE_COMMENT? &')'")); |
5618 | 1.42k | _res = _PyPegen_add_type_comment_to_arg ( p , a , tc ); |
5619 | 1.42k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5620 | 0 | p->error_indicator = 1; |
5621 | 0 | p->level--; |
5622 | 0 | return NULL; |
5623 | 0 | } |
5624 | 1.42k | goto done; |
5625 | 1.42k | } |
5626 | 974 | p->mark = _mark; |
5627 | 974 | D(fprintf(stderr, "%*c%s param_no_default_star_annotation[%d-%d]: %s failed!\n", p->level, ' ', |
5628 | 974 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_star_annotation TYPE_COMMENT? &')'")); |
5629 | 974 | } |
5630 | 974 | _res = NULL; |
5631 | 2.45k | done: |
5632 | 2.45k | p->level--; |
5633 | 2.45k | return _res; |
5634 | 974 | } |
5635 | | |
5636 | | // param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')' |
5637 | | Py_LOCAL_SYMBOL NameDefaultPair* |
5638 | | param_with_default_rule(Parser *p) |
5639 | 84.4k | { |
5640 | 84.4k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
5641 | 0 | _Pypegen_stack_overflow(p); |
5642 | 0 | } |
5643 | 84.4k | if (p->error_indicator) { |
5644 | 0 | p->level--; |
5645 | 0 | return NULL; |
5646 | 0 | } |
5647 | 84.4k | NameDefaultPair* _res = NULL; |
5648 | 84.4k | int _mark = p->mark; |
5649 | 84.4k | { // param default ',' TYPE_COMMENT? |
5650 | 84.4k | if (p->error_indicator) { |
5651 | 0 | p->level--; |
5652 | 0 | return NULL; |
5653 | 0 | } |
5654 | 84.4k | D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?")); |
5655 | 84.4k | Token * _literal; |
5656 | 84.4k | arg_ty a; |
5657 | 84.4k | expr_ty c; |
5658 | 84.4k | void *tc; |
5659 | 84.4k | if ( |
5660 | 84.4k | (a = param_rule(p)) // param |
5661 | 18.3k | && |
5662 | 18.3k | (c = default_rule(p)) // default |
5663 | 17.8k | && |
5664 | 17.8k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
5665 | 9.81k | && |
5666 | 9.81k | (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? |
5667 | 84.4k | ) |
5668 | 9.81k | { |
5669 | 9.81k | D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?")); |
5670 | 9.81k | _res = _PyPegen_name_default_pair ( p , a , c , tc ); |
5671 | 9.81k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5672 | 0 | p->error_indicator = 1; |
5673 | 0 | p->level--; |
5674 | 0 | return NULL; |
5675 | 0 | } |
5676 | 9.81k | goto done; |
5677 | 9.81k | } |
5678 | 74.6k | p->mark = _mark; |
5679 | 74.6k | D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ', |
5680 | 74.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?")); |
5681 | 74.6k | } |
5682 | 0 | { // param default TYPE_COMMENT? &')' |
5683 | 74.6k | if (p->error_indicator) { |
5684 | 16 | p->level--; |
5685 | 16 | return NULL; |
5686 | 16 | } |
5687 | 74.6k | D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'")); |
5688 | 74.6k | arg_ty a; |
5689 | 74.6k | expr_ty c; |
5690 | 74.6k | void *tc; |
5691 | 74.6k | if ( |
5692 | 74.6k | (a = param_rule(p)) // param |
5693 | 8.53k | && |
5694 | 8.53k | (c = default_rule(p)) // default |
5695 | 8.00k | && |
5696 | 8.00k | (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? |
5697 | 8.00k | && |
5698 | 8.00k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')' |
5699 | 74.6k | ) |
5700 | 7.85k | { |
5701 | 7.85k | D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'")); |
5702 | 7.85k | _res = _PyPegen_name_default_pair ( p , a , c , tc ); |
5703 | 7.85k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5704 | 0 | p->error_indicator = 1; |
5705 | 0 | p->level--; |
5706 | 0 | return NULL; |
5707 | 0 | } |
5708 | 7.85k | goto done; |
5709 | 7.85k | } |
5710 | 66.7k | p->mark = _mark; |
5711 | 66.7k | D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ', |
5712 | 66.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'")); |
5713 | 66.7k | } |
5714 | 66.7k | _res = NULL; |
5715 | 84.4k | done: |
5716 | 84.4k | p->level--; |
5717 | 84.4k | return _res; |
5718 | 66.7k | } |
5719 | | |
5720 | | // param_maybe_default: |
5721 | | // | param default? ',' TYPE_COMMENT? |
5722 | | // | param default? TYPE_COMMENT? &')' |
5723 | | Py_LOCAL_SYMBOL NameDefaultPair* |
5724 | | param_maybe_default_rule(Parser *p) |
5725 | 36.4k | { |
5726 | 36.4k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
5727 | 0 | _Pypegen_stack_overflow(p); |
5728 | 0 | } |
5729 | 36.4k | if (p->error_indicator) { |
5730 | 0 | p->level--; |
5731 | 0 | return NULL; |
5732 | 0 | } |
5733 | 36.4k | NameDefaultPair* _res = NULL; |
5734 | 36.4k | int _mark = p->mark; |
5735 | 36.4k | { // param default? ',' TYPE_COMMENT? |
5736 | 36.4k | if (p->error_indicator) { |
5737 | 0 | p->level--; |
5738 | 0 | return NULL; |
5739 | 0 | } |
5740 | 36.4k | D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?")); |
5741 | 36.4k | Token * _literal; |
5742 | 36.4k | arg_ty a; |
5743 | 36.4k | void *c; |
5744 | 36.4k | void *tc; |
5745 | 36.4k | if ( |
5746 | 36.4k | (a = param_rule(p)) // param |
5747 | 21.5k | && |
5748 | 21.5k | (c = default_rule(p), !p->error_indicator) // default? |
5749 | 21.5k | && |
5750 | 21.5k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
5751 | 17.6k | && |
5752 | 17.6k | (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? |
5753 | 36.4k | ) |
5754 | 17.6k | { |
5755 | 17.6k | D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?")); |
5756 | 17.6k | _res = _PyPegen_name_default_pair ( p , a , c , tc ); |
5757 | 17.6k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5758 | 0 | p->error_indicator = 1; |
5759 | 0 | p->level--; |
5760 | 0 | return NULL; |
5761 | 0 | } |
5762 | 17.6k | goto done; |
5763 | 17.6k | } |
5764 | 18.8k | p->mark = _mark; |
5765 | 18.8k | D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ', |
5766 | 18.8k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?")); |
5767 | 18.8k | } |
5768 | 0 | { // param default? TYPE_COMMENT? &')' |
5769 | 18.8k | if (p->error_indicator) { |
5770 | 12 | p->level--; |
5771 | 12 | return NULL; |
5772 | 12 | } |
5773 | 18.7k | D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'")); |
5774 | 18.7k | arg_ty a; |
5775 | 18.7k | void *c; |
5776 | 18.7k | void *tc; |
5777 | 18.7k | if ( |
5778 | 18.7k | (a = param_rule(p)) // param |
5779 | 3.85k | && |
5780 | 3.85k | (c = default_rule(p), !p->error_indicator) // default? |
5781 | 3.85k | && |
5782 | 3.85k | (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? |
5783 | 3.85k | && |
5784 | 3.85k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')' |
5785 | 18.7k | ) |
5786 | 3.62k | { |
5787 | 3.62k | D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'")); |
5788 | 3.62k | _res = _PyPegen_name_default_pair ( p , a , c , tc ); |
5789 | 3.62k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5790 | 0 | p->error_indicator = 1; |
5791 | 0 | p->level--; |
5792 | 0 | return NULL; |
5793 | 0 | } |
5794 | 3.62k | goto done; |
5795 | 3.62k | } |
5796 | 15.1k | p->mark = _mark; |
5797 | 15.1k | D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ', |
5798 | 15.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'")); |
5799 | 15.1k | } |
5800 | 15.1k | _res = NULL; |
5801 | 36.4k | done: |
5802 | 36.4k | p->level--; |
5803 | 36.4k | return _res; |
5804 | 15.1k | } |
5805 | | |
5806 | | // param: NAME annotation? |
5807 | | Py_LOCAL_SYMBOL arg_ty |
5808 | | param_rule(Parser *p) |
5809 | 566k | { |
5810 | 566k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
5811 | 0 | _Pypegen_stack_overflow(p); |
5812 | 0 | } |
5813 | 566k | if (p->error_indicator) { |
5814 | 0 | p->level--; |
5815 | 0 | return NULL; |
5816 | 0 | } |
5817 | 566k | arg_ty _res = NULL; |
5818 | 566k | int _mark = p->mark; |
5819 | 566k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
5820 | 18 | p->error_indicator = 1; |
5821 | 18 | p->level--; |
5822 | 18 | return NULL; |
5823 | 18 | } |
5824 | 566k | int _start_lineno = p->tokens[_mark]->lineno; |
5825 | 566k | UNUSED(_start_lineno); // Only used by EXTRA macro |
5826 | 566k | int _start_col_offset = p->tokens[_mark]->col_offset; |
5827 | 566k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
5828 | 566k | { // NAME annotation? |
5829 | 566k | if (p->error_indicator) { |
5830 | 0 | p->level--; |
5831 | 0 | return NULL; |
5832 | 0 | } |
5833 | 566k | D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?")); |
5834 | 566k | expr_ty a; |
5835 | 566k | void *b; |
5836 | 566k | if ( |
5837 | 566k | (a = _PyPegen_name_token(p)) // NAME |
5838 | 193k | && |
5839 | 193k | (b = annotation_rule(p), !p->error_indicator) // annotation? |
5840 | 566k | ) |
5841 | 193k | { |
5842 | 193k | D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?")); |
5843 | 193k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
5844 | 193k | if (_token == NULL) { |
5845 | 0 | p->level--; |
5846 | 0 | return NULL; |
5847 | 0 | } |
5848 | 193k | int _end_lineno = _token->end_lineno; |
5849 | 193k | UNUSED(_end_lineno); // Only used by EXTRA macro |
5850 | 193k | int _end_col_offset = _token->end_col_offset; |
5851 | 193k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
5852 | 193k | _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA ); |
5853 | 193k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5854 | 0 | p->error_indicator = 1; |
5855 | 0 | p->level--; |
5856 | 0 | return NULL; |
5857 | 0 | } |
5858 | 193k | goto done; |
5859 | 193k | } |
5860 | 372k | p->mark = _mark; |
5861 | 372k | D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ', |
5862 | 372k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?")); |
5863 | 372k | } |
5864 | 372k | _res = NULL; |
5865 | 566k | done: |
5866 | 566k | p->level--; |
5867 | 566k | return _res; |
5868 | 372k | } |
5869 | | |
5870 | | // param_star_annotation: NAME star_annotation |
5871 | | static arg_ty |
5872 | | param_star_annotation_rule(Parser *p) |
5873 | 4.86k | { |
5874 | 4.86k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
5875 | 0 | _Pypegen_stack_overflow(p); |
5876 | 0 | } |
5877 | 4.86k | if (p->error_indicator) { |
5878 | 0 | p->level--; |
5879 | 0 | return NULL; |
5880 | 0 | } |
5881 | 4.86k | arg_ty _res = NULL; |
5882 | 4.86k | int _mark = p->mark; |
5883 | 4.86k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
5884 | 0 | p->error_indicator = 1; |
5885 | 0 | p->level--; |
5886 | 0 | return NULL; |
5887 | 0 | } |
5888 | 4.86k | int _start_lineno = p->tokens[_mark]->lineno; |
5889 | 4.86k | UNUSED(_start_lineno); // Only used by EXTRA macro |
5890 | 4.86k | int _start_col_offset = p->tokens[_mark]->col_offset; |
5891 | 4.86k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
5892 | 4.86k | { // NAME star_annotation |
5893 | 4.86k | if (p->error_indicator) { |
5894 | 0 | p->level--; |
5895 | 0 | return NULL; |
5896 | 0 | } |
5897 | 4.86k | D(fprintf(stderr, "%*c> param_star_annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME star_annotation")); |
5898 | 4.86k | expr_ty a; |
5899 | 4.86k | expr_ty b; |
5900 | 4.86k | if ( |
5901 | 4.86k | (a = _PyPegen_name_token(p)) // NAME |
5902 | 3.00k | && |
5903 | 3.00k | (b = star_annotation_rule(p)) // star_annotation |
5904 | 4.86k | ) |
5905 | 2.95k | { |
5906 | 2.95k | D(fprintf(stderr, "%*c+ param_star_annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME star_annotation")); |
5907 | 2.95k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
5908 | 2.95k | if (_token == NULL) { |
5909 | 0 | p->level--; |
5910 | 0 | return NULL; |
5911 | 0 | } |
5912 | 2.95k | int _end_lineno = _token->end_lineno; |
5913 | 2.95k | UNUSED(_end_lineno); // Only used by EXTRA macro |
5914 | 2.95k | int _end_col_offset = _token->end_col_offset; |
5915 | 2.95k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
5916 | 2.95k | _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA ); |
5917 | 2.95k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5918 | 0 | p->error_indicator = 1; |
5919 | 0 | p->level--; |
5920 | 0 | return NULL; |
5921 | 0 | } |
5922 | 2.95k | goto done; |
5923 | 2.95k | } |
5924 | 1.91k | p->mark = _mark; |
5925 | 1.91k | D(fprintf(stderr, "%*c%s param_star_annotation[%d-%d]: %s failed!\n", p->level, ' ', |
5926 | 1.91k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME star_annotation")); |
5927 | 1.91k | } |
5928 | 1.91k | _res = NULL; |
5929 | 4.86k | done: |
5930 | 4.86k | p->level--; |
5931 | 4.86k | return _res; |
5932 | 1.91k | } |
5933 | | |
5934 | | // annotation: ':' expression |
5935 | | static expr_ty |
5936 | | annotation_rule(Parser *p) |
5937 | 193k | { |
5938 | 193k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
5939 | 0 | _Pypegen_stack_overflow(p); |
5940 | 0 | } |
5941 | 193k | if (p->error_indicator) { |
5942 | 0 | p->level--; |
5943 | 0 | return NULL; |
5944 | 0 | } |
5945 | 193k | expr_ty _res = NULL; |
5946 | 193k | int _mark = p->mark; |
5947 | 193k | { // ':' expression |
5948 | 193k | if (p->error_indicator) { |
5949 | 0 | p->level--; |
5950 | 0 | return NULL; |
5951 | 0 | } |
5952 | 193k | D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression")); |
5953 | 193k | Token * _literal; |
5954 | 193k | expr_ty a; |
5955 | 193k | if ( |
5956 | 193k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
5957 | 9.96k | && |
5958 | 9.96k | (a = expression_rule(p)) // expression |
5959 | 193k | ) |
5960 | 3.18k | { |
5961 | 3.18k | D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression")); |
5962 | 3.18k | _res = a; |
5963 | 3.18k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
5964 | 0 | p->error_indicator = 1; |
5965 | 0 | p->level--; |
5966 | 0 | return NULL; |
5967 | 0 | } |
5968 | 3.18k | goto done; |
5969 | 3.18k | } |
5970 | 190k | p->mark = _mark; |
5971 | 190k | D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ', |
5972 | 190k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression")); |
5973 | 190k | } |
5974 | 190k | _res = NULL; |
5975 | 193k | done: |
5976 | 193k | p->level--; |
5977 | 193k | return _res; |
5978 | 190k | } |
5979 | | |
5980 | | // star_annotation: ':' star_expression |
5981 | | static expr_ty |
5982 | | star_annotation_rule(Parser *p) |
5983 | 3.00k | { |
5984 | 3.00k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
5985 | 0 | _Pypegen_stack_overflow(p); |
5986 | 0 | } |
5987 | 3.00k | if (p->error_indicator) { |
5988 | 0 | p->level--; |
5989 | 0 | return NULL; |
5990 | 0 | } |
5991 | 3.00k | expr_ty _res = NULL; |
5992 | 3.00k | int _mark = p->mark; |
5993 | 3.00k | { // ':' star_expression |
5994 | 3.00k | if (p->error_indicator) { |
5995 | 0 | p->level--; |
5996 | 0 | return NULL; |
5997 | 0 | } |
5998 | 3.00k | D(fprintf(stderr, "%*c> star_annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' star_expression")); |
5999 | 3.00k | Token * _literal; |
6000 | 3.00k | expr_ty a; |
6001 | 3.00k | if ( |
6002 | 3.00k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
6003 | 2.97k | && |
6004 | 2.97k | (a = star_expression_rule(p)) // star_expression |
6005 | 3.00k | ) |
6006 | 2.95k | { |
6007 | 2.95k | D(fprintf(stderr, "%*c+ star_annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' star_expression")); |
6008 | 2.95k | _res = a; |
6009 | 2.95k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
6010 | 0 | p->error_indicator = 1; |
6011 | 0 | p->level--; |
6012 | 0 | return NULL; |
6013 | 0 | } |
6014 | 2.95k | goto done; |
6015 | 2.95k | } |
6016 | 52 | p->mark = _mark; |
6017 | 52 | D(fprintf(stderr, "%*c%s star_annotation[%d-%d]: %s failed!\n", p->level, ' ', |
6018 | 52 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' star_expression")); |
6019 | 52 | } |
6020 | 52 | _res = NULL; |
6021 | 3.00k | done: |
6022 | 3.00k | p->level--; |
6023 | 3.00k | return _res; |
6024 | 52 | } |
6025 | | |
6026 | | // default: '=' expression | invalid_default |
6027 | | static expr_ty |
6028 | | default_rule(Parser *p) |
6029 | 762k | { |
6030 | 762k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
6031 | 0 | _Pypegen_stack_overflow(p); |
6032 | 0 | } |
6033 | 762k | if (p->error_indicator) { |
6034 | 0 | p->level--; |
6035 | 0 | return NULL; |
6036 | 0 | } |
6037 | 762k | expr_ty _res = NULL; |
6038 | 762k | int _mark = p->mark; |
6039 | 762k | { // '=' expression |
6040 | 762k | if (p->error_indicator) { |
6041 | 0 | p->level--; |
6042 | 0 | return NULL; |
6043 | 0 | } |
6044 | 762k | D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression")); |
6045 | 762k | Token * _literal; |
6046 | 762k | expr_ty a; |
6047 | 762k | if ( |
6048 | 762k | (_literal = _PyPegen_expect_token(p, 22)) // token='=' |
6049 | 93.2k | && |
6050 | 93.2k | (a = expression_rule(p)) // expression |
6051 | 762k | ) |
6052 | 72.3k | { |
6053 | 72.3k | D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression")); |
6054 | 72.3k | _res = a; |
6055 | 72.3k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
6056 | 0 | p->error_indicator = 1; |
6057 | 0 | p->level--; |
6058 | 0 | return NULL; |
6059 | 0 | } |
6060 | 72.3k | goto done; |
6061 | 72.3k | } |
6062 | 690k | p->mark = _mark; |
6063 | 690k | D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ', |
6064 | 690k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression")); |
6065 | 690k | } |
6066 | 690k | if (p->call_invalid_rules) { // invalid_default |
6067 | 680k | if (p->error_indicator) { |
6068 | 875 | p->level--; |
6069 | 875 | return NULL; |
6070 | 875 | } |
6071 | 680k | D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_default")); |
6072 | 680k | void *invalid_default_var; |
6073 | 680k | if ( |
6074 | 680k | (invalid_default_var = invalid_default_rule(p)) // invalid_default |
6075 | 680k | ) |
6076 | 0 | { |
6077 | 0 | D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_default")); |
6078 | 0 | _res = invalid_default_var; |
6079 | 0 | goto done; |
6080 | 0 | } |
6081 | 680k | p->mark = _mark; |
6082 | 680k | D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ', |
6083 | 680k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_default")); |
6084 | 680k | } |
6085 | 689k | _res = NULL; |
6086 | 761k | done: |
6087 | 761k | p->level--; |
6088 | 761k | return _res; |
6089 | 689k | } |
6090 | | |
6091 | | // if_stmt: |
6092 | | // | invalid_if_stmt |
6093 | | // | 'if' named_expression ':' block elif_stmt |
6094 | | // | 'if' named_expression ':' block else_block? |
6095 | | static stmt_ty |
6096 | | if_stmt_rule(Parser *p) |
6097 | 3.87k | { |
6098 | 3.87k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
6099 | 0 | _Pypegen_stack_overflow(p); |
6100 | 0 | } |
6101 | 3.87k | if (p->error_indicator) { |
6102 | 0 | p->level--; |
6103 | 0 | return NULL; |
6104 | 0 | } |
6105 | 3.87k | stmt_ty _res = NULL; |
6106 | 3.87k | int _mark = p->mark; |
6107 | 3.87k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
6108 | 0 | p->error_indicator = 1; |
6109 | 0 | p->level--; |
6110 | 0 | return NULL; |
6111 | 0 | } |
6112 | 3.87k | int _start_lineno = p->tokens[_mark]->lineno; |
6113 | 3.87k | UNUSED(_start_lineno); // Only used by EXTRA macro |
6114 | 3.87k | int _start_col_offset = p->tokens[_mark]->col_offset; |
6115 | 3.87k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
6116 | 3.87k | if (p->call_invalid_rules) { // invalid_if_stmt |
6117 | 1.02k | if (p->error_indicator) { |
6118 | 0 | p->level--; |
6119 | 0 | return NULL; |
6120 | 0 | } |
6121 | 1.02k | D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt")); |
6122 | 1.02k | void *invalid_if_stmt_var; |
6123 | 1.02k | if ( |
6124 | 1.02k | (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt |
6125 | 1.02k | ) |
6126 | 0 | { |
6127 | 0 | D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt")); |
6128 | 0 | _res = invalid_if_stmt_var; |
6129 | 0 | goto done; |
6130 | 0 | } |
6131 | 1.02k | p->mark = _mark; |
6132 | 1.02k | D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6133 | 1.02k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt")); |
6134 | 1.02k | } |
6135 | 3.87k | { // 'if' named_expression ':' block elif_stmt |
6136 | 3.87k | if (p->error_indicator) { |
6137 | 11 | p->level--; |
6138 | 11 | return NULL; |
6139 | 11 | } |
6140 | 3.86k | D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt")); |
6141 | 3.86k | Token * _keyword; |
6142 | 3.86k | Token * _literal; |
6143 | 3.86k | expr_ty a; |
6144 | 3.86k | asdl_stmt_seq* b; |
6145 | 3.86k | stmt_ty c; |
6146 | 3.86k | if ( |
6147 | 3.86k | (_keyword = _PyPegen_expect_token(p, 514)) // token='if' |
6148 | 3.86k | && |
6149 | 3.86k | (a = named_expression_rule(p)) // named_expression |
6150 | 3.83k | && |
6151 | 3.83k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
6152 | 3.83k | && |
6153 | 3.83k | (b = block_rule(p)) // block |
6154 | 3.74k | && |
6155 | 3.74k | (c = elif_stmt_rule(p)) // elif_stmt |
6156 | 3.86k | ) |
6157 | 182 | { |
6158 | 182 | D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt")); |
6159 | 182 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
6160 | 182 | if (_token == NULL) { |
6161 | 0 | p->level--; |
6162 | 0 | return NULL; |
6163 | 0 | } |
6164 | 182 | int _end_lineno = _token->end_lineno; |
6165 | 182 | UNUSED(_end_lineno); // Only used by EXTRA macro |
6166 | 182 | int _end_col_offset = _token->end_col_offset; |
6167 | 182 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
6168 | 182 | _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq* , _PyPegen_singleton_seq ( p , c ) ) , EXTRA ); |
6169 | 182 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
6170 | 0 | p->error_indicator = 1; |
6171 | 0 | p->level--; |
6172 | 0 | return NULL; |
6173 | 0 | } |
6174 | 182 | goto done; |
6175 | 182 | } |
6176 | 3.68k | p->mark = _mark; |
6177 | 3.68k | D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6178 | 3.68k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt")); |
6179 | 3.68k | } |
6180 | 0 | { // 'if' named_expression ':' block else_block? |
6181 | 3.68k | if (p->error_indicator) { |
6182 | 46 | p->level--; |
6183 | 46 | return NULL; |
6184 | 46 | } |
6185 | 3.63k | D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?")); |
6186 | 3.63k | Token * _keyword; |
6187 | 3.63k | Token * _literal; |
6188 | 3.63k | expr_ty a; |
6189 | 3.63k | asdl_stmt_seq* b; |
6190 | 3.63k | void *c; |
6191 | 3.63k | if ( |
6192 | 3.63k | (_keyword = _PyPegen_expect_token(p, 514)) // token='if' |
6193 | 3.63k | && |
6194 | 3.63k | (a = named_expression_rule(p)) // named_expression |
6195 | 3.61k | && |
6196 | 3.61k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
6197 | 3.60k | && |
6198 | 3.60k | (b = block_rule(p)) // block |
6199 | 3.53k | && |
6200 | 3.53k | (c = else_block_rule(p), !p->error_indicator) // else_block? |
6201 | 3.63k | ) |
6202 | 3.53k | { |
6203 | 3.53k | D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?")); |
6204 | 3.53k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
6205 | 3.53k | if (_token == NULL) { |
6206 | 0 | p->level--; |
6207 | 0 | return NULL; |
6208 | 0 | } |
6209 | 3.53k | int _end_lineno = _token->end_lineno; |
6210 | 3.53k | UNUSED(_end_lineno); // Only used by EXTRA macro |
6211 | 3.53k | int _end_col_offset = _token->end_col_offset; |
6212 | 3.53k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
6213 | 3.53k | _res = _PyAST_If ( a , b , c , EXTRA ); |
6214 | 3.53k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
6215 | 0 | p->error_indicator = 1; |
6216 | 0 | p->level--; |
6217 | 0 | return NULL; |
6218 | 0 | } |
6219 | 3.53k | goto done; |
6220 | 3.53k | } |
6221 | 103 | p->mark = _mark; |
6222 | 103 | D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6223 | 103 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?")); |
6224 | 103 | } |
6225 | 103 | _res = NULL; |
6226 | 3.81k | done: |
6227 | 3.81k | p->level--; |
6228 | 3.81k | return _res; |
6229 | 103 | } |
6230 | | |
6231 | | // elif_stmt: |
6232 | | // | invalid_elif_stmt |
6233 | | // | 'elif' named_expression ':' block elif_stmt |
6234 | | // | 'elif' named_expression ':' block else_block? |
6235 | | static stmt_ty |
6236 | | elif_stmt_rule(Parser *p) |
6237 | 4.81k | { |
6238 | 4.81k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
6239 | 0 | _Pypegen_stack_overflow(p); |
6240 | 0 | } |
6241 | 4.81k | if (p->error_indicator) { |
6242 | 0 | p->level--; |
6243 | 0 | return NULL; |
6244 | 0 | } |
6245 | 4.81k | stmt_ty _res = NULL; |
6246 | 4.81k | int _mark = p->mark; |
6247 | 4.81k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
6248 | 1 | p->error_indicator = 1; |
6249 | 1 | p->level--; |
6250 | 1 | return NULL; |
6251 | 1 | } |
6252 | 4.81k | int _start_lineno = p->tokens[_mark]->lineno; |
6253 | 4.81k | UNUSED(_start_lineno); // Only used by EXTRA macro |
6254 | 4.81k | int _start_col_offset = p->tokens[_mark]->col_offset; |
6255 | 4.81k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
6256 | 4.81k | if (p->call_invalid_rules) { // invalid_elif_stmt |
6257 | 1.32k | if (p->error_indicator) { |
6258 | 0 | p->level--; |
6259 | 0 | return NULL; |
6260 | 0 | } |
6261 | 1.32k | D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt")); |
6262 | 1.32k | void *invalid_elif_stmt_var; |
6263 | 1.32k | if ( |
6264 | 1.32k | (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt |
6265 | 1.32k | ) |
6266 | 0 | { |
6267 | 0 | D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt")); |
6268 | 0 | _res = invalid_elif_stmt_var; |
6269 | 0 | goto done; |
6270 | 0 | } |
6271 | 1.32k | p->mark = _mark; |
6272 | 1.32k | D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6273 | 1.32k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt")); |
6274 | 1.32k | } |
6275 | 4.81k | { // 'elif' named_expression ':' block elif_stmt |
6276 | 4.81k | if (p->error_indicator) { |
6277 | 10 | p->level--; |
6278 | 10 | return NULL; |
6279 | 10 | } |
6280 | 4.80k | D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt")); |
6281 | 4.80k | Token * _keyword; |
6282 | 4.80k | Token * _literal; |
6283 | 4.80k | expr_ty a; |
6284 | 4.80k | asdl_stmt_seq* b; |
6285 | 4.80k | stmt_ty c; |
6286 | 4.80k | if ( |
6287 | 4.80k | (_keyword = _PyPegen_expect_token(p, 521)) // token='elif' |
6288 | 1.11k | && |
6289 | 1.11k | (a = named_expression_rule(p)) // named_expression |
6290 | 1.10k | && |
6291 | 1.10k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
6292 | 1.09k | && |
6293 | 1.09k | (b = block_rule(p)) // block |
6294 | 1.07k | && |
6295 | 1.07k | (c = elif_stmt_rule(p)) // elif_stmt |
6296 | 4.80k | ) |
6297 | 679 | { |
6298 | 679 | D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt")); |
6299 | 679 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
6300 | 679 | if (_token == NULL) { |
6301 | 0 | p->level--; |
6302 | 0 | return NULL; |
6303 | 0 | } |
6304 | 679 | int _end_lineno = _token->end_lineno; |
6305 | 679 | UNUSED(_end_lineno); // Only used by EXTRA macro |
6306 | 679 | int _end_col_offset = _token->end_col_offset; |
6307 | 679 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
6308 | 679 | _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq* , _PyPegen_singleton_seq ( p , c ) ) , EXTRA ); |
6309 | 679 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
6310 | 0 | p->error_indicator = 1; |
6311 | 0 | p->level--; |
6312 | 0 | return NULL; |
6313 | 0 | } |
6314 | 679 | goto done; |
6315 | 679 | } |
6316 | 4.12k | p->mark = _mark; |
6317 | 4.12k | D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6318 | 4.12k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt")); |
6319 | 4.12k | } |
6320 | 0 | { // 'elif' named_expression ':' block else_block? |
6321 | 4.12k | if (p->error_indicator) { |
6322 | 218 | p->level--; |
6323 | 218 | return NULL; |
6324 | 218 | } |
6325 | 3.90k | D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?")); |
6326 | 3.90k | Token * _keyword; |
6327 | 3.90k | Token * _literal; |
6328 | 3.90k | expr_ty a; |
6329 | 3.90k | asdl_stmt_seq* b; |
6330 | 3.90k | void *c; |
6331 | 3.90k | if ( |
6332 | 3.90k | (_keyword = _PyPegen_expect_token(p, 521)) // token='elif' |
6333 | 214 | && |
6334 | 214 | (a = named_expression_rule(p)) // named_expression |
6335 | 211 | && |
6336 | 211 | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
6337 | 203 | && |
6338 | 203 | (b = block_rule(p)) // block |
6339 | 183 | && |
6340 | 183 | (c = else_block_rule(p), !p->error_indicator) // else_block? |
6341 | 3.90k | ) |
6342 | 182 | { |
6343 | 182 | D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?")); |
6344 | 182 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
6345 | 182 | if (_token == NULL) { |
6346 | 0 | p->level--; |
6347 | 0 | return NULL; |
6348 | 0 | } |
6349 | 182 | int _end_lineno = _token->end_lineno; |
6350 | 182 | UNUSED(_end_lineno); // Only used by EXTRA macro |
6351 | 182 | int _end_col_offset = _token->end_col_offset; |
6352 | 182 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
6353 | 182 | _res = _PyAST_If ( a , b , c , EXTRA ); |
6354 | 182 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
6355 | 0 | p->error_indicator = 1; |
6356 | 0 | p->level--; |
6357 | 0 | return NULL; |
6358 | 0 | } |
6359 | 182 | goto done; |
6360 | 182 | } |
6361 | 3.72k | p->mark = _mark; |
6362 | 3.72k | D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6363 | 3.72k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?")); |
6364 | 3.72k | } |
6365 | 3.72k | _res = NULL; |
6366 | 4.58k | done: |
6367 | 4.58k | p->level--; |
6368 | 4.58k | return _res; |
6369 | 3.72k | } |
6370 | | |
6371 | | // else_block: invalid_else_stmt | 'else' &&':' block |
6372 | | static asdl_stmt_seq* |
6373 | | else_block_rule(Parser *p) |
6374 | 9.58k | { |
6375 | 9.58k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
6376 | 0 | _Pypegen_stack_overflow(p); |
6377 | 0 | } |
6378 | 9.58k | if (p->error_indicator) { |
6379 | 0 | p->level--; |
6380 | 0 | return NULL; |
6381 | 0 | } |
6382 | 9.58k | asdl_stmt_seq* _res = NULL; |
6383 | 9.58k | int _mark = p->mark; |
6384 | 9.58k | if (p->call_invalid_rules) { // invalid_else_stmt |
6385 | 2.88k | if (p->error_indicator) { |
6386 | 0 | p->level--; |
6387 | 0 | return NULL; |
6388 | 0 | } |
6389 | 2.88k | D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt")); |
6390 | 2.88k | void *invalid_else_stmt_var; |
6391 | 2.88k | if ( |
6392 | 2.88k | (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt |
6393 | 2.88k | ) |
6394 | 0 | { |
6395 | 0 | D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt")); |
6396 | 0 | _res = invalid_else_stmt_var; |
6397 | 0 | goto done; |
6398 | 0 | } |
6399 | 2.88k | p->mark = _mark; |
6400 | 2.88k | D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ', |
6401 | 2.88k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt")); |
6402 | 2.88k | } |
6403 | 9.58k | { // 'else' &&':' block |
6404 | 9.58k | if (p->error_indicator) { |
6405 | 9 | p->level--; |
6406 | 9 | return NULL; |
6407 | 9 | } |
6408 | 9.57k | D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block")); |
6409 | 9.57k | Token * _keyword; |
6410 | 9.57k | Token * _literal; |
6411 | 9.57k | asdl_stmt_seq* b; |
6412 | 9.57k | if ( |
6413 | 9.57k | (_keyword = _PyPegen_expect_token(p, 522)) // token='else' |
6414 | 576 | && |
6415 | 576 | (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' |
6416 | 572 | && |
6417 | 572 | (b = block_rule(p)) // block |
6418 | 9.57k | ) |
6419 | 547 | { |
6420 | 547 | D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' &&':' block")); |
6421 | 547 | _res = b; |
6422 | 547 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
6423 | 0 | p->error_indicator = 1; |
6424 | 0 | p->level--; |
6425 | 0 | return NULL; |
6426 | 0 | } |
6427 | 547 | goto done; |
6428 | 547 | } |
6429 | 9.03k | p->mark = _mark; |
6430 | 9.03k | D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ', |
6431 | 9.03k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block")); |
6432 | 9.03k | } |
6433 | 9.03k | _res = NULL; |
6434 | 9.57k | done: |
6435 | 9.57k | p->level--; |
6436 | 9.57k | return _res; |
6437 | 9.03k | } |
6438 | | |
6439 | | // while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block? |
6440 | | static stmt_ty |
6441 | | while_stmt_rule(Parser *p) |
6442 | 1.02k | { |
6443 | 1.02k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
6444 | 0 | _Pypegen_stack_overflow(p); |
6445 | 0 | } |
6446 | 1.02k | if (p->error_indicator) { |
6447 | 0 | p->level--; |
6448 | 0 | return NULL; |
6449 | 0 | } |
6450 | 1.02k | stmt_ty _res = NULL; |
6451 | 1.02k | int _mark = p->mark; |
6452 | 1.02k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
6453 | 0 | p->error_indicator = 1; |
6454 | 0 | p->level--; |
6455 | 0 | return NULL; |
6456 | 0 | } |
6457 | 1.02k | int _start_lineno = p->tokens[_mark]->lineno; |
6458 | 1.02k | UNUSED(_start_lineno); // Only used by EXTRA macro |
6459 | 1.02k | int _start_col_offset = p->tokens[_mark]->col_offset; |
6460 | 1.02k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
6461 | 1.02k | if (p->call_invalid_rules) { // invalid_while_stmt |
6462 | 348 | if (p->error_indicator) { |
6463 | 0 | p->level--; |
6464 | 0 | return NULL; |
6465 | 0 | } |
6466 | 348 | D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt")); |
6467 | 348 | void *invalid_while_stmt_var; |
6468 | 348 | if ( |
6469 | 348 | (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt |
6470 | 348 | ) |
6471 | 0 | { |
6472 | 0 | D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt")); |
6473 | 0 | _res = invalid_while_stmt_var; |
6474 | 0 | goto done; |
6475 | 0 | } |
6476 | 348 | p->mark = _mark; |
6477 | 348 | D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6478 | 348 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt")); |
6479 | 348 | } |
6480 | 1.02k | { // 'while' named_expression ':' block else_block? |
6481 | 1.02k | if (p->error_indicator) { |
6482 | 7 | p->level--; |
6483 | 7 | return NULL; |
6484 | 7 | } |
6485 | 1.02k | D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?")); |
6486 | 1.02k | Token * _keyword; |
6487 | 1.02k | Token * _literal; |
6488 | 1.02k | expr_ty a; |
6489 | 1.02k | asdl_stmt_seq* b; |
6490 | 1.02k | void *c; |
6491 | 1.02k | if ( |
6492 | 1.02k | (_keyword = _PyPegen_expect_token(p, 519)) // token='while' |
6493 | 1.02k | && |
6494 | 1.02k | (a = named_expression_rule(p)) // named_expression |
6495 | 1.01k | && |
6496 | 1.01k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
6497 | 1.00k | && |
6498 | 1.00k | (b = block_rule(p)) // block |
6499 | 960 | && |
6500 | 960 | (c = else_block_rule(p), !p->error_indicator) // else_block? |
6501 | 1.02k | ) |
6502 | 959 | { |
6503 | 959 | D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?")); |
6504 | 959 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
6505 | 959 | if (_token == NULL) { |
6506 | 0 | p->level--; |
6507 | 0 | return NULL; |
6508 | 0 | } |
6509 | 959 | int _end_lineno = _token->end_lineno; |
6510 | 959 | UNUSED(_end_lineno); // Only used by EXTRA macro |
6511 | 959 | int _end_col_offset = _token->end_col_offset; |
6512 | 959 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
6513 | 959 | _res = _PyAST_While ( a , b , c , EXTRA ); |
6514 | 959 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
6515 | 0 | p->error_indicator = 1; |
6516 | 0 | p->level--; |
6517 | 0 | return NULL; |
6518 | 0 | } |
6519 | 959 | goto done; |
6520 | 959 | } |
6521 | 61 | p->mark = _mark; |
6522 | 61 | D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6523 | 61 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?")); |
6524 | 61 | } |
6525 | 61 | _res = NULL; |
6526 | 1.02k | done: |
6527 | 1.02k | p->level--; |
6528 | 1.02k | return _res; |
6529 | 61 | } |
6530 | | |
6531 | | // for_stmt: |
6532 | | // | invalid_for_stmt |
6533 | | // | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block? |
6534 | | // | 'async' 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block? |
6535 | | // | invalid_for_target |
6536 | | static stmt_ty |
6537 | | for_stmt_rule(Parser *p) |
6538 | 1.48k | { |
6539 | 1.48k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
6540 | 0 | _Pypegen_stack_overflow(p); |
6541 | 0 | } |
6542 | 1.48k | if (p->error_indicator) { |
6543 | 0 | p->level--; |
6544 | 0 | return NULL; |
6545 | 0 | } |
6546 | 1.48k | stmt_ty _res = NULL; |
6547 | 1.48k | int _mark = p->mark; |
6548 | 1.48k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
6549 | 0 | p->error_indicator = 1; |
6550 | 0 | p->level--; |
6551 | 0 | return NULL; |
6552 | 0 | } |
6553 | 1.48k | int _start_lineno = p->tokens[_mark]->lineno; |
6554 | 1.48k | UNUSED(_start_lineno); // Only used by EXTRA macro |
6555 | 1.48k | int _start_col_offset = p->tokens[_mark]->col_offset; |
6556 | 1.48k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
6557 | 1.48k | if (p->call_invalid_rules) { // invalid_for_stmt |
6558 | 437 | if (p->error_indicator) { |
6559 | 0 | p->level--; |
6560 | 0 | return NULL; |
6561 | 0 | } |
6562 | 437 | D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt")); |
6563 | 437 | void *invalid_for_stmt_var; |
6564 | 437 | if ( |
6565 | 437 | (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt |
6566 | 437 | ) |
6567 | 0 | { |
6568 | 0 | D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt")); |
6569 | 0 | _res = invalid_for_stmt_var; |
6570 | 0 | goto done; |
6571 | 0 | } |
6572 | 437 | p->mark = _mark; |
6573 | 437 | D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6574 | 437 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt")); |
6575 | 437 | } |
6576 | 1.48k | { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block? |
6577 | 1.48k | if (p->error_indicator) { |
6578 | 9 | p->level--; |
6579 | 9 | return NULL; |
6580 | 9 | } |
6581 | 1.47k | D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); |
6582 | 1.47k | int _cut_var = 0; |
6583 | 1.47k | Token * _keyword; |
6584 | 1.47k | Token * _keyword_1; |
6585 | 1.47k | Token * _literal; |
6586 | 1.47k | asdl_stmt_seq* b; |
6587 | 1.47k | void *el; |
6588 | 1.47k | expr_ty ex; |
6589 | 1.47k | expr_ty t; |
6590 | 1.47k | void *tc; |
6591 | 1.47k | if ( |
6592 | 1.47k | (_keyword = _PyPegen_expect_token(p, 517)) // token='for' |
6593 | 1.10k | && |
6594 | 1.10k | (t = star_targets_rule(p)) // star_targets |
6595 | 1.06k | && |
6596 | 1.06k | (_keyword_1 = _PyPegen_expect_token(p, 523)) // token='in' |
6597 | 1.05k | && |
6598 | 1.05k | (_cut_var = 1) |
6599 | 1.05k | && |
6600 | 1.05k | (ex = star_expressions_rule(p)) // star_expressions |
6601 | 1.04k | && |
6602 | 1.04k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
6603 | 1.04k | && |
6604 | 1.04k | (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? |
6605 | 1.04k | && |
6606 | 1.04k | (b = block_rule(p)) // block |
6607 | 993 | && |
6608 | 993 | (el = else_block_rule(p), !p->error_indicator) // else_block? |
6609 | 1.47k | ) |
6610 | 991 | { |
6611 | 991 | D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); |
6612 | 991 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
6613 | 991 | if (_token == NULL) { |
6614 | 0 | p->level--; |
6615 | 0 | return NULL; |
6616 | 0 | } |
6617 | 991 | int _end_lineno = _token->end_lineno; |
6618 | 991 | UNUSED(_end_lineno); // Only used by EXTRA macro |
6619 | 991 | int _end_col_offset = _token->end_col_offset; |
6620 | 991 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
6621 | 991 | _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ); |
6622 | 991 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
6623 | 0 | p->error_indicator = 1; |
6624 | 0 | p->level--; |
6625 | 0 | return NULL; |
6626 | 0 | } |
6627 | 991 | goto done; |
6628 | 991 | } |
6629 | 487 | p->mark = _mark; |
6630 | 487 | D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6631 | 487 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); |
6632 | 487 | if (_cut_var) { |
6633 | 62 | p->level--; |
6634 | 62 | return NULL; |
6635 | 62 | } |
6636 | 487 | } |
6637 | 425 | { // 'async' 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block? |
6638 | 425 | if (p->error_indicator) { |
6639 | 3 | p->level--; |
6640 | 3 | return NULL; |
6641 | 3 | } |
6642 | 422 | D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async' 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); |
6643 | 422 | int _cut_var = 0; |
6644 | 422 | Token * _keyword; |
6645 | 422 | Token * _keyword_1; |
6646 | 422 | Token * _keyword_2; |
6647 | 422 | Token * _literal; |
6648 | 422 | asdl_stmt_seq* b; |
6649 | 422 | void *el; |
6650 | 422 | expr_ty ex; |
6651 | 422 | expr_ty t; |
6652 | 422 | void *tc; |
6653 | 422 | if ( |
6654 | 422 | (_keyword = _PyPegen_expect_token(p, 513)) // token='async' |
6655 | 373 | && |
6656 | 373 | (_keyword_1 = _PyPegen_expect_token(p, 517)) // token='for' |
6657 | 254 | && |
6658 | 254 | (t = star_targets_rule(p)) // star_targets |
6659 | 250 | && |
6660 | 250 | (_keyword_2 = _PyPegen_expect_token(p, 523)) // token='in' |
6661 | 247 | && |
6662 | 247 | (_cut_var = 1) |
6663 | 247 | && |
6664 | 247 | (ex = star_expressions_rule(p)) // star_expressions |
6665 | 244 | && |
6666 | 244 | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
6667 | 241 | && |
6668 | 241 | (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? |
6669 | 240 | && |
6670 | 240 | (b = block_rule(p)) // block |
6671 | 230 | && |
6672 | 230 | (el = else_block_rule(p), !p->error_indicator) // else_block? |
6673 | 422 | ) |
6674 | 229 | { |
6675 | 229 | D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async' 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); |
6676 | 229 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
6677 | 229 | if (_token == NULL) { |
6678 | 0 | p->level--; |
6679 | 0 | return NULL; |
6680 | 0 | } |
6681 | 229 | int _end_lineno = _token->end_lineno; |
6682 | 229 | UNUSED(_end_lineno); // Only used by EXTRA macro |
6683 | 229 | int _end_col_offset = _token->end_col_offset; |
6684 | 229 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
6685 | 229 | _res = CHECK_VERSION ( stmt_ty , 5 , "Async for loops are" , _PyAST_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) ); |
6686 | 229 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
6687 | 0 | p->error_indicator = 1; |
6688 | 0 | p->level--; |
6689 | 0 | return NULL; |
6690 | 0 | } |
6691 | 229 | goto done; |
6692 | 229 | } |
6693 | 193 | p->mark = _mark; |
6694 | 193 | D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6695 | 193 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async' 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?")); |
6696 | 193 | if (_cut_var) { |
6697 | 18 | p->level--; |
6698 | 18 | return NULL; |
6699 | 18 | } |
6700 | 193 | } |
6701 | 175 | if (p->call_invalid_rules) { // invalid_for_target |
6702 | 73 | if (p->error_indicator) { |
6703 | 0 | p->level--; |
6704 | 0 | return NULL; |
6705 | 0 | } |
6706 | 73 | D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target")); |
6707 | 73 | void *invalid_for_target_var; |
6708 | 73 | if ( |
6709 | 73 | (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target |
6710 | 73 | ) |
6711 | 0 | { |
6712 | 0 | D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target")); |
6713 | 0 | _res = invalid_for_target_var; |
6714 | 0 | goto done; |
6715 | 0 | } |
6716 | 73 | p->mark = _mark; |
6717 | 73 | D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6718 | 73 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target")); |
6719 | 73 | } |
6720 | 175 | _res = NULL; |
6721 | 1.39k | done: |
6722 | 1.39k | p->level--; |
6723 | 1.39k | return _res; |
6724 | 175 | } |
6725 | | |
6726 | | // with_stmt: |
6727 | | // | invalid_with_stmt_indent |
6728 | | // | 'with' '(' ','.with_item+ ','? ')' ':' TYPE_COMMENT? block |
6729 | | // | 'with' ','.with_item+ ':' TYPE_COMMENT? block |
6730 | | // | 'async' 'with' '(' ','.with_item+ ','? ')' ':' block |
6731 | | // | 'async' 'with' ','.with_item+ ':' TYPE_COMMENT? block |
6732 | | // | invalid_with_stmt |
6733 | | static stmt_ty |
6734 | | with_stmt_rule(Parser *p) |
6735 | 5.46k | { |
6736 | 5.46k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
6737 | 0 | _Pypegen_stack_overflow(p); |
6738 | 0 | } |
6739 | 5.46k | if (p->error_indicator) { |
6740 | 0 | p->level--; |
6741 | 0 | return NULL; |
6742 | 0 | } |
6743 | 5.46k | stmt_ty _res = NULL; |
6744 | 5.46k | int _mark = p->mark; |
6745 | 5.46k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
6746 | 0 | p->error_indicator = 1; |
6747 | 0 | p->level--; |
6748 | 0 | return NULL; |
6749 | 0 | } |
6750 | 5.46k | int _start_lineno = p->tokens[_mark]->lineno; |
6751 | 5.46k | UNUSED(_start_lineno); // Only used by EXTRA macro |
6752 | 5.46k | int _start_col_offset = p->tokens[_mark]->col_offset; |
6753 | 5.46k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
6754 | 5.46k | if (p->call_invalid_rules) { // invalid_with_stmt_indent |
6755 | 2.30k | if (p->error_indicator) { |
6756 | 0 | p->level--; |
6757 | 0 | return NULL; |
6758 | 0 | } |
6759 | 2.30k | D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent")); |
6760 | 2.30k | void *invalid_with_stmt_indent_var; |
6761 | 2.30k | if ( |
6762 | 2.30k | (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent |
6763 | 2.30k | ) |
6764 | 0 | { |
6765 | 0 | D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent")); |
6766 | 0 | _res = invalid_with_stmt_indent_var; |
6767 | 0 | goto done; |
6768 | 0 | } |
6769 | 2.30k | p->mark = _mark; |
6770 | 2.30k | D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6771 | 2.30k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent")); |
6772 | 2.30k | } |
6773 | 5.46k | { // 'with' '(' ','.with_item+ ','? ')' ':' TYPE_COMMENT? block |
6774 | 5.46k | if (p->error_indicator) { |
6775 | 44 | p->level--; |
6776 | 44 | return NULL; |
6777 | 44 | } |
6778 | 5.41k | D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' TYPE_COMMENT? block")); |
6779 | 5.41k | Token * _keyword; |
6780 | 5.41k | Token * _literal; |
6781 | 5.41k | Token * _literal_1; |
6782 | 5.41k | Token * _literal_2; |
6783 | 5.41k | void *_opt_var; |
6784 | 5.41k | UNUSED(_opt_var); // Silence compiler warnings |
6785 | 5.41k | asdl_withitem_seq* a; |
6786 | 5.41k | asdl_stmt_seq* b; |
6787 | 5.41k | void *tc; |
6788 | 5.41k | if ( |
6789 | 5.41k | (_keyword = _PyPegen_expect_token(p, 516)) // token='with' |
6790 | 4.34k | && |
6791 | 4.34k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
6792 | 3.32k | && |
6793 | 3.32k | (a = (asdl_withitem_seq*)_gather_34_rule(p)) // ','.with_item+ |
6794 | 2.53k | && |
6795 | 2.53k | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
6796 | 2.53k | && |
6797 | 2.53k | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
6798 | 1.97k | && |
6799 | 1.97k | (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':' |
6800 | 1.09k | && |
6801 | 1.09k | (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? |
6802 | 1.09k | && |
6803 | 1.09k | (b = block_rule(p)) // block |
6804 | 5.41k | ) |
6805 | 1.07k | { |
6806 | 1.07k | D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' TYPE_COMMENT? block")); |
6807 | 1.07k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
6808 | 1.07k | if (_token == NULL) { |
6809 | 0 | p->level--; |
6810 | 0 | return NULL; |
6811 | 0 | } |
6812 | 1.07k | int _end_lineno = _token->end_lineno; |
6813 | 1.07k | UNUSED(_end_lineno); // Only used by EXTRA macro |
6814 | 1.07k | int _end_col_offset = _token->end_col_offset; |
6815 | 1.07k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
6816 | 1.07k | _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ); |
6817 | 1.07k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
6818 | 0 | p->error_indicator = 1; |
6819 | 0 | p->level--; |
6820 | 0 | return NULL; |
6821 | 0 | } |
6822 | 1.07k | goto done; |
6823 | 1.07k | } |
6824 | 4.34k | p->mark = _mark; |
6825 | 4.34k | D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6826 | 4.34k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' TYPE_COMMENT? block")); |
6827 | 4.34k | } |
6828 | 0 | { // 'with' ','.with_item+ ':' TYPE_COMMENT? block |
6829 | 4.34k | if (p->error_indicator) { |
6830 | 12 | p->level--; |
6831 | 12 | return NULL; |
6832 | 12 | } |
6833 | 4.33k | D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block")); |
6834 | 4.33k | Token * _keyword; |
6835 | 4.33k | Token * _literal; |
6836 | 4.33k | asdl_withitem_seq* a; |
6837 | 4.33k | asdl_stmt_seq* b; |
6838 | 4.33k | void *tc; |
6839 | 4.33k | if ( |
6840 | 4.33k | (_keyword = _PyPegen_expect_token(p, 516)) // token='with' |
6841 | 3.26k | && |
6842 | 3.26k | (a = (asdl_withitem_seq*)_gather_34_rule(p)) // ','.with_item+ |
6843 | 3.10k | && |
6844 | 3.10k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
6845 | 2.96k | && |
6846 | 2.96k | (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? |
6847 | 2.96k | && |
6848 | 2.96k | (b = block_rule(p)) // block |
6849 | 4.33k | ) |
6850 | 2.85k | { |
6851 | 2.85k | D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block")); |
6852 | 2.85k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
6853 | 2.85k | if (_token == NULL) { |
6854 | 0 | p->level--; |
6855 | 0 | return NULL; |
6856 | 0 | } |
6857 | 2.85k | int _end_lineno = _token->end_lineno; |
6858 | 2.85k | UNUSED(_end_lineno); // Only used by EXTRA macro |
6859 | 2.85k | int _end_col_offset = _token->end_col_offset; |
6860 | 2.85k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
6861 | 2.85k | _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ); |
6862 | 2.85k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
6863 | 0 | p->error_indicator = 1; |
6864 | 0 | p->level--; |
6865 | 0 | return NULL; |
6866 | 0 | } |
6867 | 2.85k | goto done; |
6868 | 2.85k | } |
6869 | 1.48k | p->mark = _mark; |
6870 | 1.48k | D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6871 | 1.48k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block")); |
6872 | 1.48k | } |
6873 | 0 | { // 'async' 'with' '(' ','.with_item+ ','? ')' ':' block |
6874 | 1.48k | if (p->error_indicator) { |
6875 | 26 | p->level--; |
6876 | 26 | return NULL; |
6877 | 26 | } |
6878 | 1.45k | D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async' 'with' '(' ','.with_item+ ','? ')' ':' block")); |
6879 | 1.45k | Token * _keyword; |
6880 | 1.45k | Token * _keyword_1; |
6881 | 1.45k | Token * _literal; |
6882 | 1.45k | Token * _literal_1; |
6883 | 1.45k | Token * _literal_2; |
6884 | 1.45k | void *_opt_var; |
6885 | 1.45k | UNUSED(_opt_var); // Silence compiler warnings |
6886 | 1.45k | asdl_withitem_seq* a; |
6887 | 1.45k | asdl_stmt_seq* b; |
6888 | 1.45k | if ( |
6889 | 1.45k | (_keyword = _PyPegen_expect_token(p, 513)) // token='async' |
6890 | 1.07k | && |
6891 | 1.07k | (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='with' |
6892 | 753 | && |
6893 | 753 | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
6894 | 634 | && |
6895 | 634 | (a = (asdl_withitem_seq*)_gather_34_rule(p)) // ','.with_item+ |
6896 | 545 | && |
6897 | 545 | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
6898 | 544 | && |
6899 | 544 | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
6900 | 384 | && |
6901 | 384 | (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':' |
6902 | 307 | && |
6903 | 307 | (b = block_rule(p)) // block |
6904 | 1.45k | ) |
6905 | 296 | { |
6906 | 296 | D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async' 'with' '(' ','.with_item+ ','? ')' ':' block")); |
6907 | 296 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
6908 | 296 | if (_token == NULL) { |
6909 | 0 | p->level--; |
6910 | 0 | return NULL; |
6911 | 0 | } |
6912 | 296 | int _end_lineno = _token->end_lineno; |
6913 | 296 | UNUSED(_end_lineno); // Only used by EXTRA macro |
6914 | 296 | int _end_col_offset = _token->end_col_offset; |
6915 | 296 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
6916 | 296 | _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) ); |
6917 | 296 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
6918 | 0 | p->error_indicator = 1; |
6919 | 0 | p->level--; |
6920 | 0 | return NULL; |
6921 | 0 | } |
6922 | 296 | goto done; |
6923 | 296 | } |
6924 | 1.16k | p->mark = _mark; |
6925 | 1.16k | D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6926 | 1.16k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async' 'with' '(' ','.with_item+ ','? ')' ':' block")); |
6927 | 1.16k | } |
6928 | 0 | { // 'async' 'with' ','.with_item+ ':' TYPE_COMMENT? block |
6929 | 1.16k | if (p->error_indicator) { |
6930 | 6 | p->level--; |
6931 | 6 | return NULL; |
6932 | 6 | } |
6933 | 1.15k | D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async' 'with' ','.with_item+ ':' TYPE_COMMENT? block")); |
6934 | 1.15k | Token * _keyword; |
6935 | 1.15k | Token * _keyword_1; |
6936 | 1.15k | Token * _literal; |
6937 | 1.15k | asdl_withitem_seq* a; |
6938 | 1.15k | asdl_stmt_seq* b; |
6939 | 1.15k | void *tc; |
6940 | 1.15k | if ( |
6941 | 1.15k | (_keyword = _PyPegen_expect_token(p, 513)) // token='async' |
6942 | 769 | && |
6943 | 769 | (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='with' |
6944 | 451 | && |
6945 | 451 | (a = (asdl_withitem_seq*)_gather_34_rule(p)) // ','.with_item+ |
6946 | 434 | && |
6947 | 434 | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
6948 | 408 | && |
6949 | 408 | (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT? |
6950 | 407 | && |
6951 | 407 | (b = block_rule(p)) // block |
6952 | 1.15k | ) |
6953 | 382 | { |
6954 | 382 | D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async' 'with' ','.with_item+ ':' TYPE_COMMENT? block")); |
6955 | 382 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
6956 | 382 | if (_token == NULL) { |
6957 | 0 | p->level--; |
6958 | 0 | return NULL; |
6959 | 0 | } |
6960 | 382 | int _end_lineno = _token->end_lineno; |
6961 | 382 | UNUSED(_end_lineno); // Only used by EXTRA macro |
6962 | 382 | int _end_col_offset = _token->end_col_offset; |
6963 | 382 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
6964 | 382 | _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) ); |
6965 | 382 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
6966 | 0 | p->error_indicator = 1; |
6967 | 0 | p->level--; |
6968 | 0 | return NULL; |
6969 | 0 | } |
6970 | 382 | goto done; |
6971 | 382 | } |
6972 | 774 | p->mark = _mark; |
6973 | 774 | D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6974 | 774 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async' 'with' ','.with_item+ ':' TYPE_COMMENT? block")); |
6975 | 774 | } |
6976 | 774 | if (p->call_invalid_rules) { // invalid_with_stmt |
6977 | 306 | if (p->error_indicator) { |
6978 | 5 | p->level--; |
6979 | 5 | return NULL; |
6980 | 5 | } |
6981 | 301 | D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt")); |
6982 | 301 | void *invalid_with_stmt_var; |
6983 | 301 | if ( |
6984 | 301 | (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt |
6985 | 301 | ) |
6986 | 0 | { |
6987 | 0 | D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt")); |
6988 | 0 | _res = invalid_with_stmt_var; |
6989 | 0 | goto done; |
6990 | 0 | } |
6991 | 301 | p->mark = _mark; |
6992 | 301 | D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
6993 | 301 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt")); |
6994 | 301 | } |
6995 | 769 | _res = NULL; |
6996 | 5.36k | done: |
6997 | 5.36k | p->level--; |
6998 | 5.36k | return _res; |
6999 | 769 | } |
7000 | | |
7001 | | // with_item: |
7002 | | // | expression 'as' star_target &(',' | ')' | ':') |
7003 | | // | invalid_with_item |
7004 | | // | expression |
7005 | | static withitem_ty |
7006 | | with_item_rule(Parser *p) |
7007 | 17.1k | { |
7008 | 17.1k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
7009 | 0 | _Pypegen_stack_overflow(p); |
7010 | 0 | } |
7011 | 17.1k | if (p->error_indicator) { |
7012 | 0 | p->level--; |
7013 | 0 | return NULL; |
7014 | 0 | } |
7015 | 17.1k | withitem_ty _res = NULL; |
7016 | 17.1k | int _mark = p->mark; |
7017 | 17.1k | { // expression 'as' star_target &(',' | ')' | ':') |
7018 | 17.1k | if (p->error_indicator) { |
7019 | 0 | p->level--; |
7020 | 0 | return NULL; |
7021 | 0 | } |
7022 | 17.1k | D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')")); |
7023 | 17.1k | Token * _keyword; |
7024 | 17.1k | expr_ty e; |
7025 | 17.1k | expr_ty t; |
7026 | 17.1k | if ( |
7027 | 17.1k | (e = expression_rule(p)) // expression |
7028 | 15.0k | && |
7029 | 15.0k | (_keyword = _PyPegen_expect_token(p, 520)) // token='as' |
7030 | 1.65k | && |
7031 | 1.65k | (t = star_target_rule(p)) // star_target |
7032 | 1.64k | && |
7033 | 1.64k | _PyPegen_lookahead(1, _tmp_35_rule, p) |
7034 | 17.1k | ) |
7035 | 1.63k | { |
7036 | 1.63k | D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')")); |
7037 | 1.63k | _res = _PyAST_withitem ( e , t , p -> arena ); |
7038 | 1.63k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
7039 | 0 | p->error_indicator = 1; |
7040 | 0 | p->level--; |
7041 | 0 | return NULL; |
7042 | 0 | } |
7043 | 1.63k | goto done; |
7044 | 1.63k | } |
7045 | 15.4k | p->mark = _mark; |
7046 | 15.4k | D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ', |
7047 | 15.4k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')")); |
7048 | 15.4k | } |
7049 | 15.4k | if (p->call_invalid_rules) { // invalid_with_item |
7050 | 6.75k | if (p->error_indicator) { |
7051 | 0 | p->level--; |
7052 | 0 | return NULL; |
7053 | 0 | } |
7054 | 6.75k | D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item")); |
7055 | 6.75k | void *invalid_with_item_var; |
7056 | 6.75k | if ( |
7057 | 6.75k | (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item |
7058 | 6.75k | ) |
7059 | 0 | { |
7060 | 0 | D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item")); |
7061 | 0 | _res = invalid_with_item_var; |
7062 | 0 | goto done; |
7063 | 0 | } |
7064 | 6.75k | p->mark = _mark; |
7065 | 6.75k | D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ', |
7066 | 6.75k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item")); |
7067 | 6.75k | } |
7068 | 15.4k | { // expression |
7069 | 15.4k | if (p->error_indicator) { |
7070 | 20 | p->level--; |
7071 | 20 | return NULL; |
7072 | 20 | } |
7073 | 15.4k | D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression")); |
7074 | 15.4k | expr_ty e; |
7075 | 15.4k | if ( |
7076 | 15.4k | (e = expression_rule(p)) // expression |
7077 | 15.4k | ) |
7078 | 13.4k | { |
7079 | 13.4k | D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression")); |
7080 | 13.4k | _res = _PyAST_withitem ( e , NULL , p -> arena ); |
7081 | 13.4k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
7082 | 0 | p->error_indicator = 1; |
7083 | 0 | p->level--; |
7084 | 0 | return NULL; |
7085 | 0 | } |
7086 | 13.4k | goto done; |
7087 | 13.4k | } |
7088 | 2.04k | p->mark = _mark; |
7089 | 2.04k | D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ', |
7090 | 2.04k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression")); |
7091 | 2.04k | } |
7092 | 2.04k | _res = NULL; |
7093 | 17.1k | done: |
7094 | 17.1k | p->level--; |
7095 | 17.1k | return _res; |
7096 | 2.04k | } |
7097 | | |
7098 | | // try_stmt: |
7099 | | // | invalid_try_stmt |
7100 | | // | 'try' &&':' block finally_block |
7101 | | // | 'try' &&':' block except_block+ else_block? finally_block? |
7102 | | // | 'try' &&':' block except_star_block+ else_block? finally_block? |
7103 | | static stmt_ty |
7104 | | try_stmt_rule(Parser *p) |
7105 | 5.15k | { |
7106 | 5.15k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
7107 | 0 | _Pypegen_stack_overflow(p); |
7108 | 0 | } |
7109 | 5.15k | if (p->error_indicator) { |
7110 | 0 | p->level--; |
7111 | 0 | return NULL; |
7112 | 0 | } |
7113 | 5.15k | stmt_ty _res = NULL; |
7114 | 5.15k | int _mark = p->mark; |
7115 | 5.15k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
7116 | 0 | p->error_indicator = 1; |
7117 | 0 | p->level--; |
7118 | 0 | return NULL; |
7119 | 0 | } |
7120 | 5.15k | int _start_lineno = p->tokens[_mark]->lineno; |
7121 | 5.15k | UNUSED(_start_lineno); // Only used by EXTRA macro |
7122 | 5.15k | int _start_col_offset = p->tokens[_mark]->col_offset; |
7123 | 5.15k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
7124 | 5.15k | if (p->call_invalid_rules) { // invalid_try_stmt |
7125 | 1.90k | if (p->error_indicator) { |
7126 | 0 | p->level--; |
7127 | 0 | return NULL; |
7128 | 0 | } |
7129 | 1.90k | D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt")); |
7130 | 1.90k | void *invalid_try_stmt_var; |
7131 | 1.90k | if ( |
7132 | 1.90k | (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt |
7133 | 1.90k | ) |
7134 | 0 | { |
7135 | 0 | D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt")); |
7136 | 0 | _res = invalid_try_stmt_var; |
7137 | 0 | goto done; |
7138 | 0 | } |
7139 | 1.90k | p->mark = _mark; |
7140 | 1.90k | D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
7141 | 1.90k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt")); |
7142 | 1.90k | } |
7143 | 5.15k | { // 'try' &&':' block finally_block |
7144 | 5.15k | if (p->error_indicator) { |
7145 | 152 | p->level--; |
7146 | 152 | return NULL; |
7147 | 152 | } |
7148 | 4.99k | D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block finally_block")); |
7149 | 4.99k | Token * _keyword; |
7150 | 4.99k | Token * _literal; |
7151 | 4.99k | asdl_stmt_seq* b; |
7152 | 4.99k | asdl_stmt_seq* f; |
7153 | 4.99k | if ( |
7154 | 4.99k | (_keyword = _PyPegen_expect_token(p, 518)) // token='try' |
7155 | 4.99k | && |
7156 | 4.99k | (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' |
7157 | 4.99k | && |
7158 | 4.99k | (b = block_rule(p)) // block |
7159 | 4.77k | && |
7160 | 4.77k | (f = finally_block_rule(p)) // finally_block |
7161 | 4.99k | ) |
7162 | 861 | { |
7163 | 861 | D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' &&':' block finally_block")); |
7164 | 861 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
7165 | 861 | if (_token == NULL) { |
7166 | 0 | p->level--; |
7167 | 0 | return NULL; |
7168 | 0 | } |
7169 | 861 | int _end_lineno = _token->end_lineno; |
7170 | 861 | UNUSED(_end_lineno); // Only used by EXTRA macro |
7171 | 861 | int _end_col_offset = _token->end_col_offset; |
7172 | 861 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
7173 | 861 | _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA ); |
7174 | 861 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
7175 | 0 | p->error_indicator = 1; |
7176 | 0 | p->level--; |
7177 | 0 | return NULL; |
7178 | 0 | } |
7179 | 861 | goto done; |
7180 | 861 | } |
7181 | 4.13k | p->mark = _mark; |
7182 | 4.13k | D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
7183 | 4.13k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block")); |
7184 | 4.13k | } |
7185 | 0 | { // 'try' &&':' block except_block+ else_block? finally_block? |
7186 | 4.13k | if (p->error_indicator) { |
7187 | 25 | p->level--; |
7188 | 25 | return NULL; |
7189 | 25 | } |
7190 | 4.11k | D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?")); |
7191 | 4.11k | Token * _keyword; |
7192 | 4.11k | Token * _literal; |
7193 | 4.11k | asdl_stmt_seq* b; |
7194 | 4.11k | void *el; |
7195 | 4.11k | asdl_excepthandler_seq* ex; |
7196 | 4.11k | void *f; |
7197 | 4.11k | if ( |
7198 | 4.11k | (_keyword = _PyPegen_expect_token(p, 518)) // token='try' |
7199 | 4.11k | && |
7200 | 4.11k | (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' |
7201 | 4.11k | && |
7202 | 4.11k | (b = block_rule(p)) // block |
7203 | 3.91k | && |
7204 | 3.91k | (ex = (asdl_excepthandler_seq*)_loop1_36_rule(p)) // except_block+ |
7205 | 2.34k | && |
7206 | 2.34k | (el = else_block_rule(p), !p->error_indicator) // else_block? |
7207 | 2.33k | && |
7208 | 2.33k | (f = finally_block_rule(p), !p->error_indicator) // finally_block? |
7209 | 4.11k | ) |
7210 | 2.33k | { |
7211 | 2.33k | D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?")); |
7212 | 2.33k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
7213 | 2.33k | if (_token == NULL) { |
7214 | 0 | p->level--; |
7215 | 0 | return NULL; |
7216 | 0 | } |
7217 | 2.33k | int _end_lineno = _token->end_lineno; |
7218 | 2.33k | UNUSED(_end_lineno); // Only used by EXTRA macro |
7219 | 2.33k | int _end_col_offset = _token->end_col_offset; |
7220 | 2.33k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
7221 | 2.33k | _res = _PyAST_Try ( b , ex , el , f , EXTRA ); |
7222 | 2.33k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
7223 | 0 | p->error_indicator = 1; |
7224 | 0 | p->level--; |
7225 | 0 | return NULL; |
7226 | 0 | } |
7227 | 2.33k | goto done; |
7228 | 2.33k | } |
7229 | 1.77k | p->mark = _mark; |
7230 | 1.77k | D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
7231 | 1.77k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?")); |
7232 | 1.77k | } |
7233 | 0 | { // 'try' &&':' block except_star_block+ else_block? finally_block? |
7234 | 1.77k | if (p->error_indicator) { |
7235 | 16 | p->level--; |
7236 | 16 | return NULL; |
7237 | 16 | } |
7238 | 1.75k | D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_star_block+ else_block? finally_block?")); |
7239 | 1.75k | Token * _keyword; |
7240 | 1.75k | Token * _literal; |
7241 | 1.75k | asdl_stmt_seq* b; |
7242 | 1.75k | void *el; |
7243 | 1.75k | asdl_excepthandler_seq* ex; |
7244 | 1.75k | void *f; |
7245 | 1.75k | if ( |
7246 | 1.75k | (_keyword = _PyPegen_expect_token(p, 518)) // token='try' |
7247 | 1.75k | && |
7248 | 1.75k | (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' |
7249 | 1.75k | && |
7250 | 1.75k | (b = block_rule(p)) // block |
7251 | 1.55k | && |
7252 | 1.55k | (ex = (asdl_excepthandler_seq*)_loop1_37_rule(p)) // except_star_block+ |
7253 | 1.33k | && |
7254 | 1.33k | (el = else_block_rule(p), !p->error_indicator) // else_block? |
7255 | 1.33k | && |
7256 | 1.33k | (f = finally_block_rule(p), !p->error_indicator) // finally_block? |
7257 | 1.75k | ) |
7258 | 1.33k | { |
7259 | 1.33k | D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_star_block+ else_block? finally_block?")); |
7260 | 1.33k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
7261 | 1.33k | if (_token == NULL) { |
7262 | 0 | p->level--; |
7263 | 0 | return NULL; |
7264 | 0 | } |
7265 | 1.33k | int _end_lineno = _token->end_lineno; |
7266 | 1.33k | UNUSED(_end_lineno); // Only used by EXTRA macro |
7267 | 1.33k | int _end_col_offset = _token->end_col_offset; |
7268 | 1.33k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
7269 | 1.33k | _res = CHECK_VERSION ( stmt_ty , 11 , "Exception groups are" , _PyAST_TryStar ( b , ex , el , f , EXTRA ) ); |
7270 | 1.33k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
7271 | 0 | p->error_indicator = 1; |
7272 | 0 | p->level--; |
7273 | 0 | return NULL; |
7274 | 0 | } |
7275 | 1.33k | goto done; |
7276 | 1.33k | } |
7277 | 422 | p->mark = _mark; |
7278 | 422 | D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
7279 | 422 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_star_block+ else_block? finally_block?")); |
7280 | 422 | } |
7281 | 422 | _res = NULL; |
7282 | 4.95k | done: |
7283 | 4.95k | p->level--; |
7284 | 4.95k | return _res; |
7285 | 422 | } |
7286 | | |
7287 | | // except_block: |
7288 | | // | invalid_except_stmt_indent |
7289 | | // | 'except' expression ':' block |
7290 | | // | 'except' expression 'as' NAME ':' block |
7291 | | // | 'except' expressions ':' block |
7292 | | // | 'except' ':' block |
7293 | | // | invalid_except_stmt |
7294 | | Py_LOCAL_SYMBOL excepthandler_ty |
7295 | | except_block_rule(Parser *p) |
7296 | 11.5k | { |
7297 | 11.5k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
7298 | 0 | _Pypegen_stack_overflow(p); |
7299 | 0 | } |
7300 | 11.5k | if (p->error_indicator) { |
7301 | 0 | p->level--; |
7302 | 0 | return NULL; |
7303 | 0 | } |
7304 | 11.5k | excepthandler_ty _res = NULL; |
7305 | 11.5k | int _mark = p->mark; |
7306 | 11.5k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
7307 | 4 | p->error_indicator = 1; |
7308 | 4 | p->level--; |
7309 | 4 | return NULL; |
7310 | 4 | } |
7311 | 11.5k | int _start_lineno = p->tokens[_mark]->lineno; |
7312 | 11.5k | UNUSED(_start_lineno); // Only used by EXTRA macro |
7313 | 11.5k | int _start_col_offset = p->tokens[_mark]->col_offset; |
7314 | 11.5k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
7315 | 11.5k | if (p->call_invalid_rules) { // invalid_except_stmt_indent |
7316 | 6.44k | if (p->error_indicator) { |
7317 | 0 | p->level--; |
7318 | 0 | return NULL; |
7319 | 0 | } |
7320 | 6.44k | D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent")); |
7321 | 6.44k | void *invalid_except_stmt_indent_var; |
7322 | 6.44k | if ( |
7323 | 6.44k | (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent |
7324 | 6.44k | ) |
7325 | 0 | { |
7326 | 0 | D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent")); |
7327 | 0 | _res = invalid_except_stmt_indent_var; |
7328 | 0 | goto done; |
7329 | 0 | } |
7330 | 6.44k | p->mark = _mark; |
7331 | 6.44k | D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ', |
7332 | 6.44k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent")); |
7333 | 6.44k | } |
7334 | 11.5k | { // 'except' expression ':' block |
7335 | 11.5k | if (p->error_indicator) { |
7336 | 8 | p->level--; |
7337 | 8 | return NULL; |
7338 | 8 | } |
7339 | 11.5k | D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ':' block")); |
7340 | 11.5k | Token * _keyword; |
7341 | 11.5k | Token * _literal; |
7342 | 11.5k | asdl_stmt_seq* b; |
7343 | 11.5k | expr_ty e; |
7344 | 11.5k | if ( |
7345 | 11.5k | (_keyword = _PyPegen_expect_token(p, 524)) // token='except' |
7346 | 8.01k | && |
7347 | 8.01k | (e = expression_rule(p)) // expression |
7348 | 2.54k | && |
7349 | 2.54k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
7350 | 1.36k | && |
7351 | 1.36k | (b = block_rule(p)) // block |
7352 | 11.5k | ) |
7353 | 1.29k | { |
7354 | 1.29k | D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ':' block")); |
7355 | 1.29k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
7356 | 1.29k | if (_token == NULL) { |
7357 | 0 | p->level--; |
7358 | 0 | return NULL; |
7359 | 0 | } |
7360 | 1.29k | int _end_lineno = _token->end_lineno; |
7361 | 1.29k | UNUSED(_end_lineno); // Only used by EXTRA macro |
7362 | 1.29k | int _end_col_offset = _token->end_col_offset; |
7363 | 1.29k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
7364 | 1.29k | _res = _PyAST_ExceptHandler ( e , NULL , b , EXTRA ); |
7365 | 1.29k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
7366 | 0 | p->error_indicator = 1; |
7367 | 0 | p->level--; |
7368 | 0 | return NULL; |
7369 | 0 | } |
7370 | 1.29k | goto done; |
7371 | 1.29k | } |
7372 | 10.2k | p->mark = _mark; |
7373 | 10.2k | D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ', |
7374 | 10.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ':' block")); |
7375 | 10.2k | } |
7376 | 0 | { // 'except' expression 'as' NAME ':' block |
7377 | 10.2k | if (p->error_indicator) { |
7378 | 14 | p->level--; |
7379 | 14 | return NULL; |
7380 | 14 | } |
7381 | 10.2k | D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression 'as' NAME ':' block")); |
7382 | 10.2k | Token * _keyword; |
7383 | 10.2k | Token * _keyword_1; |
7384 | 10.2k | Token * _literal; |
7385 | 10.2k | asdl_stmt_seq* b; |
7386 | 10.2k | expr_ty e; |
7387 | 10.2k | expr_ty t; |
7388 | 10.2k | if ( |
7389 | 10.2k | (_keyword = _PyPegen_expect_token(p, 524)) // token='except' |
7390 | 6.70k | && |
7391 | 6.70k | (e = expression_rule(p)) // expression |
7392 | 1.23k | && |
7393 | 1.23k | (_keyword_1 = _PyPegen_expect_token(p, 520)) // token='as' |
7394 | 306 | && |
7395 | 306 | (t = _PyPegen_name_token(p)) // NAME |
7396 | 294 | && |
7397 | 294 | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
7398 | 288 | && |
7399 | 288 | (b = block_rule(p)) // block |
7400 | 10.2k | ) |
7401 | 272 | { |
7402 | 272 | D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression 'as' NAME ':' block")); |
7403 | 272 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
7404 | 272 | if (_token == NULL) { |
7405 | 0 | p->level--; |
7406 | 0 | return NULL; |
7407 | 0 | } |
7408 | 272 | int _end_lineno = _token->end_lineno; |
7409 | 272 | UNUSED(_end_lineno); // Only used by EXTRA macro |
7410 | 272 | int _end_col_offset = _token->end_col_offset; |
7411 | 272 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
7412 | 272 | _res = _PyAST_ExceptHandler ( e , ( ( expr_ty ) t ) -> v . Name . id , b , EXTRA ); |
7413 | 272 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
7414 | 0 | p->error_indicator = 1; |
7415 | 0 | p->level--; |
7416 | 0 | return NULL; |
7417 | 0 | } |
7418 | 272 | goto done; |
7419 | 272 | } |
7420 | 9.94k | p->mark = _mark; |
7421 | 9.94k | D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ', |
7422 | 9.94k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression 'as' NAME ':' block")); |
7423 | 9.94k | } |
7424 | 0 | { // 'except' expressions ':' block |
7425 | 9.94k | if (p->error_indicator) { |
7426 | 4 | p->level--; |
7427 | 4 | return NULL; |
7428 | 4 | } |
7429 | 9.94k | D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expressions ':' block")); |
7430 | 9.94k | Token * _keyword; |
7431 | 9.94k | Token * _literal; |
7432 | 9.94k | asdl_stmt_seq* b; |
7433 | 9.94k | expr_ty e; |
7434 | 9.94k | if ( |
7435 | 9.94k | (_keyword = _PyPegen_expect_token(p, 524)) // token='except' |
7436 | 6.42k | && |
7437 | 6.42k | (e = expressions_rule(p)) // expressions |
7438 | 959 | && |
7439 | 959 | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
7440 | 864 | && |
7441 | 864 | (b = block_rule(p)) // block |
7442 | 9.94k | ) |
7443 | 797 | { |
7444 | 797 | D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expressions ':' block")); |
7445 | 797 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
7446 | 797 | if (_token == NULL) { |
7447 | 0 | p->level--; |
7448 | 0 | return NULL; |
7449 | 0 | } |
7450 | 797 | int _end_lineno = _token->end_lineno; |
7451 | 797 | UNUSED(_end_lineno); // Only used by EXTRA macro |
7452 | 797 | int _end_col_offset = _token->end_col_offset; |
7453 | 797 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
7454 | 797 | _res = CHECK_VERSION ( excepthandler_ty , 14 , "except expressions without parentheses are" , _PyAST_ExceptHandler ( e , NULL , b , EXTRA ) ); |
7455 | 797 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
7456 | 0 | p->error_indicator = 1; |
7457 | 0 | p->level--; |
7458 | 0 | return NULL; |
7459 | 0 | } |
7460 | 797 | goto done; |
7461 | 797 | } |
7462 | 9.14k | p->mark = _mark; |
7463 | 9.14k | D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ', |
7464 | 9.14k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expressions ':' block")); |
7465 | 9.14k | } |
7466 | 0 | { // 'except' ':' block |
7467 | 9.14k | if (p->error_indicator) { |
7468 | 4 | p->level--; |
7469 | 4 | return NULL; |
7470 | 4 | } |
7471 | 9.13k | D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block")); |
7472 | 9.13k | Token * _keyword; |
7473 | 9.13k | Token * _literal; |
7474 | 9.13k | asdl_stmt_seq* b; |
7475 | 9.13k | if ( |
7476 | 9.13k | (_keyword = _PyPegen_expect_token(p, 524)) // token='except' |
7477 | 5.62k | && |
7478 | 5.62k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
7479 | 3.48k | && |
7480 | 3.48k | (b = block_rule(p)) // block |
7481 | 9.13k | ) |
7482 | 3.41k | { |
7483 | 3.41k | D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' block")); |
7484 | 3.41k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
7485 | 3.41k | if (_token == NULL) { |
7486 | 0 | p->level--; |
7487 | 0 | return NULL; |
7488 | 0 | } |
7489 | 3.41k | int _end_lineno = _token->end_lineno; |
7490 | 3.41k | UNUSED(_end_lineno); // Only used by EXTRA macro |
7491 | 3.41k | int _end_col_offset = _token->end_col_offset; |
7492 | 3.41k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
7493 | 3.41k | _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA ); |
7494 | 3.41k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
7495 | 0 | p->error_indicator = 1; |
7496 | 0 | p->level--; |
7497 | 0 | return NULL; |
7498 | 0 | } |
7499 | 3.41k | goto done; |
7500 | 3.41k | } |
7501 | 5.72k | p->mark = _mark; |
7502 | 5.72k | D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ', |
7503 | 5.72k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block")); |
7504 | 5.72k | } |
7505 | 5.72k | if (p->call_invalid_rules) { // invalid_except_stmt |
7506 | 3.18k | if (p->error_indicator) { |
7507 | 8 | p->level--; |
7508 | 8 | return NULL; |
7509 | 8 | } |
7510 | 3.17k | D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt")); |
7511 | 3.17k | void *invalid_except_stmt_var; |
7512 | 3.17k | if ( |
7513 | 3.17k | (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt |
7514 | 3.17k | ) |
7515 | 0 | { |
7516 | 0 | D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt")); |
7517 | 0 | _res = invalid_except_stmt_var; |
7518 | 0 | goto done; |
7519 | 0 | } |
7520 | 3.17k | p->mark = _mark; |
7521 | 3.17k | D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ', |
7522 | 3.17k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt")); |
7523 | 3.17k | } |
7524 | 5.71k | _res = NULL; |
7525 | 11.4k | done: |
7526 | 11.4k | p->level--; |
7527 | 11.4k | return _res; |
7528 | 5.71k | } |
7529 | | |
7530 | | // except_star_block: |
7531 | | // | invalid_except_star_stmt_indent |
7532 | | // | 'except' '*' expression ':' block |
7533 | | // | 'except' '*' expression 'as' NAME ':' block |
7534 | | // | 'except' '*' expressions ':' block |
7535 | | // | invalid_except_star_stmt |
7536 | | Py_LOCAL_SYMBOL excepthandler_ty |
7537 | | except_star_block_rule(Parser *p) |
7538 | 7.67k | { |
7539 | 7.67k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
7540 | 0 | _Pypegen_stack_overflow(p); |
7541 | 0 | } |
7542 | 7.67k | if (p->error_indicator) { |
7543 | 0 | p->level--; |
7544 | 0 | return NULL; |
7545 | 0 | } |
7546 | 7.67k | excepthandler_ty _res = NULL; |
7547 | 7.67k | int _mark = p->mark; |
7548 | 7.67k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
7549 | 2 | p->error_indicator = 1; |
7550 | 2 | p->level--; |
7551 | 2 | return NULL; |
7552 | 2 | } |
7553 | 7.67k | int _start_lineno = p->tokens[_mark]->lineno; |
7554 | 7.67k | UNUSED(_start_lineno); // Only used by EXTRA macro |
7555 | 7.67k | int _start_col_offset = p->tokens[_mark]->col_offset; |
7556 | 7.67k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
7557 | 7.67k | if (p->call_invalid_rules) { // invalid_except_star_stmt_indent |
7558 | 4.76k | if (p->error_indicator) { |
7559 | 0 | p->level--; |
7560 | 0 | return NULL; |
7561 | 0 | } |
7562 | 4.76k | D(fprintf(stderr, "%*c> except_star_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_star_stmt_indent")); |
7563 | 4.76k | void *invalid_except_star_stmt_indent_var; |
7564 | 4.76k | if ( |
7565 | 4.76k | (invalid_except_star_stmt_indent_var = invalid_except_star_stmt_indent_rule(p)) // invalid_except_star_stmt_indent |
7566 | 4.76k | ) |
7567 | 0 | { |
7568 | 0 | D(fprintf(stderr, "%*c+ except_star_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_star_stmt_indent")); |
7569 | 0 | _res = invalid_except_star_stmt_indent_var; |
7570 | 0 | goto done; |
7571 | 0 | } |
7572 | 4.76k | p->mark = _mark; |
7573 | 4.76k | D(fprintf(stderr, "%*c%s except_star_block[%d-%d]: %s failed!\n", p->level, ' ', |
7574 | 4.76k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_star_stmt_indent")); |
7575 | 4.76k | } |
7576 | 7.67k | { // 'except' '*' expression ':' block |
7577 | 7.67k | if (p->error_indicator) { |
7578 | 4 | p->level--; |
7579 | 4 | return NULL; |
7580 | 4 | } |
7581 | 7.67k | D(fprintf(stderr, "%*c> except_star_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ':' block")); |
7582 | 7.67k | Token * _keyword; |
7583 | 7.67k | Token * _literal; |
7584 | 7.67k | Token * _literal_1; |
7585 | 7.67k | asdl_stmt_seq* b; |
7586 | 7.67k | expr_ty e; |
7587 | 7.67k | if ( |
7588 | 7.67k | (_keyword = _PyPegen_expect_token(p, 524)) // token='except' |
7589 | 5.50k | && |
7590 | 5.50k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
7591 | 4.49k | && |
7592 | 4.49k | (e = expression_rule(p)) // expression |
7593 | 4.48k | && |
7594 | 4.48k | (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' |
7595 | 3.75k | && |
7596 | 3.75k | (b = block_rule(p)) // block |
7597 | 7.67k | ) |
7598 | 3.72k | { |
7599 | 3.72k | D(fprintf(stderr, "%*c+ except_star_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ':' block")); |
7600 | 3.72k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
7601 | 3.72k | if (_token == NULL) { |
7602 | 0 | p->level--; |
7603 | 0 | return NULL; |
7604 | 0 | } |
7605 | 3.72k | int _end_lineno = _token->end_lineno; |
7606 | 3.72k | UNUSED(_end_lineno); // Only used by EXTRA macro |
7607 | 3.72k | int _end_col_offset = _token->end_col_offset; |
7608 | 3.72k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
7609 | 3.72k | _res = _PyAST_ExceptHandler ( e , NULL , b , EXTRA ); |
7610 | 3.72k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
7611 | 0 | p->error_indicator = 1; |
7612 | 0 | p->level--; |
7613 | 0 | return NULL; |
7614 | 0 | } |
7615 | 3.72k | goto done; |
7616 | 3.72k | } |
7617 | 3.94k | p->mark = _mark; |
7618 | 3.94k | D(fprintf(stderr, "%*c%s except_star_block[%d-%d]: %s failed!\n", p->level, ' ', |
7619 | 3.94k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expression ':' block")); |
7620 | 3.94k | } |
7621 | 0 | { // 'except' '*' expression 'as' NAME ':' block |
7622 | 3.94k | if (p->error_indicator) { |
7623 | 7 | p->level--; |
7624 | 7 | return NULL; |
7625 | 7 | } |
7626 | 3.94k | D(fprintf(stderr, "%*c> except_star_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' expression 'as' NAME ':' block")); |
7627 | 3.94k | Token * _keyword; |
7628 | 3.94k | Token * _keyword_1; |
7629 | 3.94k | Token * _literal; |
7630 | 3.94k | Token * _literal_1; |
7631 | 3.94k | asdl_stmt_seq* b; |
7632 | 3.94k | expr_ty e; |
7633 | 3.94k | expr_ty t; |
7634 | 3.94k | if ( |
7635 | 3.94k | (_keyword = _PyPegen_expect_token(p, 524)) // token='except' |
7636 | 1.77k | && |
7637 | 1.77k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
7638 | 766 | && |
7639 | 766 | (e = expression_rule(p)) // expression |
7640 | 750 | && |
7641 | 750 | (_keyword_1 = _PyPegen_expect_token(p, 520)) // token='as' |
7642 | 494 | && |
7643 | 494 | (t = _PyPegen_name_token(p)) // NAME |
7644 | 484 | && |
7645 | 484 | (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' |
7646 | 475 | && |
7647 | 475 | (b = block_rule(p)) // block |
7648 | 3.94k | ) |
7649 | 460 | { |
7650 | 460 | D(fprintf(stderr, "%*c+ except_star_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' expression 'as' NAME ':' block")); |
7651 | 460 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
7652 | 460 | if (_token == NULL) { |
7653 | 0 | p->level--; |
7654 | 0 | return NULL; |
7655 | 0 | } |
7656 | 460 | int _end_lineno = _token->end_lineno; |
7657 | 460 | UNUSED(_end_lineno); // Only used by EXTRA macro |
7658 | 460 | int _end_col_offset = _token->end_col_offset; |
7659 | 460 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
7660 | 460 | _res = _PyAST_ExceptHandler ( e , ( ( expr_ty ) t ) -> v . Name . id , b , EXTRA ); |
7661 | 460 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
7662 | 0 | p->error_indicator = 1; |
7663 | 0 | p->level--; |
7664 | 0 | return NULL; |
7665 | 0 | } |
7666 | 460 | goto done; |
7667 | 460 | } |
7668 | 3.48k | p->mark = _mark; |
7669 | 3.48k | D(fprintf(stderr, "%*c%s except_star_block[%d-%d]: %s failed!\n", p->level, ' ', |
7670 | 3.48k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expression 'as' NAME ':' block")); |
7671 | 3.48k | } |
7672 | 0 | { // 'except' '*' expressions ':' block |
7673 | 3.48k | if (p->error_indicator) { |
7674 | 2 | p->level--; |
7675 | 2 | return NULL; |
7676 | 2 | } |
7677 | 3.47k | D(fprintf(stderr, "%*c> except_star_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' expressions ':' block")); |
7678 | 3.47k | Token * _keyword; |
7679 | 3.47k | Token * _literal; |
7680 | 3.47k | Token * _literal_1; |
7681 | 3.47k | asdl_stmt_seq* b; |
7682 | 3.47k | expr_ty e; |
7683 | 3.47k | if ( |
7684 | 3.47k | (_keyword = _PyPegen_expect_token(p, 524)) // token='except' |
7685 | 1.31k | && |
7686 | 1.31k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
7687 | 304 | && |
7688 | 304 | (e = expressions_rule(p)) // expressions |
7689 | 286 | && |
7690 | 286 | (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' |
7691 | 178 | && |
7692 | 178 | (b = block_rule(p)) // block |
7693 | 3.47k | ) |
7694 | 142 | { |
7695 | 142 | D(fprintf(stderr, "%*c+ except_star_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' expressions ':' block")); |
7696 | 142 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
7697 | 142 | if (_token == NULL) { |
7698 | 0 | p->level--; |
7699 | 0 | return NULL; |
7700 | 0 | } |
7701 | 142 | int _end_lineno = _token->end_lineno; |
7702 | 142 | UNUSED(_end_lineno); // Only used by EXTRA macro |
7703 | 142 | int _end_col_offset = _token->end_col_offset; |
7704 | 142 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
7705 | 142 | _res = CHECK_VERSION ( excepthandler_ty , 14 , "except expressions without parentheses are" , _PyAST_ExceptHandler ( e , NULL , b , EXTRA ) ); |
7706 | 142 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
7707 | 0 | p->error_indicator = 1; |
7708 | 0 | p->level--; |
7709 | 0 | return NULL; |
7710 | 0 | } |
7711 | 142 | goto done; |
7712 | 142 | } |
7713 | 3.33k | p->mark = _mark; |
7714 | 3.33k | D(fprintf(stderr, "%*c%s except_star_block[%d-%d]: %s failed!\n", p->level, ' ', |
7715 | 3.33k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expressions ':' block")); |
7716 | 3.33k | } |
7717 | 3.33k | if (p->call_invalid_rules) { // invalid_except_star_stmt |
7718 | 2.31k | if (p->error_indicator) { |
7719 | 8 | p->level--; |
7720 | 8 | return NULL; |
7721 | 8 | } |
7722 | 2.30k | D(fprintf(stderr, "%*c> except_star_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_star_stmt")); |
7723 | 2.30k | void *invalid_except_star_stmt_var; |
7724 | 2.30k | if ( |
7725 | 2.30k | (invalid_except_star_stmt_var = invalid_except_star_stmt_rule(p)) // invalid_except_star_stmt |
7726 | 2.30k | ) |
7727 | 0 | { |
7728 | 0 | D(fprintf(stderr, "%*c+ except_star_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_star_stmt")); |
7729 | 0 | _res = invalid_except_star_stmt_var; |
7730 | 0 | goto done; |
7731 | 0 | } |
7732 | 2.30k | p->mark = _mark; |
7733 | 2.30k | D(fprintf(stderr, "%*c%s except_star_block[%d-%d]: %s failed!\n", p->level, ' ', |
7734 | 2.30k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_star_stmt")); |
7735 | 2.30k | } |
7736 | 3.32k | _res = NULL; |
7737 | 7.65k | done: |
7738 | 7.65k | p->level--; |
7739 | 7.65k | return _res; |
7740 | 3.32k | } |
7741 | | |
7742 | | // finally_block: invalid_finally_stmt | 'finally' &&':' block |
7743 | | static asdl_stmt_seq* |
7744 | | finally_block_rule(Parser *p) |
7745 | 8.45k | { |
7746 | 8.45k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
7747 | 0 | _Pypegen_stack_overflow(p); |
7748 | 0 | } |
7749 | 8.45k | if (p->error_indicator) { |
7750 | 0 | p->level--; |
7751 | 0 | return NULL; |
7752 | 0 | } |
7753 | 8.45k | asdl_stmt_seq* _res = NULL; |
7754 | 8.45k | int _mark = p->mark; |
7755 | 8.45k | if (p->call_invalid_rules) { // invalid_finally_stmt |
7756 | 2.96k | if (p->error_indicator) { |
7757 | 0 | p->level--; |
7758 | 0 | return NULL; |
7759 | 0 | } |
7760 | 2.96k | D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt")); |
7761 | 2.96k | void *invalid_finally_stmt_var; |
7762 | 2.96k | if ( |
7763 | 2.96k | (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt |
7764 | 2.96k | ) |
7765 | 0 | { |
7766 | 0 | D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt")); |
7767 | 0 | _res = invalid_finally_stmt_var; |
7768 | 0 | goto done; |
7769 | 0 | } |
7770 | 2.96k | p->mark = _mark; |
7771 | 2.96k | D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ', |
7772 | 2.96k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt")); |
7773 | 2.96k | } |
7774 | 8.45k | { // 'finally' &&':' block |
7775 | 8.45k | if (p->error_indicator) { |
7776 | 2 | p->level--; |
7777 | 2 | return NULL; |
7778 | 2 | } |
7779 | 8.44k | D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block")); |
7780 | 8.44k | Token * _keyword; |
7781 | 8.44k | Token * _literal; |
7782 | 8.44k | asdl_stmt_seq* a; |
7783 | 8.44k | if ( |
7784 | 8.44k | (_keyword = _PyPegen_expect_token(p, 525)) // token='finally' |
7785 | 897 | && |
7786 | 897 | (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' |
7787 | 894 | && |
7788 | 894 | (a = block_rule(p)) // block |
7789 | 8.44k | ) |
7790 | 874 | { |
7791 | 874 | D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block")); |
7792 | 874 | _res = a; |
7793 | 874 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
7794 | 0 | p->error_indicator = 1; |
7795 | 0 | p->level--; |
7796 | 0 | return NULL; |
7797 | 0 | } |
7798 | 874 | goto done; |
7799 | 874 | } |
7800 | 7.57k | p->mark = _mark; |
7801 | 7.57k | D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ', |
7802 | 7.57k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block")); |
7803 | 7.57k | } |
7804 | 7.57k | _res = NULL; |
7805 | 8.44k | done: |
7806 | 8.44k | p->level--; |
7807 | 8.44k | return _res; |
7808 | 7.57k | } |
7809 | | |
7810 | | // match_stmt: |
7811 | | // | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT |
7812 | | // | invalid_match_stmt |
7813 | | static stmt_ty |
7814 | | match_stmt_rule(Parser *p) |
7815 | 207k | { |
7816 | 207k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
7817 | 0 | _Pypegen_stack_overflow(p); |
7818 | 0 | } |
7819 | 207k | if (p->error_indicator) { |
7820 | 0 | p->level--; |
7821 | 0 | return NULL; |
7822 | 0 | } |
7823 | 207k | stmt_ty _res = NULL; |
7824 | 207k | int _mark = p->mark; |
7825 | 207k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
7826 | 0 | p->error_indicator = 1; |
7827 | 0 | p->level--; |
7828 | 0 | return NULL; |
7829 | 0 | } |
7830 | 207k | int _start_lineno = p->tokens[_mark]->lineno; |
7831 | 207k | UNUSED(_start_lineno); // Only used by EXTRA macro |
7832 | 207k | int _start_col_offset = p->tokens[_mark]->col_offset; |
7833 | 207k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
7834 | 207k | { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT |
7835 | 207k | if (p->error_indicator) { |
7836 | 0 | p->level--; |
7837 | 0 | return NULL; |
7838 | 0 | } |
7839 | 207k | D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT")); |
7840 | 207k | expr_ty _keyword; |
7841 | 207k | Token * _literal; |
7842 | 207k | asdl_match_case_seq* cases; |
7843 | 207k | Token * dedent_var; |
7844 | 207k | Token * indent_var; |
7845 | 207k | Token * newline_var; |
7846 | 207k | expr_ty subject; |
7847 | 207k | if ( |
7848 | 207k | (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"' |
7849 | 3.73k | && |
7850 | 3.73k | (subject = subject_expr_rule(p)) // subject_expr |
7851 | 3.05k | && |
7852 | 3.05k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
7853 | 2.36k | && |
7854 | 2.36k | (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' |
7855 | 1.71k | && |
7856 | 1.71k | (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT' |
7857 | 1.71k | && |
7858 | 1.71k | (cases = (asdl_match_case_seq*)_loop1_38_rule(p)) // case_block+ |
7859 | 858 | && |
7860 | 858 | (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT' |
7861 | 207k | ) |
7862 | 756 | { |
7863 | 756 | D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT")); |
7864 | 756 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
7865 | 756 | if (_token == NULL) { |
7866 | 0 | p->level--; |
7867 | 0 | return NULL; |
7868 | 0 | } |
7869 | 756 | int _end_lineno = _token->end_lineno; |
7870 | 756 | UNUSED(_end_lineno); // Only used by EXTRA macro |
7871 | 756 | int _end_col_offset = _token->end_col_offset; |
7872 | 756 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
7873 | 756 | _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) ); |
7874 | 756 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
7875 | 0 | p->error_indicator = 1; |
7876 | 0 | p->level--; |
7877 | 0 | return NULL; |
7878 | 0 | } |
7879 | 756 | goto done; |
7880 | 756 | } |
7881 | 207k | p->mark = _mark; |
7882 | 207k | D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
7883 | 207k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT")); |
7884 | 207k | } |
7885 | 207k | if (p->call_invalid_rules) { // invalid_match_stmt |
7886 | 80.4k | if (p->error_indicator) { |
7887 | 107 | p->level--; |
7888 | 107 | return NULL; |
7889 | 107 | } |
7890 | 80.3k | D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt")); |
7891 | 80.3k | void *invalid_match_stmt_var; |
7892 | 80.3k | if ( |
7893 | 80.3k | (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt |
7894 | 80.3k | ) |
7895 | 0 | { |
7896 | 0 | D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt")); |
7897 | 0 | _res = invalid_match_stmt_var; |
7898 | 0 | goto done; |
7899 | 0 | } |
7900 | 80.3k | p->mark = _mark; |
7901 | 80.3k | D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ', |
7902 | 80.3k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt")); |
7903 | 80.3k | } |
7904 | 207k | _res = NULL; |
7905 | 207k | done: |
7906 | 207k | p->level--; |
7907 | 207k | return _res; |
7908 | 207k | } |
7909 | | |
7910 | | // subject_expr: star_named_expression ',' star_named_expressions? | named_expression |
7911 | | Py_LOCAL_SYMBOL expr_ty |
7912 | | subject_expr_rule(Parser *p) |
7913 | 6.29k | { |
7914 | 6.29k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
7915 | 0 | _Pypegen_stack_overflow(p); |
7916 | 0 | } |
7917 | 6.29k | if (p->error_indicator) { |
7918 | 0 | p->level--; |
7919 | 0 | return NULL; |
7920 | 0 | } |
7921 | 6.29k | expr_ty _res = NULL; |
7922 | 6.29k | int _mark = p->mark; |
7923 | 6.29k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
7924 | 1 | p->error_indicator = 1; |
7925 | 1 | p->level--; |
7926 | 1 | return NULL; |
7927 | 1 | } |
7928 | 6.28k | int _start_lineno = p->tokens[_mark]->lineno; |
7929 | 6.28k | UNUSED(_start_lineno); // Only used by EXTRA macro |
7930 | 6.28k | int _start_col_offset = p->tokens[_mark]->col_offset; |
7931 | 6.28k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
7932 | 6.28k | { // star_named_expression ',' star_named_expressions? |
7933 | 6.28k | if (p->error_indicator) { |
7934 | 0 | p->level--; |
7935 | 0 | return NULL; |
7936 | 0 | } |
7937 | 6.28k | D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?")); |
7938 | 6.28k | Token * _literal; |
7939 | 6.28k | expr_ty value; |
7940 | 6.28k | void *values; |
7941 | 6.28k | if ( |
7942 | 6.28k | (value = star_named_expression_rule(p)) // star_named_expression |
7943 | 4.97k | && |
7944 | 4.97k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
7945 | 319 | && |
7946 | 319 | (values = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions? |
7947 | 6.28k | ) |
7948 | 318 | { |
7949 | 318 | D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?")); |
7950 | 318 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
7951 | 318 | if (_token == NULL) { |
7952 | 0 | p->level--; |
7953 | 0 | return NULL; |
7954 | 0 | } |
7955 | 318 | int _end_lineno = _token->end_lineno; |
7956 | 318 | UNUSED(_end_lineno); // Only used by EXTRA macro |
7957 | 318 | int _end_col_offset = _token->end_col_offset; |
7958 | 318 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
7959 | 318 | _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA ); |
7960 | 318 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
7961 | 0 | p->error_indicator = 1; |
7962 | 0 | p->level--; |
7963 | 0 | return NULL; |
7964 | 0 | } |
7965 | 318 | goto done; |
7966 | 318 | } |
7967 | 5.97k | p->mark = _mark; |
7968 | 5.97k | D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ', |
7969 | 5.97k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?")); |
7970 | 5.97k | } |
7971 | 0 | { // named_expression |
7972 | 5.97k | if (p->error_indicator) { |
7973 | 6 | p->level--; |
7974 | 6 | return NULL; |
7975 | 6 | } |
7976 | 5.96k | D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression")); |
7977 | 5.96k | expr_ty named_expression_var; |
7978 | 5.96k | if ( |
7979 | 5.96k | (named_expression_var = named_expression_rule(p)) // named_expression |
7980 | 5.96k | ) |
7981 | 4.62k | { |
7982 | 4.62k | D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression")); |
7983 | 4.62k | _res = named_expression_var; |
7984 | 4.62k | goto done; |
7985 | 4.62k | } |
7986 | 1.34k | p->mark = _mark; |
7987 | 1.34k | D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ', |
7988 | 1.34k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression")); |
7989 | 1.34k | } |
7990 | 1.34k | _res = NULL; |
7991 | 6.28k | done: |
7992 | 6.28k | p->level--; |
7993 | 6.28k | return _res; |
7994 | 1.34k | } |
7995 | | |
7996 | | // case_block: invalid_case_block | "case" patterns guard? ':' block |
7997 | | static match_case_ty |
7998 | | case_block_rule(Parser *p) |
7999 | 4.71k | { |
8000 | 4.71k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
8001 | 0 | _Pypegen_stack_overflow(p); |
8002 | 0 | } |
8003 | 4.71k | if (p->error_indicator) { |
8004 | 0 | p->level--; |
8005 | 0 | return NULL; |
8006 | 0 | } |
8007 | 4.71k | match_case_ty _res = NULL; |
8008 | 4.71k | int _mark = p->mark; |
8009 | 4.71k | if (p->call_invalid_rules) { // invalid_case_block |
8010 | 1.75k | if (p->error_indicator) { |
8011 | 0 | p->level--; |
8012 | 0 | return NULL; |
8013 | 0 | } |
8014 | 1.75k | D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block")); |
8015 | 1.75k | void *invalid_case_block_var; |
8016 | 1.75k | if ( |
8017 | 1.75k | (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block |
8018 | 1.75k | ) |
8019 | 0 | { |
8020 | 0 | D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block")); |
8021 | 0 | _res = invalid_case_block_var; |
8022 | 0 | goto done; |
8023 | 0 | } |
8024 | 1.75k | p->mark = _mark; |
8025 | 1.75k | D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ', |
8026 | 1.75k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block")); |
8027 | 1.75k | } |
8028 | 4.71k | { // "case" patterns guard? ':' block |
8029 | 4.71k | if (p->error_indicator) { |
8030 | 100 | p->level--; |
8031 | 100 | return NULL; |
8032 | 100 | } |
8033 | 4.61k | D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block")); |
8034 | 4.61k | expr_ty _keyword; |
8035 | 4.61k | Token * _literal; |
8036 | 4.61k | asdl_stmt_seq* body; |
8037 | 4.61k | void *guard; |
8038 | 4.61k | pattern_ty pattern; |
8039 | 4.61k | if ( |
8040 | 4.61k | (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"' |
8041 | 3.80k | && |
8042 | 3.80k | (pattern = patterns_rule(p)) // patterns |
8043 | 3.32k | && |
8044 | 3.32k | (guard = guard_rule(p), !p->error_indicator) // guard? |
8045 | 3.31k | && |
8046 | 3.31k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
8047 | 3.05k | && |
8048 | 3.05k | (body = block_rule(p)) // block |
8049 | 4.61k | ) |
8050 | 3.00k | { |
8051 | 3.00k | D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block")); |
8052 | 3.00k | _res = _PyAST_match_case ( pattern , guard , body , p -> arena ); |
8053 | 3.00k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
8054 | 0 | p->error_indicator = 1; |
8055 | 0 | p->level--; |
8056 | 0 | return NULL; |
8057 | 0 | } |
8058 | 3.00k | goto done; |
8059 | 3.00k | } |
8060 | 1.61k | p->mark = _mark; |
8061 | 1.61k | D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ', |
8062 | 1.61k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block")); |
8063 | 1.61k | } |
8064 | 1.61k | _res = NULL; |
8065 | 4.61k | done: |
8066 | 4.61k | p->level--; |
8067 | 4.61k | return _res; |
8068 | 1.61k | } |
8069 | | |
8070 | | // guard: 'if' named_expression |
8071 | | Py_LOCAL_SYMBOL expr_ty |
8072 | | guard_rule(Parser *p) |
8073 | 5.97k | { |
8074 | 5.97k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
8075 | 0 | _Pypegen_stack_overflow(p); |
8076 | 0 | } |
8077 | 5.97k | if (p->error_indicator) { |
8078 | 0 | p->level--; |
8079 | 0 | return NULL; |
8080 | 0 | } |
8081 | 5.97k | expr_ty _res = NULL; |
8082 | 5.97k | int _mark = p->mark; |
8083 | 5.97k | { // 'if' named_expression |
8084 | 5.97k | if (p->error_indicator) { |
8085 | 0 | p->level--; |
8086 | 0 | return NULL; |
8087 | 0 | } |
8088 | 5.97k | D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression")); |
8089 | 5.97k | Token * _keyword; |
8090 | 5.97k | expr_ty guard; |
8091 | 5.97k | if ( |
8092 | 5.97k | (_keyword = _PyPegen_expect_token(p, 514)) // token='if' |
8093 | 283 | && |
8094 | 283 | (guard = named_expression_rule(p)) // named_expression |
8095 | 5.97k | ) |
8096 | 274 | { |
8097 | 274 | D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression")); |
8098 | 274 | _res = guard; |
8099 | 274 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
8100 | 0 | p->error_indicator = 1; |
8101 | 0 | p->level--; |
8102 | 0 | return NULL; |
8103 | 0 | } |
8104 | 274 | goto done; |
8105 | 274 | } |
8106 | 5.70k | p->mark = _mark; |
8107 | 5.70k | D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ', |
8108 | 5.70k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression")); |
8109 | 5.70k | } |
8110 | 5.70k | _res = NULL; |
8111 | 5.97k | done: |
8112 | 5.97k | p->level--; |
8113 | 5.97k | return _res; |
8114 | 5.70k | } |
8115 | | |
8116 | | // patterns: open_sequence_pattern | pattern |
8117 | | Py_LOCAL_SYMBOL pattern_ty |
8118 | | patterns_rule(Parser *p) |
8119 | 8.04k | { |
8120 | 8.04k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
8121 | 0 | _Pypegen_stack_overflow(p); |
8122 | 0 | } |
8123 | 8.04k | if (p->error_indicator) { |
8124 | 0 | p->level--; |
8125 | 0 | return NULL; |
8126 | 0 | } |
8127 | 8.04k | pattern_ty _res = NULL; |
8128 | 8.04k | int _mark = p->mark; |
8129 | 8.04k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
8130 | 2 | p->error_indicator = 1; |
8131 | 2 | p->level--; |
8132 | 2 | return NULL; |
8133 | 2 | } |
8134 | 8.04k | int _start_lineno = p->tokens[_mark]->lineno; |
8135 | 8.04k | UNUSED(_start_lineno); // Only used by EXTRA macro |
8136 | 8.04k | int _start_col_offset = p->tokens[_mark]->col_offset; |
8137 | 8.04k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
8138 | 8.04k | { // open_sequence_pattern |
8139 | 8.04k | if (p->error_indicator) { |
8140 | 0 | p->level--; |
8141 | 0 | return NULL; |
8142 | 0 | } |
8143 | 8.04k | D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern")); |
8144 | 8.04k | asdl_pattern_seq* patterns; |
8145 | 8.04k | if ( |
8146 | 8.04k | (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern |
8147 | 8.04k | ) |
8148 | 1.83k | { |
8149 | 1.83k | D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern")); |
8150 | 1.83k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
8151 | 1.83k | if (_token == NULL) { |
8152 | 0 | p->level--; |
8153 | 0 | return NULL; |
8154 | 0 | } |
8155 | 1.83k | int _end_lineno = _token->end_lineno; |
8156 | 1.83k | UNUSED(_end_lineno); // Only used by EXTRA macro |
8157 | 1.83k | int _end_col_offset = _token->end_col_offset; |
8158 | 1.83k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
8159 | 1.83k | _res = _PyAST_MatchSequence ( patterns , EXTRA ); |
8160 | 1.83k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
8161 | 0 | p->error_indicator = 1; |
8162 | 0 | p->level--; |
8163 | 0 | return NULL; |
8164 | 0 | } |
8165 | 1.83k | goto done; |
8166 | 1.83k | } |
8167 | 6.21k | p->mark = _mark; |
8168 | 6.21k | D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ', |
8169 | 6.21k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern")); |
8170 | 6.21k | } |
8171 | 0 | { // pattern |
8172 | 6.21k | if (p->error_indicator) { |
8173 | 217 | p->level--; |
8174 | 217 | return NULL; |
8175 | 217 | } |
8176 | 6.00k | D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern")); |
8177 | 6.00k | pattern_ty pattern_var; |
8178 | 6.00k | if ( |
8179 | 6.00k | (pattern_var = pattern_rule(p)) // pattern |
8180 | 6.00k | ) |
8181 | 4.14k | { |
8182 | 4.14k | D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern")); |
8183 | 4.14k | _res = pattern_var; |
8184 | 4.14k | goto done; |
8185 | 4.14k | } |
8186 | 1.85k | p->mark = _mark; |
8187 | 1.85k | D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ', |
8188 | 1.85k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern")); |
8189 | 1.85k | } |
8190 | 1.85k | _res = NULL; |
8191 | 7.83k | done: |
8192 | 7.83k | p->level--; |
8193 | 7.83k | return _res; |
8194 | 1.85k | } |
8195 | | |
8196 | | // pattern: as_pattern | or_pattern |
8197 | | static pattern_ty |
8198 | | pattern_rule(Parser *p) |
8199 | 85.8k | { |
8200 | 85.8k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
8201 | 0 | _Pypegen_stack_overflow(p); |
8202 | 0 | } |
8203 | 85.8k | if (p->error_indicator) { |
8204 | 0 | p->level--; |
8205 | 0 | return NULL; |
8206 | 0 | } |
8207 | 85.8k | pattern_ty _res = NULL; |
8208 | 85.8k | int _mark = p->mark; |
8209 | 85.8k | { // as_pattern |
8210 | 85.8k | if (p->error_indicator) { |
8211 | 0 | p->level--; |
8212 | 0 | return NULL; |
8213 | 0 | } |
8214 | 85.8k | D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern")); |
8215 | 85.8k | pattern_ty as_pattern_var; |
8216 | 85.8k | if ( |
8217 | 85.8k | (as_pattern_var = as_pattern_rule(p)) // as_pattern |
8218 | 85.8k | ) |
8219 | 263 | { |
8220 | 263 | D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern")); |
8221 | 263 | _res = as_pattern_var; |
8222 | 263 | goto done; |
8223 | 263 | } |
8224 | 85.5k | p->mark = _mark; |
8225 | 85.5k | D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8226 | 85.5k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern")); |
8227 | 85.5k | } |
8228 | 0 | { // or_pattern |
8229 | 85.5k | if (p->error_indicator) { |
8230 | 4.27k | p->level--; |
8231 | 4.27k | return NULL; |
8232 | 4.27k | } |
8233 | 81.3k | D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern")); |
8234 | 81.3k | pattern_ty or_pattern_var; |
8235 | 81.3k | if ( |
8236 | 81.3k | (or_pattern_var = or_pattern_rule(p)) // or_pattern |
8237 | 81.3k | ) |
8238 | 49.4k | { |
8239 | 49.4k | D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern")); |
8240 | 49.4k | _res = or_pattern_var; |
8241 | 49.4k | goto done; |
8242 | 49.4k | } |
8243 | 31.9k | p->mark = _mark; |
8244 | 31.9k | D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8245 | 31.9k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern")); |
8246 | 31.9k | } |
8247 | 31.9k | _res = NULL; |
8248 | 81.5k | done: |
8249 | 81.5k | p->level--; |
8250 | 81.5k | return _res; |
8251 | 31.9k | } |
8252 | | |
8253 | | // as_pattern: or_pattern 'as' pattern_capture_target | invalid_as_pattern |
8254 | | static pattern_ty |
8255 | | as_pattern_rule(Parser *p) |
8256 | 85.8k | { |
8257 | 85.8k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
8258 | 0 | _Pypegen_stack_overflow(p); |
8259 | 0 | } |
8260 | 85.8k | if (p->error_indicator) { |
8261 | 0 | p->level--; |
8262 | 0 | return NULL; |
8263 | 0 | } |
8264 | 85.8k | pattern_ty _res = NULL; |
8265 | 85.8k | int _mark = p->mark; |
8266 | 85.8k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
8267 | 47 | p->error_indicator = 1; |
8268 | 47 | p->level--; |
8269 | 47 | return NULL; |
8270 | 47 | } |
8271 | 85.8k | int _start_lineno = p->tokens[_mark]->lineno; |
8272 | 85.8k | UNUSED(_start_lineno); // Only used by EXTRA macro |
8273 | 85.8k | int _start_col_offset = p->tokens[_mark]->col_offset; |
8274 | 85.8k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
8275 | 85.8k | { // or_pattern 'as' pattern_capture_target |
8276 | 85.8k | if (p->error_indicator) { |
8277 | 0 | p->level--; |
8278 | 0 | return NULL; |
8279 | 0 | } |
8280 | 85.8k | D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' pattern_capture_target")); |
8281 | 85.8k | Token * _keyword; |
8282 | 85.8k | pattern_ty pattern; |
8283 | 85.8k | expr_ty target; |
8284 | 85.8k | if ( |
8285 | 85.8k | (pattern = or_pattern_rule(p)) // or_pattern |
8286 | 49.6k | && |
8287 | 49.6k | (_keyword = _PyPegen_expect_token(p, 520)) // token='as' |
8288 | 285 | && |
8289 | 285 | (target = pattern_capture_target_rule(p)) // pattern_capture_target |
8290 | 85.8k | ) |
8291 | 263 | { |
8292 | 263 | D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' pattern_capture_target")); |
8293 | 263 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
8294 | 263 | if (_token == NULL) { |
8295 | 0 | p->level--; |
8296 | 0 | return NULL; |
8297 | 0 | } |
8298 | 263 | int _end_lineno = _token->end_lineno; |
8299 | 263 | UNUSED(_end_lineno); // Only used by EXTRA macro |
8300 | 263 | int _end_col_offset = _token->end_col_offset; |
8301 | 263 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
8302 | 263 | _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA ); |
8303 | 263 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
8304 | 0 | p->error_indicator = 1; |
8305 | 0 | p->level--; |
8306 | 0 | return NULL; |
8307 | 0 | } |
8308 | 263 | goto done; |
8309 | 263 | } |
8310 | 85.5k | p->mark = _mark; |
8311 | 85.5k | D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8312 | 85.5k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target")); |
8313 | 85.5k | } |
8314 | 85.5k | if (p->call_invalid_rules) { // invalid_as_pattern |
8315 | 48.7k | if (p->error_indicator) { |
8316 | 1.96k | p->level--; |
8317 | 1.96k | return NULL; |
8318 | 1.96k | } |
8319 | 46.8k | D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern")); |
8320 | 46.8k | void *invalid_as_pattern_var; |
8321 | 46.8k | if ( |
8322 | 46.8k | (invalid_as_pattern_var = invalid_as_pattern_rule(p)) // invalid_as_pattern |
8323 | 46.8k | ) |
8324 | 0 | { |
8325 | 0 | D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern")); |
8326 | 0 | _res = invalid_as_pattern_var; |
8327 | 0 | goto done; |
8328 | 0 | } |
8329 | 46.8k | p->mark = _mark; |
8330 | 46.8k | D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8331 | 46.8k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_as_pattern")); |
8332 | 46.8k | } |
8333 | 83.5k | _res = NULL; |
8334 | 83.8k | done: |
8335 | 83.8k | p->level--; |
8336 | 83.8k | return _res; |
8337 | 83.5k | } |
8338 | | |
8339 | | // or_pattern: '|'.closed_pattern+ |
8340 | | Py_LOCAL_SYMBOL pattern_ty |
8341 | | or_pattern_rule(Parser *p) |
8342 | 260k | { |
8343 | 260k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
8344 | 0 | _Pypegen_stack_overflow(p); |
8345 | 0 | } |
8346 | 260k | if (p->error_indicator) { |
8347 | 0 | p->level--; |
8348 | 0 | return NULL; |
8349 | 0 | } |
8350 | 260k | pattern_ty _res = NULL; |
8351 | 260k | int _mark = p->mark; |
8352 | 260k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
8353 | 0 | p->error_indicator = 1; |
8354 | 0 | p->level--; |
8355 | 0 | return NULL; |
8356 | 0 | } |
8357 | 260k | int _start_lineno = p->tokens[_mark]->lineno; |
8358 | 260k | UNUSED(_start_lineno); // Only used by EXTRA macro |
8359 | 260k | int _start_col_offset = p->tokens[_mark]->col_offset; |
8360 | 260k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
8361 | 260k | { // '|'.closed_pattern+ |
8362 | 260k | if (p->error_indicator) { |
8363 | 0 | p->level--; |
8364 | 0 | return NULL; |
8365 | 0 | } |
8366 | 260k | D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+")); |
8367 | 260k | asdl_pattern_seq* patterns; |
8368 | 260k | if ( |
8369 | 260k | (patterns = (asdl_pattern_seq*)_gather_40_rule(p)) // '|'.closed_pattern+ |
8370 | 260k | ) |
8371 | 151k | { |
8372 | 151k | D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+")); |
8373 | 151k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
8374 | 151k | if (_token == NULL) { |
8375 | 0 | p->level--; |
8376 | 0 | return NULL; |
8377 | 0 | } |
8378 | 151k | int _end_lineno = _token->end_lineno; |
8379 | 151k | UNUSED(_end_lineno); // Only used by EXTRA macro |
8380 | 151k | int _end_col_offset = _token->end_col_offset; |
8381 | 151k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
8382 | 151k | _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA ); |
8383 | 151k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
8384 | 212 | p->error_indicator = 1; |
8385 | 212 | p->level--; |
8386 | 212 | return NULL; |
8387 | 212 | } |
8388 | 151k | goto done; |
8389 | 151k | } |
8390 | 109k | p->mark = _mark; |
8391 | 109k | D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8392 | 109k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+")); |
8393 | 109k | } |
8394 | 109k | _res = NULL; |
8395 | 260k | done: |
8396 | 260k | p->level--; |
8397 | 260k | return _res; |
8398 | 109k | } |
8399 | | |
8400 | | // closed_pattern: |
8401 | | // | literal_pattern |
8402 | | // | capture_pattern |
8403 | | // | wildcard_pattern |
8404 | | // | value_pattern |
8405 | | // | group_pattern |
8406 | | // | sequence_pattern |
8407 | | // | mapping_pattern |
8408 | | // | class_pattern |
8409 | | static pattern_ty |
8410 | | closed_pattern_rule(Parser *p) |
8411 | 281k | { |
8412 | 281k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
8413 | 0 | _Pypegen_stack_overflow(p); |
8414 | 0 | } |
8415 | 281k | if (p->error_indicator) { |
8416 | 0 | p->level--; |
8417 | 0 | return NULL; |
8418 | 0 | } |
8419 | 281k | pattern_ty _res = NULL; |
8420 | 281k | if (_PyPegen_is_memoized(p, closed_pattern_type, &_res)) { |
8421 | 226k | p->level--; |
8422 | 226k | return _res; |
8423 | 226k | } |
8424 | 55.4k | int _mark = p->mark; |
8425 | 55.4k | { // literal_pattern |
8426 | 55.4k | if (p->error_indicator) { |
8427 | 0 | p->level--; |
8428 | 0 | return NULL; |
8429 | 0 | } |
8430 | 55.4k | D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern")); |
8431 | 55.4k | pattern_ty literal_pattern_var; |
8432 | 55.4k | if ( |
8433 | 55.4k | (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern |
8434 | 55.4k | ) |
8435 | 8.04k | { |
8436 | 8.04k | D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern")); |
8437 | 8.04k | _res = literal_pattern_var; |
8438 | 8.04k | goto done; |
8439 | 8.04k | } |
8440 | 47.4k | p->mark = _mark; |
8441 | 47.4k | D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8442 | 47.4k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern")); |
8443 | 47.4k | } |
8444 | 0 | { // capture_pattern |
8445 | 47.4k | if (p->error_indicator) { |
8446 | 23 | p->level--; |
8447 | 23 | return NULL; |
8448 | 23 | } |
8449 | 47.4k | D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern")); |
8450 | 47.4k | pattern_ty capture_pattern_var; |
8451 | 47.4k | if ( |
8452 | 47.4k | (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern |
8453 | 47.4k | ) |
8454 | 13.2k | { |
8455 | 13.2k | D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern")); |
8456 | 13.2k | _res = capture_pattern_var; |
8457 | 13.2k | goto done; |
8458 | 13.2k | } |
8459 | 34.1k | p->mark = _mark; |
8460 | 34.1k | D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8461 | 34.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern")); |
8462 | 34.1k | } |
8463 | 0 | { // wildcard_pattern |
8464 | 34.1k | if (p->error_indicator) { |
8465 | 22 | p->level--; |
8466 | 22 | return NULL; |
8467 | 22 | } |
8468 | 34.1k | D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern")); |
8469 | 34.1k | pattern_ty wildcard_pattern_var; |
8470 | 34.1k | if ( |
8471 | 34.1k | (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern |
8472 | 34.1k | ) |
8473 | 6.88k | { |
8474 | 6.88k | D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern")); |
8475 | 6.88k | _res = wildcard_pattern_var; |
8476 | 6.88k | goto done; |
8477 | 6.88k | } |
8478 | 27.2k | p->mark = _mark; |
8479 | 27.2k | D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8480 | 27.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern")); |
8481 | 27.2k | } |
8482 | 0 | { // value_pattern |
8483 | 27.2k | if (p->error_indicator) { |
8484 | 0 | p->level--; |
8485 | 0 | return NULL; |
8486 | 0 | } |
8487 | 27.2k | D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern")); |
8488 | 27.2k | pattern_ty value_pattern_var; |
8489 | 27.2k | if ( |
8490 | 27.2k | (value_pattern_var = value_pattern_rule(p)) // value_pattern |
8491 | 27.2k | ) |
8492 | 328 | { |
8493 | 328 | D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern")); |
8494 | 328 | _res = value_pattern_var; |
8495 | 328 | goto done; |
8496 | 328 | } |
8497 | 26.9k | p->mark = _mark; |
8498 | 26.9k | D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8499 | 26.9k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern")); |
8500 | 26.9k | } |
8501 | 0 | { // group_pattern |
8502 | 26.9k | if (p->error_indicator) { |
8503 | 1 | p->level--; |
8504 | 1 | return NULL; |
8505 | 1 | } |
8506 | 26.8k | D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern")); |
8507 | 26.8k | pattern_ty group_pattern_var; |
8508 | 26.8k | if ( |
8509 | 26.8k | (group_pattern_var = group_pattern_rule(p)) // group_pattern |
8510 | 26.8k | ) |
8511 | 281 | { |
8512 | 281 | D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern")); |
8513 | 281 | _res = group_pattern_var; |
8514 | 281 | goto done; |
8515 | 281 | } |
8516 | 26.6k | p->mark = _mark; |
8517 | 26.6k | D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8518 | 26.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern")); |
8519 | 26.6k | } |
8520 | 0 | { // sequence_pattern |
8521 | 26.6k | if (p->error_indicator) { |
8522 | 341 | p->level--; |
8523 | 341 | return NULL; |
8524 | 341 | } |
8525 | 26.2k | D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern")); |
8526 | 26.2k | pattern_ty sequence_pattern_var; |
8527 | 26.2k | if ( |
8528 | 26.2k | (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern |
8529 | 26.2k | ) |
8530 | 1.78k | { |
8531 | 1.78k | D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern")); |
8532 | 1.78k | _res = sequence_pattern_var; |
8533 | 1.78k | goto done; |
8534 | 1.78k | } |
8535 | 24.4k | p->mark = _mark; |
8536 | 24.4k | D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8537 | 24.4k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern")); |
8538 | 24.4k | } |
8539 | 0 | { // mapping_pattern |
8540 | 24.4k | if (p->error_indicator) { |
8541 | 1.05k | p->level--; |
8542 | 1.05k | return NULL; |
8543 | 1.05k | } |
8544 | 23.4k | D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern")); |
8545 | 23.4k | pattern_ty mapping_pattern_var; |
8546 | 23.4k | if ( |
8547 | 23.4k | (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern |
8548 | 23.4k | ) |
8549 | 1.35k | { |
8550 | 1.35k | D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern")); |
8551 | 1.35k | _res = mapping_pattern_var; |
8552 | 1.35k | goto done; |
8553 | 1.35k | } |
8554 | 22.0k | p->mark = _mark; |
8555 | 22.0k | D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8556 | 22.0k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern")); |
8557 | 22.0k | } |
8558 | 0 | { // class_pattern |
8559 | 22.0k | if (p->error_indicator) { |
8560 | 874 | p->level--; |
8561 | 874 | return NULL; |
8562 | 874 | } |
8563 | 21.2k | D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern")); |
8564 | 21.2k | pattern_ty class_pattern_var; |
8565 | 21.2k | if ( |
8566 | 21.2k | (class_pattern_var = class_pattern_rule(p)) // class_pattern |
8567 | 21.2k | ) |
8568 | 2.30k | { |
8569 | 2.30k | D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern")); |
8570 | 2.30k | _res = class_pattern_var; |
8571 | 2.30k | goto done; |
8572 | 2.30k | } |
8573 | 18.9k | p->mark = _mark; |
8574 | 18.9k | D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8575 | 18.9k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern")); |
8576 | 18.9k | } |
8577 | 18.9k | _res = NULL; |
8578 | 53.1k | done: |
8579 | 53.1k | _PyPegen_insert_memo(p, _mark, closed_pattern_type, _res); |
8580 | 53.1k | p->level--; |
8581 | 53.1k | return _res; |
8582 | 18.9k | } |
8583 | | |
8584 | | // literal_pattern: |
8585 | | // | signed_number !('+' | '-') |
8586 | | // | complex_number |
8587 | | // | strings |
8588 | | // | 'None' |
8589 | | // | 'True' |
8590 | | // | 'False' |
8591 | | static pattern_ty |
8592 | | literal_pattern_rule(Parser *p) |
8593 | 55.4k | { |
8594 | 55.4k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
8595 | 0 | _Pypegen_stack_overflow(p); |
8596 | 0 | } |
8597 | 55.4k | if (p->error_indicator) { |
8598 | 0 | p->level--; |
8599 | 0 | return NULL; |
8600 | 0 | } |
8601 | 55.4k | pattern_ty _res = NULL; |
8602 | 55.4k | int _mark = p->mark; |
8603 | 55.4k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
8604 | 0 | p->error_indicator = 1; |
8605 | 0 | p->level--; |
8606 | 0 | return NULL; |
8607 | 0 | } |
8608 | 55.4k | int _start_lineno = p->tokens[_mark]->lineno; |
8609 | 55.4k | UNUSED(_start_lineno); // Only used by EXTRA macro |
8610 | 55.4k | int _start_col_offset = p->tokens[_mark]->col_offset; |
8611 | 55.4k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
8612 | 55.4k | { // signed_number !('+' | '-') |
8613 | 55.4k | if (p->error_indicator) { |
8614 | 0 | p->level--; |
8615 | 0 | return NULL; |
8616 | 0 | } |
8617 | 55.4k | D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')")); |
8618 | 55.4k | expr_ty value; |
8619 | 55.4k | if ( |
8620 | 55.4k | (value = signed_number_rule(p)) // signed_number |
8621 | 7.37k | && |
8622 | 7.37k | _PyPegen_lookahead(0, _tmp_41_rule, p) |
8623 | 55.4k | ) |
8624 | 6.37k | { |
8625 | 6.37k | D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')")); |
8626 | 6.37k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
8627 | 6.37k | if (_token == NULL) { |
8628 | 0 | p->level--; |
8629 | 0 | return NULL; |
8630 | 0 | } |
8631 | 6.37k | int _end_lineno = _token->end_lineno; |
8632 | 6.37k | UNUSED(_end_lineno); // Only used by EXTRA macro |
8633 | 6.37k | int _end_col_offset = _token->end_col_offset; |
8634 | 6.37k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
8635 | 6.37k | _res = _PyAST_MatchValue ( value , EXTRA ); |
8636 | 6.37k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
8637 | 7 | p->error_indicator = 1; |
8638 | 7 | p->level--; |
8639 | 7 | return NULL; |
8640 | 7 | } |
8641 | 6.37k | goto done; |
8642 | 6.37k | } |
8643 | 49.1k | p->mark = _mark; |
8644 | 49.1k | D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8645 | 49.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')")); |
8646 | 49.1k | } |
8647 | 0 | { // complex_number |
8648 | 49.1k | if (p->error_indicator) { |
8649 | 2 | p->level--; |
8650 | 2 | return NULL; |
8651 | 2 | } |
8652 | 49.1k | D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number")); |
8653 | 49.1k | expr_ty value; |
8654 | 49.1k | if ( |
8655 | 49.1k | (value = complex_number_rule(p)) // complex_number |
8656 | 49.1k | ) |
8657 | 597 | { |
8658 | 597 | D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number")); |
8659 | 597 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
8660 | 597 | if (_token == NULL) { |
8661 | 0 | p->level--; |
8662 | 0 | return NULL; |
8663 | 0 | } |
8664 | 597 | int _end_lineno = _token->end_lineno; |
8665 | 597 | UNUSED(_end_lineno); // Only used by EXTRA macro |
8666 | 597 | int _end_col_offset = _token->end_col_offset; |
8667 | 597 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
8668 | 597 | _res = _PyAST_MatchValue ( value , EXTRA ); |
8669 | 597 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
8670 | 0 | p->error_indicator = 1; |
8671 | 0 | p->level--; |
8672 | 0 | return NULL; |
8673 | 0 | } |
8674 | 597 | goto done; |
8675 | 597 | } |
8676 | 48.5k | p->mark = _mark; |
8677 | 48.5k | D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8678 | 48.5k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number")); |
8679 | 48.5k | } |
8680 | 0 | { // strings |
8681 | 48.5k | if (p->error_indicator) { |
8682 | 8 | p->level--; |
8683 | 8 | return NULL; |
8684 | 8 | } |
8685 | 48.5k | D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings")); |
8686 | 48.5k | expr_ty value; |
8687 | 48.5k | if ( |
8688 | 48.5k | (value = strings_rule(p)) // strings |
8689 | 48.5k | ) |
8690 | 248 | { |
8691 | 248 | D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings")); |
8692 | 248 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
8693 | 248 | if (_token == NULL) { |
8694 | 0 | p->level--; |
8695 | 0 | return NULL; |
8696 | 0 | } |
8697 | 248 | int _end_lineno = _token->end_lineno; |
8698 | 248 | UNUSED(_end_lineno); // Only used by EXTRA macro |
8699 | 248 | int _end_col_offset = _token->end_col_offset; |
8700 | 248 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
8701 | 248 | _res = _PyAST_MatchValue ( value , EXTRA ); |
8702 | 248 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
8703 | 0 | p->error_indicator = 1; |
8704 | 0 | p->level--; |
8705 | 0 | return NULL; |
8706 | 0 | } |
8707 | 248 | goto done; |
8708 | 248 | } |
8709 | 48.2k | p->mark = _mark; |
8710 | 48.2k | D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8711 | 48.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings")); |
8712 | 48.2k | } |
8713 | 0 | { // 'None' |
8714 | 48.2k | if (p->error_indicator) { |
8715 | 6 | p->level--; |
8716 | 6 | return NULL; |
8717 | 6 | } |
8718 | 48.2k | D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); |
8719 | 48.2k | Token * _keyword; |
8720 | 48.2k | if ( |
8721 | 48.2k | (_keyword = _PyPegen_expect_token(p, 526)) // token='None' |
8722 | 48.2k | ) |
8723 | 517 | { |
8724 | 517 | D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); |
8725 | 517 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
8726 | 517 | if (_token == NULL) { |
8727 | 0 | p->level--; |
8728 | 0 | return NULL; |
8729 | 0 | } |
8730 | 517 | int _end_lineno = _token->end_lineno; |
8731 | 517 | UNUSED(_end_lineno); // Only used by EXTRA macro |
8732 | 517 | int _end_col_offset = _token->end_col_offset; |
8733 | 517 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
8734 | 517 | _res = _PyAST_MatchSingleton ( Py_None , EXTRA ); |
8735 | 517 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
8736 | 0 | p->error_indicator = 1; |
8737 | 0 | p->level--; |
8738 | 0 | return NULL; |
8739 | 0 | } |
8740 | 517 | goto done; |
8741 | 517 | } |
8742 | 47.7k | p->mark = _mark; |
8743 | 47.7k | D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8744 | 47.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); |
8745 | 47.7k | } |
8746 | 0 | { // 'True' |
8747 | 47.7k | if (p->error_indicator) { |
8748 | 0 | p->level--; |
8749 | 0 | return NULL; |
8750 | 0 | } |
8751 | 47.7k | D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); |
8752 | 47.7k | Token * _keyword; |
8753 | 47.7k | if ( |
8754 | 47.7k | (_keyword = _PyPegen_expect_token(p, 527)) // token='True' |
8755 | 47.7k | ) |
8756 | 69 | { |
8757 | 69 | D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); |
8758 | 69 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
8759 | 69 | if (_token == NULL) { |
8760 | 0 | p->level--; |
8761 | 0 | return NULL; |
8762 | 0 | } |
8763 | 69 | int _end_lineno = _token->end_lineno; |
8764 | 69 | UNUSED(_end_lineno); // Only used by EXTRA macro |
8765 | 69 | int _end_col_offset = _token->end_col_offset; |
8766 | 69 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
8767 | 69 | _res = _PyAST_MatchSingleton ( Py_True , EXTRA ); |
8768 | 69 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
8769 | 0 | p->error_indicator = 1; |
8770 | 0 | p->level--; |
8771 | 0 | return NULL; |
8772 | 0 | } |
8773 | 69 | goto done; |
8774 | 69 | } |
8775 | 47.6k | p->mark = _mark; |
8776 | 47.6k | D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8777 | 47.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); |
8778 | 47.6k | } |
8779 | 0 | { // 'False' |
8780 | 47.6k | if (p->error_indicator) { |
8781 | 0 | p->level--; |
8782 | 0 | return NULL; |
8783 | 0 | } |
8784 | 47.6k | D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); |
8785 | 47.6k | Token * _keyword; |
8786 | 47.6k | if ( |
8787 | 47.6k | (_keyword = _PyPegen_expect_token(p, 528)) // token='False' |
8788 | 47.6k | ) |
8789 | 246 | { |
8790 | 246 | D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); |
8791 | 246 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
8792 | 246 | if (_token == NULL) { |
8793 | 0 | p->level--; |
8794 | 0 | return NULL; |
8795 | 0 | } |
8796 | 246 | int _end_lineno = _token->end_lineno; |
8797 | 246 | UNUSED(_end_lineno); // Only used by EXTRA macro |
8798 | 246 | int _end_col_offset = _token->end_col_offset; |
8799 | 246 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
8800 | 246 | _res = _PyAST_MatchSingleton ( Py_False , EXTRA ); |
8801 | 246 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
8802 | 0 | p->error_indicator = 1; |
8803 | 0 | p->level--; |
8804 | 0 | return NULL; |
8805 | 0 | } |
8806 | 246 | goto done; |
8807 | 246 | } |
8808 | 47.4k | p->mark = _mark; |
8809 | 47.4k | D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
8810 | 47.4k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'")); |
8811 | 47.4k | } |
8812 | 47.4k | _res = NULL; |
8813 | 55.4k | done: |
8814 | 55.4k | p->level--; |
8815 | 55.4k | return _res; |
8816 | 47.4k | } |
8817 | | |
8818 | | // literal_expr: |
8819 | | // | signed_number !('+' | '-') |
8820 | | // | complex_number |
8821 | | // | &(STRING | FSTRING_START | TSTRING_START) strings |
8822 | | // | 'None' |
8823 | | // | 'True' |
8824 | | // | 'False' |
8825 | | static expr_ty |
8826 | | literal_expr_rule(Parser *p) |
8827 | 19.0k | { |
8828 | 19.0k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
8829 | 0 | _Pypegen_stack_overflow(p); |
8830 | 0 | } |
8831 | 19.0k | if (p->error_indicator) { |
8832 | 0 | p->level--; |
8833 | 0 | return NULL; |
8834 | 0 | } |
8835 | 19.0k | expr_ty _res = NULL; |
8836 | 19.0k | int _mark = p->mark; |
8837 | 19.0k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
8838 | 6 | p->error_indicator = 1; |
8839 | 6 | p->level--; |
8840 | 6 | return NULL; |
8841 | 6 | } |
8842 | 19.0k | int _start_lineno = p->tokens[_mark]->lineno; |
8843 | 19.0k | UNUSED(_start_lineno); // Only used by EXTRA macro |
8844 | 19.0k | int _start_col_offset = p->tokens[_mark]->col_offset; |
8845 | 19.0k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
8846 | 19.0k | { // signed_number !('+' | '-') |
8847 | 19.0k | if (p->error_indicator) { |
8848 | 0 | p->level--; |
8849 | 0 | return NULL; |
8850 | 0 | } |
8851 | 19.0k | D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')")); |
8852 | 19.0k | expr_ty signed_number_var; |
8853 | 19.0k | if ( |
8854 | 19.0k | (signed_number_var = signed_number_rule(p)) // signed_number |
8855 | 14.9k | && |
8856 | 14.9k | _PyPegen_lookahead(0, _tmp_41_rule, p) |
8857 | 19.0k | ) |
8858 | 14.0k | { |
8859 | 14.0k | D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')")); |
8860 | 14.0k | _res = signed_number_var; |
8861 | 14.0k | goto done; |
8862 | 14.0k | } |
8863 | 5.03k | p->mark = _mark; |
8864 | 5.03k | D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', |
8865 | 5.03k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')")); |
8866 | 5.03k | } |
8867 | 0 | { // complex_number |
8868 | 5.03k | if (p->error_indicator) { |
8869 | 3 | p->level--; |
8870 | 3 | return NULL; |
8871 | 3 | } |
8872 | 5.03k | D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number")); |
8873 | 5.03k | expr_ty complex_number_var; |
8874 | 5.03k | if ( |
8875 | 5.03k | (complex_number_var = complex_number_rule(p)) // complex_number |
8876 | 5.03k | ) |
8877 | 873 | { |
8878 | 873 | D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number")); |
8879 | 873 | _res = complex_number_var; |
8880 | 873 | goto done; |
8881 | 873 | } |
8882 | 4.16k | p->mark = _mark; |
8883 | 4.16k | D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', |
8884 | 4.16k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number")); |
8885 | 4.16k | } |
8886 | 0 | { // &(STRING | FSTRING_START | TSTRING_START) strings |
8887 | 4.16k | if (p->error_indicator) { |
8888 | 7 | p->level--; |
8889 | 7 | return NULL; |
8890 | 7 | } |
8891 | 4.15k | D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&(STRING | FSTRING_START | TSTRING_START) strings")); |
8892 | 4.15k | expr_ty strings_var; |
8893 | 4.15k | if ( |
8894 | 4.15k | _PyPegen_lookahead(1, _tmp_42_rule, p) |
8895 | 994 | && |
8896 | 994 | (strings_var = strings_rule(p)) // strings |
8897 | 4.15k | ) |
8898 | 986 | { |
8899 | 986 | D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&(STRING | FSTRING_START | TSTRING_START) strings")); |
8900 | 986 | _res = strings_var; |
8901 | 986 | goto done; |
8902 | 986 | } |
8903 | 3.16k | p->mark = _mark; |
8904 | 3.16k | D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', |
8905 | 3.16k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&(STRING | FSTRING_START | TSTRING_START) strings")); |
8906 | 3.16k | } |
8907 | 0 | { // 'None' |
8908 | 3.16k | if (p->error_indicator) { |
8909 | 6 | p->level--; |
8910 | 6 | return NULL; |
8911 | 6 | } |
8912 | 3.16k | D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); |
8913 | 3.16k | Token * _keyword; |
8914 | 3.16k | if ( |
8915 | 3.16k | (_keyword = _PyPegen_expect_token(p, 526)) // token='None' |
8916 | 3.16k | ) |
8917 | 21 | { |
8918 | 21 | D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); |
8919 | 21 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
8920 | 21 | if (_token == NULL) { |
8921 | 0 | p->level--; |
8922 | 0 | return NULL; |
8923 | 0 | } |
8924 | 21 | int _end_lineno = _token->end_lineno; |
8925 | 21 | UNUSED(_end_lineno); // Only used by EXTRA macro |
8926 | 21 | int _end_col_offset = _token->end_col_offset; |
8927 | 21 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
8928 | 21 | _res = _PyAST_Constant ( Py_None , NULL , EXTRA ); |
8929 | 21 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
8930 | 0 | p->error_indicator = 1; |
8931 | 0 | p->level--; |
8932 | 0 | return NULL; |
8933 | 0 | } |
8934 | 21 | goto done; |
8935 | 21 | } |
8936 | 3.14k | p->mark = _mark; |
8937 | 3.14k | D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', |
8938 | 3.14k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); |
8939 | 3.14k | } |
8940 | 0 | { // 'True' |
8941 | 3.14k | if (p->error_indicator) { |
8942 | 0 | p->level--; |
8943 | 0 | return NULL; |
8944 | 0 | } |
8945 | 3.14k | D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); |
8946 | 3.14k | Token * _keyword; |
8947 | 3.14k | if ( |
8948 | 3.14k | (_keyword = _PyPegen_expect_token(p, 527)) // token='True' |
8949 | 3.14k | ) |
8950 | 124 | { |
8951 | 124 | D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); |
8952 | 124 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
8953 | 124 | if (_token == NULL) { |
8954 | 0 | p->level--; |
8955 | 0 | return NULL; |
8956 | 0 | } |
8957 | 124 | int _end_lineno = _token->end_lineno; |
8958 | 124 | UNUSED(_end_lineno); // Only used by EXTRA macro |
8959 | 124 | int _end_col_offset = _token->end_col_offset; |
8960 | 124 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
8961 | 124 | _res = _PyAST_Constant ( Py_True , NULL , EXTRA ); |
8962 | 124 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
8963 | 0 | p->error_indicator = 1; |
8964 | 0 | p->level--; |
8965 | 0 | return NULL; |
8966 | 0 | } |
8967 | 124 | goto done; |
8968 | 124 | } |
8969 | 3.01k | p->mark = _mark; |
8970 | 3.01k | D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', |
8971 | 3.01k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); |
8972 | 3.01k | } |
8973 | 0 | { // 'False' |
8974 | 3.01k | if (p->error_indicator) { |
8975 | 0 | p->level--; |
8976 | 0 | return NULL; |
8977 | 0 | } |
8978 | 3.01k | D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); |
8979 | 3.01k | Token * _keyword; |
8980 | 3.01k | if ( |
8981 | 3.01k | (_keyword = _PyPegen_expect_token(p, 528)) // token='False' |
8982 | 3.01k | ) |
8983 | 81 | { |
8984 | 81 | D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); |
8985 | 81 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
8986 | 81 | if (_token == NULL) { |
8987 | 0 | p->level--; |
8988 | 0 | return NULL; |
8989 | 0 | } |
8990 | 81 | int _end_lineno = _token->end_lineno; |
8991 | 81 | UNUSED(_end_lineno); // Only used by EXTRA macro |
8992 | 81 | int _end_col_offset = _token->end_col_offset; |
8993 | 81 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
8994 | 81 | _res = _PyAST_Constant ( Py_False , NULL , EXTRA ); |
8995 | 81 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
8996 | 0 | p->error_indicator = 1; |
8997 | 0 | p->level--; |
8998 | 0 | return NULL; |
8999 | 0 | } |
9000 | 81 | goto done; |
9001 | 81 | } |
9002 | 2.93k | p->mark = _mark; |
9003 | 2.93k | D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', |
9004 | 2.93k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'")); |
9005 | 2.93k | } |
9006 | 2.93k | _res = NULL; |
9007 | 19.0k | done: |
9008 | 19.0k | p->level--; |
9009 | 19.0k | return _res; |
9010 | 2.93k | } |
9011 | | |
9012 | | // complex_number: |
9013 | | // | signed_real_number '+' imaginary_number |
9014 | | // | signed_real_number '-' imaginary_number |
9015 | | static expr_ty |
9016 | | complex_number_rule(Parser *p) |
9017 | 54.1k | { |
9018 | 54.1k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
9019 | 0 | _Pypegen_stack_overflow(p); |
9020 | 0 | } |
9021 | 54.1k | if (p->error_indicator) { |
9022 | 0 | p->level--; |
9023 | 0 | return NULL; |
9024 | 0 | } |
9025 | 54.1k | expr_ty _res = NULL; |
9026 | 54.1k | int _mark = p->mark; |
9027 | 54.1k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
9028 | 0 | p->error_indicator = 1; |
9029 | 0 | p->level--; |
9030 | 0 | return NULL; |
9031 | 0 | } |
9032 | 54.1k | int _start_lineno = p->tokens[_mark]->lineno; |
9033 | 54.1k | UNUSED(_start_lineno); // Only used by EXTRA macro |
9034 | 54.1k | int _start_col_offset = p->tokens[_mark]->col_offset; |
9035 | 54.1k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
9036 | 54.1k | { // signed_real_number '+' imaginary_number |
9037 | 54.1k | if (p->error_indicator) { |
9038 | 0 | p->level--; |
9039 | 0 | return NULL; |
9040 | 0 | } |
9041 | 54.1k | D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_real_number '+' imaginary_number")); |
9042 | 54.1k | Token * _literal; |
9043 | 54.1k | expr_ty imag; |
9044 | 54.1k | expr_ty real; |
9045 | 54.1k | if ( |
9046 | 54.1k | (real = signed_real_number_rule(p)) // signed_real_number |
9047 | 1.93k | && |
9048 | 1.93k | (_literal = _PyPegen_expect_token(p, 14)) // token='+' |
9049 | 550 | && |
9050 | 550 | (imag = imaginary_number_rule(p)) // imaginary_number |
9051 | 54.1k | ) |
9052 | 463 | { |
9053 | 463 | D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_real_number '+' imaginary_number")); |
9054 | 463 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
9055 | 463 | if (_token == NULL) { |
9056 | 0 | p->level--; |
9057 | 0 | return NULL; |
9058 | 0 | } |
9059 | 463 | int _end_lineno = _token->end_lineno; |
9060 | 463 | UNUSED(_end_lineno); // Only used by EXTRA macro |
9061 | 463 | int _end_col_offset = _token->end_col_offset; |
9062 | 463 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
9063 | 463 | _res = _PyAST_BinOp ( real , Add , imag , EXTRA ); |
9064 | 463 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9065 | 0 | p->error_indicator = 1; |
9066 | 0 | p->level--; |
9067 | 0 | return NULL; |
9068 | 0 | } |
9069 | 463 | goto done; |
9070 | 463 | } |
9071 | 53.6k | p->mark = _mark; |
9072 | 53.6k | D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ', |
9073 | 53.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '+' imaginary_number")); |
9074 | 53.6k | } |
9075 | 0 | { // signed_real_number '-' imaginary_number |
9076 | 53.6k | if (p->error_indicator) { |
9077 | 12 | p->level--; |
9078 | 12 | return NULL; |
9079 | 12 | } |
9080 | 53.6k | D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_real_number '-' imaginary_number")); |
9081 | 53.6k | Token * _literal; |
9082 | 53.6k | expr_ty imag; |
9083 | 53.6k | expr_ty real; |
9084 | 53.6k | if ( |
9085 | 53.6k | (real = signed_real_number_rule(p)) // signed_real_number |
9086 | 1.46k | && |
9087 | 1.46k | (_literal = _PyPegen_expect_token(p, 15)) // token='-' |
9088 | 1.38k | && |
9089 | 1.38k | (imag = imaginary_number_rule(p)) // imaginary_number |
9090 | 53.6k | ) |
9091 | 1.00k | { |
9092 | 1.00k | D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_real_number '-' imaginary_number")); |
9093 | 1.00k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
9094 | 1.00k | if (_token == NULL) { |
9095 | 0 | p->level--; |
9096 | 0 | return NULL; |
9097 | 0 | } |
9098 | 1.00k | int _end_lineno = _token->end_lineno; |
9099 | 1.00k | UNUSED(_end_lineno); // Only used by EXTRA macro |
9100 | 1.00k | int _end_col_offset = _token->end_col_offset; |
9101 | 1.00k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
9102 | 1.00k | _res = _PyAST_BinOp ( real , Sub , imag , EXTRA ); |
9103 | 1.00k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9104 | 0 | p->error_indicator = 1; |
9105 | 0 | p->level--; |
9106 | 0 | return NULL; |
9107 | 0 | } |
9108 | 1.00k | goto done; |
9109 | 1.00k | } |
9110 | 52.6k | p->mark = _mark; |
9111 | 52.6k | D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ', |
9112 | 52.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '-' imaginary_number")); |
9113 | 52.6k | } |
9114 | 52.6k | _res = NULL; |
9115 | 54.1k | done: |
9116 | 54.1k | p->level--; |
9117 | 54.1k | return _res; |
9118 | 52.6k | } |
9119 | | |
9120 | | // signed_number: NUMBER | '+' NUMBER | '-' NUMBER |
9121 | | static expr_ty |
9122 | | signed_number_rule(Parser *p) |
9123 | 74.5k | { |
9124 | 74.5k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
9125 | 0 | _Pypegen_stack_overflow(p); |
9126 | 0 | } |
9127 | 74.5k | if (p->error_indicator) { |
9128 | 0 | p->level--; |
9129 | 0 | return NULL; |
9130 | 0 | } |
9131 | 74.5k | expr_ty _res = NULL; |
9132 | 74.5k | int _mark = p->mark; |
9133 | 74.5k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
9134 | 0 | p->error_indicator = 1; |
9135 | 0 | p->level--; |
9136 | 0 | return NULL; |
9137 | 0 | } |
9138 | 74.5k | int _start_lineno = p->tokens[_mark]->lineno; |
9139 | 74.5k | UNUSED(_start_lineno); // Only used by EXTRA macro |
9140 | 74.5k | int _start_col_offset = p->tokens[_mark]->col_offset; |
9141 | 74.5k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
9142 | 74.5k | { // NUMBER |
9143 | 74.5k | if (p->error_indicator) { |
9144 | 0 | p->level--; |
9145 | 0 | return NULL; |
9146 | 0 | } |
9147 | 74.5k | D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER")); |
9148 | 74.5k | expr_ty number_var; |
9149 | 74.5k | if ( |
9150 | 74.5k | (number_var = _PyPegen_number_token(p)) // NUMBER |
9151 | 74.5k | ) |
9152 | 19.7k | { |
9153 | 19.7k | D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER")); |
9154 | 19.7k | _res = number_var; |
9155 | 19.7k | goto done; |
9156 | 19.7k | } |
9157 | 54.8k | p->mark = _mark; |
9158 | 54.8k | D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ', |
9159 | 54.8k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER")); |
9160 | 54.8k | } |
9161 | 0 | { // '+' NUMBER |
9162 | 54.8k | if (p->error_indicator) { |
9163 | 0 | p->level--; |
9164 | 0 | return NULL; |
9165 | 0 | } |
9166 | 54.8k | D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' NUMBER")); |
9167 | 54.8k | Token * _literal; |
9168 | 54.8k | expr_ty number; |
9169 | 54.8k | if ( |
9170 | 54.8k | (_literal = _PyPegen_expect_token(p, 14)) // token='+' |
9171 | 194 | && |
9172 | 194 | (number = _PyPegen_number_token(p)) // NUMBER |
9173 | 54.8k | ) |
9174 | 167 | { |
9175 | 167 | D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' NUMBER")); |
9176 | 167 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
9177 | 167 | if (_token == NULL) { |
9178 | 0 | p->level--; |
9179 | 0 | return NULL; |
9180 | 0 | } |
9181 | 167 | int _end_lineno = _token->end_lineno; |
9182 | 167 | UNUSED(_end_lineno); // Only used by EXTRA macro |
9183 | 167 | int _end_col_offset = _token->end_col_offset; |
9184 | 167 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
9185 | 167 | _res = _PyAST_UnaryOp ( UAdd , number , EXTRA ); |
9186 | 167 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9187 | 0 | p->error_indicator = 1; |
9188 | 0 | p->level--; |
9189 | 0 | return NULL; |
9190 | 0 | } |
9191 | 167 | goto done; |
9192 | 167 | } |
9193 | 54.6k | p->mark = _mark; |
9194 | 54.6k | D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ', |
9195 | 54.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' NUMBER")); |
9196 | 54.6k | } |
9197 | 0 | { // '-' NUMBER |
9198 | 54.6k | if (p->error_indicator) { |
9199 | 4 | p->level--; |
9200 | 4 | return NULL; |
9201 | 4 | } |
9202 | 54.6k | D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER")); |
9203 | 54.6k | Token * _literal; |
9204 | 54.6k | expr_ty number; |
9205 | 54.6k | if ( |
9206 | 54.6k | (_literal = _PyPegen_expect_token(p, 15)) // token='-' |
9207 | 2.79k | && |
9208 | 2.79k | (number = _PyPegen_number_token(p)) // NUMBER |
9209 | 54.6k | ) |
9210 | 2.45k | { |
9211 | 2.45k | D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER")); |
9212 | 2.45k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
9213 | 2.45k | if (_token == NULL) { |
9214 | 0 | p->level--; |
9215 | 0 | return NULL; |
9216 | 0 | } |
9217 | 2.45k | int _end_lineno = _token->end_lineno; |
9218 | 2.45k | UNUSED(_end_lineno); // Only used by EXTRA macro |
9219 | 2.45k | int _end_col_offset = _token->end_col_offset; |
9220 | 2.45k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
9221 | 2.45k | _res = _PyAST_UnaryOp ( USub , number , EXTRA ); |
9222 | 2.45k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9223 | 0 | p->error_indicator = 1; |
9224 | 0 | p->level--; |
9225 | 0 | return NULL; |
9226 | 0 | } |
9227 | 2.45k | goto done; |
9228 | 2.45k | } |
9229 | 52.2k | p->mark = _mark; |
9230 | 52.2k | D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ', |
9231 | 52.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER")); |
9232 | 52.2k | } |
9233 | 52.2k | _res = NULL; |
9234 | 74.5k | done: |
9235 | 74.5k | p->level--; |
9236 | 74.5k | return _res; |
9237 | 52.2k | } |
9238 | | |
9239 | | // signed_real_number: real_number | '+' real_number | '-' real_number |
9240 | | static expr_ty |
9241 | | signed_real_number_rule(Parser *p) |
9242 | 107k | { |
9243 | 107k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
9244 | 0 | _Pypegen_stack_overflow(p); |
9245 | 0 | } |
9246 | 107k | if (p->error_indicator) { |
9247 | 0 | p->level--; |
9248 | 0 | return NULL; |
9249 | 0 | } |
9250 | 107k | expr_ty _res = NULL; |
9251 | 107k | int _mark = p->mark; |
9252 | 107k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
9253 | 0 | p->error_indicator = 1; |
9254 | 0 | p->level--; |
9255 | 0 | return NULL; |
9256 | 0 | } |
9257 | 107k | int _start_lineno = p->tokens[_mark]->lineno; |
9258 | 107k | UNUSED(_start_lineno); // Only used by EXTRA macro |
9259 | 107k | int _start_col_offset = p->tokens[_mark]->col_offset; |
9260 | 107k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
9261 | 107k | { // real_number |
9262 | 107k | if (p->error_indicator) { |
9263 | 0 | p->level--; |
9264 | 0 | return NULL; |
9265 | 0 | } |
9266 | 107k | D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "real_number")); |
9267 | 107k | expr_ty real_number_var; |
9268 | 107k | if ( |
9269 | 107k | (real_number_var = real_number_rule(p)) // real_number |
9270 | 107k | ) |
9271 | 1.90k | { |
9272 | 1.90k | D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "real_number")); |
9273 | 1.90k | _res = real_number_var; |
9274 | 1.90k | goto done; |
9275 | 1.90k | } |
9276 | 105k | p->mark = _mark; |
9277 | 105k | D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ', |
9278 | 105k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number")); |
9279 | 105k | } |
9280 | 0 | { // '+' real_number |
9281 | 105k | if (p->error_indicator) { |
9282 | 1 | p->level--; |
9283 | 1 | return NULL; |
9284 | 1 | } |
9285 | 105k | D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' real_number")); |
9286 | 105k | Token * _literal; |
9287 | 105k | expr_ty real; |
9288 | 105k | if ( |
9289 | 105k | (_literal = _PyPegen_expect_token(p, 14)) // token='+' |
9290 | 315 | && |
9291 | 315 | (real = real_number_rule(p)) // real_number |
9292 | 105k | ) |
9293 | 268 | { |
9294 | 268 | D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' real_number")); |
9295 | 268 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
9296 | 268 | if (_token == NULL) { |
9297 | 0 | p->level--; |
9298 | 0 | return NULL; |
9299 | 0 | } |
9300 | 268 | int _end_lineno = _token->end_lineno; |
9301 | 268 | UNUSED(_end_lineno); // Only used by EXTRA macro |
9302 | 268 | int _end_col_offset = _token->end_col_offset; |
9303 | 268 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
9304 | 268 | _res = _PyAST_UnaryOp ( UAdd , real , EXTRA ); |
9305 | 268 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9306 | 0 | p->error_indicator = 1; |
9307 | 0 | p->level--; |
9308 | 0 | return NULL; |
9309 | 0 | } |
9310 | 268 | goto done; |
9311 | 268 | } |
9312 | 105k | p->mark = _mark; |
9313 | 105k | D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ', |
9314 | 105k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' real_number")); |
9315 | 105k | } |
9316 | 0 | { // '-' real_number |
9317 | 105k | if (p->error_indicator) { |
9318 | 1 | p->level--; |
9319 | 1 | return NULL; |
9320 | 1 | } |
9321 | 105k | D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' real_number")); |
9322 | 105k | Token * _literal; |
9323 | 105k | expr_ty real; |
9324 | 105k | if ( |
9325 | 105k | (_literal = _PyPegen_expect_token(p, 15)) // token='-' |
9326 | 1.91k | && |
9327 | 1.91k | (real = real_number_rule(p)) // real_number |
9328 | 105k | ) |
9329 | 1.22k | { |
9330 | 1.22k | D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' real_number")); |
9331 | 1.22k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
9332 | 1.22k | if (_token == NULL) { |
9333 | 0 | p->level--; |
9334 | 0 | return NULL; |
9335 | 0 | } |
9336 | 1.22k | int _end_lineno = _token->end_lineno; |
9337 | 1.22k | UNUSED(_end_lineno); // Only used by EXTRA macro |
9338 | 1.22k | int _end_col_offset = _token->end_col_offset; |
9339 | 1.22k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
9340 | 1.22k | _res = _PyAST_UnaryOp ( USub , real , EXTRA ); |
9341 | 1.22k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9342 | 0 | p->error_indicator = 1; |
9343 | 0 | p->level--; |
9344 | 0 | return NULL; |
9345 | 0 | } |
9346 | 1.22k | goto done; |
9347 | 1.22k | } |
9348 | 104k | p->mark = _mark; |
9349 | 104k | D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ', |
9350 | 104k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number")); |
9351 | 104k | } |
9352 | 104k | _res = NULL; |
9353 | 107k | done: |
9354 | 107k | p->level--; |
9355 | 107k | return _res; |
9356 | 104k | } |
9357 | | |
9358 | | // real_number: NUMBER |
9359 | | static expr_ty |
9360 | | real_number_rule(Parser *p) |
9361 | 110k | { |
9362 | 110k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
9363 | 0 | _Pypegen_stack_overflow(p); |
9364 | 0 | } |
9365 | 110k | if (p->error_indicator) { |
9366 | 0 | p->level--; |
9367 | 0 | return NULL; |
9368 | 0 | } |
9369 | 110k | expr_ty _res = NULL; |
9370 | 110k | int _mark = p->mark; |
9371 | 110k | { // NUMBER |
9372 | 110k | if (p->error_indicator) { |
9373 | 0 | p->level--; |
9374 | 0 | return NULL; |
9375 | 0 | } |
9376 | 110k | D(fprintf(stderr, "%*c> real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER")); |
9377 | 110k | expr_ty real; |
9378 | 110k | if ( |
9379 | 110k | (real = _PyPegen_number_token(p)) // NUMBER |
9380 | 110k | ) |
9381 | 3.40k | { |
9382 | 3.40k | D(fprintf(stderr, "%*c+ real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER")); |
9383 | 3.40k | _res = _PyPegen_ensure_real ( p , real ); |
9384 | 3.40k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9385 | 4 | p->error_indicator = 1; |
9386 | 4 | p->level--; |
9387 | 4 | return NULL; |
9388 | 4 | } |
9389 | 3.39k | goto done; |
9390 | 3.40k | } |
9391 | 106k | p->mark = _mark; |
9392 | 106k | D(fprintf(stderr, "%*c%s real_number[%d-%d]: %s failed!\n", p->level, ' ', |
9393 | 106k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER")); |
9394 | 106k | } |
9395 | 106k | _res = NULL; |
9396 | 110k | done: |
9397 | 110k | p->level--; |
9398 | 110k | return _res; |
9399 | 106k | } |
9400 | | |
9401 | | // imaginary_number: NUMBER |
9402 | | static expr_ty |
9403 | | imaginary_number_rule(Parser *p) |
9404 | 1.93k | { |
9405 | 1.93k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
9406 | 0 | _Pypegen_stack_overflow(p); |
9407 | 0 | } |
9408 | 1.93k | if (p->error_indicator) { |
9409 | 0 | p->level--; |
9410 | 0 | return NULL; |
9411 | 0 | } |
9412 | 1.93k | expr_ty _res = NULL; |
9413 | 1.93k | int _mark = p->mark; |
9414 | 1.93k | { // NUMBER |
9415 | 1.93k | if (p->error_indicator) { |
9416 | 0 | p->level--; |
9417 | 0 | return NULL; |
9418 | 0 | } |
9419 | 1.93k | D(fprintf(stderr, "%*c> imaginary_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER")); |
9420 | 1.93k | expr_ty imag; |
9421 | 1.93k | if ( |
9422 | 1.93k | (imag = _PyPegen_number_token(p)) // NUMBER |
9423 | 1.93k | ) |
9424 | 1.47k | { |
9425 | 1.47k | D(fprintf(stderr, "%*c+ imaginary_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER")); |
9426 | 1.47k | _res = _PyPegen_ensure_imaginary ( p , imag ); |
9427 | 1.47k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9428 | 7 | p->error_indicator = 1; |
9429 | 7 | p->level--; |
9430 | 7 | return NULL; |
9431 | 7 | } |
9432 | 1.47k | goto done; |
9433 | 1.47k | } |
9434 | 457 | p->mark = _mark; |
9435 | 457 | D(fprintf(stderr, "%*c%s imaginary_number[%d-%d]: %s failed!\n", p->level, ' ', |
9436 | 457 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER")); |
9437 | 457 | } |
9438 | 457 | _res = NULL; |
9439 | 1.92k | done: |
9440 | 1.92k | p->level--; |
9441 | 1.92k | return _res; |
9442 | 457 | } |
9443 | | |
9444 | | // capture_pattern: pattern_capture_target |
9445 | | static pattern_ty |
9446 | | capture_pattern_rule(Parser *p) |
9447 | 47.4k | { |
9448 | 47.4k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
9449 | 0 | _Pypegen_stack_overflow(p); |
9450 | 0 | } |
9451 | 47.4k | if (p->error_indicator) { |
9452 | 0 | p->level--; |
9453 | 0 | return NULL; |
9454 | 0 | } |
9455 | 47.4k | pattern_ty _res = NULL; |
9456 | 47.4k | int _mark = p->mark; |
9457 | 47.4k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
9458 | 0 | p->error_indicator = 1; |
9459 | 0 | p->level--; |
9460 | 0 | return NULL; |
9461 | 0 | } |
9462 | 47.4k | int _start_lineno = p->tokens[_mark]->lineno; |
9463 | 47.4k | UNUSED(_start_lineno); // Only used by EXTRA macro |
9464 | 47.4k | int _start_col_offset = p->tokens[_mark]->col_offset; |
9465 | 47.4k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
9466 | 47.4k | { // pattern_capture_target |
9467 | 47.4k | if (p->error_indicator) { |
9468 | 0 | p->level--; |
9469 | 0 | return NULL; |
9470 | 0 | } |
9471 | 47.4k | D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target")); |
9472 | 47.4k | expr_ty target; |
9473 | 47.4k | if ( |
9474 | 47.4k | (target = pattern_capture_target_rule(p)) // pattern_capture_target |
9475 | 47.4k | ) |
9476 | 13.2k | { |
9477 | 13.2k | D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target")); |
9478 | 13.2k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
9479 | 13.2k | if (_token == NULL) { |
9480 | 0 | p->level--; |
9481 | 0 | return NULL; |
9482 | 0 | } |
9483 | 13.2k | int _end_lineno = _token->end_lineno; |
9484 | 13.2k | UNUSED(_end_lineno); // Only used by EXTRA macro |
9485 | 13.2k | int _end_col_offset = _token->end_col_offset; |
9486 | 13.2k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
9487 | 13.2k | _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA ); |
9488 | 13.2k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9489 | 0 | p->error_indicator = 1; |
9490 | 0 | p->level--; |
9491 | 0 | return NULL; |
9492 | 0 | } |
9493 | 13.2k | goto done; |
9494 | 13.2k | } |
9495 | 34.1k | p->mark = _mark; |
9496 | 34.1k | D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
9497 | 34.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern_capture_target")); |
9498 | 34.1k | } |
9499 | 34.1k | _res = NULL; |
9500 | 47.4k | done: |
9501 | 47.4k | p->level--; |
9502 | 47.4k | return _res; |
9503 | 34.1k | } |
9504 | | |
9505 | | // pattern_capture_target: !"_" NAME !('.' | '(' | '=') |
9506 | | static expr_ty |
9507 | | pattern_capture_target_rule(Parser *p) |
9508 | 51.6k | { |
9509 | 51.6k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
9510 | 0 | _Pypegen_stack_overflow(p); |
9511 | 0 | } |
9512 | 51.6k | if (p->error_indicator) { |
9513 | 0 | p->level--; |
9514 | 0 | return NULL; |
9515 | 0 | } |
9516 | 51.6k | expr_ty _res = NULL; |
9517 | 51.6k | int _mark = p->mark; |
9518 | 51.6k | { // !"_" NAME !('.' | '(' | '=') |
9519 | 51.6k | if (p->error_indicator) { |
9520 | 0 | p->level--; |
9521 | 0 | return NULL; |
9522 | 0 | } |
9523 | 51.6k | D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')")); |
9524 | 51.6k | expr_ty name; |
9525 | 51.6k | if ( |
9526 | 51.6k | _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_") |
9527 | 43.9k | && |
9528 | 43.9k | (name = _PyPegen_name_token(p)) // NAME |
9529 | 28.7k | && |
9530 | 28.7k | _PyPegen_lookahead(0, _tmp_43_rule, p) |
9531 | 51.6k | ) |
9532 | 16.5k | { |
9533 | 16.5k | D(fprintf(stderr, "%*c+ pattern_capture_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')")); |
9534 | 16.5k | _res = _PyPegen_set_expr_context ( p , name , Store ); |
9535 | 16.5k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9536 | 22 | p->error_indicator = 1; |
9537 | 22 | p->level--; |
9538 | 22 | return NULL; |
9539 | 22 | } |
9540 | 16.5k | goto done; |
9541 | 16.5k | } |
9542 | 35.1k | p->mark = _mark; |
9543 | 35.1k | D(fprintf(stderr, "%*c%s pattern_capture_target[%d-%d]: %s failed!\n", p->level, ' ', |
9544 | 35.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')")); |
9545 | 35.1k | } |
9546 | 35.1k | _res = NULL; |
9547 | 51.6k | done: |
9548 | 51.6k | p->level--; |
9549 | 51.6k | return _res; |
9550 | 35.1k | } |
9551 | | |
9552 | | // wildcard_pattern: "_" |
9553 | | static pattern_ty |
9554 | | wildcard_pattern_rule(Parser *p) |
9555 | 35.0k | { |
9556 | 35.0k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
9557 | 0 | _Pypegen_stack_overflow(p); |
9558 | 0 | } |
9559 | 35.0k | if (p->error_indicator) { |
9560 | 0 | p->level--; |
9561 | 0 | return NULL; |
9562 | 0 | } |
9563 | 35.0k | pattern_ty _res = NULL; |
9564 | 35.0k | int _mark = p->mark; |
9565 | 35.0k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
9566 | 0 | p->error_indicator = 1; |
9567 | 0 | p->level--; |
9568 | 0 | return NULL; |
9569 | 0 | } |
9570 | 35.0k | int _start_lineno = p->tokens[_mark]->lineno; |
9571 | 35.0k | UNUSED(_start_lineno); // Only used by EXTRA macro |
9572 | 35.0k | int _start_col_offset = p->tokens[_mark]->col_offset; |
9573 | 35.0k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
9574 | 35.0k | { // "_" |
9575 | 35.0k | if (p->error_indicator) { |
9576 | 0 | p->level--; |
9577 | 0 | return NULL; |
9578 | 0 | } |
9579 | 35.0k | D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\"")); |
9580 | 35.0k | expr_ty _keyword; |
9581 | 35.0k | if ( |
9582 | 35.0k | (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"' |
9583 | 35.0k | ) |
9584 | 7.66k | { |
9585 | 7.66k | D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\"")); |
9586 | 7.66k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
9587 | 7.66k | if (_token == NULL) { |
9588 | 0 | p->level--; |
9589 | 0 | return NULL; |
9590 | 0 | } |
9591 | 7.66k | int _end_lineno = _token->end_lineno; |
9592 | 7.66k | UNUSED(_end_lineno); // Only used by EXTRA macro |
9593 | 7.66k | int _end_col_offset = _token->end_col_offset; |
9594 | 7.66k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
9595 | 7.66k | _res = _PyAST_MatchAs ( NULL , NULL , EXTRA ); |
9596 | 7.66k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9597 | 0 | p->error_indicator = 1; |
9598 | 0 | p->level--; |
9599 | 0 | return NULL; |
9600 | 0 | } |
9601 | 7.66k | goto done; |
9602 | 7.66k | } |
9603 | 27.4k | p->mark = _mark; |
9604 | 27.4k | D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
9605 | 27.4k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\"")); |
9606 | 27.4k | } |
9607 | 27.4k | _res = NULL; |
9608 | 35.0k | done: |
9609 | 35.0k | p->level--; |
9610 | 35.0k | return _res; |
9611 | 27.4k | } |
9612 | | |
9613 | | // value_pattern: attr !('.' | '(' | '=') |
9614 | | static pattern_ty |
9615 | | value_pattern_rule(Parser *p) |
9616 | 27.2k | { |
9617 | 27.2k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
9618 | 0 | _Pypegen_stack_overflow(p); |
9619 | 0 | } |
9620 | 27.2k | if (p->error_indicator) { |
9621 | 0 | p->level--; |
9622 | 0 | return NULL; |
9623 | 0 | } |
9624 | 27.2k | pattern_ty _res = NULL; |
9625 | 27.2k | int _mark = p->mark; |
9626 | 27.2k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
9627 | 0 | p->error_indicator = 1; |
9628 | 0 | p->level--; |
9629 | 0 | return NULL; |
9630 | 0 | } |
9631 | 27.2k | int _start_lineno = p->tokens[_mark]->lineno; |
9632 | 27.2k | UNUSED(_start_lineno); // Only used by EXTRA macro |
9633 | 27.2k | int _start_col_offset = p->tokens[_mark]->col_offset; |
9634 | 27.2k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
9635 | 27.2k | { // attr !('.' | '(' | '=') |
9636 | 27.2k | if (p->error_indicator) { |
9637 | 0 | p->level--; |
9638 | 0 | return NULL; |
9639 | 0 | } |
9640 | 27.2k | D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')")); |
9641 | 27.2k | expr_ty attr; |
9642 | 27.2k | if ( |
9643 | 27.2k | (attr = attr_rule(p)) // attr |
9644 | 439 | && |
9645 | 439 | _PyPegen_lookahead(0, _tmp_43_rule, p) |
9646 | 27.2k | ) |
9647 | 328 | { |
9648 | 328 | D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')")); |
9649 | 328 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
9650 | 328 | if (_token == NULL) { |
9651 | 0 | p->level--; |
9652 | 0 | return NULL; |
9653 | 0 | } |
9654 | 328 | int _end_lineno = _token->end_lineno; |
9655 | 328 | UNUSED(_end_lineno); // Only used by EXTRA macro |
9656 | 328 | int _end_col_offset = _token->end_col_offset; |
9657 | 328 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
9658 | 328 | _res = _PyAST_MatchValue ( attr , EXTRA ); |
9659 | 328 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9660 | 0 | p->error_indicator = 1; |
9661 | 0 | p->level--; |
9662 | 0 | return NULL; |
9663 | 0 | } |
9664 | 328 | goto done; |
9665 | 328 | } |
9666 | 26.9k | p->mark = _mark; |
9667 | 26.9k | D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
9668 | 26.9k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')")); |
9669 | 26.9k | } |
9670 | 26.9k | _res = NULL; |
9671 | 27.2k | done: |
9672 | 27.2k | p->level--; |
9673 | 27.2k | return _res; |
9674 | 26.9k | } |
9675 | | |
9676 | | // Left-recursive |
9677 | | // attr: name_or_attr '.' NAME |
9678 | | static expr_ty attr_raw(Parser *); |
9679 | | static expr_ty |
9680 | | attr_rule(Parser *p) |
9681 | 147k | { |
9682 | 147k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
9683 | 0 | _Pypegen_stack_overflow(p); |
9684 | 0 | } |
9685 | 147k | expr_ty _res = NULL; |
9686 | 147k | if (_PyPegen_is_memoized(p, attr_type, &_res)) { |
9687 | 119k | p->level--; |
9688 | 119k | return _res; |
9689 | 119k | } |
9690 | 28.4k | int _mark = p->mark; |
9691 | 28.4k | int _resmark = p->mark; |
9692 | 28.4k | Memo *_memo = _PyPegen_insert_memo_direct(p, _mark, attr_type); |
9693 | 28.4k | if (_memo == NULL) { |
9694 | 0 | p->level--; |
9695 | 0 | return NULL; |
9696 | 0 | } |
9697 | 29.3k | while (1) { |
9698 | 29.3k | _memo->node = _res; |
9699 | 29.3k | _memo->mark = p->mark; |
9700 | 29.3k | p->mark = _mark; |
9701 | 29.3k | void *_raw = attr_raw(p); |
9702 | 29.3k | if (p->error_indicator) { |
9703 | 8 | p->level--; |
9704 | 8 | return NULL; |
9705 | 8 | } |
9706 | 29.3k | if (_raw == NULL || p->mark <= _resmark) |
9707 | 28.4k | break; |
9708 | 883 | _resmark = p->mark; |
9709 | 883 | _res = _raw; |
9710 | 883 | } |
9711 | 28.4k | p->mark = _resmark; |
9712 | 28.4k | p->level--; |
9713 | 28.4k | return _res; |
9714 | 28.4k | } |
9715 | | static expr_ty |
9716 | | attr_raw(Parser *p) |
9717 | 29.3k | { |
9718 | 29.3k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
9719 | 0 | _Pypegen_stack_overflow(p); |
9720 | 0 | } |
9721 | 29.3k | if (p->error_indicator) { |
9722 | 0 | p->level--; |
9723 | 0 | return NULL; |
9724 | 0 | } |
9725 | 29.3k | expr_ty _res = NULL; |
9726 | 29.3k | int _mark = p->mark; |
9727 | 29.3k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
9728 | 0 | p->error_indicator = 1; |
9729 | 0 | p->level--; |
9730 | 0 | return NULL; |
9731 | 0 | } |
9732 | 29.3k | int _start_lineno = p->tokens[_mark]->lineno; |
9733 | 29.3k | UNUSED(_start_lineno); // Only used by EXTRA macro |
9734 | 29.3k | int _start_col_offset = p->tokens[_mark]->col_offset; |
9735 | 29.3k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
9736 | 29.3k | { // name_or_attr '.' NAME |
9737 | 29.3k | if (p->error_indicator) { |
9738 | 0 | p->level--; |
9739 | 0 | return NULL; |
9740 | 0 | } |
9741 | 29.3k | D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME")); |
9742 | 29.3k | Token * _literal; |
9743 | 29.3k | expr_ty attr; |
9744 | 29.3k | expr_ty value; |
9745 | 29.3k | if ( |
9746 | 29.3k | (value = name_or_attr_rule(p)) // name_or_attr |
9747 | 12.9k | && |
9748 | 12.9k | (_literal = _PyPegen_expect_token(p, 23)) // token='.' |
9749 | 898 | && |
9750 | 898 | (attr = _PyPegen_name_token(p)) // NAME |
9751 | 29.3k | ) |
9752 | 883 | { |
9753 | 883 | D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME")); |
9754 | 883 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
9755 | 883 | if (_token == NULL) { |
9756 | 0 | p->level--; |
9757 | 0 | return NULL; |
9758 | 0 | } |
9759 | 883 | int _end_lineno = _token->end_lineno; |
9760 | 883 | UNUSED(_end_lineno); // Only used by EXTRA macro |
9761 | 883 | int _end_col_offset = _token->end_col_offset; |
9762 | 883 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
9763 | 883 | _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA ); |
9764 | 883 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9765 | 0 | p->error_indicator = 1; |
9766 | 0 | p->level--; |
9767 | 0 | return NULL; |
9768 | 0 | } |
9769 | 883 | goto done; |
9770 | 883 | } |
9771 | 28.4k | p->mark = _mark; |
9772 | 28.4k | D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ', |
9773 | 28.4k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME")); |
9774 | 28.4k | } |
9775 | 28.4k | _res = NULL; |
9776 | 29.3k | done: |
9777 | 29.3k | p->level--; |
9778 | 29.3k | return _res; |
9779 | 28.4k | } |
9780 | | |
9781 | | // Left-recursive |
9782 | | // name_or_attr: attr | NAME |
9783 | | Py_LOCAL_SYMBOL expr_ty |
9784 | | name_or_attr_rule(Parser *p) |
9785 | 117k | { |
9786 | 117k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
9787 | 0 | _Pypegen_stack_overflow(p); |
9788 | 0 | } |
9789 | 117k | if (p->error_indicator) { |
9790 | 0 | p->level--; |
9791 | 0 | return NULL; |
9792 | 0 | } |
9793 | 117k | expr_ty _res = NULL; |
9794 | 117k | int _mark = p->mark; |
9795 | 117k | { // attr |
9796 | 117k | if (p->error_indicator) { |
9797 | 0 | p->level--; |
9798 | 0 | return NULL; |
9799 | 0 | } |
9800 | 117k | D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr")); |
9801 | 117k | expr_ty attr_var; |
9802 | 117k | if ( |
9803 | 117k | (attr_var = attr_rule(p)) // attr |
9804 | 117k | ) |
9805 | 1.38k | { |
9806 | 1.38k | D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr")); |
9807 | 1.38k | _res = attr_var; |
9808 | 1.38k | goto done; |
9809 | 1.38k | } |
9810 | 116k | p->mark = _mark; |
9811 | 116k | D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ', |
9812 | 116k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr")); |
9813 | 116k | } |
9814 | 0 | { // NAME |
9815 | 116k | if (p->error_indicator) { |
9816 | 0 | p->level--; |
9817 | 0 | return NULL; |
9818 | 0 | } |
9819 | 116k | D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME")); |
9820 | 116k | expr_ty name_var; |
9821 | 116k | if ( |
9822 | 116k | (name_var = _PyPegen_name_token(p)) // NAME |
9823 | 116k | ) |
9824 | 56.0k | { |
9825 | 56.0k | D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME")); |
9826 | 56.0k | _res = name_var; |
9827 | 56.0k | goto done; |
9828 | 56.0k | } |
9829 | 60.0k | p->mark = _mark; |
9830 | 60.0k | D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ', |
9831 | 60.0k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME")); |
9832 | 60.0k | } |
9833 | 60.0k | _res = NULL; |
9834 | 117k | done: |
9835 | 117k | p->level--; |
9836 | 117k | return _res; |
9837 | 60.0k | } |
9838 | | |
9839 | | // group_pattern: '(' pattern ')' |
9840 | | static pattern_ty |
9841 | | group_pattern_rule(Parser *p) |
9842 | 26.8k | { |
9843 | 26.8k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
9844 | 0 | _Pypegen_stack_overflow(p); |
9845 | 0 | } |
9846 | 26.8k | if (p->error_indicator) { |
9847 | 0 | p->level--; |
9848 | 0 | return NULL; |
9849 | 0 | } |
9850 | 26.8k | pattern_ty _res = NULL; |
9851 | 26.8k | int _mark = p->mark; |
9852 | 26.8k | { // '(' pattern ')' |
9853 | 26.8k | if (p->error_indicator) { |
9854 | 0 | p->level--; |
9855 | 0 | return NULL; |
9856 | 0 | } |
9857 | 26.8k | D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'")); |
9858 | 26.8k | Token * _literal; |
9859 | 26.8k | Token * _literal_1; |
9860 | 26.8k | pattern_ty pattern; |
9861 | 26.8k | if ( |
9862 | 26.8k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
9863 | 4.34k | && |
9864 | 4.34k | (pattern = pattern_rule(p)) // pattern |
9865 | 1.20k | && |
9866 | 1.20k | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
9867 | 26.8k | ) |
9868 | 281 | { |
9869 | 281 | D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'")); |
9870 | 281 | _res = pattern; |
9871 | 281 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9872 | 0 | p->error_indicator = 1; |
9873 | 0 | p->level--; |
9874 | 0 | return NULL; |
9875 | 0 | } |
9876 | 281 | goto done; |
9877 | 281 | } |
9878 | 26.6k | p->mark = _mark; |
9879 | 26.6k | D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
9880 | 26.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'")); |
9881 | 26.6k | } |
9882 | 26.6k | _res = NULL; |
9883 | 26.8k | done: |
9884 | 26.8k | p->level--; |
9885 | 26.8k | return _res; |
9886 | 26.6k | } |
9887 | | |
9888 | | // sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')' |
9889 | | static pattern_ty |
9890 | | sequence_pattern_rule(Parser *p) |
9891 | 26.2k | { |
9892 | 26.2k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
9893 | 0 | _Pypegen_stack_overflow(p); |
9894 | 0 | } |
9895 | 26.2k | if (p->error_indicator) { |
9896 | 0 | p->level--; |
9897 | 0 | return NULL; |
9898 | 0 | } |
9899 | 26.2k | pattern_ty _res = NULL; |
9900 | 26.2k | int _mark = p->mark; |
9901 | 26.2k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
9902 | 0 | p->error_indicator = 1; |
9903 | 0 | p->level--; |
9904 | 0 | return NULL; |
9905 | 0 | } |
9906 | 26.2k | int _start_lineno = p->tokens[_mark]->lineno; |
9907 | 26.2k | UNUSED(_start_lineno); // Only used by EXTRA macro |
9908 | 26.2k | int _start_col_offset = p->tokens[_mark]->col_offset; |
9909 | 26.2k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
9910 | 26.2k | { // '[' maybe_sequence_pattern? ']' |
9911 | 26.2k | if (p->error_indicator) { |
9912 | 0 | p->level--; |
9913 | 0 | return NULL; |
9914 | 0 | } |
9915 | 26.2k | D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'")); |
9916 | 26.2k | Token * _literal; |
9917 | 26.2k | Token * _literal_1; |
9918 | 26.2k | void *patterns; |
9919 | 26.2k | if ( |
9920 | 26.2k | (_literal = _PyPegen_expect_token(p, 9)) // token='[' |
9921 | 2.31k | && |
9922 | 2.31k | (patterns = maybe_sequence_pattern_rule(p), !p->error_indicator) // maybe_sequence_pattern? |
9923 | 1.63k | && |
9924 | 1.63k | (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']' |
9925 | 26.2k | ) |
9926 | 221 | { |
9927 | 221 | D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'")); |
9928 | 221 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
9929 | 221 | if (_token == NULL) { |
9930 | 0 | p->level--; |
9931 | 0 | return NULL; |
9932 | 0 | } |
9933 | 221 | int _end_lineno = _token->end_lineno; |
9934 | 221 | UNUSED(_end_lineno); // Only used by EXTRA macro |
9935 | 221 | int _end_col_offset = _token->end_col_offset; |
9936 | 221 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
9937 | 221 | _res = _PyAST_MatchSequence ( patterns , EXTRA ); |
9938 | 221 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9939 | 0 | p->error_indicator = 1; |
9940 | 0 | p->level--; |
9941 | 0 | return NULL; |
9942 | 0 | } |
9943 | 221 | goto done; |
9944 | 221 | } |
9945 | 26.0k | p->mark = _mark; |
9946 | 26.0k | D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
9947 | 26.0k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'")); |
9948 | 26.0k | } |
9949 | 0 | { // '(' open_sequence_pattern? ')' |
9950 | 26.0k | if (p->error_indicator) { |
9951 | 679 | p->level--; |
9952 | 679 | return NULL; |
9953 | 679 | } |
9954 | 25.3k | D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'")); |
9955 | 25.3k | Token * _literal; |
9956 | 25.3k | Token * _literal_1; |
9957 | 25.3k | void *patterns; |
9958 | 25.3k | if ( |
9959 | 25.3k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
9960 | 3.72k | && |
9961 | 3.72k | (patterns = open_sequence_pattern_rule(p), !p->error_indicator) // open_sequence_pattern? |
9962 | 3.34k | && |
9963 | 3.34k | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
9964 | 25.3k | ) |
9965 | 1.56k | { |
9966 | 1.56k | D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'")); |
9967 | 1.56k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
9968 | 1.56k | if (_token == NULL) { |
9969 | 0 | p->level--; |
9970 | 0 | return NULL; |
9971 | 0 | } |
9972 | 1.56k | int _end_lineno = _token->end_lineno; |
9973 | 1.56k | UNUSED(_end_lineno); // Only used by EXTRA macro |
9974 | 1.56k | int _end_col_offset = _token->end_col_offset; |
9975 | 1.56k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
9976 | 1.56k | _res = _PyAST_MatchSequence ( patterns , EXTRA ); |
9977 | 1.56k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
9978 | 0 | p->error_indicator = 1; |
9979 | 0 | p->level--; |
9980 | 0 | return NULL; |
9981 | 0 | } |
9982 | 1.56k | goto done; |
9983 | 1.56k | } |
9984 | 23.8k | p->mark = _mark; |
9985 | 23.8k | D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
9986 | 23.8k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'")); |
9987 | 23.8k | } |
9988 | 23.8k | _res = NULL; |
9989 | 25.5k | done: |
9990 | 25.5k | p->level--; |
9991 | 25.5k | return _res; |
9992 | 23.8k | } |
9993 | | |
9994 | | // open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern? |
9995 | | static asdl_seq* |
9996 | | open_sequence_pattern_rule(Parser *p) |
9997 | 11.7k | { |
9998 | 11.7k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
9999 | 0 | _Pypegen_stack_overflow(p); |
10000 | 0 | } |
10001 | 11.7k | if (p->error_indicator) { |
10002 | 0 | p->level--; |
10003 | 0 | return NULL; |
10004 | 0 | } |
10005 | 11.7k | asdl_seq* _res = NULL; |
10006 | 11.7k | int _mark = p->mark; |
10007 | 11.7k | { // maybe_star_pattern ',' maybe_sequence_pattern? |
10008 | 11.7k | if (p->error_indicator) { |
10009 | 0 | p->level--; |
10010 | 0 | return NULL; |
10011 | 0 | } |
10012 | 11.7k | D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?")); |
10013 | 11.7k | Token * _literal; |
10014 | 11.7k | pattern_ty pattern; |
10015 | 11.7k | void *patterns; |
10016 | 11.7k | if ( |
10017 | 11.7k | (pattern = maybe_star_pattern_rule(p)) // maybe_star_pattern |
10018 | 6.92k | && |
10019 | 6.92k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
10020 | 2.74k | && |
10021 | 2.74k | (patterns = maybe_sequence_pattern_rule(p), !p->error_indicator) // maybe_sequence_pattern? |
10022 | 11.7k | ) |
10023 | 2.34k | { |
10024 | 2.34k | D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?")); |
10025 | 2.34k | _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns ); |
10026 | 2.34k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10027 | 0 | p->error_indicator = 1; |
10028 | 0 | p->level--; |
10029 | 0 | return NULL; |
10030 | 0 | } |
10031 | 2.34k | goto done; |
10032 | 2.34k | } |
10033 | 9.42k | p->mark = _mark; |
10034 | 9.42k | D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10035 | 9.42k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?")); |
10036 | 9.42k | } |
10037 | 9.42k | _res = NULL; |
10038 | 11.7k | done: |
10039 | 11.7k | p->level--; |
10040 | 11.7k | return _res; |
10041 | 9.42k | } |
10042 | | |
10043 | | // maybe_sequence_pattern: ','.maybe_star_pattern+ ','? |
10044 | | static asdl_seq* |
10045 | | maybe_sequence_pattern_rule(Parser *p) |
10046 | 5.05k | { |
10047 | 5.05k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
10048 | 0 | _Pypegen_stack_overflow(p); |
10049 | 0 | } |
10050 | 5.05k | if (p->error_indicator) { |
10051 | 0 | p->level--; |
10052 | 0 | return NULL; |
10053 | 0 | } |
10054 | 5.05k | asdl_seq* _res = NULL; |
10055 | 5.05k | int _mark = p->mark; |
10056 | 5.05k | { // ','.maybe_star_pattern+ ','? |
10057 | 5.05k | if (p->error_indicator) { |
10058 | 0 | p->level--; |
10059 | 0 | return NULL; |
10060 | 0 | } |
10061 | 5.05k | D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?")); |
10062 | 5.05k | void *_opt_var; |
10063 | 5.05k | UNUSED(_opt_var); // Silence compiler warnings |
10064 | 5.05k | asdl_seq * patterns; |
10065 | 5.05k | if ( |
10066 | 5.05k | (patterns = _gather_45_rule(p)) // ','.maybe_star_pattern+ |
10067 | 2.10k | && |
10068 | 2.10k | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
10069 | 5.05k | ) |
10070 | 1.69k | { |
10071 | 1.69k | D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?")); |
10072 | 1.69k | _res = patterns; |
10073 | 1.69k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10074 | 0 | p->error_indicator = 1; |
10075 | 0 | p->level--; |
10076 | 0 | return NULL; |
10077 | 0 | } |
10078 | 1.69k | goto done; |
10079 | 1.69k | } |
10080 | 3.35k | p->mark = _mark; |
10081 | 3.35k | D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10082 | 3.35k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?")); |
10083 | 3.35k | } |
10084 | 3.35k | _res = NULL; |
10085 | 5.05k | done: |
10086 | 5.05k | p->level--; |
10087 | 5.05k | return _res; |
10088 | 3.35k | } |
10089 | | |
10090 | | // maybe_star_pattern: star_pattern | pattern |
10091 | | static pattern_ty |
10092 | | maybe_star_pattern_rule(Parser *p) |
10093 | 27.8k | { |
10094 | 27.8k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
10095 | 0 | _Pypegen_stack_overflow(p); |
10096 | 0 | } |
10097 | 27.8k | if (p->error_indicator) { |
10098 | 0 | p->level--; |
10099 | 0 | return NULL; |
10100 | 0 | } |
10101 | 27.8k | pattern_ty _res = NULL; |
10102 | 27.8k | int _mark = p->mark; |
10103 | 27.8k | { // star_pattern |
10104 | 27.8k | if (p->error_indicator) { |
10105 | 0 | p->level--; |
10106 | 0 | return NULL; |
10107 | 0 | } |
10108 | 27.8k | D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_pattern")); |
10109 | 27.8k | pattern_ty star_pattern_var; |
10110 | 27.8k | if ( |
10111 | 27.8k | (star_pattern_var = star_pattern_rule(p)) // star_pattern |
10112 | 27.8k | ) |
10113 | 2.44k | { |
10114 | 2.44k | D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern")); |
10115 | 2.44k | _res = star_pattern_var; |
10116 | 2.44k | goto done; |
10117 | 2.44k | } |
10118 | 25.3k | p->mark = _mark; |
10119 | 25.3k | D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10120 | 25.3k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern")); |
10121 | 25.3k | } |
10122 | 0 | { // pattern |
10123 | 25.3k | if (p->error_indicator) { |
10124 | 21 | p->level--; |
10125 | 21 | return NULL; |
10126 | 21 | } |
10127 | 25.3k | D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern")); |
10128 | 25.3k | pattern_ty pattern_var; |
10129 | 25.3k | if ( |
10130 | 25.3k | (pattern_var = pattern_rule(p)) // pattern |
10131 | 25.3k | ) |
10132 | 16.2k | { |
10133 | 16.2k | D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern")); |
10134 | 16.2k | _res = pattern_var; |
10135 | 16.2k | goto done; |
10136 | 16.2k | } |
10137 | 9.08k | p->mark = _mark; |
10138 | 9.08k | D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10139 | 9.08k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern")); |
10140 | 9.08k | } |
10141 | 9.08k | _res = NULL; |
10142 | 27.7k | done: |
10143 | 27.7k | p->level--; |
10144 | 27.7k | return _res; |
10145 | 9.08k | } |
10146 | | |
10147 | | // star_pattern: '*' pattern_capture_target | '*' wildcard_pattern |
10148 | | static pattern_ty |
10149 | | star_pattern_rule(Parser *p) |
10150 | 27.8k | { |
10151 | 27.8k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
10152 | 0 | _Pypegen_stack_overflow(p); |
10153 | 0 | } |
10154 | 27.8k | if (p->error_indicator) { |
10155 | 0 | p->level--; |
10156 | 0 | return NULL; |
10157 | 0 | } |
10158 | 27.8k | pattern_ty _res = NULL; |
10159 | 27.8k | if (_PyPegen_is_memoized(p, star_pattern_type, &_res)) { |
10160 | 4.38k | p->level--; |
10161 | 4.38k | return _res; |
10162 | 4.38k | } |
10163 | 23.4k | int _mark = p->mark; |
10164 | 23.4k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
10165 | 0 | p->error_indicator = 1; |
10166 | 0 | p->level--; |
10167 | 0 | return NULL; |
10168 | 0 | } |
10169 | 23.4k | int _start_lineno = p->tokens[_mark]->lineno; |
10170 | 23.4k | UNUSED(_start_lineno); // Only used by EXTRA macro |
10171 | 23.4k | int _start_col_offset = p->tokens[_mark]->col_offset; |
10172 | 23.4k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
10173 | 23.4k | { // '*' pattern_capture_target |
10174 | 23.4k | if (p->error_indicator) { |
10175 | 0 | p->level--; |
10176 | 0 | return NULL; |
10177 | 0 | } |
10178 | 23.4k | D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' pattern_capture_target")); |
10179 | 23.4k | Token * _literal; |
10180 | 23.4k | expr_ty target; |
10181 | 23.4k | if ( |
10182 | 23.4k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
10183 | 1.86k | && |
10184 | 1.86k | (target = pattern_capture_target_rule(p)) // pattern_capture_target |
10185 | 23.4k | ) |
10186 | 875 | { |
10187 | 875 | D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' pattern_capture_target")); |
10188 | 875 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
10189 | 875 | if (_token == NULL) { |
10190 | 0 | p->level--; |
10191 | 0 | return NULL; |
10192 | 0 | } |
10193 | 875 | int _end_lineno = _token->end_lineno; |
10194 | 875 | UNUSED(_end_lineno); // Only used by EXTRA macro |
10195 | 875 | int _end_col_offset = _token->end_col_offset; |
10196 | 875 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
10197 | 875 | _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA ); |
10198 | 875 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10199 | 0 | p->error_indicator = 1; |
10200 | 0 | p->level--; |
10201 | 0 | return NULL; |
10202 | 0 | } |
10203 | 875 | goto done; |
10204 | 875 | } |
10205 | 22.5k | p->mark = _mark; |
10206 | 22.5k | D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10207 | 22.5k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target")); |
10208 | 22.5k | } |
10209 | 0 | { // '*' wildcard_pattern |
10210 | 22.5k | if (p->error_indicator) { |
10211 | 1 | p->level--; |
10212 | 1 | return NULL; |
10213 | 1 | } |
10214 | 22.5k | D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern")); |
10215 | 22.5k | Token * _literal; |
10216 | 22.5k | pattern_ty wildcard_pattern_var; |
10217 | 22.5k | if ( |
10218 | 22.5k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
10219 | 989 | && |
10220 | 989 | (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern |
10221 | 22.5k | ) |
10222 | 789 | { |
10223 | 789 | D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern")); |
10224 | 789 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
10225 | 789 | if (_token == NULL) { |
10226 | 0 | p->level--; |
10227 | 0 | return NULL; |
10228 | 0 | } |
10229 | 789 | int _end_lineno = _token->end_lineno; |
10230 | 789 | UNUSED(_end_lineno); // Only used by EXTRA macro |
10231 | 789 | int _end_col_offset = _token->end_col_offset; |
10232 | 789 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
10233 | 789 | _res = _PyAST_MatchStar ( NULL , EXTRA ); |
10234 | 789 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10235 | 0 | p->error_indicator = 1; |
10236 | 0 | p->level--; |
10237 | 0 | return NULL; |
10238 | 0 | } |
10239 | 789 | goto done; |
10240 | 789 | } |
10241 | 21.7k | p->mark = _mark; |
10242 | 21.7k | D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10243 | 21.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern")); |
10244 | 21.7k | } |
10245 | 21.7k | _res = NULL; |
10246 | 23.4k | done: |
10247 | 23.4k | _PyPegen_insert_memo(p, _mark, star_pattern_type, _res); |
10248 | 23.4k | p->level--; |
10249 | 23.4k | return _res; |
10250 | 21.7k | } |
10251 | | |
10252 | | // mapping_pattern: |
10253 | | // | '{' '}' |
10254 | | // | '{' double_star_pattern ','? '}' |
10255 | | // | '{' items_pattern ',' double_star_pattern ','? '}' |
10256 | | // | '{' items_pattern ','? '}' |
10257 | | // | invalid_mapping_pattern |
10258 | | static pattern_ty |
10259 | | mapping_pattern_rule(Parser *p) |
10260 | 23.4k | { |
10261 | 23.4k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
10262 | 0 | _Pypegen_stack_overflow(p); |
10263 | 0 | } |
10264 | 23.4k | if (p->error_indicator) { |
10265 | 0 | p->level--; |
10266 | 0 | return NULL; |
10267 | 0 | } |
10268 | 23.4k | pattern_ty _res = NULL; |
10269 | 23.4k | int _mark = p->mark; |
10270 | 23.4k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
10271 | 0 | p->error_indicator = 1; |
10272 | 0 | p->level--; |
10273 | 0 | return NULL; |
10274 | 0 | } |
10275 | 23.4k | int _start_lineno = p->tokens[_mark]->lineno; |
10276 | 23.4k | UNUSED(_start_lineno); // Only used by EXTRA macro |
10277 | 23.4k | int _start_col_offset = p->tokens[_mark]->col_offset; |
10278 | 23.4k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
10279 | 23.4k | { // '{' '}' |
10280 | 23.4k | if (p->error_indicator) { |
10281 | 0 | p->level--; |
10282 | 0 | return NULL; |
10283 | 0 | } |
10284 | 23.4k | D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'")); |
10285 | 23.4k | Token * _literal; |
10286 | 23.4k | Token * _literal_1; |
10287 | 23.4k | if ( |
10288 | 23.4k | (_literal = _PyPegen_expect_token(p, 25)) // token='{' |
10289 | 5.20k | && |
10290 | 5.20k | (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}' |
10291 | 23.4k | ) |
10292 | 394 | { |
10293 | 394 | D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'")); |
10294 | 394 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
10295 | 394 | if (_token == NULL) { |
10296 | 0 | p->level--; |
10297 | 0 | return NULL; |
10298 | 0 | } |
10299 | 394 | int _end_lineno = _token->end_lineno; |
10300 | 394 | UNUSED(_end_lineno); // Only used by EXTRA macro |
10301 | 394 | int _end_col_offset = _token->end_col_offset; |
10302 | 394 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
10303 | 394 | _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA ); |
10304 | 394 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10305 | 0 | p->error_indicator = 1; |
10306 | 0 | p->level--; |
10307 | 0 | return NULL; |
10308 | 0 | } |
10309 | 394 | goto done; |
10310 | 394 | } |
10311 | 23.0k | p->mark = _mark; |
10312 | 23.0k | D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10313 | 23.0k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'")); |
10314 | 23.0k | } |
10315 | 0 | { // '{' double_star_pattern ','? '}' |
10316 | 23.0k | if (p->error_indicator) { |
10317 | 3 | p->level--; |
10318 | 3 | return NULL; |
10319 | 3 | } |
10320 | 23.0k | D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'")); |
10321 | 23.0k | Token * _literal; |
10322 | 23.0k | Token * _literal_1; |
10323 | 23.0k | void *_opt_var; |
10324 | 23.0k | UNUSED(_opt_var); // Silence compiler warnings |
10325 | 23.0k | expr_ty rest; |
10326 | 23.0k | if ( |
10327 | 23.0k | (_literal = _PyPegen_expect_token(p, 25)) // token='{' |
10328 | 4.80k | && |
10329 | 4.80k | (rest = double_star_pattern_rule(p)) // double_star_pattern |
10330 | 920 | && |
10331 | 920 | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
10332 | 920 | && |
10333 | 920 | (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}' |
10334 | 23.0k | ) |
10335 | 215 | { |
10336 | 215 | D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'")); |
10337 | 215 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
10338 | 215 | if (_token == NULL) { |
10339 | 0 | p->level--; |
10340 | 0 | return NULL; |
10341 | 0 | } |
10342 | 215 | int _end_lineno = _token->end_lineno; |
10343 | 215 | UNUSED(_end_lineno); // Only used by EXTRA macro |
10344 | 215 | int _end_col_offset = _token->end_col_offset; |
10345 | 215 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
10346 | 215 | _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA ); |
10347 | 215 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10348 | 0 | p->error_indicator = 1; |
10349 | 0 | p->level--; |
10350 | 0 | return NULL; |
10351 | 0 | } |
10352 | 215 | goto done; |
10353 | 215 | } |
10354 | 22.8k | p->mark = _mark; |
10355 | 22.8k | D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10356 | 22.8k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'")); |
10357 | 22.8k | } |
10358 | 0 | { // '{' items_pattern ',' double_star_pattern ','? '}' |
10359 | 22.8k | if (p->error_indicator) { |
10360 | 4 | p->level--; |
10361 | 4 | return NULL; |
10362 | 4 | } |
10363 | 22.8k | D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'")); |
10364 | 22.8k | Token * _literal; |
10365 | 22.8k | Token * _literal_1; |
10366 | 22.8k | Token * _literal_2; |
10367 | 22.8k | void *_opt_var; |
10368 | 22.8k | UNUSED(_opt_var); // Silence compiler warnings |
10369 | 22.8k | asdl_seq* items; |
10370 | 22.8k | expr_ty rest; |
10371 | 22.8k | if ( |
10372 | 22.8k | (_literal = _PyPegen_expect_token(p, 25)) // token='{' |
10373 | 4.58k | && |
10374 | 4.58k | (items = items_pattern_rule(p)) // items_pattern |
10375 | 2.47k | && |
10376 | 2.47k | (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' |
10377 | 1.68k | && |
10378 | 1.68k | (rest = double_star_pattern_rule(p)) // double_star_pattern |
10379 | 416 | && |
10380 | 416 | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
10381 | 416 | && |
10382 | 416 | (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}' |
10383 | 22.8k | ) |
10384 | 348 | { |
10385 | 348 | D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'")); |
10386 | 348 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
10387 | 348 | if (_token == NULL) { |
10388 | 0 | p->level--; |
10389 | 0 | return NULL; |
10390 | 0 | } |
10391 | 348 | int _end_lineno = _token->end_lineno; |
10392 | 348 | UNUSED(_end_lineno); // Only used by EXTRA macro |
10393 | 348 | int _end_col_offset = _token->end_col_offset; |
10394 | 348 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
10395 | 348 | _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq* , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq* , _PyPegen_get_patterns ( p , items ) ) , rest -> v . Name . id , EXTRA ); |
10396 | 348 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10397 | 0 | p->error_indicator = 1; |
10398 | 0 | p->level--; |
10399 | 0 | return NULL; |
10400 | 0 | } |
10401 | 348 | goto done; |
10402 | 348 | } |
10403 | 22.4k | p->mark = _mark; |
10404 | 22.4k | D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10405 | 22.4k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'")); |
10406 | 22.4k | } |
10407 | 0 | { // '{' items_pattern ','? '}' |
10408 | 22.4k | if (p->error_indicator) { |
10409 | 428 | p->level--; |
10410 | 428 | return NULL; |
10411 | 428 | } |
10412 | 22.0k | D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'")); |
10413 | 22.0k | Token * _literal; |
10414 | 22.0k | Token * _literal_1; |
10415 | 22.0k | void *_opt_var; |
10416 | 22.0k | UNUSED(_opt_var); // Silence compiler warnings |
10417 | 22.0k | asdl_seq* items; |
10418 | 22.0k | if ( |
10419 | 22.0k | (_literal = _PyPegen_expect_token(p, 25)) // token='{' |
10420 | 3.81k | && |
10421 | 3.81k | (items = items_pattern_rule(p)) // items_pattern |
10422 | 1.86k | && |
10423 | 1.86k | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
10424 | 1.86k | && |
10425 | 1.86k | (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}' |
10426 | 22.0k | ) |
10427 | 393 | { |
10428 | 393 | D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'")); |
10429 | 393 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
10430 | 393 | if (_token == NULL) { |
10431 | 0 | p->level--; |
10432 | 0 | return NULL; |
10433 | 0 | } |
10434 | 393 | int _end_lineno = _token->end_lineno; |
10435 | 393 | UNUSED(_end_lineno); // Only used by EXTRA macro |
10436 | 393 | int _end_col_offset = _token->end_col_offset; |
10437 | 393 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
10438 | 393 | _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq* , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq* , _PyPegen_get_patterns ( p , items ) ) , NULL , EXTRA ); |
10439 | 393 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10440 | 0 | p->error_indicator = 1; |
10441 | 0 | p->level--; |
10442 | 0 | return NULL; |
10443 | 0 | } |
10444 | 393 | goto done; |
10445 | 393 | } |
10446 | 21.6k | p->mark = _mark; |
10447 | 21.6k | D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10448 | 21.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'")); |
10449 | 21.6k | } |
10450 | 21.6k | if (p->call_invalid_rules) { // invalid_mapping_pattern |
10451 | 11.6k | if (p->error_indicator) { |
10452 | 0 | p->level--; |
10453 | 0 | return NULL; |
10454 | 0 | } |
10455 | 11.6k | D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_mapping_pattern")); |
10456 | 11.6k | void *invalid_mapping_pattern_var; |
10457 | 11.6k | if ( |
10458 | 11.6k | (invalid_mapping_pattern_var = invalid_mapping_pattern_rule(p)) // invalid_mapping_pattern |
10459 | 11.6k | ) |
10460 | 0 | { |
10461 | 0 | D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_mapping_pattern")); |
10462 | 0 | _res = invalid_mapping_pattern_var; |
10463 | 0 | goto done; |
10464 | 0 | } |
10465 | 11.6k | p->mark = _mark; |
10466 | 11.6k | D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10467 | 11.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_mapping_pattern")); |
10468 | 11.6k | } |
10469 | 21.6k | _res = NULL; |
10470 | 23.0k | done: |
10471 | 23.0k | p->level--; |
10472 | 23.0k | return _res; |
10473 | 21.6k | } |
10474 | | |
10475 | | // items_pattern: ','.key_value_pattern+ |
10476 | | Py_LOCAL_SYMBOL asdl_seq* |
10477 | | items_pattern_rule(Parser *p) |
10478 | 11.4k | { |
10479 | 11.4k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
10480 | 0 | _Pypegen_stack_overflow(p); |
10481 | 0 | } |
10482 | 11.4k | if (p->error_indicator) { |
10483 | 0 | p->level--; |
10484 | 0 | return NULL; |
10485 | 0 | } |
10486 | 11.4k | asdl_seq* _res = NULL; |
10487 | 11.4k | int _mark = p->mark; |
10488 | 11.4k | { // ','.key_value_pattern+ |
10489 | 11.4k | if (p->error_indicator) { |
10490 | 0 | p->level--; |
10491 | 0 | return NULL; |
10492 | 0 | } |
10493 | 11.4k | D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+")); |
10494 | 11.4k | asdl_seq * _gather_47_var; |
10495 | 11.4k | if ( |
10496 | 11.4k | (_gather_47_var = _gather_47_rule(p)) // ','.key_value_pattern+ |
10497 | 11.4k | ) |
10498 | 5.94k | { |
10499 | 5.94k | D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+")); |
10500 | 5.94k | _res = _gather_47_var; |
10501 | 5.94k | goto done; |
10502 | 5.94k | } |
10503 | 5.50k | p->mark = _mark; |
10504 | 5.50k | D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10505 | 5.50k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+")); |
10506 | 5.50k | } |
10507 | 5.50k | _res = NULL; |
10508 | 11.4k | done: |
10509 | 11.4k | p->level--; |
10510 | 11.4k | return _res; |
10511 | 5.50k | } |
10512 | | |
10513 | | // key_value_pattern: (literal_expr | attr) ':' pattern |
10514 | | static KeyPatternPair* |
10515 | | key_value_pattern_rule(Parser *p) |
10516 | 19.0k | { |
10517 | 19.0k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
10518 | 0 | _Pypegen_stack_overflow(p); |
10519 | 0 | } |
10520 | 19.0k | if (p->error_indicator) { |
10521 | 0 | p->level--; |
10522 | 0 | return NULL; |
10523 | 0 | } |
10524 | 19.0k | KeyPatternPair* _res = NULL; |
10525 | 19.0k | int _mark = p->mark; |
10526 | 19.0k | { // (literal_expr | attr) ':' pattern |
10527 | 19.0k | if (p->error_indicator) { |
10528 | 0 | p->level--; |
10529 | 0 | return NULL; |
10530 | 0 | } |
10531 | 19.0k | D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern")); |
10532 | 19.0k | Token * _literal; |
10533 | 19.0k | void *key; |
10534 | 19.0k | pattern_ty pattern; |
10535 | 19.0k | if ( |
10536 | 19.0k | (key = _tmp_48_rule(p)) // literal_expr | attr |
10537 | 16.1k | && |
10538 | 16.1k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
10539 | 16.0k | && |
10540 | 16.0k | (pattern = pattern_rule(p)) // pattern |
10541 | 19.0k | ) |
10542 | 9.58k | { |
10543 | 9.58k | D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern")); |
10544 | 9.58k | _res = _PyPegen_key_pattern_pair ( p , key , pattern ); |
10545 | 9.58k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10546 | 0 | p->error_indicator = 1; |
10547 | 0 | p->level--; |
10548 | 0 | return NULL; |
10549 | 0 | } |
10550 | 9.58k | goto done; |
10551 | 9.58k | } |
10552 | 9.46k | p->mark = _mark; |
10553 | 9.46k | D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10554 | 9.46k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_expr | attr) ':' pattern")); |
10555 | 9.46k | } |
10556 | 9.46k | _res = NULL; |
10557 | 19.0k | done: |
10558 | 19.0k | p->level--; |
10559 | 19.0k | return _res; |
10560 | 9.46k | } |
10561 | | |
10562 | | // double_star_pattern: '**' pattern_capture_target |
10563 | | Py_LOCAL_SYMBOL expr_ty |
10564 | | double_star_pattern_rule(Parser *p) |
10565 | 8.79k | { |
10566 | 8.79k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
10567 | 0 | _Pypegen_stack_overflow(p); |
10568 | 0 | } |
10569 | 8.79k | if (p->error_indicator) { |
10570 | 252 | p->level--; |
10571 | 252 | return NULL; |
10572 | 252 | } |
10573 | 8.54k | expr_ty _res = NULL; |
10574 | 8.54k | int _mark = p->mark; |
10575 | 8.54k | { // '**' pattern_capture_target |
10576 | 8.54k | if (p->error_indicator) { |
10577 | 0 | p->level--; |
10578 | 0 | return NULL; |
10579 | 0 | } |
10580 | 8.54k | D(fprintf(stderr, "%*c> double_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target")); |
10581 | 8.54k | Token * _literal; |
10582 | 8.54k | expr_ty target; |
10583 | 8.54k | if ( |
10584 | 8.54k | (_literal = _PyPegen_expect_token(p, 35)) // token='**' |
10585 | 2.08k | && |
10586 | 2.08k | (target = pattern_capture_target_rule(p)) // pattern_capture_target |
10587 | 8.54k | ) |
10588 | 2.07k | { |
10589 | 2.07k | D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target")); |
10590 | 2.07k | _res = target; |
10591 | 2.07k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10592 | 0 | p->error_indicator = 1; |
10593 | 0 | p->level--; |
10594 | 0 | return NULL; |
10595 | 0 | } |
10596 | 2.07k | goto done; |
10597 | 2.07k | } |
10598 | 6.47k | p->mark = _mark; |
10599 | 6.47k | D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10600 | 6.47k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' pattern_capture_target")); |
10601 | 6.47k | } |
10602 | 6.47k | _res = NULL; |
10603 | 8.54k | done: |
10604 | 8.54k | p->level--; |
10605 | 8.54k | return _res; |
10606 | 6.47k | } |
10607 | | |
10608 | | // class_pattern: |
10609 | | // | name_or_attr '(' ')' |
10610 | | // | name_or_attr '(' positional_patterns ','? ')' |
10611 | | // | name_or_attr '(' keyword_patterns ','? ')' |
10612 | | // | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')' |
10613 | | // | invalid_class_pattern |
10614 | | static pattern_ty |
10615 | | class_pattern_rule(Parser *p) |
10616 | 21.2k | { |
10617 | 21.2k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
10618 | 0 | _Pypegen_stack_overflow(p); |
10619 | 0 | } |
10620 | 21.2k | if (p->error_indicator) { |
10621 | 0 | p->level--; |
10622 | 0 | return NULL; |
10623 | 0 | } |
10624 | 21.2k | pattern_ty _res = NULL; |
10625 | 21.2k | int _mark = p->mark; |
10626 | 21.2k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
10627 | 0 | p->error_indicator = 1; |
10628 | 0 | p->level--; |
10629 | 0 | return NULL; |
10630 | 0 | } |
10631 | 21.2k | int _start_lineno = p->tokens[_mark]->lineno; |
10632 | 21.2k | UNUSED(_start_lineno); // Only used by EXTRA macro |
10633 | 21.2k | int _start_col_offset = p->tokens[_mark]->col_offset; |
10634 | 21.2k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
10635 | 21.2k | { // name_or_attr '(' ')' |
10636 | 21.2k | if (p->error_indicator) { |
10637 | 0 | p->level--; |
10638 | 0 | return NULL; |
10639 | 0 | } |
10640 | 21.2k | D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'")); |
10641 | 21.2k | Token * _literal; |
10642 | 21.2k | Token * _literal_1; |
10643 | 21.2k | expr_ty cls; |
10644 | 21.2k | if ( |
10645 | 21.2k | (cls = name_or_attr_rule(p)) // name_or_attr |
10646 | 11.6k | && |
10647 | 11.6k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
10648 | 8.69k | && |
10649 | 8.69k | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
10650 | 21.2k | ) |
10651 | 997 | { |
10652 | 997 | D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'")); |
10653 | 997 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
10654 | 997 | if (_token == NULL) { |
10655 | 0 | p->level--; |
10656 | 0 | return NULL; |
10657 | 0 | } |
10658 | 997 | int _end_lineno = _token->end_lineno; |
10659 | 997 | UNUSED(_end_lineno); // Only used by EXTRA macro |
10660 | 997 | int _end_col_offset = _token->end_col_offset; |
10661 | 997 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
10662 | 997 | _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA ); |
10663 | 997 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10664 | 0 | p->error_indicator = 1; |
10665 | 0 | p->level--; |
10666 | 0 | return NULL; |
10667 | 0 | } |
10668 | 997 | goto done; |
10669 | 997 | } |
10670 | 20.2k | p->mark = _mark; |
10671 | 20.2k | D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10672 | 20.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'")); |
10673 | 20.2k | } |
10674 | 0 | { // name_or_attr '(' positional_patterns ','? ')' |
10675 | 20.2k | if (p->error_indicator) { |
10676 | 8 | p->level--; |
10677 | 8 | return NULL; |
10678 | 8 | } |
10679 | 20.2k | D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'")); |
10680 | 20.2k | Token * _literal; |
10681 | 20.2k | Token * _literal_1; |
10682 | 20.2k | void *_opt_var; |
10683 | 20.2k | UNUSED(_opt_var); // Silence compiler warnings |
10684 | 20.2k | expr_ty cls; |
10685 | 20.2k | asdl_pattern_seq* patterns; |
10686 | 20.2k | if ( |
10687 | 20.2k | (cls = name_or_attr_rule(p)) // name_or_attr |
10688 | 10.6k | && |
10689 | 10.6k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
10690 | 7.68k | && |
10691 | 7.68k | (patterns = positional_patterns_rule(p)) // positional_patterns |
10692 | 3.55k | && |
10693 | 3.55k | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
10694 | 3.55k | && |
10695 | 3.55k | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
10696 | 20.2k | ) |
10697 | 488 | { |
10698 | 488 | D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'")); |
10699 | 488 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
10700 | 488 | if (_token == NULL) { |
10701 | 0 | p->level--; |
10702 | 0 | return NULL; |
10703 | 0 | } |
10704 | 488 | int _end_lineno = _token->end_lineno; |
10705 | 488 | UNUSED(_end_lineno); // Only used by EXTRA macro |
10706 | 488 | int _end_col_offset = _token->end_col_offset; |
10707 | 488 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
10708 | 488 | _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA ); |
10709 | 488 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10710 | 0 | p->error_indicator = 1; |
10711 | 0 | p->level--; |
10712 | 0 | return NULL; |
10713 | 0 | } |
10714 | 488 | goto done; |
10715 | 488 | } |
10716 | 19.7k | p->mark = _mark; |
10717 | 19.7k | D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10718 | 19.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'")); |
10719 | 19.7k | } |
10720 | 0 | { // name_or_attr '(' keyword_patterns ','? ')' |
10721 | 19.7k | if (p->error_indicator) { |
10722 | 667 | p->level--; |
10723 | 667 | return NULL; |
10724 | 667 | } |
10725 | 19.0k | D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'")); |
10726 | 19.0k | Token * _literal; |
10727 | 19.0k | Token * _literal_1; |
10728 | 19.0k | void *_opt_var; |
10729 | 19.0k | UNUSED(_opt_var); // Silence compiler warnings |
10730 | 19.0k | expr_ty cls; |
10731 | 19.0k | asdl_seq* keywords; |
10732 | 19.0k | if ( |
10733 | 19.0k | (cls = name_or_attr_rule(p)) // name_or_attr |
10734 | 9.53k | && |
10735 | 9.53k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
10736 | 6.53k | && |
10737 | 6.53k | (keywords = keyword_patterns_rule(p)) // keyword_patterns |
10738 | 1.74k | && |
10739 | 1.74k | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
10740 | 1.66k | && |
10741 | 1.66k | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
10742 | 19.0k | ) |
10743 | 714 | { |
10744 | 714 | D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'")); |
10745 | 714 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
10746 | 714 | if (_token == NULL) { |
10747 | 0 | p->level--; |
10748 | 0 | return NULL; |
10749 | 0 | } |
10750 | 714 | int _end_lineno = _token->end_lineno; |
10751 | 714 | UNUSED(_end_lineno); // Only used by EXTRA macro |
10752 | 714 | int _end_col_offset = _token->end_col_offset; |
10753 | 714 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
10754 | 714 | _res = _PyAST_MatchClass ( cls , NULL , CHECK ( asdl_identifier_seq* , _PyPegen_map_names_to_ids ( p , CHECK ( asdl_expr_seq* , _PyPegen_get_pattern_keys ( p , keywords ) ) ) ) , CHECK ( asdl_pattern_seq* , _PyPegen_get_patterns ( p , keywords ) ) , EXTRA ); |
10755 | 714 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10756 | 0 | p->error_indicator = 1; |
10757 | 0 | p->level--; |
10758 | 0 | return NULL; |
10759 | 0 | } |
10760 | 714 | goto done; |
10761 | 714 | } |
10762 | 18.3k | p->mark = _mark; |
10763 | 18.3k | D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10764 | 18.3k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'")); |
10765 | 18.3k | } |
10766 | 0 | { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')' |
10767 | 18.3k | if (p->error_indicator) { |
10768 | 572 | p->level--; |
10769 | 572 | return NULL; |
10770 | 572 | } |
10771 | 17.7k | D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'")); |
10772 | 17.7k | Token * _literal; |
10773 | 17.7k | Token * _literal_1; |
10774 | 17.7k | Token * _literal_2; |
10775 | 17.7k | void *_opt_var; |
10776 | 17.7k | UNUSED(_opt_var); // Silence compiler warnings |
10777 | 17.7k | expr_ty cls; |
10778 | 17.7k | asdl_seq* keywords; |
10779 | 17.7k | asdl_pattern_seq* patterns; |
10780 | 17.7k | if ( |
10781 | 17.7k | (cls = name_or_attr_rule(p)) // name_or_attr |
10782 | 8.25k | && |
10783 | 8.25k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
10784 | 5.24k | && |
10785 | 5.24k | (patterns = positional_patterns_rule(p)) // positional_patterns |
10786 | 2.88k | && |
10787 | 2.88k | (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' |
10788 | 1.94k | && |
10789 | 1.94k | (keywords = keyword_patterns_rule(p)) // keyword_patterns |
10790 | 684 | && |
10791 | 684 | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
10792 | 374 | && |
10793 | 374 | (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')' |
10794 | 17.7k | ) |
10795 | 102 | { |
10796 | 102 | D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'")); |
10797 | 102 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
10798 | 102 | if (_token == NULL) { |
10799 | 0 | p->level--; |
10800 | 0 | return NULL; |
10801 | 0 | } |
10802 | 102 | int _end_lineno = _token->end_lineno; |
10803 | 102 | UNUSED(_end_lineno); // Only used by EXTRA macro |
10804 | 102 | int _end_col_offset = _token->end_col_offset; |
10805 | 102 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
10806 | 102 | _res = _PyAST_MatchClass ( cls , patterns , CHECK ( asdl_identifier_seq* , _PyPegen_map_names_to_ids ( p , CHECK ( asdl_expr_seq* , _PyPegen_get_pattern_keys ( p , keywords ) ) ) ) , CHECK ( asdl_pattern_seq* , _PyPegen_get_patterns ( p , keywords ) ) , EXTRA ); |
10807 | 102 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10808 | 0 | p->error_indicator = 1; |
10809 | 0 | p->level--; |
10810 | 0 | return NULL; |
10811 | 0 | } |
10812 | 102 | goto done; |
10813 | 102 | } |
10814 | 17.6k | p->mark = _mark; |
10815 | 17.6k | D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10816 | 17.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'")); |
10817 | 17.6k | } |
10818 | 17.6k | if (p->call_invalid_rules) { // invalid_class_pattern |
10819 | 10.2k | if (p->error_indicator) { |
10820 | 355 | p->level--; |
10821 | 355 | return NULL; |
10822 | 355 | } |
10823 | 9.90k | D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern")); |
10824 | 9.90k | void *invalid_class_pattern_var; |
10825 | 9.90k | if ( |
10826 | 9.90k | (invalid_class_pattern_var = invalid_class_pattern_rule(p)) // invalid_class_pattern |
10827 | 9.90k | ) |
10828 | 0 | { |
10829 | 0 | D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern")); |
10830 | 0 | _res = invalid_class_pattern_var; |
10831 | 0 | goto done; |
10832 | 0 | } |
10833 | 9.90k | p->mark = _mark; |
10834 | 9.90k | D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10835 | 9.90k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_pattern")); |
10836 | 9.90k | } |
10837 | 17.3k | _res = NULL; |
10838 | 19.6k | done: |
10839 | 19.6k | p->level--; |
10840 | 19.6k | return _res; |
10841 | 17.3k | } |
10842 | | |
10843 | | // positional_patterns: ','.pattern+ |
10844 | | Py_LOCAL_SYMBOL asdl_pattern_seq* |
10845 | | positional_patterns_rule(Parser *p) |
10846 | 16.1k | { |
10847 | 16.1k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
10848 | 0 | _Pypegen_stack_overflow(p); |
10849 | 0 | } |
10850 | 16.1k | if (p->error_indicator) { |
10851 | 0 | p->level--; |
10852 | 0 | return NULL; |
10853 | 0 | } |
10854 | 16.1k | asdl_pattern_seq* _res = NULL; |
10855 | 16.1k | int _mark = p->mark; |
10856 | 16.1k | { // ','.pattern+ |
10857 | 16.1k | if (p->error_indicator) { |
10858 | 0 | p->level--; |
10859 | 0 | return NULL; |
10860 | 0 | } |
10861 | 16.1k | D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+")); |
10862 | 16.1k | asdl_pattern_seq* args; |
10863 | 16.1k | if ( |
10864 | 16.1k | (args = (asdl_pattern_seq*)_gather_50_rule(p)) // ','.pattern+ |
10865 | 16.1k | ) |
10866 | 8.37k | { |
10867 | 8.37k | D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+")); |
10868 | 8.37k | _res = args; |
10869 | 8.37k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10870 | 422 | p->error_indicator = 1; |
10871 | 422 | p->level--; |
10872 | 422 | return NULL; |
10873 | 422 | } |
10874 | 7.95k | goto done; |
10875 | 8.37k | } |
10876 | 7.74k | p->mark = _mark; |
10877 | 7.74k | D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ', |
10878 | 7.74k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+")); |
10879 | 7.74k | } |
10880 | 7.74k | _res = NULL; |
10881 | 15.7k | done: |
10882 | 15.7k | p->level--; |
10883 | 15.7k | return _res; |
10884 | 7.74k | } |
10885 | | |
10886 | | // keyword_patterns: ','.keyword_pattern+ |
10887 | | Py_LOCAL_SYMBOL asdl_seq* |
10888 | | keyword_patterns_rule(Parser *p) |
10889 | 11.3k | { |
10890 | 11.3k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
10891 | 0 | _Pypegen_stack_overflow(p); |
10892 | 0 | } |
10893 | 11.3k | if (p->error_indicator) { |
10894 | 0 | p->level--; |
10895 | 0 | return NULL; |
10896 | 0 | } |
10897 | 11.3k | asdl_seq* _res = NULL; |
10898 | 11.3k | int _mark = p->mark; |
10899 | 11.3k | { // ','.keyword_pattern+ |
10900 | 11.3k | if (p->error_indicator) { |
10901 | 0 | p->level--; |
10902 | 0 | return NULL; |
10903 | 0 | } |
10904 | 11.3k | D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+")); |
10905 | 11.3k | asdl_seq * _gather_52_var; |
10906 | 11.3k | if ( |
10907 | 11.3k | (_gather_52_var = _gather_52_rule(p)) // ','.keyword_pattern+ |
10908 | 11.3k | ) |
10909 | 3.12k | { |
10910 | 3.12k | D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+")); |
10911 | 3.12k | _res = _gather_52_var; |
10912 | 3.12k | goto done; |
10913 | 3.12k | } |
10914 | 8.20k | p->mark = _mark; |
10915 | 8.20k | D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ', |
10916 | 8.20k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+")); |
10917 | 8.20k | } |
10918 | 8.20k | _res = NULL; |
10919 | 11.3k | done: |
10920 | 11.3k | p->level--; |
10921 | 11.3k | return _res; |
10922 | 8.20k | } |
10923 | | |
10924 | | // keyword_pattern: NAME '=' pattern |
10925 | | static KeyPatternPair* |
10926 | | keyword_pattern_rule(Parser *p) |
10927 | 13.4k | { |
10928 | 13.4k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
10929 | 0 | _Pypegen_stack_overflow(p); |
10930 | 0 | } |
10931 | 13.4k | if (p->error_indicator) { |
10932 | 0 | p->level--; |
10933 | 0 | return NULL; |
10934 | 0 | } |
10935 | 13.4k | KeyPatternPair* _res = NULL; |
10936 | 13.4k | int _mark = p->mark; |
10937 | 13.4k | { // NAME '=' pattern |
10938 | 13.4k | if (p->error_indicator) { |
10939 | 0 | p->level--; |
10940 | 0 | return NULL; |
10941 | 0 | } |
10942 | 13.4k | D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern")); |
10943 | 13.4k | Token * _literal; |
10944 | 13.4k | expr_ty arg; |
10945 | 13.4k | pattern_ty value; |
10946 | 13.4k | if ( |
10947 | 13.4k | (arg = _PyPegen_name_token(p)) // NAME |
10948 | 12.8k | && |
10949 | 12.8k | (_literal = _PyPegen_expect_token(p, 22)) // token='=' |
10950 | 6.63k | && |
10951 | 6.63k | (value = pattern_rule(p)) // pattern |
10952 | 13.4k | ) |
10953 | 4.01k | { |
10954 | 4.01k | D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern")); |
10955 | 4.01k | _res = _PyPegen_key_pattern_pair ( p , arg , value ); |
10956 | 4.01k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
10957 | 0 | p->error_indicator = 1; |
10958 | 0 | p->level--; |
10959 | 0 | return NULL; |
10960 | 0 | } |
10961 | 4.01k | goto done; |
10962 | 4.01k | } |
10963 | 9.48k | p->mark = _mark; |
10964 | 9.48k | D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ', |
10965 | 9.48k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern")); |
10966 | 9.48k | } |
10967 | 9.48k | _res = NULL; |
10968 | 13.4k | done: |
10969 | 13.4k | p->level--; |
10970 | 13.4k | return _res; |
10971 | 9.48k | } |
10972 | | |
10973 | | // type_alias: "type" NAME type_params? '=' expression |
10974 | | static stmt_ty |
10975 | | type_alias_rule(Parser *p) |
10976 | 965 | { |
10977 | 965 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
10978 | 0 | _Pypegen_stack_overflow(p); |
10979 | 0 | } |
10980 | 965 | if (p->error_indicator) { |
10981 | 0 | p->level--; |
10982 | 0 | return NULL; |
10983 | 0 | } |
10984 | 965 | stmt_ty _res = NULL; |
10985 | 965 | int _mark = p->mark; |
10986 | 965 | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
10987 | 0 | p->error_indicator = 1; |
10988 | 0 | p->level--; |
10989 | 0 | return NULL; |
10990 | 0 | } |
10991 | 965 | int _start_lineno = p->tokens[_mark]->lineno; |
10992 | 965 | UNUSED(_start_lineno); // Only used by EXTRA macro |
10993 | 965 | int _start_col_offset = p->tokens[_mark]->col_offset; |
10994 | 965 | UNUSED(_start_col_offset); // Only used by EXTRA macro |
10995 | 965 | { // "type" NAME type_params? '=' expression |
10996 | 965 | if (p->error_indicator) { |
10997 | 0 | p->level--; |
10998 | 0 | return NULL; |
10999 | 0 | } |
11000 | 965 | D(fprintf(stderr, "%*c> type_alias[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"type\" NAME type_params? '=' expression")); |
11001 | 965 | expr_ty _keyword; |
11002 | 965 | Token * _literal; |
11003 | 965 | expr_ty b; |
11004 | 965 | expr_ty n; |
11005 | 965 | void *t; |
11006 | 965 | if ( |
11007 | 965 | (_keyword = _PyPegen_expect_soft_keyword(p, "type")) // soft_keyword='"type"' |
11008 | 965 | && |
11009 | 965 | (n = _PyPegen_name_token(p)) // NAME |
11010 | 767 | && |
11011 | 767 | (t = type_params_rule(p), !p->error_indicator) // type_params? |
11012 | 468 | && |
11013 | 468 | (_literal = _PyPegen_expect_token(p, 22)) // token='=' |
11014 | 438 | && |
11015 | 438 | (b = expression_rule(p)) // expression |
11016 | 965 | ) |
11017 | 404 | { |
11018 | 404 | D(fprintf(stderr, "%*c+ type_alias[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"type\" NAME type_params? '=' expression")); |
11019 | 404 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
11020 | 404 | if (_token == NULL) { |
11021 | 0 | p->level--; |
11022 | 0 | return NULL; |
11023 | 0 | } |
11024 | 404 | int _end_lineno = _token->end_lineno; |
11025 | 404 | UNUSED(_end_lineno); // Only used by EXTRA macro |
11026 | 404 | int _end_col_offset = _token->end_col_offset; |
11027 | 404 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
11028 | 404 | _res = CHECK_VERSION ( stmt_ty , 12 , "Type statement is" , _PyAST_TypeAlias ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , n , Store ) ) , t , b , EXTRA ) ); |
11029 | 404 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
11030 | 0 | p->error_indicator = 1; |
11031 | 0 | p->level--; |
11032 | 0 | return NULL; |
11033 | 0 | } |
11034 | 404 | goto done; |
11035 | 404 | } |
11036 | 561 | p->mark = _mark; |
11037 | 561 | D(fprintf(stderr, "%*c%s type_alias[%d-%d]: %s failed!\n", p->level, ' ', |
11038 | 561 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"type\" NAME type_params? '=' expression")); |
11039 | 561 | } |
11040 | 561 | _res = NULL; |
11041 | 965 | done: |
11042 | 965 | p->level--; |
11043 | 965 | return _res; |
11044 | 561 | } |
11045 | | |
11046 | | // type_params: invalid_type_params | '[' type_param_seq ']' |
11047 | | Py_LOCAL_SYMBOL asdl_type_param_seq* |
11048 | | type_params_rule(Parser *p) |
11049 | 18.3k | { |
11050 | 18.3k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
11051 | 0 | _Pypegen_stack_overflow(p); |
11052 | 0 | } |
11053 | 18.3k | if (p->error_indicator) { |
11054 | 0 | p->level--; |
11055 | 0 | return NULL; |
11056 | 0 | } |
11057 | 18.3k | asdl_type_param_seq* _res = NULL; |
11058 | 18.3k | int _mark = p->mark; |
11059 | 18.3k | if (p->call_invalid_rules) { // invalid_type_params |
11060 | 8.28k | if (p->error_indicator) { |
11061 | 0 | p->level--; |
11062 | 0 | return NULL; |
11063 | 0 | } |
11064 | 8.28k | D(fprintf(stderr, "%*c> type_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_type_params")); |
11065 | 8.28k | void *invalid_type_params_var; |
11066 | 8.28k | if ( |
11067 | 8.28k | (invalid_type_params_var = invalid_type_params_rule(p)) // invalid_type_params |
11068 | 8.28k | ) |
11069 | 0 | { |
11070 | 0 | D(fprintf(stderr, "%*c+ type_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_type_params")); |
11071 | 0 | _res = invalid_type_params_var; |
11072 | 0 | goto done; |
11073 | 0 | } |
11074 | 8.28k | p->mark = _mark; |
11075 | 8.28k | D(fprintf(stderr, "%*c%s type_params[%d-%d]: %s failed!\n", p->level, ' ', |
11076 | 8.28k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_type_params")); |
11077 | 8.28k | } |
11078 | 18.3k | { // '[' type_param_seq ']' |
11079 | 18.3k | if (p->error_indicator) { |
11080 | 3 | p->level--; |
11081 | 3 | return NULL; |
11082 | 3 | } |
11083 | 18.3k | D(fprintf(stderr, "%*c> type_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' type_param_seq ']'")); |
11084 | 18.3k | Token * _literal; |
11085 | 18.3k | Token * _literal_1; |
11086 | 18.3k | asdl_type_param_seq* t; |
11087 | 18.3k | if ( |
11088 | 18.3k | (_literal = _PyPegen_expect_token(p, 9)) // token='[' |
11089 | 1.64k | && |
11090 | 1.64k | (t = type_param_seq_rule(p)) // type_param_seq |
11091 | 1.29k | && |
11092 | 1.29k | (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']' |
11093 | 18.3k | ) |
11094 | 1.09k | { |
11095 | 1.09k | D(fprintf(stderr, "%*c+ type_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' type_param_seq ']'")); |
11096 | 1.09k | _res = CHECK_VERSION ( asdl_type_param_seq* , 12 , "Type parameter lists are" , t ); |
11097 | 1.09k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
11098 | 0 | p->error_indicator = 1; |
11099 | 0 | p->level--; |
11100 | 0 | return NULL; |
11101 | 0 | } |
11102 | 1.09k | goto done; |
11103 | 1.09k | } |
11104 | 17.2k | p->mark = _mark; |
11105 | 17.2k | D(fprintf(stderr, "%*c%s type_params[%d-%d]: %s failed!\n", p->level, ' ', |
11106 | 17.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' type_param_seq ']'")); |
11107 | 17.2k | } |
11108 | 17.2k | _res = NULL; |
11109 | 18.3k | done: |
11110 | 18.3k | p->level--; |
11111 | 18.3k | return _res; |
11112 | 17.2k | } |
11113 | | |
11114 | | // type_param_seq: ','.type_param+ ','? |
11115 | | static asdl_type_param_seq* |
11116 | | type_param_seq_rule(Parser *p) |
11117 | 1.64k | { |
11118 | 1.64k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
11119 | 0 | _Pypegen_stack_overflow(p); |
11120 | 0 | } |
11121 | 1.64k | if (p->error_indicator) { |
11122 | 0 | p->level--; |
11123 | 0 | return NULL; |
11124 | 0 | } |
11125 | 1.64k | asdl_type_param_seq* _res = NULL; |
11126 | 1.64k | int _mark = p->mark; |
11127 | 1.64k | { // ','.type_param+ ','? |
11128 | 1.64k | if (p->error_indicator) { |
11129 | 0 | p->level--; |
11130 | 0 | return NULL; |
11131 | 0 | } |
11132 | 1.64k | D(fprintf(stderr, "%*c> type_param_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.type_param+ ','?")); |
11133 | 1.64k | void *_opt_var; |
11134 | 1.64k | UNUSED(_opt_var); // Silence compiler warnings |
11135 | 1.64k | asdl_type_param_seq* a; |
11136 | 1.64k | if ( |
11137 | 1.64k | (a = (asdl_type_param_seq*)_gather_54_rule(p)) // ','.type_param+ |
11138 | 1.53k | && |
11139 | 1.53k | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
11140 | 1.64k | ) |
11141 | 1.29k | { |
11142 | 1.29k | D(fprintf(stderr, "%*c+ type_param_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.type_param+ ','?")); |
11143 | 1.29k | _res = a; |
11144 | 1.29k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
11145 | 0 | p->error_indicator = 1; |
11146 | 0 | p->level--; |
11147 | 0 | return NULL; |
11148 | 0 | } |
11149 | 1.29k | goto done; |
11150 | 1.29k | } |
11151 | 353 | p->mark = _mark; |
11152 | 353 | D(fprintf(stderr, "%*c%s type_param_seq[%d-%d]: %s failed!\n", p->level, ' ', |
11153 | 353 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.type_param+ ','?")); |
11154 | 353 | } |
11155 | 353 | _res = NULL; |
11156 | 1.64k | done: |
11157 | 1.64k | p->level--; |
11158 | 1.64k | return _res; |
11159 | 353 | } |
11160 | | |
11161 | | // type_param: |
11162 | | // | NAME type_param_bound? type_param_default? |
11163 | | // | invalid_type_param |
11164 | | // | '*' NAME type_param_starred_default? |
11165 | | // | '**' NAME type_param_default? |
11166 | | static type_param_ty |
11167 | | type_param_rule(Parser *p) |
11168 | 13.7k | { |
11169 | 13.7k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
11170 | 0 | _Pypegen_stack_overflow(p); |
11171 | 0 | } |
11172 | 13.7k | if (p->error_indicator) { |
11173 | 0 | p->level--; |
11174 | 0 | return NULL; |
11175 | 0 | } |
11176 | 13.7k | type_param_ty _res = NULL; |
11177 | 13.7k | if (_PyPegen_is_memoized(p, type_param_type, &_res)) { |
11178 | 2.40k | p->level--; |
11179 | 2.40k | return _res; |
11180 | 2.40k | } |
11181 | 11.3k | int _mark = p->mark; |
11182 | 11.3k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
11183 | 0 | p->error_indicator = 1; |
11184 | 0 | p->level--; |
11185 | 0 | return NULL; |
11186 | 0 | } |
11187 | 11.3k | int _start_lineno = p->tokens[_mark]->lineno; |
11188 | 11.3k | UNUSED(_start_lineno); // Only used by EXTRA macro |
11189 | 11.3k | int _start_col_offset = p->tokens[_mark]->col_offset; |
11190 | 11.3k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
11191 | 11.3k | { // NAME type_param_bound? type_param_default? |
11192 | 11.3k | if (p->error_indicator) { |
11193 | 0 | p->level--; |
11194 | 0 | return NULL; |
11195 | 0 | } |
11196 | 11.3k | D(fprintf(stderr, "%*c> type_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME type_param_bound? type_param_default?")); |
11197 | 11.3k | expr_ty a; |
11198 | 11.3k | void *b; |
11199 | 11.3k | void *c; |
11200 | 11.3k | if ( |
11201 | 11.3k | (a = _PyPegen_name_token(p)) // NAME |
11202 | 7.25k | && |
11203 | 7.25k | (b = type_param_bound_rule(p), !p->error_indicator) // type_param_bound? |
11204 | 7.21k | && |
11205 | 7.21k | (c = type_param_default_rule(p), !p->error_indicator) // type_param_default? |
11206 | 11.3k | ) |
11207 | 7.14k | { |
11208 | 7.14k | D(fprintf(stderr, "%*c+ type_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME type_param_bound? type_param_default?")); |
11209 | 7.14k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
11210 | 7.14k | if (_token == NULL) { |
11211 | 0 | p->level--; |
11212 | 0 | return NULL; |
11213 | 0 | } |
11214 | 7.14k | int _end_lineno = _token->end_lineno; |
11215 | 7.14k | UNUSED(_end_lineno); // Only used by EXTRA macro |
11216 | 7.14k | int _end_col_offset = _token->end_col_offset; |
11217 | 7.14k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
11218 | 7.14k | _res = _PyAST_TypeVar ( a -> v . Name . id , b , c , EXTRA ); |
11219 | 7.14k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
11220 | 0 | p->error_indicator = 1; |
11221 | 0 | p->level--; |
11222 | 0 | return NULL; |
11223 | 0 | } |
11224 | 7.14k | goto done; |
11225 | 7.14k | } |
11226 | 4.22k | p->mark = _mark; |
11227 | 4.22k | D(fprintf(stderr, "%*c%s type_param[%d-%d]: %s failed!\n", p->level, ' ', |
11228 | 4.22k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME type_param_bound? type_param_default?")); |
11229 | 4.22k | } |
11230 | 4.22k | if (p->call_invalid_rules) { // invalid_type_param |
11231 | 1.35k | if (p->error_indicator) { |
11232 | 104 | p->level--; |
11233 | 104 | return NULL; |
11234 | 104 | } |
11235 | 1.25k | D(fprintf(stderr, "%*c> type_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_type_param")); |
11236 | 1.25k | void *invalid_type_param_var; |
11237 | 1.25k | if ( |
11238 | 1.25k | (invalid_type_param_var = invalid_type_param_rule(p)) // invalid_type_param |
11239 | 1.25k | ) |
11240 | 0 | { |
11241 | 0 | D(fprintf(stderr, "%*c+ type_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_type_param")); |
11242 | 0 | _res = invalid_type_param_var; |
11243 | 0 | goto done; |
11244 | 0 | } |
11245 | 1.25k | p->mark = _mark; |
11246 | 1.25k | D(fprintf(stderr, "%*c%s type_param[%d-%d]: %s failed!\n", p->level, ' ', |
11247 | 1.25k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_type_param")); |
11248 | 1.25k | } |
11249 | 4.12k | { // '*' NAME type_param_starred_default? |
11250 | 4.12k | if (p->error_indicator) { |
11251 | 139 | p->level--; |
11252 | 139 | return NULL; |
11253 | 139 | } |
11254 | 3.98k | D(fprintf(stderr, "%*c> type_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' NAME type_param_starred_default?")); |
11255 | 3.98k | Token * _literal; |
11256 | 3.98k | expr_ty a; |
11257 | 3.98k | void *b; |
11258 | 3.98k | if ( |
11259 | 3.98k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
11260 | 1.72k | && |
11261 | 1.72k | (a = _PyPegen_name_token(p)) // NAME |
11262 | 1.72k | && |
11263 | 1.72k | (b = type_param_starred_default_rule(p), !p->error_indicator) // type_param_starred_default? |
11264 | 3.98k | ) |
11265 | 1.68k | { |
11266 | 1.68k | D(fprintf(stderr, "%*c+ type_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' NAME type_param_starred_default?")); |
11267 | 1.68k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
11268 | 1.68k | if (_token == NULL) { |
11269 | 0 | p->level--; |
11270 | 0 | return NULL; |
11271 | 0 | } |
11272 | 1.68k | int _end_lineno = _token->end_lineno; |
11273 | 1.68k | UNUSED(_end_lineno); // Only used by EXTRA macro |
11274 | 1.68k | int _end_col_offset = _token->end_col_offset; |
11275 | 1.68k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
11276 | 1.68k | _res = _PyAST_TypeVarTuple ( a -> v . Name . id , b , EXTRA ); |
11277 | 1.68k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
11278 | 0 | p->error_indicator = 1; |
11279 | 0 | p->level--; |
11280 | 0 | return NULL; |
11281 | 0 | } |
11282 | 1.68k | goto done; |
11283 | 1.68k | } |
11284 | 2.29k | p->mark = _mark; |
11285 | 2.29k | D(fprintf(stderr, "%*c%s type_param[%d-%d]: %s failed!\n", p->level, ' ', |
11286 | 2.29k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' NAME type_param_starred_default?")); |
11287 | 2.29k | } |
11288 | 0 | { // '**' NAME type_param_default? |
11289 | 2.29k | if (p->error_indicator) { |
11290 | 39 | p->level--; |
11291 | 39 | return NULL; |
11292 | 39 | } |
11293 | 2.25k | D(fprintf(stderr, "%*c> type_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' NAME type_param_default?")); |
11294 | 2.25k | Token * _literal; |
11295 | 2.25k | expr_ty a; |
11296 | 2.25k | void *b; |
11297 | 2.25k | if ( |
11298 | 2.25k | (_literal = _PyPegen_expect_token(p, 35)) // token='**' |
11299 | 1.82k | && |
11300 | 1.82k | (a = _PyPegen_name_token(p)) // NAME |
11301 | 1.82k | && |
11302 | 1.82k | (b = type_param_default_rule(p), !p->error_indicator) // type_param_default? |
11303 | 2.25k | ) |
11304 | 1.78k | { |
11305 | 1.78k | D(fprintf(stderr, "%*c+ type_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' NAME type_param_default?")); |
11306 | 1.78k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
11307 | 1.78k | if (_token == NULL) { |
11308 | 0 | p->level--; |
11309 | 0 | return NULL; |
11310 | 0 | } |
11311 | 1.78k | int _end_lineno = _token->end_lineno; |
11312 | 1.78k | UNUSED(_end_lineno); // Only used by EXTRA macro |
11313 | 1.78k | int _end_col_offset = _token->end_col_offset; |
11314 | 1.78k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
11315 | 1.78k | _res = _PyAST_ParamSpec ( a -> v . Name . id , b , EXTRA ); |
11316 | 1.78k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
11317 | 0 | p->error_indicator = 1; |
11318 | 0 | p->level--; |
11319 | 0 | return NULL; |
11320 | 0 | } |
11321 | 1.78k | goto done; |
11322 | 1.78k | } |
11323 | 469 | p->mark = _mark; |
11324 | 469 | D(fprintf(stderr, "%*c%s type_param[%d-%d]: %s failed!\n", p->level, ' ', |
11325 | 469 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' NAME type_param_default?")); |
11326 | 469 | } |
11327 | 469 | _res = NULL; |
11328 | 11.0k | done: |
11329 | 11.0k | _PyPegen_insert_memo(p, _mark, type_param_type, _res); |
11330 | 11.0k | p->level--; |
11331 | 11.0k | return _res; |
11332 | 469 | } |
11333 | | |
11334 | | // type_param_bound: ':' expression |
11335 | | static expr_ty |
11336 | | type_param_bound_rule(Parser *p) |
11337 | 7.25k | { |
11338 | 7.25k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
11339 | 0 | _Pypegen_stack_overflow(p); |
11340 | 0 | } |
11341 | 7.25k | if (p->error_indicator) { |
11342 | 0 | p->level--; |
11343 | 0 | return NULL; |
11344 | 0 | } |
11345 | 7.25k | expr_ty _res = NULL; |
11346 | 7.25k | int _mark = p->mark; |
11347 | 7.25k | { // ':' expression |
11348 | 7.25k | if (p->error_indicator) { |
11349 | 0 | p->level--; |
11350 | 0 | return NULL; |
11351 | 0 | } |
11352 | 7.25k | D(fprintf(stderr, "%*c> type_param_bound[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression")); |
11353 | 7.25k | Token * _literal; |
11354 | 7.25k | expr_ty e; |
11355 | 7.25k | if ( |
11356 | 7.25k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
11357 | 2.15k | && |
11358 | 2.15k | (e = expression_rule(p)) // expression |
11359 | 7.25k | ) |
11360 | 2.11k | { |
11361 | 2.11k | D(fprintf(stderr, "%*c+ type_param_bound[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression")); |
11362 | 2.11k | _res = e; |
11363 | 2.11k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
11364 | 0 | p->error_indicator = 1; |
11365 | 0 | p->level--; |
11366 | 0 | return NULL; |
11367 | 0 | } |
11368 | 2.11k | goto done; |
11369 | 2.11k | } |
11370 | 5.13k | p->mark = _mark; |
11371 | 5.13k | D(fprintf(stderr, "%*c%s type_param_bound[%d-%d]: %s failed!\n", p->level, ' ', |
11372 | 5.13k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression")); |
11373 | 5.13k | } |
11374 | 5.13k | _res = NULL; |
11375 | 7.25k | done: |
11376 | 7.25k | p->level--; |
11377 | 7.25k | return _res; |
11378 | 5.13k | } |
11379 | | |
11380 | | // type_param_default: '=' expression |
11381 | | static expr_ty |
11382 | | type_param_default_rule(Parser *p) |
11383 | 9.04k | { |
11384 | 9.04k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
11385 | 0 | _Pypegen_stack_overflow(p); |
11386 | 0 | } |
11387 | 9.04k | if (p->error_indicator) { |
11388 | 0 | p->level--; |
11389 | 0 | return NULL; |
11390 | 0 | } |
11391 | 9.04k | expr_ty _res = NULL; |
11392 | 9.04k | int _mark = p->mark; |
11393 | 9.04k | { // '=' expression |
11394 | 9.04k | if (p->error_indicator) { |
11395 | 0 | p->level--; |
11396 | 0 | return NULL; |
11397 | 0 | } |
11398 | 9.04k | D(fprintf(stderr, "%*c> type_param_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression")); |
11399 | 9.04k | Token * _literal; |
11400 | 9.04k | expr_ty e; |
11401 | 9.04k | if ( |
11402 | 9.04k | (_literal = _PyPegen_expect_token(p, 22)) // token='=' |
11403 | 1.46k | && |
11404 | 1.46k | (e = expression_rule(p)) // expression |
11405 | 9.04k | ) |
11406 | 1.35k | { |
11407 | 1.35k | D(fprintf(stderr, "%*c+ type_param_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression")); |
11408 | 1.35k | _res = CHECK_VERSION ( expr_ty , 13 , "Type parameter defaults are" , e ); |
11409 | 1.35k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
11410 | 0 | p->error_indicator = 1; |
11411 | 0 | p->level--; |
11412 | 0 | return NULL; |
11413 | 0 | } |
11414 | 1.35k | goto done; |
11415 | 1.35k | } |
11416 | 7.68k | p->mark = _mark; |
11417 | 7.68k | D(fprintf(stderr, "%*c%s type_param_default[%d-%d]: %s failed!\n", p->level, ' ', |
11418 | 7.68k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression")); |
11419 | 7.68k | } |
11420 | 7.68k | _res = NULL; |
11421 | 9.04k | done: |
11422 | 9.04k | p->level--; |
11423 | 9.04k | return _res; |
11424 | 7.68k | } |
11425 | | |
11426 | | // type_param_starred_default: '=' star_expression |
11427 | | static expr_ty |
11428 | | type_param_starred_default_rule(Parser *p) |
11429 | 1.72k | { |
11430 | 1.72k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
11431 | 0 | _Pypegen_stack_overflow(p); |
11432 | 0 | } |
11433 | 1.72k | if (p->error_indicator) { |
11434 | 0 | p->level--; |
11435 | 0 | return NULL; |
11436 | 0 | } |
11437 | 1.72k | expr_ty _res = NULL; |
11438 | 1.72k | int _mark = p->mark; |
11439 | 1.72k | { // '=' star_expression |
11440 | 1.72k | if (p->error_indicator) { |
11441 | 0 | p->level--; |
11442 | 0 | return NULL; |
11443 | 0 | } |
11444 | 1.72k | D(fprintf(stderr, "%*c> type_param_starred_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' star_expression")); |
11445 | 1.72k | Token * _literal; |
11446 | 1.72k | expr_ty e; |
11447 | 1.72k | if ( |
11448 | 1.72k | (_literal = _PyPegen_expect_token(p, 22)) // token='=' |
11449 | 1.09k | && |
11450 | 1.09k | (e = star_expression_rule(p)) // star_expression |
11451 | 1.72k | ) |
11452 | 1.05k | { |
11453 | 1.05k | D(fprintf(stderr, "%*c+ type_param_starred_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' star_expression")); |
11454 | 1.05k | _res = CHECK_VERSION ( expr_ty , 13 , "Type parameter defaults are" , e ); |
11455 | 1.05k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
11456 | 0 | p->error_indicator = 1; |
11457 | 0 | p->level--; |
11458 | 0 | return NULL; |
11459 | 0 | } |
11460 | 1.05k | goto done; |
11461 | 1.05k | } |
11462 | 670 | p->mark = _mark; |
11463 | 670 | D(fprintf(stderr, "%*c%s type_param_starred_default[%d-%d]: %s failed!\n", p->level, ' ', |
11464 | 670 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' star_expression")); |
11465 | 670 | } |
11466 | 670 | _res = NULL; |
11467 | 1.72k | done: |
11468 | 1.72k | p->level--; |
11469 | 1.72k | return _res; |
11470 | 670 | } |
11471 | | |
11472 | | // expressions: expression ((',' expression))+ ','? | expression ',' | expression |
11473 | | Py_LOCAL_SYMBOL expr_ty |
11474 | | expressions_rule(Parser *p) |
11475 | 10.0k | { |
11476 | 10.0k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
11477 | 0 | _Pypegen_stack_overflow(p); |
11478 | 0 | } |
11479 | 10.0k | if (p->error_indicator) { |
11480 | 0 | p->level--; |
11481 | 0 | return NULL; |
11482 | 0 | } |
11483 | 10.0k | expr_ty _res = NULL; |
11484 | 10.0k | int _mark = p->mark; |
11485 | 10.0k | expr_ty _prefix_0_result = NULL; |
11486 | 10.0k | int _prefix_0_end = 0, _prefix_0_valid = 0; |
11487 | 10.0k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
11488 | 8 | p->error_indicator = 1; |
11489 | 8 | p->level--; |
11490 | 8 | return NULL; |
11491 | 8 | } |
11492 | 10.0k | int _start_lineno = p->tokens[_mark]->lineno; |
11493 | 10.0k | UNUSED(_start_lineno); // Only used by EXTRA macro |
11494 | 10.0k | int _start_col_offset = p->tokens[_mark]->col_offset; |
11495 | 10.0k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
11496 | 10.0k | { // expression ((',' expression))+ ','? |
11497 | 10.0k | if (p->error_indicator) { |
11498 | 0 | p->level--; |
11499 | 0 | return NULL; |
11500 | 0 | } |
11501 | 10.0k | D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?")); |
11502 | 10.0k | void *_opt_var; |
11503 | 10.0k | UNUSED(_opt_var); // Silence compiler warnings |
11504 | 10.0k | expr_ty a; |
11505 | 10.0k | asdl_seq * b; |
11506 | 10.0k | if ( |
11507 | 10.0k | (a = ((!p->call_invalid_rules && _prefix_0_valid) ? (p->mark = _prefix_0_end, _prefix_0_result) : (_prefix_0_result = expression_rule(p), _prefix_0_end = p->mark, _prefix_0_valid = 1, _prefix_0_result))) // expression |
11508 | 4.07k | && |
11509 | 4.07k | (b = _loop1_55_rule(p)) // ((',' expression))+ |
11510 | 1.37k | && |
11511 | 1.37k | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
11512 | 10.0k | ) |
11513 | 1.37k | { |
11514 | 1.37k | D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?")); |
11515 | 1.37k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
11516 | 1.37k | if (_token == NULL) { |
11517 | 0 | p->level--; |
11518 | 0 | return NULL; |
11519 | 0 | } |
11520 | 1.37k | int _end_lineno = _token->end_lineno; |
11521 | 1.37k | UNUSED(_end_lineno); // Only used by EXTRA macro |
11522 | 1.37k | int _end_col_offset = _token->end_col_offset; |
11523 | 1.37k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
11524 | 1.37k | _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA ); |
11525 | 1.37k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
11526 | 0 | p->error_indicator = 1; |
11527 | 0 | p->level--; |
11528 | 0 | return NULL; |
11529 | 0 | } |
11530 | 1.37k | goto done; |
11531 | 1.37k | } |
11532 | 8.67k | p->mark = _mark; |
11533 | 8.67k | D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ', |
11534 | 8.67k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?")); |
11535 | 8.67k | } |
11536 | 0 | { // expression ',' |
11537 | 8.67k | if (p->error_indicator) { |
11538 | 8 | p->level--; |
11539 | 8 | return NULL; |
11540 | 8 | } |
11541 | 8.67k | D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','")); |
11542 | 8.67k | Token * _literal; |
11543 | 8.67k | expr_ty a; |
11544 | 8.67k | if ( |
11545 | 8.67k | (a = ((!p->call_invalid_rules && _prefix_0_valid) ? (p->mark = _prefix_0_end, _prefix_0_result) : (_prefix_0_result = expression_rule(p), _prefix_0_end = p->mark, _prefix_0_valid = 1, _prefix_0_result))) // expression |
11546 | 2.69k | && |
11547 | 2.69k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
11548 | 8.67k | ) |
11549 | 1.54k | { |
11550 | 1.54k | D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','")); |
11551 | 1.54k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
11552 | 1.54k | if (_token == NULL) { |
11553 | 0 | p->level--; |
11554 | 0 | return NULL; |
11555 | 0 | } |
11556 | 1.54k | int _end_lineno = _token->end_lineno; |
11557 | 1.54k | UNUSED(_end_lineno); // Only used by EXTRA macro |
11558 | 1.54k | int _end_col_offset = _token->end_col_offset; |
11559 | 1.54k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
11560 | 1.54k | _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA ); |
11561 | 1.54k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
11562 | 0 | p->error_indicator = 1; |
11563 | 0 | p->level--; |
11564 | 0 | return NULL; |
11565 | 0 | } |
11566 | 1.54k | goto done; |
11567 | 1.54k | } |
11568 | 7.12k | p->mark = _mark; |
11569 | 7.12k | D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ', |
11570 | 7.12k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','")); |
11571 | 7.12k | } |
11572 | 0 | { // expression |
11573 | 7.12k | if (p->error_indicator) { |
11574 | 0 | p->level--; |
11575 | 0 | return NULL; |
11576 | 0 | } |
11577 | 7.12k | D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression")); |
11578 | 7.12k | expr_ty expression_var; |
11579 | 7.12k | if ( |
11580 | 7.12k | (expression_var = ((!p->call_invalid_rules && _prefix_0_valid) ? (p->mark = _prefix_0_end, _prefix_0_result) : (_prefix_0_result = expression_rule(p), _prefix_0_end = p->mark, _prefix_0_valid = 1, _prefix_0_result))) // expression |
11581 | 7.12k | ) |
11582 | 1.15k | { |
11583 | 1.15k | D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression")); |
11584 | 1.15k | _res = expression_var; |
11585 | 1.15k | goto done; |
11586 | 1.15k | } |
11587 | 5.97k | p->mark = _mark; |
11588 | 5.97k | D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ', |
11589 | 5.97k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression")); |
11590 | 5.97k | } |
11591 | 5.97k | _res = NULL; |
11592 | 10.0k | done: |
11593 | 10.0k | p->level--; |
11594 | 10.0k | return _res; |
11595 | 5.97k | } |
11596 | | |
11597 | | // expression: |
11598 | | // | invalid_if_expression |
11599 | | // | invalid_expression |
11600 | | // | invalid_legacy_expression |
11601 | | // | if_expression |
11602 | | // | disjunction |
11603 | | // | lambdef |
11604 | | Py_LOCAL_SYMBOL expr_ty |
11605 | | expression_rule(Parser *p) |
11606 | 1.95M | { |
11607 | 1.95M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
11608 | 1 | _Pypegen_stack_overflow(p); |
11609 | 1 | } |
11610 | 1.95M | if (p->error_indicator) { |
11611 | 7 | p->level--; |
11612 | 7 | return NULL; |
11613 | 7 | } |
11614 | 1.95M | expr_ty _res = NULL; |
11615 | 1.95M | if (_PyPegen_is_memoized(p, expression_type, &_res)) { |
11616 | 1.14M | p->level--; |
11617 | 1.14M | return _res; |
11618 | 1.14M | } |
11619 | 813k | int _mark = p->mark; |
11620 | 813k | if (p->call_invalid_rules) { // invalid_if_expression |
11621 | 376k | if (p->error_indicator) { |
11622 | 0 | p->level--; |
11623 | 0 | return NULL; |
11624 | 0 | } |
11625 | 376k | D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_expression")); |
11626 | 376k | void *invalid_if_expression_var; |
11627 | 376k | if ( |
11628 | 376k | (invalid_if_expression_var = invalid_if_expression_rule(p)) // invalid_if_expression |
11629 | 376k | ) |
11630 | 0 | { |
11631 | 0 | D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_expression")); |
11632 | 0 | _res = invalid_if_expression_var; |
11633 | 0 | goto done; |
11634 | 0 | } |
11635 | 376k | p->mark = _mark; |
11636 | 376k | D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', |
11637 | 376k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_expression")); |
11638 | 376k | } |
11639 | 813k | if (p->call_invalid_rules) { // invalid_expression |
11640 | 376k | if (p->error_indicator) { |
11641 | 32.4k | p->level--; |
11642 | 32.4k | return NULL; |
11643 | 32.4k | } |
11644 | 343k | D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression")); |
11645 | 343k | void *invalid_expression_var; |
11646 | 343k | if ( |
11647 | 343k | (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression |
11648 | 343k | ) |
11649 | 0 | { |
11650 | 0 | D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression")); |
11651 | 0 | _res = invalid_expression_var; |
11652 | 0 | goto done; |
11653 | 0 | } |
11654 | 343k | p->mark = _mark; |
11655 | 343k | D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', |
11656 | 343k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression")); |
11657 | 343k | } |
11658 | 781k | if (p->call_invalid_rules) { // invalid_legacy_expression |
11659 | 343k | if (p->error_indicator) { |
11660 | 4.09k | p->level--; |
11661 | 4.09k | return NULL; |
11662 | 4.09k | } |
11663 | 339k | D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression")); |
11664 | 339k | void *invalid_legacy_expression_var; |
11665 | 339k | if ( |
11666 | 339k | (invalid_legacy_expression_var = invalid_legacy_expression_rule(p)) // invalid_legacy_expression |
11667 | 339k | ) |
11668 | 0 | { |
11669 | 0 | D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression")); |
11670 | 0 | _res = invalid_legacy_expression_var; |
11671 | 0 | goto done; |
11672 | 0 | } |
11673 | 339k | p->mark = _mark; |
11674 | 339k | D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', |
11675 | 339k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression")); |
11676 | 339k | } |
11677 | 777k | { // if_expression |
11678 | 777k | if (p->error_indicator) { |
11679 | 1.90k | p->level--; |
11680 | 1.90k | return NULL; |
11681 | 1.90k | } |
11682 | 775k | D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "if_expression")); |
11683 | 775k | expr_ty if_expression_var; |
11684 | 775k | if ( |
11685 | 775k | (if_expression_var = if_expression_rule(p)) // if_expression |
11686 | 775k | ) |
11687 | 899 | { |
11688 | 899 | D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "if_expression")); |
11689 | 899 | _res = if_expression_var; |
11690 | 899 | goto done; |
11691 | 899 | } |
11692 | 774k | p->mark = _mark; |
11693 | 774k | D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', |
11694 | 774k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "if_expression")); |
11695 | 774k | } |
11696 | 0 | { // disjunction |
11697 | 774k | if (p->error_indicator) { |
11698 | 8.97k | p->level--; |
11699 | 8.97k | return NULL; |
11700 | 8.97k | } |
11701 | 765k | D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction")); |
11702 | 765k | expr_ty disjunction_var; |
11703 | 765k | if ( |
11704 | 765k | (disjunction_var = disjunction_rule(p)) // disjunction |
11705 | 765k | ) |
11706 | 352k | { |
11707 | 352k | D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction")); |
11708 | 352k | _res = disjunction_var; |
11709 | 352k | goto done; |
11710 | 352k | } |
11711 | 413k | p->mark = _mark; |
11712 | 413k | D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', |
11713 | 413k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction")); |
11714 | 413k | } |
11715 | 0 | { // lambdef |
11716 | 413k | if (p->error_indicator) { |
11717 | 0 | p->level--; |
11718 | 0 | return NULL; |
11719 | 0 | } |
11720 | 413k | D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef")); |
11721 | 413k | expr_ty lambdef_var; |
11722 | 413k | if ( |
11723 | 413k | (lambdef_var = lambdef_rule(p)) // lambdef |
11724 | 413k | ) |
11725 | 3.11k | { |
11726 | 3.11k | D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef")); |
11727 | 3.11k | _res = lambdef_var; |
11728 | 3.11k | goto done; |
11729 | 3.11k | } |
11730 | 410k | p->mark = _mark; |
11731 | 410k | D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', |
11732 | 410k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef")); |
11733 | 410k | } |
11734 | 410k | _res = NULL; |
11735 | 766k | done: |
11736 | 766k | _PyPegen_insert_memo(p, _mark, expression_type, _res); |
11737 | 766k | p->level--; |
11738 | 766k | return _res; |
11739 | 410k | } |
11740 | | |
11741 | | // if_expression: disjunction 'if' disjunction 'else' expression |
11742 | | Py_LOCAL_SYMBOL expr_ty |
11743 | | if_expression_rule(Parser *p) |
11744 | 790k | { |
11745 | 790k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
11746 | 1 | _Pypegen_stack_overflow(p); |
11747 | 1 | } |
11748 | 790k | if (p->error_indicator) { |
11749 | 1 | p->level--; |
11750 | 1 | return NULL; |
11751 | 1 | } |
11752 | 790k | expr_ty _res = NULL; |
11753 | 790k | int _mark = p->mark; |
11754 | 790k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
11755 | 22 | p->error_indicator = 1; |
11756 | 22 | p->level--; |
11757 | 22 | return NULL; |
11758 | 22 | } |
11759 | 790k | int _start_lineno = p->tokens[_mark]->lineno; |
11760 | 790k | UNUSED(_start_lineno); // Only used by EXTRA macro |
11761 | 790k | int _start_col_offset = p->tokens[_mark]->col_offset; |
11762 | 790k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
11763 | 790k | { // disjunction 'if' disjunction 'else' expression |
11764 | 790k | if (p->error_indicator) { |
11765 | 0 | p->level--; |
11766 | 0 | return NULL; |
11767 | 0 | } |
11768 | 790k | D(fprintf(stderr, "%*c> if_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression")); |
11769 | 790k | Token * _keyword; |
11770 | 790k | Token * _keyword_1; |
11771 | 790k | expr_ty a; |
11772 | 790k | expr_ty b; |
11773 | 790k | expr_ty c; |
11774 | 790k | if ( |
11775 | 790k | (a = disjunction_rule(p)) // disjunction |
11776 | 365k | && |
11777 | 365k | (_keyword = _PyPegen_expect_token(p, 514)) // token='if' |
11778 | 1.90k | && |
11779 | 1.90k | (b = disjunction_rule(p)) // disjunction |
11780 | 1.26k | && |
11781 | 1.26k | (_keyword_1 = _PyPegen_expect_token(p, 522)) // token='else' |
11782 | 1.17k | && |
11783 | 1.17k | (c = expression_rule(p)) // expression |
11784 | 790k | ) |
11785 | 901 | { |
11786 | 901 | D(fprintf(stderr, "%*c+ if_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression")); |
11787 | 901 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
11788 | 901 | if (_token == NULL) { |
11789 | 0 | p->level--; |
11790 | 0 | return NULL; |
11791 | 0 | } |
11792 | 901 | int _end_lineno = _token->end_lineno; |
11793 | 901 | UNUSED(_end_lineno); // Only used by EXTRA macro |
11794 | 901 | int _end_col_offset = _token->end_col_offset; |
11795 | 901 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
11796 | 901 | _res = _PyAST_IfExp ( b , a , c , EXTRA ); |
11797 | 901 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
11798 | 0 | p->error_indicator = 1; |
11799 | 0 | p->level--; |
11800 | 0 | return NULL; |
11801 | 0 | } |
11802 | 901 | goto done; |
11803 | 901 | } |
11804 | 789k | p->mark = _mark; |
11805 | 789k | D(fprintf(stderr, "%*c%s if_expression[%d-%d]: %s failed!\n", p->level, ' ', |
11806 | 789k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression")); |
11807 | 789k | } |
11808 | 789k | _res = NULL; |
11809 | 790k | done: |
11810 | 790k | p->level--; |
11811 | 790k | return _res; |
11812 | 789k | } |
11813 | | |
11814 | | // yield_expr: 'yield' 'from' expression | 'yield' star_expressions? |
11815 | | Py_LOCAL_SYMBOL expr_ty |
11816 | | yield_expr_rule(Parser *p) |
11817 | 173k | { |
11818 | 173k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
11819 | 1 | _Pypegen_stack_overflow(p); |
11820 | 1 | } |
11821 | 173k | if (p->error_indicator) { |
11822 | 1 | p->level--; |
11823 | 1 | return NULL; |
11824 | 1 | } |
11825 | 173k | expr_ty _res = NULL; |
11826 | 173k | int _mark = p->mark; |
11827 | 173k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
11828 | 69 | p->error_indicator = 1; |
11829 | 69 | p->level--; |
11830 | 69 | return NULL; |
11831 | 69 | } |
11832 | 173k | int _start_lineno = p->tokens[_mark]->lineno; |
11833 | 173k | UNUSED(_start_lineno); // Only used by EXTRA macro |
11834 | 173k | int _start_col_offset = p->tokens[_mark]->col_offset; |
11835 | 173k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
11836 | 173k | { // 'yield' 'from' expression |
11837 | 173k | if (p->error_indicator) { |
11838 | 0 | p->level--; |
11839 | 0 | return NULL; |
11840 | 0 | } |
11841 | 173k | D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression")); |
11842 | 173k | Token * _keyword; |
11843 | 173k | Token * _keyword_1; |
11844 | 173k | expr_ty a; |
11845 | 173k | if ( |
11846 | 173k | (_keyword = _PyPegen_expect_token(p, 506)) // token='yield' |
11847 | 2.56k | && |
11848 | 2.56k | (_keyword_1 = _PyPegen_expect_token(p, 501)) // token='from' |
11849 | 438 | && |
11850 | 438 | (a = expression_rule(p)) // expression |
11851 | 173k | ) |
11852 | 276 | { |
11853 | 276 | D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression")); |
11854 | 276 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
11855 | 276 | if (_token == NULL) { |
11856 | 0 | p->level--; |
11857 | 0 | return NULL; |
11858 | 0 | } |
11859 | 276 | int _end_lineno = _token->end_lineno; |
11860 | 276 | UNUSED(_end_lineno); // Only used by EXTRA macro |
11861 | 276 | int _end_col_offset = _token->end_col_offset; |
11862 | 276 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
11863 | 276 | _res = _PyAST_YieldFrom ( a , EXTRA ); |
11864 | 276 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
11865 | 0 | p->error_indicator = 1; |
11866 | 0 | p->level--; |
11867 | 0 | return NULL; |
11868 | 0 | } |
11869 | 276 | goto done; |
11870 | 276 | } |
11871 | 172k | p->mark = _mark; |
11872 | 172k | D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ', |
11873 | 172k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression")); |
11874 | 172k | } |
11875 | 0 | { // 'yield' star_expressions? |
11876 | 172k | if (p->error_indicator) { |
11877 | 87 | p->level--; |
11878 | 87 | return NULL; |
11879 | 87 | } |
11880 | 172k | D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?")); |
11881 | 172k | Token * _keyword; |
11882 | 172k | void *a; |
11883 | 172k | if ( |
11884 | 172k | (_keyword = _PyPegen_expect_token(p, 506)) // token='yield' |
11885 | 2.20k | && |
11886 | 2.20k | (a = star_expressions_rule(p), !p->error_indicator) // star_expressions? |
11887 | 172k | ) |
11888 | 1.85k | { |
11889 | 1.85k | D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?")); |
11890 | 1.85k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
11891 | 1.85k | if (_token == NULL) { |
11892 | 0 | p->level--; |
11893 | 0 | return NULL; |
11894 | 0 | } |
11895 | 1.85k | int _end_lineno = _token->end_lineno; |
11896 | 1.85k | UNUSED(_end_lineno); // Only used by EXTRA macro |
11897 | 1.85k | int _end_col_offset = _token->end_col_offset; |
11898 | 1.85k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
11899 | 1.85k | _res = _PyAST_Yield ( a , EXTRA ); |
11900 | 1.85k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
11901 | 0 | p->error_indicator = 1; |
11902 | 0 | p->level--; |
11903 | 0 | return NULL; |
11904 | 0 | } |
11905 | 1.85k | goto done; |
11906 | 1.85k | } |
11907 | 170k | p->mark = _mark; |
11908 | 170k | D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ', |
11909 | 170k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?")); |
11910 | 170k | } |
11911 | 170k | _res = NULL; |
11912 | 173k | done: |
11913 | 173k | p->level--; |
11914 | 173k | return _res; |
11915 | 170k | } |
11916 | | |
11917 | | // star_expressions: |
11918 | | // | star_expression ((',' star_expression))+ ','? |
11919 | | // | star_expression ',' |
11920 | | // | star_expression |
11921 | | Py_LOCAL_SYMBOL expr_ty |
11922 | | star_expressions_rule(Parser *p) |
11923 | 585k | { |
11924 | 585k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
11925 | 0 | _Pypegen_stack_overflow(p); |
11926 | 0 | } |
11927 | 585k | if (p->error_indicator) { |
11928 | 0 | p->level--; |
11929 | 0 | return NULL; |
11930 | 0 | } |
11931 | 585k | expr_ty _res = NULL; |
11932 | 585k | int _mark = p->mark; |
11933 | 585k | expr_ty _prefix_1_result = NULL; |
11934 | 585k | int _prefix_1_end = 0, _prefix_1_valid = 0; |
11935 | 585k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
11936 | 6 | p->error_indicator = 1; |
11937 | 6 | p->level--; |
11938 | 6 | return NULL; |
11939 | 6 | } |
11940 | 585k | int _start_lineno = p->tokens[_mark]->lineno; |
11941 | 585k | UNUSED(_start_lineno); // Only used by EXTRA macro |
11942 | 585k | int _start_col_offset = p->tokens[_mark]->col_offset; |
11943 | 585k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
11944 | 585k | { // star_expression ((',' star_expression))+ ','? |
11945 | 585k | if (p->error_indicator) { |
11946 | 0 | p->level--; |
11947 | 0 | return NULL; |
11948 | 0 | } |
11949 | 585k | D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?")); |
11950 | 585k | void *_opt_var; |
11951 | 585k | UNUSED(_opt_var); // Silence compiler warnings |
11952 | 585k | expr_ty a; |
11953 | 585k | asdl_seq * b; |
11954 | 585k | if ( |
11955 | 585k | (a = ((!p->call_invalid_rules && _prefix_1_valid) ? (p->mark = _prefix_1_end, _prefix_1_result) : (_prefix_1_result = star_expression_rule(p), _prefix_1_end = p->mark, _prefix_1_valid = 1, _prefix_1_result))) // star_expression |
11956 | 229k | && |
11957 | 229k | (b = _loop1_56_rule(p)) // ((',' star_expression))+ |
11958 | 6.68k | && |
11959 | 6.68k | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
11960 | 585k | ) |
11961 | 6.68k | { |
11962 | 6.68k | D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?")); |
11963 | 6.68k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
11964 | 6.68k | if (_token == NULL) { |
11965 | 0 | p->level--; |
11966 | 0 | return NULL; |
11967 | 0 | } |
11968 | 6.68k | int _end_lineno = _token->end_lineno; |
11969 | 6.68k | UNUSED(_end_lineno); // Only used by EXTRA macro |
11970 | 6.68k | int _end_col_offset = _token->end_col_offset; |
11971 | 6.68k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
11972 | 6.68k | _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA ); |
11973 | 6.68k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
11974 | 0 | p->error_indicator = 1; |
11975 | 0 | p->level--; |
11976 | 0 | return NULL; |
11977 | 0 | } |
11978 | 6.68k | goto done; |
11979 | 6.68k | } |
11980 | 579k | p->mark = _mark; |
11981 | 579k | D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ', |
11982 | 579k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?")); |
11983 | 579k | } |
11984 | 0 | { // star_expression ',' |
11985 | 579k | if (p->error_indicator) { |
11986 | 9.29k | p->level--; |
11987 | 9.29k | return NULL; |
11988 | 9.29k | } |
11989 | 569k | D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','")); |
11990 | 569k | Token * _literal; |
11991 | 569k | expr_ty a; |
11992 | 569k | if ( |
11993 | 569k | (a = ((!p->call_invalid_rules && _prefix_1_valid) ? (p->mark = _prefix_1_end, _prefix_1_result) : (_prefix_1_result = star_expression_rule(p), _prefix_1_end = p->mark, _prefix_1_valid = 1, _prefix_1_result))) // star_expression |
11994 | 221k | && |
11995 | 221k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
11996 | 569k | ) |
11997 | 3.36k | { |
11998 | 3.36k | D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','")); |
11999 | 3.36k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
12000 | 3.36k | if (_token == NULL) { |
12001 | 0 | p->level--; |
12002 | 0 | return NULL; |
12003 | 0 | } |
12004 | 3.36k | int _end_lineno = _token->end_lineno; |
12005 | 3.36k | UNUSED(_end_lineno); // Only used by EXTRA macro |
12006 | 3.36k | int _end_col_offset = _token->end_col_offset; |
12007 | 3.36k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
12008 | 3.36k | _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA ); |
12009 | 3.36k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
12010 | 0 | p->error_indicator = 1; |
12011 | 0 | p->level--; |
12012 | 0 | return NULL; |
12013 | 0 | } |
12014 | 3.36k | goto done; |
12015 | 3.36k | } |
12016 | 566k | p->mark = _mark; |
12017 | 566k | D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ', |
12018 | 566k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','")); |
12019 | 566k | } |
12020 | 0 | { // star_expression |
12021 | 566k | if (p->error_indicator) { |
12022 | 0 | p->level--; |
12023 | 0 | return NULL; |
12024 | 0 | } |
12025 | 566k | D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression")); |
12026 | 566k | expr_ty star_expression_var; |
12027 | 566k | if ( |
12028 | 566k | (star_expression_var = ((!p->call_invalid_rules && _prefix_1_valid) ? (p->mark = _prefix_1_end, _prefix_1_result) : (_prefix_1_result = star_expression_rule(p), _prefix_1_end = p->mark, _prefix_1_valid = 1, _prefix_1_result))) // star_expression |
12029 | 566k | ) |
12030 | 218k | { |
12031 | 218k | D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression")); |
12032 | 218k | _res = star_expression_var; |
12033 | 218k | goto done; |
12034 | 218k | } |
12035 | 347k | p->mark = _mark; |
12036 | 347k | D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ', |
12037 | 347k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression")); |
12038 | 347k | } |
12039 | 347k | _res = NULL; |
12040 | 576k | done: |
12041 | 576k | p->level--; |
12042 | 576k | return _res; |
12043 | 347k | } |
12044 | | |
12045 | | // star_expression: '*' bitwise_or | expression |
12046 | | static expr_ty |
12047 | | star_expression_rule(Parser *p) |
12048 | 1.35M | { |
12049 | 1.35M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
12050 | 1 | _Pypegen_stack_overflow(p); |
12051 | 1 | } |
12052 | 1.35M | if (p->error_indicator) { |
12053 | 1 | p->level--; |
12054 | 1 | return NULL; |
12055 | 1 | } |
12056 | 1.35M | expr_ty _res = NULL; |
12057 | 1.35M | if (_PyPegen_is_memoized(p, star_expression_type, &_res)) { |
12058 | 950k | p->level--; |
12059 | 950k | return _res; |
12060 | 950k | } |
12061 | 403k | int _mark = p->mark; |
12062 | 403k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
12063 | 0 | p->error_indicator = 1; |
12064 | 0 | p->level--; |
12065 | 0 | return NULL; |
12066 | 0 | } |
12067 | 403k | int _start_lineno = p->tokens[_mark]->lineno; |
12068 | 403k | UNUSED(_start_lineno); // Only used by EXTRA macro |
12069 | 403k | int _start_col_offset = p->tokens[_mark]->col_offset; |
12070 | 403k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
12071 | 403k | { // '*' bitwise_or |
12072 | 403k | if (p->error_indicator) { |
12073 | 0 | p->level--; |
12074 | 0 | return NULL; |
12075 | 0 | } |
12076 | 403k | D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or")); |
12077 | 403k | Token * _literal; |
12078 | 403k | expr_ty a; |
12079 | 403k | if ( |
12080 | 403k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
12081 | 4.50k | && |
12082 | 4.50k | (a = bitwise_or_rule(p)) // bitwise_or |
12083 | 403k | ) |
12084 | 3.48k | { |
12085 | 3.48k | D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or")); |
12086 | 3.48k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
12087 | 3.48k | if (_token == NULL) { |
12088 | 0 | p->level--; |
12089 | 0 | return NULL; |
12090 | 0 | } |
12091 | 3.48k | int _end_lineno = _token->end_lineno; |
12092 | 3.48k | UNUSED(_end_lineno); // Only used by EXTRA macro |
12093 | 3.48k | int _end_col_offset = _token->end_col_offset; |
12094 | 3.48k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
12095 | 3.48k | _res = _PyAST_Starred ( a , Load , EXTRA ); |
12096 | 3.48k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
12097 | 0 | p->error_indicator = 1; |
12098 | 0 | p->level--; |
12099 | 0 | return NULL; |
12100 | 0 | } |
12101 | 3.48k | goto done; |
12102 | 3.48k | } |
12103 | 400k | p->mark = _mark; |
12104 | 400k | D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ', |
12105 | 400k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or")); |
12106 | 400k | } |
12107 | 0 | { // expression |
12108 | 400k | if (p->error_indicator) { |
12109 | 331 | p->level--; |
12110 | 331 | return NULL; |
12111 | 331 | } |
12112 | 399k | D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression")); |
12113 | 399k | expr_ty expression_var; |
12114 | 399k | if ( |
12115 | 399k | (expression_var = expression_rule(p)) // expression |
12116 | 399k | ) |
12117 | 169k | { |
12118 | 169k | D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression")); |
12119 | 169k | _res = expression_var; |
12120 | 169k | goto done; |
12121 | 169k | } |
12122 | 230k | p->mark = _mark; |
12123 | 230k | D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ', |
12124 | 230k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression")); |
12125 | 230k | } |
12126 | 230k | _res = NULL; |
12127 | 403k | done: |
12128 | 403k | _PyPegen_insert_memo(p, _mark, star_expression_type, _res); |
12129 | 403k | p->level--; |
12130 | 403k | return _res; |
12131 | 230k | } |
12132 | | |
12133 | | // star_named_expressions: ','.star_named_expression+ ','? |
12134 | | Py_LOCAL_SYMBOL asdl_expr_seq* |
12135 | | star_named_expressions_rule(Parser *p) |
12136 | 7.83k | { |
12137 | 7.83k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
12138 | 0 | _Pypegen_stack_overflow(p); |
12139 | 0 | } |
12140 | 7.83k | if (p->error_indicator) { |
12141 | 0 | p->level--; |
12142 | 0 | return NULL; |
12143 | 0 | } |
12144 | 7.83k | asdl_expr_seq* _res = NULL; |
12145 | 7.83k | int _mark = p->mark; |
12146 | 7.83k | { // ','.star_named_expression+ ','? |
12147 | 7.83k | if (p->error_indicator) { |
12148 | 0 | p->level--; |
12149 | 0 | return NULL; |
12150 | 0 | } |
12151 | 7.83k | D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?")); |
12152 | 7.83k | void *_opt_var; |
12153 | 7.83k | UNUSED(_opt_var); // Silence compiler warnings |
12154 | 7.83k | asdl_expr_seq* a; |
12155 | 7.83k | if ( |
12156 | 7.83k | (a = (asdl_expr_seq*)_gather_58_rule(p)) // ','.star_named_expression+ |
12157 | 5.50k | && |
12158 | 5.50k | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
12159 | 7.83k | ) |
12160 | 5.28k | { |
12161 | 5.28k | D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?")); |
12162 | 5.28k | _res = a; |
12163 | 5.28k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
12164 | 0 | p->error_indicator = 1; |
12165 | 0 | p->level--; |
12166 | 0 | return NULL; |
12167 | 0 | } |
12168 | 5.28k | goto done; |
12169 | 5.28k | } |
12170 | 2.54k | p->mark = _mark; |
12171 | 2.54k | D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ', |
12172 | 2.54k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?")); |
12173 | 2.54k | } |
12174 | 2.54k | _res = NULL; |
12175 | 7.83k | done: |
12176 | 7.83k | p->level--; |
12177 | 7.83k | return _res; |
12178 | 2.54k | } |
12179 | | |
12180 | | // star_named_expression: '*' bitwise_or | named_expression |
12181 | | Py_LOCAL_SYMBOL expr_ty |
12182 | | star_named_expression_rule(Parser *p) |
12183 | 393k | { |
12184 | 393k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
12185 | 1 | _Pypegen_stack_overflow(p); |
12186 | 1 | } |
12187 | 393k | if (p->error_indicator) { |
12188 | 1 | p->level--; |
12189 | 1 | return NULL; |
12190 | 1 | } |
12191 | 393k | expr_ty _res = NULL; |
12192 | 393k | int _mark = p->mark; |
12193 | 393k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
12194 | 282 | p->error_indicator = 1; |
12195 | 282 | p->level--; |
12196 | 282 | return NULL; |
12197 | 282 | } |
12198 | 393k | int _start_lineno = p->tokens[_mark]->lineno; |
12199 | 393k | UNUSED(_start_lineno); // Only used by EXTRA macro |
12200 | 393k | int _start_col_offset = p->tokens[_mark]->col_offset; |
12201 | 393k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
12202 | 393k | { // '*' bitwise_or |
12203 | 393k | if (p->error_indicator) { |
12204 | 0 | p->level--; |
12205 | 0 | return NULL; |
12206 | 0 | } |
12207 | 393k | D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or")); |
12208 | 393k | Token * _literal; |
12209 | 393k | expr_ty a; |
12210 | 393k | if ( |
12211 | 393k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
12212 | 10.8k | && |
12213 | 10.8k | (a = bitwise_or_rule(p)) // bitwise_or |
12214 | 393k | ) |
12215 | 7.49k | { |
12216 | 7.49k | D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or")); |
12217 | 7.49k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
12218 | 7.49k | if (_token == NULL) { |
12219 | 0 | p->level--; |
12220 | 0 | return NULL; |
12221 | 0 | } |
12222 | 7.49k | int _end_lineno = _token->end_lineno; |
12223 | 7.49k | UNUSED(_end_lineno); // Only used by EXTRA macro |
12224 | 7.49k | int _end_col_offset = _token->end_col_offset; |
12225 | 7.49k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
12226 | 7.49k | _res = _PyAST_Starred ( a , Load , EXTRA ); |
12227 | 7.49k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
12228 | 0 | p->error_indicator = 1; |
12229 | 0 | p->level--; |
12230 | 0 | return NULL; |
12231 | 0 | } |
12232 | 7.49k | goto done; |
12233 | 7.49k | } |
12234 | 385k | p->mark = _mark; |
12235 | 385k | D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ', |
12236 | 385k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or")); |
12237 | 385k | } |
12238 | 0 | { // named_expression |
12239 | 385k | if (p->error_indicator) { |
12240 | 621 | p->level--; |
12241 | 621 | return NULL; |
12242 | 621 | } |
12243 | 385k | D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression")); |
12244 | 385k | expr_ty named_expression_var; |
12245 | 385k | if ( |
12246 | 385k | (named_expression_var = named_expression_rule(p)) // named_expression |
12247 | 385k | ) |
12248 | 172k | { |
12249 | 172k | D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression")); |
12250 | 172k | _res = named_expression_var; |
12251 | 172k | goto done; |
12252 | 172k | } |
12253 | 212k | p->mark = _mark; |
12254 | 212k | D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ', |
12255 | 212k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression")); |
12256 | 212k | } |
12257 | 212k | _res = NULL; |
12258 | 392k | done: |
12259 | 392k | p->level--; |
12260 | 392k | return _res; |
12261 | 212k | } |
12262 | | |
12263 | | // assignment_expression: NAME ':=' ~ expression |
12264 | | Py_LOCAL_SYMBOL expr_ty |
12265 | | assignment_expression_rule(Parser *p) |
12266 | 635k | { |
12267 | 635k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
12268 | 1 | _Pypegen_stack_overflow(p); |
12269 | 1 | } |
12270 | 635k | if (p->error_indicator) { |
12271 | 1 | p->level--; |
12272 | 1 | return NULL; |
12273 | 1 | } |
12274 | 635k | expr_ty _res = NULL; |
12275 | 635k | int _mark = p->mark; |
12276 | 635k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
12277 | 146 | p->error_indicator = 1; |
12278 | 146 | p->level--; |
12279 | 146 | return NULL; |
12280 | 146 | } |
12281 | 635k | int _start_lineno = p->tokens[_mark]->lineno; |
12282 | 635k | UNUSED(_start_lineno); // Only used by EXTRA macro |
12283 | 635k | int _start_col_offset = p->tokens[_mark]->col_offset; |
12284 | 635k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
12285 | 635k | { // NAME ':=' ~ expression |
12286 | 635k | if (p->error_indicator) { |
12287 | 0 | p->level--; |
12288 | 0 | return NULL; |
12289 | 0 | } |
12290 | 635k | D(fprintf(stderr, "%*c> assignment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression")); |
12291 | 635k | int _cut_var = 0; |
12292 | 635k | Token * _literal; |
12293 | 635k | expr_ty a; |
12294 | 635k | expr_ty b; |
12295 | 635k | if ( |
12296 | 635k | (a = _PyPegen_name_token(p)) // NAME |
12297 | 221k | && |
12298 | 221k | (_literal = _PyPegen_expect_token(p, 53)) // token=':=' |
12299 | 6.08k | && |
12300 | 6.08k | (_cut_var = 1) |
12301 | 6.08k | && |
12302 | 6.08k | (b = expression_rule(p)) // expression |
12303 | 635k | ) |
12304 | 3.33k | { |
12305 | 3.33k | D(fprintf(stderr, "%*c+ assignment_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression")); |
12306 | 3.33k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
12307 | 3.33k | if (_token == NULL) { |
12308 | 0 | p->level--; |
12309 | 0 | return NULL; |
12310 | 0 | } |
12311 | 3.33k | int _end_lineno = _token->end_lineno; |
12312 | 3.33k | UNUSED(_end_lineno); // Only used by EXTRA macro |
12313 | 3.33k | int _end_col_offset = _token->end_col_offset; |
12314 | 3.33k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
12315 | 3.33k | _res = CHECK_VERSION ( expr_ty , 8 , "Assignment expressions are" , _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA ) ); |
12316 | 3.33k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
12317 | 0 | p->error_indicator = 1; |
12318 | 0 | p->level--; |
12319 | 0 | return NULL; |
12320 | 0 | } |
12321 | 3.33k | goto done; |
12322 | 3.33k | } |
12323 | 631k | p->mark = _mark; |
12324 | 631k | D(fprintf(stderr, "%*c%s assignment_expression[%d-%d]: %s failed!\n", p->level, ' ', |
12325 | 631k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression")); |
12326 | 631k | if (_cut_var) { |
12327 | 2.74k | p->level--; |
12328 | 2.74k | return NULL; |
12329 | 2.74k | } |
12330 | 631k | } |
12331 | 629k | _res = NULL; |
12332 | 632k | done: |
12333 | 632k | p->level--; |
12334 | 632k | return _res; |
12335 | 629k | } |
12336 | | |
12337 | | // named_expression: assignment_expression | invalid_named_expression | expression !':=' |
12338 | | Py_LOCAL_SYMBOL expr_ty |
12339 | | named_expression_rule(Parser *p) |
12340 | 447k | { |
12341 | 447k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
12342 | 1 | _Pypegen_stack_overflow(p); |
12343 | 1 | } |
12344 | 447k | if (p->error_indicator) { |
12345 | 1 | p->level--; |
12346 | 1 | return NULL; |
12347 | 1 | } |
12348 | 447k | expr_ty _res = NULL; |
12349 | 447k | int _mark = p->mark; |
12350 | 447k | { // assignment_expression |
12351 | 447k | if (p->error_indicator) { |
12352 | 0 | p->level--; |
12353 | 0 | return NULL; |
12354 | 0 | } |
12355 | 447k | D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression")); |
12356 | 447k | expr_ty assignment_expression_var; |
12357 | 447k | if ( |
12358 | 447k | (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression |
12359 | 447k | ) |
12360 | 1.07k | { |
12361 | 1.07k | D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression")); |
12362 | 1.07k | _res = assignment_expression_var; |
12363 | 1.07k | goto done; |
12364 | 1.07k | } |
12365 | 446k | p->mark = _mark; |
12366 | 446k | D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ', |
12367 | 446k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); |
12368 | 446k | } |
12369 | 446k | if (p->call_invalid_rules) { // invalid_named_expression |
12370 | 294k | if (p->error_indicator) { |
12371 | 234 | p->level--; |
12372 | 234 | return NULL; |
12373 | 234 | } |
12374 | 294k | D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression")); |
12375 | 294k | void *invalid_named_expression_var; |
12376 | 294k | if ( |
12377 | 294k | (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression |
12378 | 294k | ) |
12379 | 0 | { |
12380 | 0 | D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression")); |
12381 | 0 | _res = invalid_named_expression_var; |
12382 | 0 | goto done; |
12383 | 0 | } |
12384 | 294k | p->mark = _mark; |
12385 | 294k | D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ', |
12386 | 294k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression")); |
12387 | 294k | } |
12388 | 446k | { // expression !':=' |
12389 | 446k | if (p->error_indicator) { |
12390 | 18.3k | p->level--; |
12391 | 18.3k | return NULL; |
12392 | 18.3k | } |
12393 | 428k | D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); |
12394 | 428k | expr_ty expression_var; |
12395 | 428k | if ( |
12396 | 428k | (expression_var = expression_rule(p)) // expression |
12397 | 222k | && |
12398 | 222k | _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':=' |
12399 | 428k | ) |
12400 | 221k | { |
12401 | 221k | D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); |
12402 | 221k | _res = expression_var; |
12403 | 221k | goto done; |
12404 | 221k | } |
12405 | 206k | p->mark = _mark; |
12406 | 206k | D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ', |
12407 | 206k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='")); |
12408 | 206k | } |
12409 | 206k | _res = NULL; |
12410 | 429k | done: |
12411 | 429k | p->level--; |
12412 | 429k | return _res; |
12413 | 206k | } |
12414 | | |
12415 | | // disjunction: conjunction (('or' conjunction))+ | conjunction |
12416 | | Py_LOCAL_SYMBOL expr_ty |
12417 | | disjunction_rule(Parser *p) |
12418 | 3.42M | { |
12419 | 3.42M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
12420 | 1 | _Pypegen_stack_overflow(p); |
12421 | 1 | } |
12422 | 3.42M | if (p->error_indicator) { |
12423 | 1 | p->level--; |
12424 | 1 | return NULL; |
12425 | 1 | } |
12426 | 3.42M | expr_ty _res = NULL; |
12427 | 3.42M | if (_PyPegen_atom_fast_path(p, &_res)) { |
12428 | 812k | p->level--; |
12429 | 812k | return _res; |
12430 | 812k | } |
12431 | 2.61M | if (_PyPegen_is_memoized(p, disjunction_type, &_res)) { |
12432 | 1.96M | p->level--; |
12433 | 1.96M | return _res; |
12434 | 1.96M | } |
12435 | 642k | int _mark = p->mark; |
12436 | 642k | expr_ty _prefix_2_result = NULL; |
12437 | 642k | int _prefix_2_end = 0, _prefix_2_valid = 0; |
12438 | 642k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
12439 | 0 | p->error_indicator = 1; |
12440 | 0 | p->level--; |
12441 | 0 | return NULL; |
12442 | 0 | } |
12443 | 642k | int _start_lineno = p->tokens[_mark]->lineno; |
12444 | 642k | UNUSED(_start_lineno); // Only used by EXTRA macro |
12445 | 642k | int _start_col_offset = p->tokens[_mark]->col_offset; |
12446 | 642k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
12447 | 642k | { // conjunction (('or' conjunction))+ |
12448 | 642k | if (p->error_indicator) { |
12449 | 0 | p->level--; |
12450 | 0 | return NULL; |
12451 | 0 | } |
12452 | 642k | D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+")); |
12453 | 642k | expr_ty a; |
12454 | 642k | asdl_seq * b; |
12455 | 642k | if ( |
12456 | 642k | (a = ((!p->call_invalid_rules && _prefix_2_valid) ? (p->mark = _prefix_2_end, _prefix_2_result) : (_prefix_2_result = conjunction_rule(p), _prefix_2_end = p->mark, _prefix_2_valid = 1, _prefix_2_result))) // conjunction |
12457 | 139k | && |
12458 | 139k | (b = _loop1_59_rule(p)) // (('or' conjunction))+ |
12459 | 642k | ) |
12460 | 1.13k | { |
12461 | 1.13k | D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+")); |
12462 | 1.13k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
12463 | 1.13k | if (_token == NULL) { |
12464 | 0 | p->level--; |
12465 | 0 | return NULL; |
12466 | 0 | } |
12467 | 1.13k | int _end_lineno = _token->end_lineno; |
12468 | 1.13k | UNUSED(_end_lineno); // Only used by EXTRA macro |
12469 | 1.13k | int _end_col_offset = _token->end_col_offset; |
12470 | 1.13k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
12471 | 1.13k | _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA ); |
12472 | 1.13k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
12473 | 0 | p->error_indicator = 1; |
12474 | 0 | p->level--; |
12475 | 0 | return NULL; |
12476 | 0 | } |
12477 | 1.13k | goto done; |
12478 | 1.13k | } |
12479 | 641k | p->mark = _mark; |
12480 | 641k | D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ', |
12481 | 641k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+")); |
12482 | 641k | } |
12483 | 0 | { // conjunction |
12484 | 641k | if (p->error_indicator) { |
12485 | 43.2k | p->level--; |
12486 | 43.2k | return NULL; |
12487 | 43.2k | } |
12488 | 597k | D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction")); |
12489 | 597k | expr_ty conjunction_var; |
12490 | 597k | if ( |
12491 | 597k | (conjunction_var = ((!p->call_invalid_rules && _prefix_2_valid) ? (p->mark = _prefix_2_end, _prefix_2_result) : (_prefix_2_result = conjunction_rule(p), _prefix_2_end = p->mark, _prefix_2_valid = 1, _prefix_2_result))) // conjunction |
12492 | 597k | ) |
12493 | 138k | { |
12494 | 138k | D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction")); |
12495 | 138k | _res = conjunction_var; |
12496 | 138k | goto done; |
12497 | 138k | } |
12498 | 459k | p->mark = _mark; |
12499 | 459k | D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ', |
12500 | 459k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction")); |
12501 | 459k | } |
12502 | 459k | _res = NULL; |
12503 | 599k | done: |
12504 | 599k | _PyPegen_insert_memo(p, _mark, disjunction_type, _res); |
12505 | 599k | p->level--; |
12506 | 599k | return _res; |
12507 | 459k | } |
12508 | | |
12509 | | // conjunction: inversion (('and' inversion))+ | inversion |
12510 | | static expr_ty |
12511 | | conjunction_rule(Parser *p) |
12512 | 860k | { |
12513 | 860k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
12514 | 1 | _Pypegen_stack_overflow(p); |
12515 | 1 | } |
12516 | 860k | if (p->error_indicator) { |
12517 | 1 | p->level--; |
12518 | 1 | return NULL; |
12519 | 1 | } |
12520 | 860k | expr_ty _res = NULL; |
12521 | 860k | if (_PyPegen_is_memoized(p, conjunction_type, &_res)) { |
12522 | 213k | p->level--; |
12523 | 213k | return _res; |
12524 | 213k | } |
12525 | 646k | int _mark = p->mark; |
12526 | 646k | expr_ty _prefix_3_result = NULL; |
12527 | 646k | int _prefix_3_end = 0, _prefix_3_valid = 0; |
12528 | 646k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
12529 | 0 | p->error_indicator = 1; |
12530 | 0 | p->level--; |
12531 | 0 | return NULL; |
12532 | 0 | } |
12533 | 646k | int _start_lineno = p->tokens[_mark]->lineno; |
12534 | 646k | UNUSED(_start_lineno); // Only used by EXTRA macro |
12535 | 646k | int _start_col_offset = p->tokens[_mark]->col_offset; |
12536 | 646k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
12537 | 646k | { // inversion (('and' inversion))+ |
12538 | 646k | if (p->error_indicator) { |
12539 | 0 | p->level--; |
12540 | 0 | return NULL; |
12541 | 0 | } |
12542 | 646k | D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+")); |
12543 | 646k | expr_ty a; |
12544 | 646k | asdl_seq * b; |
12545 | 646k | if ( |
12546 | 646k | (a = ((!p->call_invalid_rules && _prefix_3_valid) ? (p->mark = _prefix_3_end, _prefix_3_result) : (_prefix_3_result = inversion_rule(p), _prefix_3_end = p->mark, _prefix_3_valid = 1, _prefix_3_result))) // inversion |
12547 | 143k | && |
12548 | 143k | (b = _loop1_60_rule(p)) // (('and' inversion))+ |
12549 | 646k | ) |
12550 | 746 | { |
12551 | 746 | D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+")); |
12552 | 746 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
12553 | 746 | if (_token == NULL) { |
12554 | 0 | p->level--; |
12555 | 0 | return NULL; |
12556 | 0 | } |
12557 | 746 | int _end_lineno = _token->end_lineno; |
12558 | 746 | UNUSED(_end_lineno); // Only used by EXTRA macro |
12559 | 746 | int _end_col_offset = _token->end_col_offset; |
12560 | 746 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
12561 | 746 | _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA ); |
12562 | 746 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
12563 | 0 | p->error_indicator = 1; |
12564 | 0 | p->level--; |
12565 | 0 | return NULL; |
12566 | 0 | } |
12567 | 746 | goto done; |
12568 | 746 | } |
12569 | 646k | p->mark = _mark; |
12570 | 646k | D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ', |
12571 | 646k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+")); |
12572 | 646k | } |
12573 | 0 | { // inversion |
12574 | 646k | if (p->error_indicator) { |
12575 | 43.2k | p->level--; |
12576 | 43.2k | return NULL; |
12577 | 43.2k | } |
12578 | 602k | D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion")); |
12579 | 602k | expr_ty inversion_var; |
12580 | 602k | if ( |
12581 | 602k | (inversion_var = ((!p->call_invalid_rules && _prefix_3_valid) ? (p->mark = _prefix_3_end, _prefix_3_result) : (_prefix_3_result = inversion_rule(p), _prefix_3_end = p->mark, _prefix_3_valid = 1, _prefix_3_result))) // inversion |
12582 | 602k | ) |
12583 | 143k | { |
12584 | 143k | D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion")); |
12585 | 143k | _res = inversion_var; |
12586 | 143k | goto done; |
12587 | 143k | } |
12588 | 459k | p->mark = _mark; |
12589 | 459k | D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ', |
12590 | 459k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion")); |
12591 | 459k | } |
12592 | 459k | _res = NULL; |
12593 | 603k | done: |
12594 | 603k | _PyPegen_insert_memo(p, _mark, conjunction_type, _res); |
12595 | 603k | p->level--; |
12596 | 603k | return _res; |
12597 | 459k | } |
12598 | | |
12599 | | // inversion: 'not' inversion | comparison |
12600 | | Py_LOCAL_SYMBOL expr_ty |
12601 | | inversion_rule(Parser *p) |
12602 | 864k | { |
12603 | 864k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
12604 | 1 | _Pypegen_stack_overflow(p); |
12605 | 1 | } |
12606 | 864k | if (p->error_indicator) { |
12607 | 1 | p->level--; |
12608 | 1 | return NULL; |
12609 | 1 | } |
12610 | 864k | expr_ty _res = NULL; |
12611 | 864k | if (_PyPegen_atom_fast_path(p, &_res)) { |
12612 | 1.20k | p->level--; |
12613 | 1.20k | return _res; |
12614 | 1.20k | } |
12615 | 863k | if (_PyPegen_is_memoized(p, inversion_type, &_res)) { |
12616 | 214k | p->level--; |
12617 | 214k | return _res; |
12618 | 214k | } |
12619 | 649k | int _mark = p->mark; |
12620 | 649k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
12621 | 0 | p->error_indicator = 1; |
12622 | 0 | p->level--; |
12623 | 0 | return NULL; |
12624 | 0 | } |
12625 | 649k | int _start_lineno = p->tokens[_mark]->lineno; |
12626 | 649k | UNUSED(_start_lineno); // Only used by EXTRA macro |
12627 | 649k | int _start_col_offset = p->tokens[_mark]->col_offset; |
12628 | 649k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
12629 | 649k | { // 'not' inversion |
12630 | 649k | if (p->error_indicator) { |
12631 | 0 | p->level--; |
12632 | 0 | return NULL; |
12633 | 0 | } |
12634 | 649k | D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion")); |
12635 | 649k | Token * _keyword; |
12636 | 649k | expr_ty a; |
12637 | 649k | if ( |
12638 | 649k | (_keyword = _PyPegen_expect_token(p, 531)) // token='not' |
12639 | 1.27k | && |
12640 | 1.27k | (a = inversion_rule(p)) // inversion |
12641 | 649k | ) |
12642 | 653 | { |
12643 | 653 | D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion")); |
12644 | 653 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
12645 | 653 | if (_token == NULL) { |
12646 | 0 | p->level--; |
12647 | 0 | return NULL; |
12648 | 0 | } |
12649 | 653 | int _end_lineno = _token->end_lineno; |
12650 | 653 | UNUSED(_end_lineno); // Only used by EXTRA macro |
12651 | 653 | int _end_col_offset = _token->end_col_offset; |
12652 | 653 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
12653 | 653 | _res = _PyAST_UnaryOp ( Not , a , EXTRA ); |
12654 | 653 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
12655 | 0 | p->error_indicator = 1; |
12656 | 0 | p->level--; |
12657 | 0 | return NULL; |
12658 | 0 | } |
12659 | 653 | goto done; |
12660 | 653 | } |
12661 | 648k | p->mark = _mark; |
12662 | 648k | D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ', |
12663 | 648k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion")); |
12664 | 648k | } |
12665 | 0 | { // comparison |
12666 | 648k | if (p->error_indicator) { |
12667 | 354 | p->level--; |
12668 | 354 | return NULL; |
12669 | 354 | } |
12670 | 648k | D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison")); |
12671 | 648k | expr_ty comparison_var; |
12672 | 648k | if ( |
12673 | 648k | (comparison_var = comparison_rule(p)) // comparison |
12674 | 648k | ) |
12675 | 144k | { |
12676 | 144k | D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison")); |
12677 | 144k | _res = comparison_var; |
12678 | 144k | goto done; |
12679 | 144k | } |
12680 | 503k | p->mark = _mark; |
12681 | 503k | D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ', |
12682 | 503k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison")); |
12683 | 503k | } |
12684 | 503k | _res = NULL; |
12685 | 648k | done: |
12686 | 648k | _PyPegen_insert_memo(p, _mark, inversion_type, _res); |
12687 | 648k | p->level--; |
12688 | 648k | return _res; |
12689 | 503k | } |
12690 | | |
12691 | | // comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or |
12692 | | static expr_ty |
12693 | | comparison_rule(Parser *p) |
12694 | 648k | { |
12695 | 648k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
12696 | 1 | _Pypegen_stack_overflow(p); |
12697 | 1 | } |
12698 | 648k | if (p->error_indicator) { |
12699 | 1 | p->level--; |
12700 | 1 | return NULL; |
12701 | 1 | } |
12702 | 648k | expr_ty _res = NULL; |
12703 | 648k | int _mark = p->mark; |
12704 | 648k | expr_ty _prefix_4_result = NULL; |
12705 | 648k | int _prefix_4_end = 0, _prefix_4_valid = 0; |
12706 | 648k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
12707 | 0 | p->error_indicator = 1; |
12708 | 0 | p->level--; |
12709 | 0 | return NULL; |
12710 | 0 | } |
12711 | 648k | int _start_lineno = p->tokens[_mark]->lineno; |
12712 | 648k | UNUSED(_start_lineno); // Only used by EXTRA macro |
12713 | 648k | int _start_col_offset = p->tokens[_mark]->col_offset; |
12714 | 648k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
12715 | 648k | { // bitwise_or compare_op_bitwise_or_pair+ |
12716 | 648k | if (p->error_indicator) { |
12717 | 0 | p->level--; |
12718 | 0 | return NULL; |
12719 | 0 | } |
12720 | 648k | D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+")); |
12721 | 648k | expr_ty a; |
12722 | 648k | asdl_seq * b; |
12723 | 648k | if ( |
12724 | 648k | (a = ((!p->call_invalid_rules && _prefix_4_valid) ? (p->mark = _prefix_4_end, _prefix_4_result) : (_prefix_4_result = bitwise_or_rule(p), _prefix_4_end = p->mark, _prefix_4_valid = 1, _prefix_4_result))) // bitwise_or |
12725 | 147k | && |
12726 | 147k | (b = _loop1_61_rule(p)) // compare_op_bitwise_or_pair+ |
12727 | 648k | ) |
12728 | 5.70k | { |
12729 | 5.70k | D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+")); |
12730 | 5.70k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
12731 | 5.70k | if (_token == NULL) { |
12732 | 0 | p->level--; |
12733 | 0 | return NULL; |
12734 | 0 | } |
12735 | 5.70k | int _end_lineno = _token->end_lineno; |
12736 | 5.70k | UNUSED(_end_lineno); // Only used by EXTRA macro |
12737 | 5.70k | int _end_col_offset = _token->end_col_offset; |
12738 | 5.70k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
12739 | 5.70k | _res = _PyAST_Compare ( a , CHECK ( asdl_int_seq* , _PyPegen_get_cmpops ( p , b ) ) , CHECK ( asdl_expr_seq* , _PyPegen_get_exprs ( p , b ) ) , EXTRA ); |
12740 | 5.70k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
12741 | 0 | p->error_indicator = 1; |
12742 | 0 | p->level--; |
12743 | 0 | return NULL; |
12744 | 0 | } |
12745 | 5.70k | goto done; |
12746 | 5.70k | } |
12747 | 642k | p->mark = _mark; |
12748 | 642k | D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ', |
12749 | 642k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+")); |
12750 | 642k | } |
12751 | 0 | { // bitwise_or |
12752 | 642k | if (p->error_indicator) { |
12753 | 43.2k | p->level--; |
12754 | 43.2k | return NULL; |
12755 | 43.2k | } |
12756 | 599k | D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or")); |
12757 | 599k | expr_ty bitwise_or_var; |
12758 | 599k | if ( |
12759 | 599k | (bitwise_or_var = ((!p->call_invalid_rules && _prefix_4_valid) ? (p->mark = _prefix_4_end, _prefix_4_result) : (_prefix_4_result = bitwise_or_rule(p), _prefix_4_end = p->mark, _prefix_4_valid = 1, _prefix_4_result))) // bitwise_or |
12760 | 599k | ) |
12761 | 138k | { |
12762 | 138k | D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or")); |
12763 | 138k | _res = bitwise_or_var; |
12764 | 138k | goto done; |
12765 | 138k | } |
12766 | 460k | p->mark = _mark; |
12767 | 460k | D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ', |
12768 | 460k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or")); |
12769 | 460k | } |
12770 | 460k | _res = NULL; |
12771 | 604k | done: |
12772 | 604k | p->level--; |
12773 | 604k | return _res; |
12774 | 460k | } |
12775 | | |
12776 | | // compare_op_bitwise_or_pair: |
12777 | | // | '==' bitwise_or |
12778 | | // | ('!=') bitwise_or |
12779 | | // | '<=' bitwise_or |
12780 | | // | invalid_noteq |
12781 | | // | '<' bitwise_or |
12782 | | // | '>=' bitwise_or |
12783 | | // | '>' bitwise_or |
12784 | | // | 'not' 'in' bitwise_or |
12785 | | // | 'in' bitwise_or |
12786 | | // | 'is' 'not' bitwise_or |
12787 | | // | 'is' bitwise_or |
12788 | | static CmpopExprPair* |
12789 | | compare_op_bitwise_or_pair_rule(Parser *p) |
12790 | 165k | { |
12791 | 165k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
12792 | 0 | _Pypegen_stack_overflow(p); |
12793 | 0 | } |
12794 | 165k | if (p->error_indicator) { |
12795 | 0 | p->level--; |
12796 | 0 | return NULL; |
12797 | 0 | } |
12798 | 165k | CmpopExprPair* _res = NULL; |
12799 | 165k | int _mark = p->mark; |
12800 | 165k | { // '==' bitwise_or |
12801 | 165k | if (p->error_indicator) { |
12802 | 0 | p->level--; |
12803 | 0 | return NULL; |
12804 | 0 | } |
12805 | 165k | D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or")); |
12806 | 165k | Token * _literal; |
12807 | 165k | expr_ty a; |
12808 | 165k | if ( |
12809 | 165k | (_literal = _PyPegen_expect_token(p, 27)) // token='==' |
12810 | 2.17k | && |
12811 | 2.17k | (a = bitwise_or_rule(p)) // bitwise_or |
12812 | 165k | ) |
12813 | 1.75k | { |
12814 | 1.75k | D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or")); |
12815 | 1.75k | _res = _PyPegen_cmpop_expr_pair ( p , Eq , a ); |
12816 | 1.75k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
12817 | 0 | p->error_indicator = 1; |
12818 | 0 | p->level--; |
12819 | 0 | return NULL; |
12820 | 0 | } |
12821 | 1.75k | goto done; |
12822 | 1.75k | } |
12823 | 164k | p->mark = _mark; |
12824 | 164k | D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', |
12825 | 164k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or")); |
12826 | 164k | } |
12827 | 0 | { // ('!=') bitwise_or |
12828 | 164k | if (p->error_indicator) { |
12829 | 267 | p->level--; |
12830 | 267 | return NULL; |
12831 | 267 | } |
12832 | 163k | D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or")); |
12833 | 163k | void *_tmp_62_var; |
12834 | 163k | expr_ty a; |
12835 | 163k | if ( |
12836 | 163k | (_tmp_62_var = _tmp_62_rule(p)) // '!=' |
12837 | 1.20k | && |
12838 | 1.20k | (a = bitwise_or_rule(p)) // bitwise_or |
12839 | 163k | ) |
12840 | 782 | { |
12841 | 782 | D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or")); |
12842 | 782 | _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a ); |
12843 | 782 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
12844 | 0 | p->error_indicator = 1; |
12845 | 0 | p->level--; |
12846 | 0 | return NULL; |
12847 | 0 | } |
12848 | 782 | goto done; |
12849 | 782 | } |
12850 | 163k | p->mark = _mark; |
12851 | 163k | D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', |
12852 | 163k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or")); |
12853 | 163k | } |
12854 | 0 | { // '<=' bitwise_or |
12855 | 163k | if (p->error_indicator) { |
12856 | 202 | p->level--; |
12857 | 202 | return NULL; |
12858 | 202 | } |
12859 | 162k | D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or")); |
12860 | 162k | Token * _literal; |
12861 | 162k | expr_ty a; |
12862 | 162k | if ( |
12863 | 162k | (_literal = _PyPegen_expect_token(p, 29)) // token='<=' |
12864 | 1.02k | && |
12865 | 1.02k | (a = bitwise_or_rule(p)) // bitwise_or |
12866 | 162k | ) |
12867 | 543 | { |
12868 | 543 | D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or")); |
12869 | 543 | _res = _PyPegen_cmpop_expr_pair ( p , LtE , a ); |
12870 | 543 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
12871 | 0 | p->error_indicator = 1; |
12872 | 0 | p->level--; |
12873 | 0 | return NULL; |
12874 | 0 | } |
12875 | 543 | goto done; |
12876 | 543 | } |
12877 | 162k | p->mark = _mark; |
12878 | 162k | D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', |
12879 | 162k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or")); |
12880 | 162k | } |
12881 | 162k | if (p->call_invalid_rules) { // invalid_noteq |
12882 | 53.9k | if (p->error_indicator) { |
12883 | 194 | p->level--; |
12884 | 194 | return NULL; |
12885 | 194 | } |
12886 | 53.7k | D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_noteq")); |
12887 | 53.7k | void *invalid_noteq_var; |
12888 | 53.7k | if ( |
12889 | 53.7k | (invalid_noteq_var = invalid_noteq_rule(p)) // invalid_noteq |
12890 | 53.7k | ) |
12891 | 0 | { |
12892 | 0 | D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_noteq")); |
12893 | 0 | _res = invalid_noteq_var; |
12894 | 0 | goto done; |
12895 | 0 | } |
12896 | 53.7k | p->mark = _mark; |
12897 | 53.7k | D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', |
12898 | 53.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_noteq")); |
12899 | 53.7k | } |
12900 | 162k | { // '<' bitwise_or |
12901 | 162k | if (p->error_indicator) { |
12902 | 81 | p->level--; |
12903 | 81 | return NULL; |
12904 | 81 | } |
12905 | 162k | D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or")); |
12906 | 162k | Token * _literal; |
12907 | 162k | expr_ty a; |
12908 | 162k | if ( |
12909 | 162k | (_literal = _PyPegen_expect_token(p, 20)) // token='<' |
12910 | 4.97k | && |
12911 | 4.97k | (a = bitwise_or_rule(p)) // bitwise_or |
12912 | 162k | ) |
12913 | 4.28k | { |
12914 | 4.28k | D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or")); |
12915 | 4.28k | _res = _PyPegen_cmpop_expr_pair ( p , Lt , a ); |
12916 | 4.28k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
12917 | 0 | p->error_indicator = 1; |
12918 | 0 | p->level--; |
12919 | 0 | return NULL; |
12920 | 0 | } |
12921 | 4.28k | goto done; |
12922 | 4.28k | } |
12923 | 157k | p->mark = _mark; |
12924 | 157k | D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', |
12925 | 157k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or")); |
12926 | 157k | } |
12927 | 0 | { // '>=' bitwise_or |
12928 | 157k | if (p->error_indicator) { |
12929 | 322 | p->level--; |
12930 | 322 | return NULL; |
12931 | 322 | } |
12932 | 157k | D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or")); |
12933 | 157k | Token * _literal; |
12934 | 157k | expr_ty a; |
12935 | 157k | if ( |
12936 | 157k | (_literal = _PyPegen_expect_token(p, 30)) // token='>=' |
12937 | 1.19k | && |
12938 | 1.19k | (a = bitwise_or_rule(p)) // bitwise_or |
12939 | 157k | ) |
12940 | 749 | { |
12941 | 749 | D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or")); |
12942 | 749 | _res = _PyPegen_cmpop_expr_pair ( p , GtE , a ); |
12943 | 749 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
12944 | 0 | p->error_indicator = 1; |
12945 | 0 | p->level--; |
12946 | 0 | return NULL; |
12947 | 0 | } |
12948 | 749 | goto done; |
12949 | 749 | } |
12950 | 156k | p->mark = _mark; |
12951 | 156k | D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', |
12952 | 156k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or")); |
12953 | 156k | } |
12954 | 0 | { // '>' bitwise_or |
12955 | 156k | if (p->error_indicator) { |
12956 | 293 | p->level--; |
12957 | 293 | return NULL; |
12958 | 293 | } |
12959 | 156k | D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or")); |
12960 | 156k | Token * _literal; |
12961 | 156k | expr_ty a; |
12962 | 156k | if ( |
12963 | 156k | (_literal = _PyPegen_expect_token(p, 21)) // token='>' |
12964 | 8.45k | && |
12965 | 8.45k | (a = bitwise_or_rule(p)) // bitwise_or |
12966 | 156k | ) |
12967 | 7.70k | { |
12968 | 7.70k | D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or")); |
12969 | 7.70k | _res = _PyPegen_cmpop_expr_pair ( p , Gt , a ); |
12970 | 7.70k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
12971 | 0 | p->error_indicator = 1; |
12972 | 0 | p->level--; |
12973 | 0 | return NULL; |
12974 | 0 | } |
12975 | 7.70k | goto done; |
12976 | 7.70k | } |
12977 | 148k | p->mark = _mark; |
12978 | 148k | D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', |
12979 | 148k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or")); |
12980 | 148k | } |
12981 | 0 | { // 'not' 'in' bitwise_or |
12982 | 148k | if (p->error_indicator) { |
12983 | 430 | p->level--; |
12984 | 430 | return NULL; |
12985 | 430 | } |
12986 | 148k | D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or")); |
12987 | 148k | Token * _keyword; |
12988 | 148k | Token * _keyword_1; |
12989 | 148k | expr_ty a; |
12990 | 148k | if ( |
12991 | 148k | (_keyword = _PyPegen_expect_token(p, 531)) // token='not' |
12992 | 1.12k | && |
12993 | 1.12k | (_keyword_1 = _PyPegen_expect_token(p, 523)) // token='in' |
12994 | 888 | && |
12995 | 888 | (a = bitwise_or_rule(p)) // bitwise_or |
12996 | 148k | ) |
12997 | 372 | { |
12998 | 372 | D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or")); |
12999 | 372 | _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a ); |
13000 | 372 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
13001 | 0 | p->error_indicator = 1; |
13002 | 0 | p->level--; |
13003 | 0 | return NULL; |
13004 | 0 | } |
13005 | 372 | goto done; |
13006 | 372 | } |
13007 | 147k | p->mark = _mark; |
13008 | 147k | D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', |
13009 | 147k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or")); |
13010 | 147k | } |
13011 | 0 | { // 'in' bitwise_or |
13012 | 147k | if (p->error_indicator) { |
13013 | 277 | p->level--; |
13014 | 277 | return NULL; |
13015 | 277 | } |
13016 | 147k | D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or")); |
13017 | 147k | Token * _keyword; |
13018 | 147k | expr_ty a; |
13019 | 147k | if ( |
13020 | 147k | (_keyword = _PyPegen_expect_token(p, 523)) // token='in' |
13021 | 1.41k | && |
13022 | 1.41k | (a = bitwise_or_rule(p)) // bitwise_or |
13023 | 147k | ) |
13024 | 921 | { |
13025 | 921 | D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or")); |
13026 | 921 | _res = _PyPegen_cmpop_expr_pair ( p , In , a ); |
13027 | 921 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
13028 | 0 | p->error_indicator = 1; |
13029 | 0 | p->level--; |
13030 | 0 | return NULL; |
13031 | 0 | } |
13032 | 921 | goto done; |
13033 | 921 | } |
13034 | 146k | p->mark = _mark; |
13035 | 146k | D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', |
13036 | 146k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or")); |
13037 | 146k | } |
13038 | 0 | { // 'is' 'not' bitwise_or |
13039 | 146k | if (p->error_indicator) { |
13040 | 274 | p->level--; |
13041 | 274 | return NULL; |
13042 | 274 | } |
13043 | 146k | D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or")); |
13044 | 146k | Token * _keyword; |
13045 | 146k | Token * _keyword_1; |
13046 | 146k | expr_ty a; |
13047 | 146k | if ( |
13048 | 146k | (_keyword = _PyPegen_expect_token(p, 532)) // token='is' |
13049 | 2.17k | && |
13050 | 2.17k | (_keyword_1 = _PyPegen_expect_token(p, 531)) // token='not' |
13051 | 857 | && |
13052 | 857 | (a = bitwise_or_rule(p)) // bitwise_or |
13053 | 146k | ) |
13054 | 239 | { |
13055 | 239 | D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or")); |
13056 | 239 | _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a ); |
13057 | 239 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
13058 | 0 | p->error_indicator = 1; |
13059 | 0 | p->level--; |
13060 | 0 | return NULL; |
13061 | 0 | } |
13062 | 239 | goto done; |
13063 | 239 | } |
13064 | 146k | p->mark = _mark; |
13065 | 146k | D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', |
13066 | 146k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or")); |
13067 | 146k | } |
13068 | 0 | { // 'is' bitwise_or |
13069 | 146k | if (p->error_indicator) { |
13070 | 272 | p->level--; |
13071 | 272 | return NULL; |
13072 | 272 | } |
13073 | 145k | D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or")); |
13074 | 145k | Token * _keyword; |
13075 | 145k | expr_ty a; |
13076 | 145k | if ( |
13077 | 145k | (_keyword = _PyPegen_expect_token(p, 532)) // token='is' |
13078 | 1.66k | && |
13079 | 1.66k | (a = bitwise_or_rule(p)) // bitwise_or |
13080 | 145k | ) |
13081 | 1.19k | { |
13082 | 1.19k | D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or")); |
13083 | 1.19k | _res = _PyPegen_cmpop_expr_pair ( p , Is , a ); |
13084 | 1.19k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
13085 | 0 | p->error_indicator = 1; |
13086 | 0 | p->level--; |
13087 | 0 | return NULL; |
13088 | 0 | } |
13089 | 1.19k | goto done; |
13090 | 1.19k | } |
13091 | 144k | p->mark = _mark; |
13092 | 144k | D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', |
13093 | 144k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or")); |
13094 | 144k | } |
13095 | 144k | _res = NULL; |
13096 | 163k | done: |
13097 | 163k | p->level--; |
13098 | 163k | return _res; |
13099 | 144k | } |
13100 | | |
13101 | | // Left-recursive |
13102 | | // bitwise_or: bitwise_or '|' bitwise_xor | invalid_bitwise_or | bitwise_xor |
13103 | | static expr_ty bitwise_or_raw(Parser *); |
13104 | | Py_LOCAL_SYMBOL expr_ty |
13105 | | bitwise_or_rule(Parser *p) |
13106 | 2.40M | { |
13107 | 2.40M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
13108 | 2 | _Pypegen_stack_overflow(p); |
13109 | 2 | } |
13110 | 2.40M | expr_ty _res = NULL; |
13111 | 2.40M | if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) { |
13112 | 1.67M | p->level--; |
13113 | 1.67M | return _res; |
13114 | 1.67M | } |
13115 | 723k | int _mark = p->mark; |
13116 | 723k | int _resmark = p->mark; |
13117 | 723k | Memo *_memo = _PyPegen_insert_memo_direct(p, _mark, bitwise_or_type); |
13118 | 723k | if (_memo == NULL) { |
13119 | 0 | p->level--; |
13120 | 0 | return NULL; |
13121 | 0 | } |
13122 | 939k | while (1) { |
13123 | 939k | _memo->node = _res; |
13124 | 939k | _memo->mark = p->mark; |
13125 | 939k | p->mark = _mark; |
13126 | 939k | void *_raw = bitwise_or_raw(p); |
13127 | 939k | if (p->error_indicator) { |
13128 | 45.7k | p->level--; |
13129 | 45.7k | return NULL; |
13130 | 45.7k | } |
13131 | 893k | if (_raw == NULL || p->mark <= _resmark) |
13132 | 677k | break; |
13133 | 215k | _resmark = p->mark; |
13134 | 215k | _res = _raw; |
13135 | 215k | } |
13136 | 677k | p->mark = _resmark; |
13137 | 677k | p->level--; |
13138 | 677k | return _res; |
13139 | 723k | } |
13140 | | static expr_ty |
13141 | | bitwise_or_raw(Parser *p) |
13142 | 939k | { |
13143 | 939k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
13144 | 1 | _Pypegen_stack_overflow(p); |
13145 | 1 | } |
13146 | 939k | if (p->error_indicator) { |
13147 | 2 | p->level--; |
13148 | 2 | return NULL; |
13149 | 2 | } |
13150 | 939k | expr_ty _res = NULL; |
13151 | 939k | int _mark = p->mark; |
13152 | 939k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
13153 | 0 | p->error_indicator = 1; |
13154 | 0 | p->level--; |
13155 | 0 | return NULL; |
13156 | 0 | } |
13157 | 939k | int _start_lineno = p->tokens[_mark]->lineno; |
13158 | 939k | UNUSED(_start_lineno); // Only used by EXTRA macro |
13159 | 939k | int _start_col_offset = p->tokens[_mark]->col_offset; |
13160 | 939k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
13161 | 939k | { // bitwise_or '|' bitwise_xor |
13162 | 939k | if (p->error_indicator) { |
13163 | 0 | p->level--; |
13164 | 0 | return NULL; |
13165 | 0 | } |
13166 | 939k | D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor")); |
13167 | 939k | Token * _literal; |
13168 | 939k | expr_ty a; |
13169 | 939k | expr_ty b; |
13170 | 939k | if ( |
13171 | 939k | (a = bitwise_or_rule(p)) // bitwise_or |
13172 | 215k | && |
13173 | 215k | (_literal = _PyPegen_expect_token(p, 18)) // token='|' |
13174 | 4.42k | && |
13175 | 4.42k | (b = bitwise_xor_rule(p)) // bitwise_xor |
13176 | 939k | ) |
13177 | 2.40k | { |
13178 | 2.40k | D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor")); |
13179 | 2.40k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
13180 | 2.40k | if (_token == NULL) { |
13181 | 0 | p->level--; |
13182 | 0 | return NULL; |
13183 | 0 | } |
13184 | 2.40k | int _end_lineno = _token->end_lineno; |
13185 | 2.40k | UNUSED(_end_lineno); // Only used by EXTRA macro |
13186 | 2.40k | int _end_col_offset = _token->end_col_offset; |
13187 | 2.40k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
13188 | 2.40k | _res = _PyAST_BinOp ( a , BitOr , b , EXTRA ); |
13189 | 2.40k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
13190 | 0 | p->error_indicator = 1; |
13191 | 0 | p->level--; |
13192 | 0 | return NULL; |
13193 | 0 | } |
13194 | 2.40k | goto done; |
13195 | 2.40k | } |
13196 | 937k | p->mark = _mark; |
13197 | 937k | D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ', |
13198 | 937k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor")); |
13199 | 937k | } |
13200 | 937k | if (p->call_invalid_rules) { // invalid_bitwise_or |
13201 | 401k | if (p->error_indicator) { |
13202 | 703 | p->level--; |
13203 | 703 | return NULL; |
13204 | 703 | } |
13205 | 400k | D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_bitwise_or")); |
13206 | 400k | void *invalid_bitwise_or_var; |
13207 | 400k | if ( |
13208 | 400k | (invalid_bitwise_or_var = invalid_bitwise_or_rule(p)) // invalid_bitwise_or |
13209 | 400k | ) |
13210 | 0 | { |
13211 | 0 | D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_bitwise_or")); |
13212 | 0 | _res = invalid_bitwise_or_var; |
13213 | 0 | goto done; |
13214 | 0 | } |
13215 | 400k | p->mark = _mark; |
13216 | 400k | D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ', |
13217 | 400k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_bitwise_or")); |
13218 | 400k | } |
13219 | 936k | { // bitwise_xor |
13220 | 936k | if (p->error_indicator) { |
13221 | 217 | p->level--; |
13222 | 217 | return NULL; |
13223 | 217 | } |
13224 | 936k | D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor")); |
13225 | 936k | expr_ty bitwise_xor_var; |
13226 | 936k | if ( |
13227 | 936k | (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor |
13228 | 936k | ) |
13229 | 425k | { |
13230 | 425k | D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor")); |
13231 | 425k | _res = bitwise_xor_var; |
13232 | 425k | goto done; |
13233 | 425k | } |
13234 | 510k | p->mark = _mark; |
13235 | 510k | D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ', |
13236 | 510k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor")); |
13237 | 510k | } |
13238 | 510k | _res = NULL; |
13239 | 938k | done: |
13240 | 938k | p->level--; |
13241 | 938k | return _res; |
13242 | 510k | } |
13243 | | |
13244 | | // Left-recursive |
13245 | | // bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and |
13246 | | static expr_ty bitwise_xor_raw(Parser *); |
13247 | | static expr_ty |
13248 | | bitwise_xor_rule(Parser *p) |
13249 | 1.88M | { |
13250 | 1.88M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
13251 | 1 | _Pypegen_stack_overflow(p); |
13252 | 1 | } |
13253 | 1.88M | expr_ty _res = NULL; |
13254 | 1.88M | if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) { |
13255 | 1.15M | p->level--; |
13256 | 1.15M | return _res; |
13257 | 1.15M | } |
13258 | 728k | int _mark = p->mark; |
13259 | 728k | int _resmark = p->mark; |
13260 | 728k | Memo *_memo = _PyPegen_insert_memo_direct(p, _mark, bitwise_xor_type); |
13261 | 728k | if (_memo == NULL) { |
13262 | 0 | p->level--; |
13263 | 0 | return NULL; |
13264 | 0 | } |
13265 | 945k | while (1) { |
13266 | 945k | _memo->node = _res; |
13267 | 945k | _memo->mark = p->mark; |
13268 | 945k | p->mark = _mark; |
13269 | 945k | void *_raw = bitwise_xor_raw(p); |
13270 | 945k | if (p->error_indicator) { |
13271 | 45.7k | p->level--; |
13272 | 45.7k | return NULL; |
13273 | 45.7k | } |
13274 | 899k | if (_raw == NULL || p->mark <= _resmark) |
13275 | 682k | break; |
13276 | 217k | _resmark = p->mark; |
13277 | 217k | _res = _raw; |
13278 | 217k | } |
13279 | 682k | p->mark = _resmark; |
13280 | 682k | p->level--; |
13281 | 682k | return _res; |
13282 | 728k | } |
13283 | | static expr_ty |
13284 | | bitwise_xor_raw(Parser *p) |
13285 | 945k | { |
13286 | 945k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
13287 | 1 | _Pypegen_stack_overflow(p); |
13288 | 1 | } |
13289 | 945k | if (p->error_indicator) { |
13290 | 1 | p->level--; |
13291 | 1 | return NULL; |
13292 | 1 | } |
13293 | 945k | expr_ty _res = NULL; |
13294 | 945k | int _mark = p->mark; |
13295 | 945k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
13296 | 0 | p->error_indicator = 1; |
13297 | 0 | p->level--; |
13298 | 0 | return NULL; |
13299 | 0 | } |
13300 | 945k | int _start_lineno = p->tokens[_mark]->lineno; |
13301 | 945k | UNUSED(_start_lineno); // Only used by EXTRA macro |
13302 | 945k | int _start_col_offset = p->tokens[_mark]->col_offset; |
13303 | 945k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
13304 | 945k | { // bitwise_xor '^' bitwise_and |
13305 | 945k | if (p->error_indicator) { |
13306 | 0 | p->level--; |
13307 | 0 | return NULL; |
13308 | 0 | } |
13309 | 945k | D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and")); |
13310 | 945k | Token * _literal; |
13311 | 945k | expr_ty a; |
13312 | 945k | expr_ty b; |
13313 | 945k | if ( |
13314 | 945k | (a = bitwise_xor_rule(p)) // bitwise_xor |
13315 | 217k | && |
13316 | 217k | (_literal = _PyPegen_expect_token(p, 32)) // token='^' |
13317 | 1.66k | && |
13318 | 1.66k | (b = bitwise_and_rule(p)) // bitwise_and |
13319 | 945k | ) |
13320 | 1.09k | { |
13321 | 1.09k | D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and")); |
13322 | 1.09k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
13323 | 1.09k | if (_token == NULL) { |
13324 | 0 | p->level--; |
13325 | 0 | return NULL; |
13326 | 0 | } |
13327 | 1.09k | int _end_lineno = _token->end_lineno; |
13328 | 1.09k | UNUSED(_end_lineno); // Only used by EXTRA macro |
13329 | 1.09k | int _end_col_offset = _token->end_col_offset; |
13330 | 1.09k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
13331 | 1.09k | _res = _PyAST_BinOp ( a , BitXor , b , EXTRA ); |
13332 | 1.09k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
13333 | 0 | p->error_indicator = 1; |
13334 | 0 | p->level--; |
13335 | 0 | return NULL; |
13336 | 0 | } |
13337 | 1.09k | goto done; |
13338 | 1.09k | } |
13339 | 944k | p->mark = _mark; |
13340 | 944k | D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ', |
13341 | 944k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and")); |
13342 | 944k | } |
13343 | 0 | { // bitwise_and |
13344 | 944k | if (p->error_indicator) { |
13345 | 275 | p->level--; |
13346 | 275 | return NULL; |
13347 | 275 | } |
13348 | 943k | D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and")); |
13349 | 943k | expr_ty bitwise_and_var; |
13350 | 943k | if ( |
13351 | 943k | (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and |
13352 | 943k | ) |
13353 | 431k | { |
13354 | 431k | D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and")); |
13355 | 431k | _res = bitwise_and_var; |
13356 | 431k | goto done; |
13357 | 431k | } |
13358 | 512k | p->mark = _mark; |
13359 | 512k | D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ', |
13360 | 512k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and")); |
13361 | 512k | } |
13362 | 512k | _res = NULL; |
13363 | 944k | done: |
13364 | 944k | p->level--; |
13365 | 944k | return _res; |
13366 | 512k | } |
13367 | | |
13368 | | // Left-recursive |
13369 | | // bitwise_and: bitwise_and '&' shift_expr | invalid_bitwise_and | shift_expr |
13370 | | static expr_ty bitwise_and_raw(Parser *); |
13371 | | Py_LOCAL_SYMBOL expr_ty |
13372 | | bitwise_and_rule(Parser *p) |
13373 | 2.30M | { |
13374 | 2.30M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
13375 | 2 | _Pypegen_stack_overflow(p); |
13376 | 2 | } |
13377 | 2.30M | expr_ty _res = NULL; |
13378 | 2.30M | if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) { |
13379 | 1.57M | p->level--; |
13380 | 1.57M | return _res; |
13381 | 1.57M | } |
13382 | 729k | int _mark = p->mark; |
13383 | 729k | int _resmark = p->mark; |
13384 | 729k | Memo *_memo = _PyPegen_insert_memo_direct(p, _mark, bitwise_and_type); |
13385 | 729k | if (_memo == NULL) { |
13386 | 0 | p->level--; |
13387 | 0 | return NULL; |
13388 | 0 | } |
13389 | 949k | while (1) { |
13390 | 949k | _memo->node = _res; |
13391 | 949k | _memo->mark = p->mark; |
13392 | 949k | p->mark = _mark; |
13393 | 949k | void *_raw = bitwise_and_raw(p); |
13394 | 949k | if (p->error_indicator) { |
13395 | 45.7k | p->level--; |
13396 | 45.7k | return NULL; |
13397 | 45.7k | } |
13398 | 904k | if (_raw == NULL || p->mark <= _resmark) |
13399 | 683k | break; |
13400 | 220k | _resmark = p->mark; |
13401 | 220k | _res = _raw; |
13402 | 220k | } |
13403 | 683k | p->mark = _resmark; |
13404 | 683k | p->level--; |
13405 | 683k | return _res; |
13406 | 729k | } |
13407 | | static expr_ty |
13408 | | bitwise_and_raw(Parser *p) |
13409 | 949k | { |
13410 | 949k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
13411 | 1 | _Pypegen_stack_overflow(p); |
13412 | 1 | } |
13413 | 949k | if (p->error_indicator) { |
13414 | 1 | p->level--; |
13415 | 1 | return NULL; |
13416 | 1 | } |
13417 | 949k | expr_ty _res = NULL; |
13418 | 949k | int _mark = p->mark; |
13419 | 949k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
13420 | 0 | p->error_indicator = 1; |
13421 | 0 | p->level--; |
13422 | 0 | return NULL; |
13423 | 0 | } |
13424 | 949k | int _start_lineno = p->tokens[_mark]->lineno; |
13425 | 949k | UNUSED(_start_lineno); // Only used by EXTRA macro |
13426 | 949k | int _start_col_offset = p->tokens[_mark]->col_offset; |
13427 | 949k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
13428 | 949k | { // bitwise_and '&' shift_expr |
13429 | 949k | if (p->error_indicator) { |
13430 | 0 | p->level--; |
13431 | 0 | return NULL; |
13432 | 0 | } |
13433 | 949k | D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr")); |
13434 | 949k | Token * _literal; |
13435 | 949k | expr_ty a; |
13436 | 949k | expr_ty b; |
13437 | 949k | if ( |
13438 | 949k | (a = bitwise_and_rule(p)) // bitwise_and |
13439 | 220k | && |
13440 | 220k | (_literal = _PyPegen_expect_token(p, 19)) // token='&' |
13441 | 3.83k | && |
13442 | 3.83k | (b = shift_expr_rule(p)) // shift_expr |
13443 | 949k | ) |
13444 | 2.51k | { |
13445 | 2.51k | D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr")); |
13446 | 2.51k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
13447 | 2.51k | if (_token == NULL) { |
13448 | 0 | p->level--; |
13449 | 0 | return NULL; |
13450 | 0 | } |
13451 | 2.51k | int _end_lineno = _token->end_lineno; |
13452 | 2.51k | UNUSED(_end_lineno); // Only used by EXTRA macro |
13453 | 2.51k | int _end_col_offset = _token->end_col_offset; |
13454 | 2.51k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
13455 | 2.51k | _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA ); |
13456 | 2.51k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
13457 | 0 | p->error_indicator = 1; |
13458 | 0 | p->level--; |
13459 | 0 | return NULL; |
13460 | 0 | } |
13461 | 2.51k | goto done; |
13462 | 2.51k | } |
13463 | 947k | p->mark = _mark; |
13464 | 947k | D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ', |
13465 | 947k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr")); |
13466 | 947k | } |
13467 | 947k | if (p->call_invalid_rules) { // invalid_bitwise_and |
13468 | 405k | if (p->error_indicator) { |
13469 | 322 | p->level--; |
13470 | 322 | return NULL; |
13471 | 322 | } |
13472 | 404k | D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_bitwise_and")); |
13473 | 404k | void *invalid_bitwise_and_var; |
13474 | 404k | if ( |
13475 | 404k | (invalid_bitwise_and_var = invalid_bitwise_and_rule(p)) // invalid_bitwise_and |
13476 | 404k | ) |
13477 | 0 | { |
13478 | 0 | D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_bitwise_and")); |
13479 | 0 | _res = invalid_bitwise_and_var; |
13480 | 0 | goto done; |
13481 | 0 | } |
13482 | 404k | p->mark = _mark; |
13483 | 404k | D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ', |
13484 | 404k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_bitwise_and")); |
13485 | 404k | } |
13486 | 946k | { // shift_expr |
13487 | 946k | if (p->error_indicator) { |
13488 | 215 | p->level--; |
13489 | 215 | return NULL; |
13490 | 215 | } |
13491 | 946k | D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr")); |
13492 | 946k | expr_ty shift_expr_var; |
13493 | 946k | if ( |
13494 | 946k | (shift_expr_var = shift_expr_rule(p)) // shift_expr |
13495 | 946k | ) |
13496 | 434k | { |
13497 | 434k | D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr")); |
13498 | 434k | _res = shift_expr_var; |
13499 | 434k | goto done; |
13500 | 434k | } |
13501 | 512k | p->mark = _mark; |
13502 | 512k | D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ', |
13503 | 512k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr")); |
13504 | 512k | } |
13505 | 512k | _res = NULL; |
13506 | 949k | done: |
13507 | 949k | p->level--; |
13508 | 949k | return _res; |
13509 | 512k | } |
13510 | | |
13511 | | // Left-recursive |
13512 | | // shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum |
13513 | | static expr_ty shift_expr_raw(Parser *); |
13514 | | static expr_ty |
13515 | | shift_expr_rule(Parser *p) |
13516 | 2.31M | { |
13517 | 2.31M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
13518 | 1 | _Pypegen_stack_overflow(p); |
13519 | 1 | } |
13520 | 2.31M | expr_ty _res = NULL; |
13521 | 2.31M | if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) { |
13522 | 1.58M | p->level--; |
13523 | 1.58M | return _res; |
13524 | 1.58M | } |
13525 | 733k | int _mark = p->mark; |
13526 | 733k | int _resmark = p->mark; |
13527 | 733k | Memo *_memo = _PyPegen_insert_memo_direct(p, _mark, shift_expr_type); |
13528 | 733k | if (_memo == NULL) { |
13529 | 0 | p->level--; |
13530 | 0 | return NULL; |
13531 | 0 | } |
13532 | 955k | while (1) { |
13533 | 955k | _memo->node = _res; |
13534 | 955k | _memo->mark = p->mark; |
13535 | 955k | p->mark = _mark; |
13536 | 955k | void *_raw = shift_expr_raw(p); |
13537 | 955k | if (p->error_indicator) { |
13538 | 45.7k | p->level--; |
13539 | 45.7k | return NULL; |
13540 | 45.7k | } |
13541 | 910k | if (_raw == NULL || p->mark <= _resmark) |
13542 | 687k | break; |
13543 | 222k | _resmark = p->mark; |
13544 | 222k | _res = _raw; |
13545 | 222k | } |
13546 | 687k | p->mark = _resmark; |
13547 | 687k | p->level--; |
13548 | 687k | return _res; |
13549 | 733k | } |
13550 | | static expr_ty |
13551 | | shift_expr_raw(Parser *p) |
13552 | 955k | { |
13553 | 955k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
13554 | 1 | _Pypegen_stack_overflow(p); |
13555 | 1 | } |
13556 | 955k | if (p->error_indicator) { |
13557 | 1 | p->level--; |
13558 | 1 | return NULL; |
13559 | 1 | } |
13560 | 955k | expr_ty _res = NULL; |
13561 | 955k | int _mark = p->mark; |
13562 | 955k | expr_ty _prefix_5_result = NULL; |
13563 | 955k | int _prefix_5_end = 0, _prefix_5_valid = 0; |
13564 | 955k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
13565 | 0 | p->error_indicator = 1; |
13566 | 0 | p->level--; |
13567 | 0 | return NULL; |
13568 | 0 | } |
13569 | 955k | int _start_lineno = p->tokens[_mark]->lineno; |
13570 | 955k | UNUSED(_start_lineno); // Only used by EXTRA macro |
13571 | 955k | int _start_col_offset = p->tokens[_mark]->col_offset; |
13572 | 955k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
13573 | 955k | { // shift_expr '<<' sum |
13574 | 955k | if (p->error_indicator) { |
13575 | 0 | p->level--; |
13576 | 0 | return NULL; |
13577 | 0 | } |
13578 | 955k | D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum")); |
13579 | 955k | Token * _literal; |
13580 | 955k | expr_ty a; |
13581 | 955k | expr_ty b; |
13582 | 955k | if ( |
13583 | 955k | (a = ((!p->call_invalid_rules && _prefix_5_valid) ? (p->mark = _prefix_5_end, _prefix_5_result) : (_prefix_5_result = shift_expr_rule(p), _prefix_5_end = p->mark, _prefix_5_valid = 1, _prefix_5_result))) // shift_expr |
13584 | 222k | && |
13585 | 222k | (_literal = _PyPegen_expect_token(p, 33)) // token='<<' |
13586 | 1.78k | && |
13587 | 1.78k | (b = sum_rule(p)) // sum |
13588 | 955k | ) |
13589 | 1.36k | { |
13590 | 1.36k | D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum")); |
13591 | 1.36k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
13592 | 1.36k | if (_token == NULL) { |
13593 | 0 | p->level--; |
13594 | 0 | return NULL; |
13595 | 0 | } |
13596 | 1.36k | int _end_lineno = _token->end_lineno; |
13597 | 1.36k | UNUSED(_end_lineno); // Only used by EXTRA macro |
13598 | 1.36k | int _end_col_offset = _token->end_col_offset; |
13599 | 1.36k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
13600 | 1.36k | _res = _PyAST_BinOp ( a , LShift , b , EXTRA ); |
13601 | 1.36k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
13602 | 0 | p->error_indicator = 1; |
13603 | 0 | p->level--; |
13604 | 0 | return NULL; |
13605 | 0 | } |
13606 | 1.36k | goto done; |
13607 | 1.36k | } |
13608 | 954k | p->mark = _mark; |
13609 | 954k | D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ', |
13610 | 954k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum")); |
13611 | 954k | } |
13612 | 0 | { // shift_expr '>>' sum |
13613 | 954k | if (p->error_indicator) { |
13614 | 195 | p->level--; |
13615 | 195 | return NULL; |
13616 | 195 | } |
13617 | 954k | D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum")); |
13618 | 954k | Token * _literal; |
13619 | 954k | expr_ty a; |
13620 | 954k | expr_ty b; |
13621 | 954k | if ( |
13622 | 954k | (a = ((!p->call_invalid_rules && _prefix_5_valid) ? (p->mark = _prefix_5_end, _prefix_5_result) : (_prefix_5_result = shift_expr_rule(p), _prefix_5_end = p->mark, _prefix_5_valid = 1, _prefix_5_result))) // shift_expr |
13623 | 220k | && |
13624 | 220k | (_literal = _PyPegen_expect_token(p, 34)) // token='>>' |
13625 | 1.02k | && |
13626 | 1.02k | (b = sum_rule(p)) // sum |
13627 | 954k | ) |
13628 | 604 | { |
13629 | 604 | D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum")); |
13630 | 604 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
13631 | 604 | if (_token == NULL) { |
13632 | 0 | p->level--; |
13633 | 0 | return NULL; |
13634 | 0 | } |
13635 | 604 | int _end_lineno = _token->end_lineno; |
13636 | 604 | UNUSED(_end_lineno); // Only used by EXTRA macro |
13637 | 604 | int _end_col_offset = _token->end_col_offset; |
13638 | 604 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
13639 | 604 | _res = _PyAST_BinOp ( a , RShift , b , EXTRA ); |
13640 | 604 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
13641 | 0 | p->error_indicator = 1; |
13642 | 0 | p->level--; |
13643 | 0 | return NULL; |
13644 | 0 | } |
13645 | 604 | goto done; |
13646 | 604 | } |
13647 | 953k | p->mark = _mark; |
13648 | 953k | D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ', |
13649 | 953k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum")); |
13650 | 953k | } |
13651 | 0 | { // sum |
13652 | 953k | if (p->error_indicator) { |
13653 | 262 | p->level--; |
13654 | 262 | return NULL; |
13655 | 262 | } |
13656 | 953k | D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum")); |
13657 | 953k | expr_ty sum_var; |
13658 | 953k | if ( |
13659 | 953k | (sum_var = sum_rule(p)) // sum |
13660 | 953k | ) |
13661 | 440k | { |
13662 | 440k | D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum")); |
13663 | 440k | _res = sum_var; |
13664 | 440k | goto done; |
13665 | 440k | } |
13666 | 513k | p->mark = _mark; |
13667 | 513k | D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ', |
13668 | 513k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum")); |
13669 | 513k | } |
13670 | 513k | _res = NULL; |
13671 | 955k | done: |
13672 | 955k | p->level--; |
13673 | 955k | return _res; |
13674 | 513k | } |
13675 | | |
13676 | | // Left-recursive |
13677 | | // sum: sum '+' term | sum '-' term | invalid_arithmetic | term |
13678 | | static expr_ty sum_raw(Parser *); |
13679 | | Py_LOCAL_SYMBOL expr_ty |
13680 | | sum_rule(Parser *p) |
13681 | 2.77M | { |
13682 | 2.77M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
13683 | 1 | _Pypegen_stack_overflow(p); |
13684 | 1 | } |
13685 | 2.77M | expr_ty _res = NULL; |
13686 | 2.77M | if (_PyPegen_is_memoized(p, sum_type, &_res)) { |
13687 | 2.03M | p->level--; |
13688 | 2.03M | return _res; |
13689 | 2.03M | } |
13690 | 736k | int _mark = p->mark; |
13691 | 736k | int _resmark = p->mark; |
13692 | 736k | Memo *_memo = _PyPegen_insert_memo_direct(p, _mark, sum_type); |
13693 | 736k | if (_memo == NULL) { |
13694 | 0 | p->level--; |
13695 | 0 | return NULL; |
13696 | 0 | } |
13697 | 989k | while (1) { |
13698 | 989k | _memo->node = _res; |
13699 | 989k | _memo->mark = p->mark; |
13700 | 989k | p->mark = _mark; |
13701 | 989k | void *_raw = sum_raw(p); |
13702 | 989k | if (p->error_indicator) { |
13703 | 45.7k | p->level--; |
13704 | 45.7k | return NULL; |
13705 | 45.7k | } |
13706 | 943k | if (_raw == NULL || p->mark <= _resmark) |
13707 | 690k | break; |
13708 | 253k | _resmark = p->mark; |
13709 | 253k | _res = _raw; |
13710 | 253k | } |
13711 | 690k | p->mark = _resmark; |
13712 | 690k | p->level--; |
13713 | 690k | return _res; |
13714 | 736k | } |
13715 | | static expr_ty |
13716 | | sum_raw(Parser *p) |
13717 | 989k | { |
13718 | 989k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
13719 | 1 | _Pypegen_stack_overflow(p); |
13720 | 1 | } |
13721 | 989k | if (p->error_indicator) { |
13722 | 1 | p->level--; |
13723 | 1 | return NULL; |
13724 | 1 | } |
13725 | 989k | expr_ty _res = NULL; |
13726 | 989k | int _mark = p->mark; |
13727 | 989k | expr_ty _prefix_6_result = NULL; |
13728 | 989k | int _prefix_6_end = 0, _prefix_6_valid = 0; |
13729 | 989k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
13730 | 0 | p->error_indicator = 1; |
13731 | 0 | p->level--; |
13732 | 0 | return NULL; |
13733 | 0 | } |
13734 | 989k | int _start_lineno = p->tokens[_mark]->lineno; |
13735 | 989k | UNUSED(_start_lineno); // Only used by EXTRA macro |
13736 | 989k | int _start_col_offset = p->tokens[_mark]->col_offset; |
13737 | 989k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
13738 | 989k | { // sum '+' term |
13739 | 989k | if (p->error_indicator) { |
13740 | 0 | p->level--; |
13741 | 0 | return NULL; |
13742 | 0 | } |
13743 | 989k | D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term")); |
13744 | 989k | Token * _literal; |
13745 | 989k | expr_ty a; |
13746 | 989k | expr_ty b; |
13747 | 989k | if ( |
13748 | 989k | (a = ((!p->call_invalid_rules && _prefix_6_valid) ? (p->mark = _prefix_6_end, _prefix_6_result) : (_prefix_6_result = sum_rule(p), _prefix_6_end = p->mark, _prefix_6_valid = 1, _prefix_6_result))) // sum |
13749 | 253k | && |
13750 | 253k | (_literal = _PyPegen_expect_token(p, 14)) // token='+' |
13751 | 11.2k | && |
13752 | 11.2k | (b = term_rule(p)) // term |
13753 | 989k | ) |
13754 | 9.82k | { |
13755 | 9.82k | D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term")); |
13756 | 9.82k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
13757 | 9.82k | if (_token == NULL) { |
13758 | 0 | p->level--; |
13759 | 0 | return NULL; |
13760 | 0 | } |
13761 | 9.82k | int _end_lineno = _token->end_lineno; |
13762 | 9.82k | UNUSED(_end_lineno); // Only used by EXTRA macro |
13763 | 9.82k | int _end_col_offset = _token->end_col_offset; |
13764 | 9.82k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
13765 | 9.82k | _res = _PyAST_BinOp ( a , Add , b , EXTRA ); |
13766 | 9.82k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
13767 | 0 | p->error_indicator = 1; |
13768 | 0 | p->level--; |
13769 | 0 | return NULL; |
13770 | 0 | } |
13771 | 9.82k | goto done; |
13772 | 9.82k | } |
13773 | 979k | p->mark = _mark; |
13774 | 979k | D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ', |
13775 | 979k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term")); |
13776 | 979k | } |
13777 | 0 | { // sum '-' term |
13778 | 979k | if (p->error_indicator) { |
13779 | 561 | p->level--; |
13780 | 561 | return NULL; |
13781 | 561 | } |
13782 | 979k | D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term")); |
13783 | 979k | Token * _literal; |
13784 | 979k | expr_ty a; |
13785 | 979k | expr_ty b; |
13786 | 979k | if ( |
13787 | 979k | (a = ((!p->call_invalid_rules && _prefix_6_valid) ? (p->mark = _prefix_6_end, _prefix_6_result) : (_prefix_6_result = sum_rule(p), _prefix_6_end = p->mark, _prefix_6_valid = 1, _prefix_6_result))) // sum |
13788 | 242k | && |
13789 | 242k | (_literal = _PyPegen_expect_token(p, 15)) // token='-' |
13790 | 21.5k | && |
13791 | 21.5k | (b = term_rule(p)) // term |
13792 | 979k | ) |
13793 | 19.4k | { |
13794 | 19.4k | D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term")); |
13795 | 19.4k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
13796 | 19.4k | if (_token == NULL) { |
13797 | 0 | p->level--; |
13798 | 0 | return NULL; |
13799 | 0 | } |
13800 | 19.4k | int _end_lineno = _token->end_lineno; |
13801 | 19.4k | UNUSED(_end_lineno); // Only used by EXTRA macro |
13802 | 19.4k | int _end_col_offset = _token->end_col_offset; |
13803 | 19.4k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
13804 | 19.4k | _res = _PyAST_BinOp ( a , Sub , b , EXTRA ); |
13805 | 19.4k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
13806 | 0 | p->error_indicator = 1; |
13807 | 0 | p->level--; |
13808 | 0 | return NULL; |
13809 | 0 | } |
13810 | 19.4k | goto done; |
13811 | 19.4k | } |
13812 | 959k | p->mark = _mark; |
13813 | 959k | D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ', |
13814 | 959k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term")); |
13815 | 959k | } |
13816 | 959k | if (p->call_invalid_rules) { // invalid_arithmetic |
13817 | 409k | if (p->error_indicator) { |
13818 | 666 | p->level--; |
13819 | 666 | return NULL; |
13820 | 666 | } |
13821 | 409k | D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arithmetic")); |
13822 | 409k | void *invalid_arithmetic_var; |
13823 | 409k | if ( |
13824 | 409k | (invalid_arithmetic_var = invalid_arithmetic_rule(p)) // invalid_arithmetic |
13825 | 409k | ) |
13826 | 0 | { |
13827 | 0 | D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arithmetic")); |
13828 | 0 | _res = invalid_arithmetic_var; |
13829 | 0 | goto done; |
13830 | 0 | } |
13831 | 409k | p->mark = _mark; |
13832 | 409k | D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ', |
13833 | 409k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arithmetic")); |
13834 | 409k | } |
13835 | 958k | { // term |
13836 | 958k | if (p->error_indicator) { |
13837 | 272 | p->level--; |
13838 | 272 | return NULL; |
13839 | 272 | } |
13840 | 958k | D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term")); |
13841 | 958k | expr_ty term_var; |
13842 | 958k | if ( |
13843 | 958k | (term_var = term_rule(p)) // term |
13844 | 958k | ) |
13845 | 446k | { |
13846 | 446k | D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term")); |
13847 | 446k | _res = term_var; |
13848 | 446k | goto done; |
13849 | 446k | } |
13850 | 512k | p->mark = _mark; |
13851 | 512k | D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ', |
13852 | 512k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term")); |
13853 | 512k | } |
13854 | 512k | _res = NULL; |
13855 | 987k | done: |
13856 | 987k | p->level--; |
13857 | 987k | return _res; |
13858 | 512k | } |
13859 | | |
13860 | | // Left-recursive |
13861 | | // term: |
13862 | | // | term '*' factor |
13863 | | // | term '/' factor |
13864 | | // | term '//' factor |
13865 | | // | term '%' factor |
13866 | | // | term '@' factor |
13867 | | // | factor |
13868 | | static expr_ty term_raw(Parser *); |
13869 | | static expr_ty |
13870 | | term_rule(Parser *p) |
13871 | 3.74M | { |
13872 | 3.74M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
13873 | 1 | _Pypegen_stack_overflow(p); |
13874 | 1 | } |
13875 | 3.74M | expr_ty _res = NULL; |
13876 | 3.74M | if (_PyPegen_is_memoized(p, term_type, &_res)) { |
13877 | 2.97M | p->level--; |
13878 | 2.97M | return _res; |
13879 | 2.97M | } |
13880 | 768k | int _mark = p->mark; |
13881 | 768k | int _resmark = p->mark; |
13882 | 768k | Memo *_memo = _PyPegen_insert_memo_direct(p, _mark, term_type); |
13883 | 768k | if (_memo == NULL) { |
13884 | 0 | p->level--; |
13885 | 0 | return NULL; |
13886 | 0 | } |
13887 | 1.04M | while (1) { |
13888 | 1.04M | _memo->node = _res; |
13889 | 1.04M | _memo->mark = p->mark; |
13890 | 1.04M | p->mark = _mark; |
13891 | 1.04M | void *_raw = term_raw(p); |
13892 | 1.04M | if (p->error_indicator) { |
13893 | 45.6k | p->level--; |
13894 | 45.6k | return NULL; |
13895 | 45.6k | } |
13896 | 996k | if (_raw == NULL || p->mark <= _resmark) |
13897 | 722k | break; |
13898 | 273k | _resmark = p->mark; |
13899 | 273k | _res = _raw; |
13900 | 273k | } |
13901 | 722k | p->mark = _resmark; |
13902 | 722k | p->level--; |
13903 | 722k | return _res; |
13904 | 768k | } |
13905 | | static expr_ty |
13906 | | term_raw(Parser *p) |
13907 | 1.04M | { |
13908 | 1.04M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
13909 | 1 | _Pypegen_stack_overflow(p); |
13910 | 1 | } |
13911 | 1.04M | if (p->error_indicator) { |
13912 | 1 | p->level--; |
13913 | 1 | return NULL; |
13914 | 1 | } |
13915 | 1.04M | expr_ty _res = NULL; |
13916 | 1.04M | int _mark = p->mark; |
13917 | 1.04M | expr_ty _prefix_7_result = NULL; |
13918 | 1.04M | int _prefix_7_end = 0, _prefix_7_valid = 0; |
13919 | 1.04M | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
13920 | 0 | p->error_indicator = 1; |
13921 | 0 | p->level--; |
13922 | 0 | return NULL; |
13923 | 0 | } |
13924 | 1.04M | int _start_lineno = p->tokens[_mark]->lineno; |
13925 | 1.04M | UNUSED(_start_lineno); // Only used by EXTRA macro |
13926 | 1.04M | int _start_col_offset = p->tokens[_mark]->col_offset; |
13927 | 1.04M | UNUSED(_start_col_offset); // Only used by EXTRA macro |
13928 | 1.04M | { // term '*' factor |
13929 | 1.04M | if (p->error_indicator) { |
13930 | 0 | p->level--; |
13931 | 0 | return NULL; |
13932 | 0 | } |
13933 | 1.04M | D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor")); |
13934 | 1.04M | Token * _literal; |
13935 | 1.04M | expr_ty a; |
13936 | 1.04M | expr_ty b; |
13937 | 1.04M | if ( |
13938 | 1.04M | (a = ((!p->call_invalid_rules && _prefix_7_valid) ? (p->mark = _prefix_7_end, _prefix_7_result) : (_prefix_7_result = term_rule(p), _prefix_7_end = p->mark, _prefix_7_valid = 1, _prefix_7_result))) // term |
13939 | 273k | && |
13940 | 273k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
13941 | 14.0k | && |
13942 | 14.0k | (b = factor_rule(p)) // factor |
13943 | 1.04M | ) |
13944 | 11.7k | { |
13945 | 11.7k | D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor")); |
13946 | 11.7k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
13947 | 11.7k | if (_token == NULL) { |
13948 | 0 | p->level--; |
13949 | 0 | return NULL; |
13950 | 0 | } |
13951 | 11.7k | int _end_lineno = _token->end_lineno; |
13952 | 11.7k | UNUSED(_end_lineno); // Only used by EXTRA macro |
13953 | 11.7k | int _end_col_offset = _token->end_col_offset; |
13954 | 11.7k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
13955 | 11.7k | _res = _PyAST_BinOp ( a , Mult , b , EXTRA ); |
13956 | 11.7k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
13957 | 0 | p->error_indicator = 1; |
13958 | 0 | p->level--; |
13959 | 0 | return NULL; |
13960 | 0 | } |
13961 | 11.7k | goto done; |
13962 | 11.7k | } |
13963 | 1.03M | p->mark = _mark; |
13964 | 1.03M | D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', |
13965 | 1.03M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor")); |
13966 | 1.03M | } |
13967 | 0 | { // term '/' factor |
13968 | 1.03M | if (p->error_indicator) { |
13969 | 870 | p->level--; |
13970 | 870 | return NULL; |
13971 | 870 | } |
13972 | 1.02M | D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor")); |
13973 | 1.02M | Token * _literal; |
13974 | 1.02M | expr_ty a; |
13975 | 1.02M | expr_ty b; |
13976 | 1.02M | if ( |
13977 | 1.02M | (a = ((!p->call_invalid_rules && _prefix_7_valid) ? (p->mark = _prefix_7_end, _prefix_7_result) : (_prefix_7_result = term_rule(p), _prefix_7_end = p->mark, _prefix_7_valid = 1, _prefix_7_result))) // term |
13978 | 261k | && |
13979 | 261k | (_literal = _PyPegen_expect_token(p, 17)) // token='/' |
13980 | 3.39k | && |
13981 | 3.39k | (b = factor_rule(p)) // factor |
13982 | 1.02M | ) |
13983 | 2.52k | { |
13984 | 2.52k | D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor")); |
13985 | 2.52k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
13986 | 2.52k | if (_token == NULL) { |
13987 | 0 | p->level--; |
13988 | 0 | return NULL; |
13989 | 0 | } |
13990 | 2.52k | int _end_lineno = _token->end_lineno; |
13991 | 2.52k | UNUSED(_end_lineno); // Only used by EXTRA macro |
13992 | 2.52k | int _end_col_offset = _token->end_col_offset; |
13993 | 2.52k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
13994 | 2.52k | _res = _PyAST_BinOp ( a , Div , b , EXTRA ); |
13995 | 2.52k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
13996 | 0 | p->error_indicator = 1; |
13997 | 0 | p->level--; |
13998 | 0 | return NULL; |
13999 | 0 | } |
14000 | 2.52k | goto done; |
14001 | 2.52k | } |
14002 | 1.02M | p->mark = _mark; |
14003 | 1.02M | D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', |
14004 | 1.02M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor")); |
14005 | 1.02M | } |
14006 | 0 | { // term '//' factor |
14007 | 1.02M | if (p->error_indicator) { |
14008 | 291 | p->level--; |
14009 | 291 | return NULL; |
14010 | 291 | } |
14011 | 1.02M | D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor")); |
14012 | 1.02M | Token * _literal; |
14013 | 1.02M | expr_ty a; |
14014 | 1.02M | expr_ty b; |
14015 | 1.02M | if ( |
14016 | 1.02M | (a = ((!p->call_invalid_rules && _prefix_7_valid) ? (p->mark = _prefix_7_end, _prefix_7_result) : (_prefix_7_result = term_rule(p), _prefix_7_end = p->mark, _prefix_7_valid = 1, _prefix_7_result))) // term |
14017 | 258k | && |
14018 | 258k | (_literal = _PyPegen_expect_token(p, 47)) // token='//' |
14019 | 1.30k | && |
14020 | 1.30k | (b = factor_rule(p)) // factor |
14021 | 1.02M | ) |
14022 | 552 | { |
14023 | 552 | D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor")); |
14024 | 552 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
14025 | 552 | if (_token == NULL) { |
14026 | 0 | p->level--; |
14027 | 0 | return NULL; |
14028 | 0 | } |
14029 | 552 | int _end_lineno = _token->end_lineno; |
14030 | 552 | UNUSED(_end_lineno); // Only used by EXTRA macro |
14031 | 552 | int _end_col_offset = _token->end_col_offset; |
14032 | 552 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
14033 | 552 | _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA ); |
14034 | 552 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14035 | 0 | p->error_indicator = 1; |
14036 | 0 | p->level--; |
14037 | 0 | return NULL; |
14038 | 0 | } |
14039 | 552 | goto done; |
14040 | 552 | } |
14041 | 1.02M | p->mark = _mark; |
14042 | 1.02M | D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', |
14043 | 1.02M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor")); |
14044 | 1.02M | } |
14045 | 0 | { // term '%' factor |
14046 | 1.02M | if (p->error_indicator) { |
14047 | 205 | p->level--; |
14048 | 205 | return NULL; |
14049 | 205 | } |
14050 | 1.02M | D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor")); |
14051 | 1.02M | Token * _literal; |
14052 | 1.02M | expr_ty a; |
14053 | 1.02M | expr_ty b; |
14054 | 1.02M | if ( |
14055 | 1.02M | (a = ((!p->call_invalid_rules && _prefix_7_valid) ? (p->mark = _prefix_7_end, _prefix_7_result) : (_prefix_7_result = term_rule(p), _prefix_7_end = p->mark, _prefix_7_valid = 1, _prefix_7_result))) // term |
14056 | 257k | && |
14057 | 257k | (_literal = _PyPegen_expect_token(p, 24)) // token='%' |
14058 | 3.52k | && |
14059 | 3.52k | (b = factor_rule(p)) // factor |
14060 | 1.02M | ) |
14061 | 2.43k | { |
14062 | 2.43k | D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor")); |
14063 | 2.43k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
14064 | 2.43k | if (_token == NULL) { |
14065 | 0 | p->level--; |
14066 | 0 | return NULL; |
14067 | 0 | } |
14068 | 2.43k | int _end_lineno = _token->end_lineno; |
14069 | 2.43k | UNUSED(_end_lineno); // Only used by EXTRA macro |
14070 | 2.43k | int _end_col_offset = _token->end_col_offset; |
14071 | 2.43k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
14072 | 2.43k | _res = _PyAST_BinOp ( a , Mod , b , EXTRA ); |
14073 | 2.43k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14074 | 0 | p->error_indicator = 1; |
14075 | 0 | p->level--; |
14076 | 0 | return NULL; |
14077 | 0 | } |
14078 | 2.43k | goto done; |
14079 | 2.43k | } |
14080 | 1.02M | p->mark = _mark; |
14081 | 1.02M | D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', |
14082 | 1.02M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor")); |
14083 | 1.02M | } |
14084 | 0 | { // term '@' factor |
14085 | 1.02M | if (p->error_indicator) { |
14086 | 469 | p->level--; |
14087 | 469 | return NULL; |
14088 | 469 | } |
14089 | 1.02M | D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor")); |
14090 | 1.02M | Token * _literal; |
14091 | 1.02M | expr_ty a; |
14092 | 1.02M | expr_ty b; |
14093 | 1.02M | if ( |
14094 | 1.02M | (a = ((!p->call_invalid_rules && _prefix_7_valid) ? (p->mark = _prefix_7_end, _prefix_7_result) : (_prefix_7_result = term_rule(p), _prefix_7_end = p->mark, _prefix_7_valid = 1, _prefix_7_result))) // term |
14095 | 254k | && |
14096 | 254k | (_literal = _PyPegen_expect_token(p, 49)) // token='@' |
14097 | 3.05k | && |
14098 | 3.05k | (b = factor_rule(p)) // factor |
14099 | 1.02M | ) |
14100 | 2.21k | { |
14101 | 2.21k | D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor")); |
14102 | 2.21k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
14103 | 2.21k | if (_token == NULL) { |
14104 | 0 | p->level--; |
14105 | 0 | return NULL; |
14106 | 0 | } |
14107 | 2.21k | int _end_lineno = _token->end_lineno; |
14108 | 2.21k | UNUSED(_end_lineno); // Only used by EXTRA macro |
14109 | 2.21k | int _end_col_offset = _token->end_col_offset; |
14110 | 2.21k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
14111 | 2.21k | _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) ); |
14112 | 2.21k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14113 | 0 | p->error_indicator = 1; |
14114 | 0 | p->level--; |
14115 | 0 | return NULL; |
14116 | 0 | } |
14117 | 2.21k | goto done; |
14118 | 2.21k | } |
14119 | 1.02M | p->mark = _mark; |
14120 | 1.02M | D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', |
14121 | 1.02M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor")); |
14122 | 1.02M | } |
14123 | 0 | { // factor |
14124 | 1.02M | if (p->error_indicator) { |
14125 | 267 | p->level--; |
14126 | 267 | return NULL; |
14127 | 267 | } |
14128 | 1.02M | D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor")); |
14129 | 1.02M | expr_ty factor_var; |
14130 | 1.02M | if ( |
14131 | 1.02M | (factor_var = factor_rule(p)) // factor |
14132 | 1.02M | ) |
14133 | 506k | { |
14134 | 506k | D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor")); |
14135 | 506k | _res = factor_var; |
14136 | 506k | goto done; |
14137 | 506k | } |
14138 | 513k | p->mark = _mark; |
14139 | 513k | D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', |
14140 | 513k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor")); |
14141 | 513k | } |
14142 | 513k | _res = NULL; |
14143 | 1.03M | done: |
14144 | 1.03M | p->level--; |
14145 | 1.03M | return _res; |
14146 | 513k | } |
14147 | | |
14148 | | // factor: '+' factor | '-' factor | '~' factor | power | invalid_factor |
14149 | | Py_LOCAL_SYMBOL expr_ty |
14150 | | factor_rule(Parser *p) |
14151 | 1.19M | { |
14152 | 1.19M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
14153 | 1 | _Pypegen_stack_overflow(p); |
14154 | 1 | } |
14155 | 1.19M | if (p->error_indicator) { |
14156 | 1 | p->level--; |
14157 | 1 | return NULL; |
14158 | 1 | } |
14159 | 1.19M | expr_ty _res = NULL; |
14160 | 1.19M | if (_PyPegen_is_memoized(p, factor_type, &_res)) { |
14161 | 257k | p->level--; |
14162 | 257k | return _res; |
14163 | 257k | } |
14164 | 939k | int _mark = p->mark; |
14165 | 939k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
14166 | 0 | p->error_indicator = 1; |
14167 | 0 | p->level--; |
14168 | 0 | return NULL; |
14169 | 0 | } |
14170 | 939k | int _start_lineno = p->tokens[_mark]->lineno; |
14171 | 939k | UNUSED(_start_lineno); // Only used by EXTRA macro |
14172 | 939k | int _start_col_offset = p->tokens[_mark]->col_offset; |
14173 | 939k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
14174 | 939k | { // '+' factor |
14175 | 939k | if (p->error_indicator) { |
14176 | 0 | p->level--; |
14177 | 0 | return NULL; |
14178 | 0 | } |
14179 | 939k | D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor")); |
14180 | 939k | Token * _literal; |
14181 | 939k | expr_ty a; |
14182 | 939k | if ( |
14183 | 939k | (_literal = _PyPegen_expect_token(p, 14)) // token='+' |
14184 | 54.4k | && |
14185 | 54.4k | (a = factor_rule(p)) // factor |
14186 | 939k | ) |
14187 | 51.5k | { |
14188 | 51.5k | D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor")); |
14189 | 51.5k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
14190 | 51.5k | if (_token == NULL) { |
14191 | 0 | p->level--; |
14192 | 0 | return NULL; |
14193 | 0 | } |
14194 | 51.5k | int _end_lineno = _token->end_lineno; |
14195 | 51.5k | UNUSED(_end_lineno); // Only used by EXTRA macro |
14196 | 51.5k | int _end_col_offset = _token->end_col_offset; |
14197 | 51.5k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
14198 | 51.5k | _res = _PyAST_UnaryOp ( UAdd , a , EXTRA ); |
14199 | 51.5k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14200 | 0 | p->error_indicator = 1; |
14201 | 0 | p->level--; |
14202 | 0 | return NULL; |
14203 | 0 | } |
14204 | 51.5k | goto done; |
14205 | 51.5k | } |
14206 | 887k | p->mark = _mark; |
14207 | 887k | D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ', |
14208 | 887k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor")); |
14209 | 887k | } |
14210 | 0 | { // '-' factor |
14211 | 887k | if (p->error_indicator) { |
14212 | 1.04k | p->level--; |
14213 | 1.04k | return NULL; |
14214 | 1.04k | } |
14215 | 886k | D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor")); |
14216 | 886k | Token * _literal; |
14217 | 886k | expr_ty a; |
14218 | 886k | if ( |
14219 | 886k | (_literal = _PyPegen_expect_token(p, 15)) // token='-' |
14220 | 49.2k | && |
14221 | 49.2k | (a = factor_rule(p)) // factor |
14222 | 886k | ) |
14223 | 45.0k | { |
14224 | 45.0k | D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor")); |
14225 | 45.0k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
14226 | 45.0k | if (_token == NULL) { |
14227 | 0 | p->level--; |
14228 | 0 | return NULL; |
14229 | 0 | } |
14230 | 45.0k | int _end_lineno = _token->end_lineno; |
14231 | 45.0k | UNUSED(_end_lineno); // Only used by EXTRA macro |
14232 | 45.0k | int _end_col_offset = _token->end_col_offset; |
14233 | 45.0k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
14234 | 45.0k | _res = _PyAST_UnaryOp ( USub , a , EXTRA ); |
14235 | 45.0k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14236 | 0 | p->error_indicator = 1; |
14237 | 0 | p->level--; |
14238 | 0 | return NULL; |
14239 | 0 | } |
14240 | 45.0k | goto done; |
14241 | 45.0k | } |
14242 | 841k | p->mark = _mark; |
14243 | 841k | D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ', |
14244 | 841k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor")); |
14245 | 841k | } |
14246 | 0 | { // '~' factor |
14247 | 841k | if (p->error_indicator) { |
14248 | 1.58k | p->level--; |
14249 | 1.58k | return NULL; |
14250 | 1.58k | } |
14251 | 840k | D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor")); |
14252 | 840k | Token * _literal; |
14253 | 840k | expr_ty a; |
14254 | 840k | if ( |
14255 | 840k | (_literal = _PyPegen_expect_token(p, 31)) // token='~' |
14256 | 45.3k | && |
14257 | 45.3k | (a = factor_rule(p)) // factor |
14258 | 840k | ) |
14259 | 41.6k | { |
14260 | 41.6k | D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor")); |
14261 | 41.6k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
14262 | 41.6k | if (_token == NULL) { |
14263 | 0 | p->level--; |
14264 | 0 | return NULL; |
14265 | 0 | } |
14266 | 41.6k | int _end_lineno = _token->end_lineno; |
14267 | 41.6k | UNUSED(_end_lineno); // Only used by EXTRA macro |
14268 | 41.6k | int _end_col_offset = _token->end_col_offset; |
14269 | 41.6k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
14270 | 41.6k | _res = _PyAST_UnaryOp ( Invert , a , EXTRA ); |
14271 | 41.6k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14272 | 0 | p->error_indicator = 1; |
14273 | 0 | p->level--; |
14274 | 0 | return NULL; |
14275 | 0 | } |
14276 | 41.6k | goto done; |
14277 | 41.6k | } |
14278 | 798k | p->mark = _mark; |
14279 | 798k | D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ', |
14280 | 798k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor")); |
14281 | 798k | } |
14282 | 0 | { // power |
14283 | 798k | if (p->error_indicator) { |
14284 | 889 | p->level--; |
14285 | 889 | return NULL; |
14286 | 889 | } |
14287 | 797k | D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power")); |
14288 | 797k | expr_ty power_var; |
14289 | 797k | if ( |
14290 | 797k | (power_var = power_rule(p)) // power |
14291 | 797k | ) |
14292 | 271k | { |
14293 | 271k | D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power")); |
14294 | 271k | _res = power_var; |
14295 | 271k | goto done; |
14296 | 271k | } |
14297 | 525k | p->mark = _mark; |
14298 | 525k | D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ', |
14299 | 525k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power")); |
14300 | 525k | } |
14301 | 525k | if (p->call_invalid_rules) { // invalid_factor |
14302 | 210k | if (p->error_indicator) { |
14303 | 36.6k | p->level--; |
14304 | 36.6k | return NULL; |
14305 | 36.6k | } |
14306 | 174k | D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_factor")); |
14307 | 174k | void *invalid_factor_var; |
14308 | 174k | if ( |
14309 | 174k | (invalid_factor_var = invalid_factor_rule(p)) // invalid_factor |
14310 | 174k | ) |
14311 | 0 | { |
14312 | 0 | D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_factor")); |
14313 | 0 | _res = invalid_factor_var; |
14314 | 0 | goto done; |
14315 | 0 | } |
14316 | 174k | p->mark = _mark; |
14317 | 174k | D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ', |
14318 | 174k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_factor")); |
14319 | 174k | } |
14320 | 489k | _res = NULL; |
14321 | 899k | done: |
14322 | 899k | _PyPegen_insert_memo(p, _mark, factor_type, _res); |
14323 | 899k | p->level--; |
14324 | 899k | return _res; |
14325 | 489k | } |
14326 | | |
14327 | | // power: await_primary '**' factor | await_primary |
14328 | | static expr_ty |
14329 | | power_rule(Parser *p) |
14330 | 797k | { |
14331 | 797k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
14332 | 1 | _Pypegen_stack_overflow(p); |
14333 | 1 | } |
14334 | 797k | if (p->error_indicator) { |
14335 | 1 | p->level--; |
14336 | 1 | return NULL; |
14337 | 1 | } |
14338 | 797k | expr_ty _res = NULL; |
14339 | 797k | int _mark = p->mark; |
14340 | 797k | expr_ty _prefix_8_result = NULL; |
14341 | 797k | int _prefix_8_end = 0, _prefix_8_valid = 0; |
14342 | 797k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
14343 | 0 | p->error_indicator = 1; |
14344 | 0 | p->level--; |
14345 | 0 | return NULL; |
14346 | 0 | } |
14347 | 797k | int _start_lineno = p->tokens[_mark]->lineno; |
14348 | 797k | UNUSED(_start_lineno); // Only used by EXTRA macro |
14349 | 797k | int _start_col_offset = p->tokens[_mark]->col_offset; |
14350 | 797k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
14351 | 797k | { // await_primary '**' factor |
14352 | 797k | if (p->error_indicator) { |
14353 | 0 | p->level--; |
14354 | 0 | return NULL; |
14355 | 0 | } |
14356 | 797k | D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor")); |
14357 | 797k | Token * _literal; |
14358 | 797k | expr_ty a; |
14359 | 797k | expr_ty b; |
14360 | 797k | if ( |
14361 | 797k | (a = ((!p->call_invalid_rules && _prefix_8_valid) ? (p->mark = _prefix_8_end, _prefix_8_result) : (_prefix_8_result = await_primary_rule(p), _prefix_8_end = p->mark, _prefix_8_valid = 1, _prefix_8_result))) // await_primary |
14362 | 272k | && |
14363 | 272k | (_literal = _PyPegen_expect_token(p, 35)) // token='**' |
14364 | 2.23k | && |
14365 | 2.23k | (b = factor_rule(p)) // factor |
14366 | 797k | ) |
14367 | 1.85k | { |
14368 | 1.85k | D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor")); |
14369 | 1.85k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
14370 | 1.85k | if (_token == NULL) { |
14371 | 0 | p->level--; |
14372 | 0 | return NULL; |
14373 | 0 | } |
14374 | 1.85k | int _end_lineno = _token->end_lineno; |
14375 | 1.85k | UNUSED(_end_lineno); // Only used by EXTRA macro |
14376 | 1.85k | int _end_col_offset = _token->end_col_offset; |
14377 | 1.85k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
14378 | 1.85k | _res = _PyAST_BinOp ( a , Pow , b , EXTRA ); |
14379 | 1.85k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14380 | 0 | p->error_indicator = 1; |
14381 | 0 | p->level--; |
14382 | 0 | return NULL; |
14383 | 0 | } |
14384 | 1.85k | goto done; |
14385 | 1.85k | } |
14386 | 795k | p->mark = _mark; |
14387 | 795k | D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ', |
14388 | 795k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor")); |
14389 | 795k | } |
14390 | 0 | { // await_primary |
14391 | 795k | if (p->error_indicator) { |
14392 | 45.7k | p->level--; |
14393 | 45.7k | return NULL; |
14394 | 45.7k | } |
14395 | 749k | D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary")); |
14396 | 749k | expr_ty await_primary_var; |
14397 | 749k | if ( |
14398 | 749k | (await_primary_var = ((!p->call_invalid_rules && _prefix_8_valid) ? (p->mark = _prefix_8_end, _prefix_8_result) : (_prefix_8_result = await_primary_rule(p), _prefix_8_end = p->mark, _prefix_8_valid = 1, _prefix_8_result))) // await_primary |
14399 | 749k | ) |
14400 | 270k | { |
14401 | 270k | D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary")); |
14402 | 270k | _res = await_primary_var; |
14403 | 270k | goto done; |
14404 | 270k | } |
14405 | 479k | p->mark = _mark; |
14406 | 479k | D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ', |
14407 | 479k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary")); |
14408 | 479k | } |
14409 | 479k | _res = NULL; |
14410 | 751k | done: |
14411 | 751k | p->level--; |
14412 | 751k | return _res; |
14413 | 479k | } |
14414 | | |
14415 | | // await_primary: 'await' primary | primary |
14416 | | static expr_ty |
14417 | | await_primary_rule(Parser *p) |
14418 | 1.08M | { |
14419 | 1.08M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
14420 | 1 | _Pypegen_stack_overflow(p); |
14421 | 1 | } |
14422 | 1.08M | if (p->error_indicator) { |
14423 | 1 | p->level--; |
14424 | 1 | return NULL; |
14425 | 1 | } |
14426 | 1.08M | expr_ty _res = NULL; |
14427 | 1.08M | if (_PyPegen_is_memoized(p, await_primary_type, &_res)) { |
14428 | 287k | p->level--; |
14429 | 287k | return _res; |
14430 | 287k | } |
14431 | 797k | int _mark = p->mark; |
14432 | 797k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
14433 | 0 | p->error_indicator = 1; |
14434 | 0 | p->level--; |
14435 | 0 | return NULL; |
14436 | 0 | } |
14437 | 797k | int _start_lineno = p->tokens[_mark]->lineno; |
14438 | 797k | UNUSED(_start_lineno); // Only used by EXTRA macro |
14439 | 797k | int _start_col_offset = p->tokens[_mark]->col_offset; |
14440 | 797k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
14441 | 797k | { // 'await' primary |
14442 | 797k | if (p->error_indicator) { |
14443 | 0 | p->level--; |
14444 | 0 | return NULL; |
14445 | 0 | } |
14446 | 797k | D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'await' primary")); |
14447 | 797k | Token * _keyword; |
14448 | 797k | expr_ty a; |
14449 | 797k | if ( |
14450 | 797k | (_keyword = _PyPegen_expect_token(p, 533)) // token='await' |
14451 | 750 | && |
14452 | 750 | (a = primary_rule(p)) // primary |
14453 | 797k | ) |
14454 | 259 | { |
14455 | 259 | D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'await' primary")); |
14456 | 259 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
14457 | 259 | if (_token == NULL) { |
14458 | 0 | p->level--; |
14459 | 0 | return NULL; |
14460 | 0 | } |
14461 | 259 | int _end_lineno = _token->end_lineno; |
14462 | 259 | UNUSED(_end_lineno); // Only used by EXTRA macro |
14463 | 259 | int _end_col_offset = _token->end_col_offset; |
14464 | 259 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
14465 | 259 | _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) ); |
14466 | 259 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14467 | 0 | p->error_indicator = 1; |
14468 | 0 | p->level--; |
14469 | 0 | return NULL; |
14470 | 0 | } |
14471 | 259 | goto done; |
14472 | 259 | } |
14473 | 797k | p->mark = _mark; |
14474 | 797k | D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ', |
14475 | 797k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'await' primary")); |
14476 | 797k | } |
14477 | 0 | { // primary |
14478 | 797k | if (p->error_indicator) { |
14479 | 224 | p->level--; |
14480 | 224 | return NULL; |
14481 | 224 | } |
14482 | 797k | D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary")); |
14483 | 797k | expr_ty primary_var; |
14484 | 797k | if ( |
14485 | 797k | (primary_var = primary_rule(p)) // primary |
14486 | 797k | ) |
14487 | 271k | { |
14488 | 271k | D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary")); |
14489 | 271k | _res = primary_var; |
14490 | 271k | goto done; |
14491 | 271k | } |
14492 | 525k | p->mark = _mark; |
14493 | 525k | D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ', |
14494 | 525k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary")); |
14495 | 525k | } |
14496 | 525k | _res = NULL; |
14497 | 797k | done: |
14498 | 797k | _PyPegen_insert_memo(p, _mark, await_primary_type, _res); |
14499 | 797k | p->level--; |
14500 | 797k | return _res; |
14501 | 525k | } |
14502 | | |
14503 | | // Left-recursive |
14504 | | // primary: |
14505 | | // | primary '.' NAME |
14506 | | // | primary genexp |
14507 | | // | primary '(' arguments? ')' |
14508 | | // | primary '[' slices ']' |
14509 | | // | atom |
14510 | | static expr_ty primary_raw(Parser *); |
14511 | | static expr_ty |
14512 | | primary_rule(Parser *p) |
14513 | 4.33M | { |
14514 | 4.33M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
14515 | 1 | _Pypegen_stack_overflow(p); |
14516 | 1 | } |
14517 | 4.33M | expr_ty _res = NULL; |
14518 | 4.33M | if (_PyPegen_is_memoized(p, primary_type, &_res)) { |
14519 | 3.44M | p->level--; |
14520 | 3.44M | return _res; |
14521 | 3.44M | } |
14522 | 891k | int _mark = p->mark; |
14523 | 891k | int _resmark = p->mark; |
14524 | 891k | Memo *_memo = _PyPegen_insert_memo_direct(p, _mark, primary_type); |
14525 | 891k | if (_memo == NULL) { |
14526 | 0 | p->level--; |
14527 | 0 | return NULL; |
14528 | 0 | } |
14529 | 1.29M | while (1) { |
14530 | 1.29M | _memo->node = _res; |
14531 | 1.29M | _memo->mark = p->mark; |
14532 | 1.29M | p->mark = _mark; |
14533 | 1.29M | void *_raw = primary_raw(p); |
14534 | 1.29M | if (p->error_indicator) { |
14535 | 49.2k | p->level--; |
14536 | 49.2k | return NULL; |
14537 | 49.2k | } |
14538 | 1.24M | if (_raw == NULL || p->mark <= _resmark) |
14539 | 842k | break; |
14540 | 403k | _resmark = p->mark; |
14541 | 403k | _res = _raw; |
14542 | 403k | } |
14543 | 842k | p->mark = _resmark; |
14544 | 842k | p->level--; |
14545 | 842k | return _res; |
14546 | 891k | } |
14547 | | static expr_ty |
14548 | | primary_raw(Parser *p) |
14549 | 1.29M | { |
14550 | 1.29M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
14551 | 1 | _Pypegen_stack_overflow(p); |
14552 | 1 | } |
14553 | 1.29M | if (p->error_indicator) { |
14554 | 2 | p->level--; |
14555 | 2 | return NULL; |
14556 | 2 | } |
14557 | 1.29M | expr_ty _res = NULL; |
14558 | 1.29M | int _mark = p->mark; |
14559 | 1.29M | expr_ty _prefix_9_result = NULL; |
14560 | 1.29M | int _prefix_9_end = 0, _prefix_9_valid = 0; |
14561 | 1.29M | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
14562 | 0 | p->error_indicator = 1; |
14563 | 0 | p->level--; |
14564 | 0 | return NULL; |
14565 | 0 | } |
14566 | 1.29M | int _start_lineno = p->tokens[_mark]->lineno; |
14567 | 1.29M | UNUSED(_start_lineno); // Only used by EXTRA macro |
14568 | 1.29M | int _start_col_offset = p->tokens[_mark]->col_offset; |
14569 | 1.29M | UNUSED(_start_col_offset); // Only used by EXTRA macro |
14570 | 1.29M | { // primary '.' NAME |
14571 | 1.29M | if (p->error_indicator) { |
14572 | 0 | p->level--; |
14573 | 0 | return NULL; |
14574 | 0 | } |
14575 | 1.29M | D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME")); |
14576 | 1.29M | Token * _literal; |
14577 | 1.29M | expr_ty a; |
14578 | 1.29M | expr_ty b; |
14579 | 1.29M | if ( |
14580 | 1.29M | (a = ((!p->call_invalid_rules && _prefix_9_valid) ? (p->mark = _prefix_9_end, _prefix_9_result) : (_prefix_9_result = primary_rule(p), _prefix_9_end = p->mark, _prefix_9_valid = 1, _prefix_9_result))) // primary |
14581 | 403k | && |
14582 | 403k | (_literal = _PyPegen_expect_token(p, 23)) // token='.' |
14583 | 18.4k | && |
14584 | 18.4k | (b = _PyPegen_name_token(p)) // NAME |
14585 | 1.29M | ) |
14586 | 18.0k | { |
14587 | 18.0k | D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME")); |
14588 | 18.0k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
14589 | 18.0k | if (_token == NULL) { |
14590 | 0 | p->level--; |
14591 | 0 | return NULL; |
14592 | 0 | } |
14593 | 18.0k | int _end_lineno = _token->end_lineno; |
14594 | 18.0k | UNUSED(_end_lineno); // Only used by EXTRA macro |
14595 | 18.0k | int _end_col_offset = _token->end_col_offset; |
14596 | 18.0k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
14597 | 18.0k | _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA ); |
14598 | 18.0k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14599 | 0 | p->error_indicator = 1; |
14600 | 0 | p->level--; |
14601 | 0 | return NULL; |
14602 | 0 | } |
14603 | 18.0k | goto done; |
14604 | 18.0k | } |
14605 | 1.27M | p->mark = _mark; |
14606 | 1.27M | D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ', |
14607 | 1.27M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME")); |
14608 | 1.27M | } |
14609 | 0 | { // primary genexp |
14610 | 1.27M | if (p->error_indicator) { |
14611 | 228 | p->level--; |
14612 | 228 | return NULL; |
14613 | 228 | } |
14614 | 1.27M | D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp")); |
14615 | 1.27M | expr_ty a; |
14616 | 1.27M | expr_ty b; |
14617 | 1.27M | if ( |
14618 | 1.27M | (a = ((!p->call_invalid_rules && _prefix_9_valid) ? (p->mark = _prefix_9_end, _prefix_9_result) : (_prefix_9_result = primary_rule(p), _prefix_9_end = p->mark, _prefix_9_valid = 1, _prefix_9_result))) // primary |
14619 | 385k | && |
14620 | 385k | (b = genexp_rule(p)) // genexp |
14621 | 1.27M | ) |
14622 | 491 | { |
14623 | 491 | D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp")); |
14624 | 491 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
14625 | 491 | if (_token == NULL) { |
14626 | 0 | p->level--; |
14627 | 0 | return NULL; |
14628 | 0 | } |
14629 | 491 | int _end_lineno = _token->end_lineno; |
14630 | 491 | UNUSED(_end_lineno); // Only used by EXTRA macro |
14631 | 491 | int _end_col_offset = _token->end_col_offset; |
14632 | 491 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
14633 | 491 | _res = _PyAST_Call ( a , CHECK ( asdl_expr_seq* , ( asdl_expr_seq* ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA ); |
14634 | 491 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14635 | 0 | p->error_indicator = 1; |
14636 | 0 | p->level--; |
14637 | 0 | return NULL; |
14638 | 0 | } |
14639 | 491 | goto done; |
14640 | 491 | } |
14641 | 1.27M | p->mark = _mark; |
14642 | 1.27M | D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ', |
14643 | 1.27M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp")); |
14644 | 1.27M | } |
14645 | 0 | { // primary '(' arguments? ')' |
14646 | 1.27M | if (p->error_indicator) { |
14647 | 7.11k | p->level--; |
14648 | 7.11k | return NULL; |
14649 | 7.11k | } |
14650 | 1.26M | D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'")); |
14651 | 1.26M | Token * _literal; |
14652 | 1.26M | Token * _literal_1; |
14653 | 1.26M | expr_ty a; |
14654 | 1.26M | void *b; |
14655 | 1.26M | if ( |
14656 | 1.26M | (a = ((!p->call_invalid_rules && _prefix_9_valid) ? (p->mark = _prefix_9_end, _prefix_9_result) : (_prefix_9_result = primary_rule(p), _prefix_9_end = p->mark, _prefix_9_valid = 1, _prefix_9_result))) // primary |
14657 | 377k | && |
14658 | 377k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
14659 | 29.8k | && |
14660 | 29.8k | (b = arguments_rule(p), !p->error_indicator) // arguments? |
14661 | 26.0k | && |
14662 | 26.0k | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
14663 | 1.26M | ) |
14664 | 16.4k | { |
14665 | 16.4k | D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'")); |
14666 | 16.4k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
14667 | 16.4k | if (_token == NULL) { |
14668 | 0 | p->level--; |
14669 | 0 | return NULL; |
14670 | 0 | } |
14671 | 16.4k | int _end_lineno = _token->end_lineno; |
14672 | 16.4k | UNUSED(_end_lineno); // Only used by EXTRA macro |
14673 | 16.4k | int _end_col_offset = _token->end_col_offset; |
14674 | 16.4k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
14675 | 16.4k | _res = _PyAST_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA ); |
14676 | 16.4k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14677 | 0 | p->error_indicator = 1; |
14678 | 0 | p->level--; |
14679 | 0 | return NULL; |
14680 | 0 | } |
14681 | 16.4k | goto done; |
14682 | 16.4k | } |
14683 | 1.25M | p->mark = _mark; |
14684 | 1.25M | D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ', |
14685 | 1.25M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'")); |
14686 | 1.25M | } |
14687 | 0 | { // primary '[' slices ']' |
14688 | 1.25M | if (p->error_indicator) { |
14689 | 3.79k | p->level--; |
14690 | 3.79k | return NULL; |
14691 | 3.79k | } |
14692 | 1.24M | D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'")); |
14693 | 1.24M | Token * _literal; |
14694 | 1.24M | Token * _literal_1; |
14695 | 1.24M | expr_ty a; |
14696 | 1.24M | expr_ty b; |
14697 | 1.24M | if ( |
14698 | 1.24M | (a = ((!p->call_invalid_rules && _prefix_9_valid) ? (p->mark = _prefix_9_end, _prefix_9_result) : (_prefix_9_result = primary_rule(p), _prefix_9_end = p->mark, _prefix_9_valid = 1, _prefix_9_result))) // primary |
14699 | 357k | && |
14700 | 357k | (_literal = _PyPegen_expect_token(p, 9)) // token='[' |
14701 | 10.2k | && |
14702 | 10.2k | (b = slices_rule(p)) // slices |
14703 | 7.76k | && |
14704 | 7.76k | (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']' |
14705 | 1.24M | ) |
14706 | 3.57k | { |
14707 | 3.57k | D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'")); |
14708 | 3.57k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
14709 | 3.57k | if (_token == NULL) { |
14710 | 0 | p->level--; |
14711 | 0 | return NULL; |
14712 | 0 | } |
14713 | 3.57k | int _end_lineno = _token->end_lineno; |
14714 | 3.57k | UNUSED(_end_lineno); // Only used by EXTRA macro |
14715 | 3.57k | int _end_col_offset = _token->end_col_offset; |
14716 | 3.57k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
14717 | 3.57k | _res = _PyAST_Subscript ( a , b , Load , EXTRA ); |
14718 | 3.57k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14719 | 0 | p->error_indicator = 1; |
14720 | 0 | p->level--; |
14721 | 0 | return NULL; |
14722 | 0 | } |
14723 | 3.57k | goto done; |
14724 | 3.57k | } |
14725 | 1.24M | p->mark = _mark; |
14726 | 1.24M | D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ', |
14727 | 1.24M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'")); |
14728 | 1.24M | } |
14729 | 0 | { // atom |
14730 | 1.24M | if (p->error_indicator) { |
14731 | 1.05k | p->level--; |
14732 | 1.05k | return NULL; |
14733 | 1.05k | } |
14734 | 1.24M | D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom")); |
14735 | 1.24M | expr_ty atom_var; |
14736 | 1.24M | if ( |
14737 | 1.24M | (atom_var = atom_rule(p)) // atom |
14738 | 1.24M | ) |
14739 | 717k | { |
14740 | 717k | D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom")); |
14741 | 717k | _res = atom_var; |
14742 | 717k | goto done; |
14743 | 717k | } |
14744 | 526k | p->mark = _mark; |
14745 | 526k | D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ', |
14746 | 526k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom")); |
14747 | 526k | } |
14748 | 526k | _res = NULL; |
14749 | 1.28M | done: |
14750 | 1.28M | p->level--; |
14751 | 1.28M | return _res; |
14752 | 526k | } |
14753 | | |
14754 | | // slices: slice !',' | ','.(slice | starred_expression)+ ','? |
14755 | | static expr_ty |
14756 | | slices_rule(Parser *p) |
14757 | 10.2k | { |
14758 | 10.2k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
14759 | 0 | _Pypegen_stack_overflow(p); |
14760 | 0 | } |
14761 | 10.2k | if (p->error_indicator) { |
14762 | 0 | p->level--; |
14763 | 0 | return NULL; |
14764 | 0 | } |
14765 | 10.2k | expr_ty _res = NULL; |
14766 | 10.2k | int _mark = p->mark; |
14767 | 10.2k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
14768 | 24 | p->error_indicator = 1; |
14769 | 24 | p->level--; |
14770 | 24 | return NULL; |
14771 | 24 | } |
14772 | 10.2k | int _start_lineno = p->tokens[_mark]->lineno; |
14773 | 10.2k | UNUSED(_start_lineno); // Only used by EXTRA macro |
14774 | 10.2k | int _start_col_offset = p->tokens[_mark]->col_offset; |
14775 | 10.2k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
14776 | 10.2k | { // slice !',' |
14777 | 10.2k | if (p->error_indicator) { |
14778 | 0 | p->level--; |
14779 | 0 | return NULL; |
14780 | 0 | } |
14781 | 10.2k | D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','")); |
14782 | 10.2k | expr_ty a; |
14783 | 10.2k | if ( |
14784 | 10.2k | (a = slice_rule(p)) // slice |
14785 | 7.08k | && |
14786 | 7.08k | _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=',' |
14787 | 10.2k | ) |
14788 | 4.90k | { |
14789 | 4.90k | D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','")); |
14790 | 4.90k | _res = a; |
14791 | 4.90k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14792 | 0 | p->error_indicator = 1; |
14793 | 0 | p->level--; |
14794 | 0 | return NULL; |
14795 | 0 | } |
14796 | 4.90k | goto done; |
14797 | 4.90k | } |
14798 | 5.29k | p->mark = _mark; |
14799 | 5.29k | D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ', |
14800 | 5.29k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','")); |
14801 | 5.29k | } |
14802 | 0 | { // ','.(slice | starred_expression)+ ','? |
14803 | 5.29k | if (p->error_indicator) { |
14804 | 796 | p->level--; |
14805 | 796 | return NULL; |
14806 | 796 | } |
14807 | 4.50k | D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(slice | starred_expression)+ ','?")); |
14808 | 4.50k | void *_opt_var; |
14809 | 4.50k | UNUSED(_opt_var); // Silence compiler warnings |
14810 | 4.50k | asdl_expr_seq* a; |
14811 | 4.50k | if ( |
14812 | 4.50k | (a = (asdl_expr_seq*)_gather_64_rule(p)) // ','.(slice | starred_expression)+ |
14813 | 3.07k | && |
14814 | 3.07k | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
14815 | 4.50k | ) |
14816 | 2.85k | { |
14817 | 2.85k | D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(slice | starred_expression)+ ','?")); |
14818 | 2.85k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
14819 | 2.85k | if (_token == NULL) { |
14820 | 0 | p->level--; |
14821 | 0 | return NULL; |
14822 | 0 | } |
14823 | 2.85k | int _end_lineno = _token->end_lineno; |
14824 | 2.85k | UNUSED(_end_lineno); // Only used by EXTRA macro |
14825 | 2.85k | int _end_col_offset = _token->end_col_offset; |
14826 | 2.85k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
14827 | 2.85k | _res = _PyAST_Tuple ( a , Load , EXTRA ); |
14828 | 2.85k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14829 | 0 | p->error_indicator = 1; |
14830 | 0 | p->level--; |
14831 | 0 | return NULL; |
14832 | 0 | } |
14833 | 2.85k | goto done; |
14834 | 2.85k | } |
14835 | 1.64k | p->mark = _mark; |
14836 | 1.64k | D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ', |
14837 | 1.64k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(slice | starred_expression)+ ','?")); |
14838 | 1.64k | } |
14839 | 1.64k | _res = NULL; |
14840 | 9.40k | done: |
14841 | 9.40k | p->level--; |
14842 | 9.40k | return _res; |
14843 | 1.64k | } |
14844 | | |
14845 | | // slice: expression? ':' expression? [':' expression?] | named_expression |
14846 | | static expr_ty |
14847 | | slice_rule(Parser *p) |
14848 | 21.8k | { |
14849 | 21.8k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
14850 | 1 | _Pypegen_stack_overflow(p); |
14851 | 1 | } |
14852 | 21.8k | if (p->error_indicator) { |
14853 | 1 | p->level--; |
14854 | 1 | return NULL; |
14855 | 1 | } |
14856 | 21.8k | expr_ty _res = NULL; |
14857 | 21.8k | int _mark = p->mark; |
14858 | 21.8k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
14859 | 12 | p->error_indicator = 1; |
14860 | 12 | p->level--; |
14861 | 12 | return NULL; |
14862 | 12 | } |
14863 | 21.8k | int _start_lineno = p->tokens[_mark]->lineno; |
14864 | 21.8k | UNUSED(_start_lineno); // Only used by EXTRA macro |
14865 | 21.8k | int _start_col_offset = p->tokens[_mark]->col_offset; |
14866 | 21.8k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
14867 | 21.8k | { // expression? ':' expression? [':' expression?] |
14868 | 21.8k | if (p->error_indicator) { |
14869 | 0 | p->level--; |
14870 | 0 | return NULL; |
14871 | 0 | } |
14872 | 21.8k | D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]")); |
14873 | 21.8k | Token * _literal; |
14874 | 21.8k | void *a; |
14875 | 21.8k | void *b; |
14876 | 21.8k | void *c; |
14877 | 21.8k | if ( |
14878 | 21.8k | (a = expression_rule(p), !p->error_indicator) // expression? |
14879 | 21.1k | && |
14880 | 21.1k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
14881 | 5.51k | && |
14882 | 5.51k | (b = expression_rule(p), !p->error_indicator) // expression? |
14883 | 5.29k | && |
14884 | 5.29k | (c = _tmp_65_rule(p), !p->error_indicator) // [':' expression?] |
14885 | 21.8k | ) |
14886 | 5.22k | { |
14887 | 5.22k | D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]")); |
14888 | 5.22k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
14889 | 5.22k | if (_token == NULL) { |
14890 | 0 | p->level--; |
14891 | 0 | return NULL; |
14892 | 0 | } |
14893 | 5.22k | int _end_lineno = _token->end_lineno; |
14894 | 5.22k | UNUSED(_end_lineno); // Only used by EXTRA macro |
14895 | 5.22k | int _end_col_offset = _token->end_col_offset; |
14896 | 5.22k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
14897 | 5.22k | _res = _PyAST_Slice ( a , b , c , EXTRA ); |
14898 | 5.22k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14899 | 0 | p->error_indicator = 1; |
14900 | 0 | p->level--; |
14901 | 0 | return NULL; |
14902 | 0 | } |
14903 | 5.22k | goto done; |
14904 | 5.22k | } |
14905 | 16.6k | p->mark = _mark; |
14906 | 16.6k | D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ', |
14907 | 16.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]")); |
14908 | 16.6k | } |
14909 | 0 | { // named_expression |
14910 | 16.6k | if (p->error_indicator) { |
14911 | 994 | p->level--; |
14912 | 994 | return NULL; |
14913 | 994 | } |
14914 | 15.6k | D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression")); |
14915 | 15.6k | expr_ty a; |
14916 | 15.6k | if ( |
14917 | 15.6k | (a = named_expression_rule(p)) // named_expression |
14918 | 15.6k | ) |
14919 | 10.3k | { |
14920 | 10.3k | D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression")); |
14921 | 10.3k | _res = a; |
14922 | 10.3k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
14923 | 0 | p->error_indicator = 1; |
14924 | 0 | p->level--; |
14925 | 0 | return NULL; |
14926 | 0 | } |
14927 | 10.3k | goto done; |
14928 | 10.3k | } |
14929 | 5.31k | p->mark = _mark; |
14930 | 5.31k | D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ', |
14931 | 5.31k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression")); |
14932 | 5.31k | } |
14933 | 5.31k | _res = NULL; |
14934 | 20.8k | done: |
14935 | 20.8k | p->level--; |
14936 | 20.8k | return _res; |
14937 | 5.31k | } |
14938 | | |
14939 | | // atom: |
14940 | | // | NAME |
14941 | | // | 'True' |
14942 | | // | 'False' |
14943 | | // | 'None' |
14944 | | // | &(STRING | FSTRING_START | TSTRING_START) strings |
14945 | | // | NUMBER |
14946 | | // | &'(' (genexp | tuple | group) |
14947 | | // | &'[' (listcomp | list) |
14948 | | // | &'{' (dictcomp | setcomp | dict | set) |
14949 | | // | '...' |
14950 | | static expr_ty |
14951 | | atom_rule(Parser *p) |
14952 | 1.24M | { |
14953 | 1.24M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
14954 | 0 | _Pypegen_stack_overflow(p); |
14955 | 0 | } |
14956 | 1.24M | if (p->error_indicator) { |
14957 | 0 | p->level--; |
14958 | 0 | return NULL; |
14959 | 0 | } |
14960 | 1.24M | expr_ty _res = NULL; |
14961 | 1.24M | int _mark = p->mark; |
14962 | 1.24M | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
14963 | 0 | p->error_indicator = 1; |
14964 | 0 | p->level--; |
14965 | 0 | return NULL; |
14966 | 0 | } |
14967 | 1.24M | int _start_lineno = p->tokens[_mark]->lineno; |
14968 | 1.24M | UNUSED(_start_lineno); // Only used by EXTRA macro |
14969 | 1.24M | int _start_col_offset = p->tokens[_mark]->col_offset; |
14970 | 1.24M | UNUSED(_start_col_offset); // Only used by EXTRA macro |
14971 | 1.24M | { // NAME |
14972 | 1.24M | if (p->error_indicator) { |
14973 | 0 | p->level--; |
14974 | 0 | return NULL; |
14975 | 0 | } |
14976 | 1.24M | D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME")); |
14977 | 1.24M | expr_ty name_var; |
14978 | 1.24M | if ( |
14979 | 1.24M | (name_var = _PyPegen_name_token(p)) // NAME |
14980 | 1.24M | ) |
14981 | 415k | { |
14982 | 415k | D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME")); |
14983 | 415k | _res = name_var; |
14984 | 415k | goto done; |
14985 | 415k | } |
14986 | 828k | p->mark = _mark; |
14987 | 828k | D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', |
14988 | 828k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME")); |
14989 | 828k | } |
14990 | 0 | { // 'True' |
14991 | 828k | if (p->error_indicator) { |
14992 | 1 | p->level--; |
14993 | 1 | return NULL; |
14994 | 1 | } |
14995 | 828k | D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); |
14996 | 828k | Token * _keyword; |
14997 | 828k | if ( |
14998 | 828k | (_keyword = _PyPegen_expect_token(p, 527)) // token='True' |
14999 | 828k | ) |
15000 | 1.90k | { |
15001 | 1.90k | D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); |
15002 | 1.90k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
15003 | 1.90k | if (_token == NULL) { |
15004 | 0 | p->level--; |
15005 | 0 | return NULL; |
15006 | 0 | } |
15007 | 1.90k | int _end_lineno = _token->end_lineno; |
15008 | 1.90k | UNUSED(_end_lineno); // Only used by EXTRA macro |
15009 | 1.90k | int _end_col_offset = _token->end_col_offset; |
15010 | 1.90k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
15011 | 1.90k | _res = _PyAST_Constant ( Py_True , NULL , EXTRA ); |
15012 | 1.90k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15013 | 0 | p->error_indicator = 1; |
15014 | 0 | p->level--; |
15015 | 0 | return NULL; |
15016 | 0 | } |
15017 | 1.90k | goto done; |
15018 | 1.90k | } |
15019 | 826k | p->mark = _mark; |
15020 | 826k | D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', |
15021 | 826k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); |
15022 | 826k | } |
15023 | 0 | { // 'False' |
15024 | 826k | if (p->error_indicator) { |
15025 | 0 | p->level--; |
15026 | 0 | return NULL; |
15027 | 0 | } |
15028 | 826k | D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); |
15029 | 826k | Token * _keyword; |
15030 | 826k | if ( |
15031 | 826k | (_keyword = _PyPegen_expect_token(p, 528)) // token='False' |
15032 | 826k | ) |
15033 | 1.41k | { |
15034 | 1.41k | D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); |
15035 | 1.41k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
15036 | 1.41k | if (_token == NULL) { |
15037 | 0 | p->level--; |
15038 | 0 | return NULL; |
15039 | 0 | } |
15040 | 1.41k | int _end_lineno = _token->end_lineno; |
15041 | 1.41k | UNUSED(_end_lineno); // Only used by EXTRA macro |
15042 | 1.41k | int _end_col_offset = _token->end_col_offset; |
15043 | 1.41k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
15044 | 1.41k | _res = _PyAST_Constant ( Py_False , NULL , EXTRA ); |
15045 | 1.41k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15046 | 0 | p->error_indicator = 1; |
15047 | 0 | p->level--; |
15048 | 0 | return NULL; |
15049 | 0 | } |
15050 | 1.41k | goto done; |
15051 | 1.41k | } |
15052 | 824k | p->mark = _mark; |
15053 | 824k | D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', |
15054 | 824k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'")); |
15055 | 824k | } |
15056 | 0 | { // 'None' |
15057 | 824k | if (p->error_indicator) { |
15058 | 0 | p->level--; |
15059 | 0 | return NULL; |
15060 | 0 | } |
15061 | 824k | D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); |
15062 | 824k | Token * _keyword; |
15063 | 824k | if ( |
15064 | 824k | (_keyword = _PyPegen_expect_token(p, 526)) // token='None' |
15065 | 824k | ) |
15066 | 2.70k | { |
15067 | 2.70k | D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); |
15068 | 2.70k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
15069 | 2.70k | if (_token == NULL) { |
15070 | 0 | p->level--; |
15071 | 0 | return NULL; |
15072 | 0 | } |
15073 | 2.70k | int _end_lineno = _token->end_lineno; |
15074 | 2.70k | UNUSED(_end_lineno); // Only used by EXTRA macro |
15075 | 2.70k | int _end_col_offset = _token->end_col_offset; |
15076 | 2.70k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
15077 | 2.70k | _res = _PyAST_Constant ( Py_None , NULL , EXTRA ); |
15078 | 2.70k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15079 | 0 | p->error_indicator = 1; |
15080 | 0 | p->level--; |
15081 | 0 | return NULL; |
15082 | 0 | } |
15083 | 2.70k | goto done; |
15084 | 2.70k | } |
15085 | 822k | p->mark = _mark; |
15086 | 822k | D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', |
15087 | 822k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); |
15088 | 822k | } |
15089 | 0 | { // &(STRING | FSTRING_START | TSTRING_START) strings |
15090 | 822k | if (p->error_indicator) { |
15091 | 0 | p->level--; |
15092 | 0 | return NULL; |
15093 | 0 | } |
15094 | 822k | D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&(STRING | FSTRING_START | TSTRING_START) strings")); |
15095 | 822k | expr_ty strings_var; |
15096 | 822k | if ( |
15097 | 822k | _PyPegen_lookahead(1, _tmp_42_rule, p) |
15098 | 66.4k | && |
15099 | 66.4k | (strings_var = strings_rule(p)) // strings |
15100 | 822k | ) |
15101 | 56.8k | { |
15102 | 56.8k | D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&(STRING | FSTRING_START | TSTRING_START) strings")); |
15103 | 56.8k | _res = strings_var; |
15104 | 56.8k | goto done; |
15105 | 56.8k | } |
15106 | 765k | p->mark = _mark; |
15107 | 765k | D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', |
15108 | 765k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&(STRING | FSTRING_START | TSTRING_START) strings")); |
15109 | 765k | } |
15110 | 0 | { // NUMBER |
15111 | 765k | if (p->error_indicator) { |
15112 | 7.37k | p->level--; |
15113 | 7.37k | return NULL; |
15114 | 7.37k | } |
15115 | 757k | D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER")); |
15116 | 757k | expr_ty number_var; |
15117 | 757k | if ( |
15118 | 757k | (number_var = _PyPegen_number_token(p)) // NUMBER |
15119 | 757k | ) |
15120 | 178k | { |
15121 | 178k | D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER")); |
15122 | 178k | _res = number_var; |
15123 | 178k | goto done; |
15124 | 178k | } |
15125 | 579k | p->mark = _mark; |
15126 | 579k | D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', |
15127 | 579k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER")); |
15128 | 579k | } |
15129 | 0 | { // &'(' (genexp | tuple | group) |
15130 | 579k | if (p->error_indicator) { |
15131 | 0 | p->level--; |
15132 | 0 | return NULL; |
15133 | 0 | } |
15134 | 579k | D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (genexp | tuple | group)")); |
15135 | 579k | void *_tmp_66_var; |
15136 | 579k | if ( |
15137 | 579k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='(' |
15138 | 65.1k | && |
15139 | 65.1k | (_tmp_66_var = _tmp_66_rule(p)) // genexp | tuple | group |
15140 | 579k | ) |
15141 | 42.4k | { |
15142 | 42.4k | D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (genexp | tuple | group)")); |
15143 | 42.4k | _res = _tmp_66_var; |
15144 | 42.4k | goto done; |
15145 | 42.4k | } |
15146 | 537k | p->mark = _mark; |
15147 | 537k | D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', |
15148 | 537k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (genexp | tuple | group)")); |
15149 | 537k | } |
15150 | 0 | { // &'[' (listcomp | list) |
15151 | 537k | if (p->error_indicator) { |
15152 | 6.94k | p->level--; |
15153 | 6.94k | return NULL; |
15154 | 6.94k | } |
15155 | 530k | D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (listcomp | list)")); |
15156 | 530k | void *_tmp_67_var; |
15157 | 530k | if ( |
15158 | 530k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='[' |
15159 | 44.0k | && |
15160 | 44.0k | (_tmp_67_var = _tmp_67_rule(p)) // listcomp | list |
15161 | 530k | ) |
15162 | 8.85k | { |
15163 | 8.85k | D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (listcomp | list)")); |
15164 | 8.85k | _res = _tmp_67_var; |
15165 | 8.85k | goto done; |
15166 | 8.85k | } |
15167 | 521k | p->mark = _mark; |
15168 | 521k | D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', |
15169 | 521k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (listcomp | list)")); |
15170 | 521k | } |
15171 | 0 | { // &'{' (dictcomp | setcomp | dict | set) |
15172 | 521k | if (p->error_indicator) { |
15173 | 16.1k | p->level--; |
15174 | 16.1k | return NULL; |
15175 | 16.1k | } |
15176 | 505k | D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dictcomp | setcomp | dict | set)")); |
15177 | 505k | void *_tmp_68_var; |
15178 | 505k | if ( |
15179 | 505k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{' |
15180 | 25.1k | && |
15181 | 25.1k | (_tmp_68_var = _tmp_68_rule(p)) // dictcomp | setcomp | dict | set |
15182 | 505k | ) |
15183 | 8.48k | { |
15184 | 8.48k | D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dictcomp | setcomp | dict | set)")); |
15185 | 8.48k | _res = _tmp_68_var; |
15186 | 8.48k | goto done; |
15187 | 8.48k | } |
15188 | 496k | p->mark = _mark; |
15189 | 496k | D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', |
15190 | 496k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dictcomp | setcomp | dict | set)")); |
15191 | 496k | } |
15192 | 0 | { // '...' |
15193 | 496k | if (p->error_indicator) { |
15194 | 6.64k | p->level--; |
15195 | 6.64k | return NULL; |
15196 | 6.64k | } |
15197 | 490k | D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); |
15198 | 490k | Token * _literal; |
15199 | 490k | if ( |
15200 | 490k | (_literal = _PyPegen_expect_token(p, 52)) // token='...' |
15201 | 490k | ) |
15202 | 946 | { |
15203 | 946 | D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); |
15204 | 946 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
15205 | 946 | if (_token == NULL) { |
15206 | 0 | p->level--; |
15207 | 0 | return NULL; |
15208 | 0 | } |
15209 | 946 | int _end_lineno = _token->end_lineno; |
15210 | 946 | UNUSED(_end_lineno); // Only used by EXTRA macro |
15211 | 946 | int _end_col_offset = _token->end_col_offset; |
15212 | 946 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
15213 | 946 | _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA ); |
15214 | 946 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15215 | 0 | p->error_indicator = 1; |
15216 | 0 | p->level--; |
15217 | 0 | return NULL; |
15218 | 0 | } |
15219 | 946 | goto done; |
15220 | 946 | } |
15221 | 489k | p->mark = _mark; |
15222 | 489k | D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', |
15223 | 489k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); |
15224 | 489k | } |
15225 | 489k | _res = NULL; |
15226 | 1.20M | done: |
15227 | 1.20M | p->level--; |
15228 | 1.20M | return _res; |
15229 | 489k | } |
15230 | | |
15231 | | // group: '(' (yield_expr | named_expression) ')' | invalid_group |
15232 | | static expr_ty |
15233 | | group_rule(Parser *p) |
15234 | 23.7k | { |
15235 | 23.7k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
15236 | 0 | _Pypegen_stack_overflow(p); |
15237 | 0 | } |
15238 | 23.7k | if (p->error_indicator) { |
15239 | 0 | p->level--; |
15240 | 0 | return NULL; |
15241 | 0 | } |
15242 | 23.7k | expr_ty _res = NULL; |
15243 | 23.7k | int _mark = p->mark; |
15244 | 23.7k | { // '(' (yield_expr | named_expression) ')' |
15245 | 23.7k | if (p->error_indicator) { |
15246 | 0 | p->level--; |
15247 | 0 | return NULL; |
15248 | 0 | } |
15249 | 23.7k | D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'")); |
15250 | 23.7k | Token * _literal; |
15251 | 23.7k | Token * _literal_1; |
15252 | 23.7k | void *a; |
15253 | 23.7k | if ( |
15254 | 23.7k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
15255 | 23.7k | && |
15256 | 23.7k | (a = _tmp_69_rule(p)) // yield_expr | named_expression |
15257 | 17.2k | && |
15258 | 17.2k | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
15259 | 23.7k | ) |
15260 | 7.71k | { |
15261 | 7.71k | D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'")); |
15262 | 7.71k | _res = a; |
15263 | 7.71k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15264 | 0 | p->error_indicator = 1; |
15265 | 0 | p->level--; |
15266 | 0 | return NULL; |
15267 | 0 | } |
15268 | 7.71k | goto done; |
15269 | 7.71k | } |
15270 | 16.0k | p->mark = _mark; |
15271 | 16.0k | D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ', |
15272 | 16.0k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'")); |
15273 | 16.0k | } |
15274 | 16.0k | if (p->call_invalid_rules) { // invalid_group |
15275 | 5.29k | if (p->error_indicator) { |
15276 | 238 | p->level--; |
15277 | 238 | return NULL; |
15278 | 238 | } |
15279 | 5.05k | D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group")); |
15280 | 5.05k | void *invalid_group_var; |
15281 | 5.05k | if ( |
15282 | 5.05k | (invalid_group_var = invalid_group_rule(p)) // invalid_group |
15283 | 5.05k | ) |
15284 | 0 | { |
15285 | 0 | D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group")); |
15286 | 0 | _res = invalid_group_var; |
15287 | 0 | goto done; |
15288 | 0 | } |
15289 | 5.05k | p->mark = _mark; |
15290 | 5.05k | D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ', |
15291 | 5.05k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group")); |
15292 | 5.05k | } |
15293 | 15.7k | _res = NULL; |
15294 | 23.4k | done: |
15295 | 23.4k | p->level--; |
15296 | 23.4k | return _res; |
15297 | 15.7k | } |
15298 | | |
15299 | | // lambdef: 'lambda' lambda_params? ':' expression |
15300 | | Py_LOCAL_SYMBOL expr_ty |
15301 | | lambdef_rule(Parser *p) |
15302 | 519k | { |
15303 | 519k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
15304 | 0 | _Pypegen_stack_overflow(p); |
15305 | 0 | } |
15306 | 519k | if (p->error_indicator) { |
15307 | 0 | p->level--; |
15308 | 0 | return NULL; |
15309 | 0 | } |
15310 | 519k | expr_ty _res = NULL; |
15311 | 519k | int _mark = p->mark; |
15312 | 519k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
15313 | 0 | p->error_indicator = 1; |
15314 | 0 | p->level--; |
15315 | 0 | return NULL; |
15316 | 0 | } |
15317 | 519k | int _start_lineno = p->tokens[_mark]->lineno; |
15318 | 519k | UNUSED(_start_lineno); // Only used by EXTRA macro |
15319 | 519k | int _start_col_offset = p->tokens[_mark]->col_offset; |
15320 | 519k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
15321 | 519k | { // 'lambda' lambda_params? ':' expression |
15322 | 519k | if (p->error_indicator) { |
15323 | 0 | p->level--; |
15324 | 0 | return NULL; |
15325 | 0 | } |
15326 | 519k | D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression")); |
15327 | 519k | Token * _keyword; |
15328 | 519k | Token * _literal; |
15329 | 519k | void *a; |
15330 | 519k | expr_ty b; |
15331 | 519k | if ( |
15332 | 519k | (_keyword = _PyPegen_expect_token(p, 534)) // token='lambda' |
15333 | 113k | && |
15334 | 113k | (a = lambda_params_rule(p), !p->error_indicator) // lambda_params? |
15335 | 112k | && |
15336 | 112k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
15337 | 109k | && |
15338 | 109k | (b = expression_rule(p)) // expression |
15339 | 519k | ) |
15340 | 3.31k | { |
15341 | 3.31k | D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression")); |
15342 | 3.31k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
15343 | 3.31k | if (_token == NULL) { |
15344 | 0 | p->level--; |
15345 | 0 | return NULL; |
15346 | 0 | } |
15347 | 3.31k | int _end_lineno = _token->end_lineno; |
15348 | 3.31k | UNUSED(_end_lineno); // Only used by EXTRA macro |
15349 | 3.31k | int _end_col_offset = _token->end_col_offset; |
15350 | 3.31k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
15351 | 3.31k | _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA ); |
15352 | 3.31k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15353 | 0 | p->error_indicator = 1; |
15354 | 0 | p->level--; |
15355 | 0 | return NULL; |
15356 | 0 | } |
15357 | 3.31k | goto done; |
15358 | 3.31k | } |
15359 | 516k | p->mark = _mark; |
15360 | 516k | D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ', |
15361 | 516k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression")); |
15362 | 516k | } |
15363 | 516k | _res = NULL; |
15364 | 519k | done: |
15365 | 519k | p->level--; |
15366 | 519k | return _res; |
15367 | 516k | } |
15368 | | |
15369 | | // lambda_params: invalid_lambda_parameters | lambda_parameters |
15370 | | Py_LOCAL_SYMBOL arguments_ty |
15371 | | lambda_params_rule(Parser *p) |
15372 | 224k | { |
15373 | 224k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
15374 | 0 | _Pypegen_stack_overflow(p); |
15375 | 0 | } |
15376 | 224k | if (p->error_indicator) { |
15377 | 0 | p->level--; |
15378 | 0 | return NULL; |
15379 | 0 | } |
15380 | 224k | arguments_ty _res = NULL; |
15381 | 224k | int _mark = p->mark; |
15382 | 224k | if (p->call_invalid_rules) { // invalid_lambda_parameters |
15383 | 166k | if (p->error_indicator) { |
15384 | 0 | p->level--; |
15385 | 0 | return NULL; |
15386 | 0 | } |
15387 | 166k | D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters")); |
15388 | 166k | void *invalid_lambda_parameters_var; |
15389 | 166k | if ( |
15390 | 166k | (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters |
15391 | 166k | ) |
15392 | 0 | { |
15393 | 0 | D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters")); |
15394 | 0 | _res = invalid_lambda_parameters_var; |
15395 | 0 | goto done; |
15396 | 0 | } |
15397 | 166k | p->mark = _mark; |
15398 | 166k | D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ', |
15399 | 166k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters")); |
15400 | 166k | } |
15401 | 224k | { // lambda_parameters |
15402 | 224k | if (p->error_indicator) { |
15403 | 928 | p->level--; |
15404 | 928 | return NULL; |
15405 | 928 | } |
15406 | 223k | D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters")); |
15407 | 223k | arguments_ty lambda_parameters_var; |
15408 | 223k | if ( |
15409 | 223k | (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters |
15410 | 223k | ) |
15411 | 217k | { |
15412 | 217k | D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters")); |
15413 | 217k | _res = lambda_parameters_var; |
15414 | 217k | goto done; |
15415 | 217k | } |
15416 | 6.06k | p->mark = _mark; |
15417 | 6.06k | D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ', |
15418 | 6.06k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters")); |
15419 | 6.06k | } |
15420 | 6.06k | _res = NULL; |
15421 | 223k | done: |
15422 | 223k | p->level--; |
15423 | 223k | return _res; |
15424 | 6.06k | } |
15425 | | |
15426 | | // lambda_parameters: |
15427 | | // | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc? |
15428 | | // | lambda_slash_with_default lambda_param_with_default* lambda_star_etc? |
15429 | | // | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc? |
15430 | | // | lambda_param_with_default+ lambda_star_etc? |
15431 | | // | lambda_star_etc |
15432 | | static arguments_ty |
15433 | | lambda_parameters_rule(Parser *p) |
15434 | 223k | { |
15435 | 223k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
15436 | 0 | _Pypegen_stack_overflow(p); |
15437 | 0 | } |
15438 | 223k | if (p->error_indicator) { |
15439 | 0 | p->level--; |
15440 | 0 | return NULL; |
15441 | 0 | } |
15442 | 223k | arguments_ty _res = NULL; |
15443 | 223k | int _mark = p->mark; |
15444 | 223k | { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc? |
15445 | 223k | if (p->error_indicator) { |
15446 | 0 | p->level--; |
15447 | 0 | return NULL; |
15448 | 0 | } |
15449 | 223k | D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?")); |
15450 | 223k | asdl_arg_seq* a; |
15451 | 223k | asdl_arg_seq* b; |
15452 | 223k | asdl_seq * c; |
15453 | 223k | void *d; |
15454 | 223k | if ( |
15455 | 223k | (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default |
15456 | 793 | && |
15457 | 793 | (b = (asdl_arg_seq*)_loop0_70_rule(p)) // lambda_param_no_default* |
15458 | 793 | && |
15459 | 793 | (c = _loop0_71_rule(p)) // lambda_param_with_default* |
15460 | 792 | && |
15461 | 792 | (d = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc? |
15462 | 223k | ) |
15463 | 655 | { |
15464 | 655 | D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?")); |
15465 | 655 | _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , a , NULL , b , c , d ) ); |
15466 | 655 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15467 | 0 | p->error_indicator = 1; |
15468 | 0 | p->level--; |
15469 | 0 | return NULL; |
15470 | 0 | } |
15471 | 655 | goto done; |
15472 | 655 | } |
15473 | 223k | p->mark = _mark; |
15474 | 223k | D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ', |
15475 | 223k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?")); |
15476 | 223k | } |
15477 | 0 | { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc? |
15478 | 223k | if (p->error_indicator) { |
15479 | 155 | p->level--; |
15480 | 155 | return NULL; |
15481 | 155 | } |
15482 | 223k | D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?")); |
15483 | 223k | SlashWithDefault* a; |
15484 | 223k | asdl_seq * b; |
15485 | 223k | void *c; |
15486 | 223k | if ( |
15487 | 223k | (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default |
15488 | 1.42k | && |
15489 | 1.42k | (b = _loop0_71_rule(p)) // lambda_param_with_default* |
15490 | 1.42k | && |
15491 | 1.42k | (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc? |
15492 | 223k | ) |
15493 | 1.26k | { |
15494 | 1.26k | D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?")); |
15495 | 1.26k | _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , NULL , a , NULL , b , c ) ); |
15496 | 1.26k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15497 | 0 | p->error_indicator = 1; |
15498 | 0 | p->level--; |
15499 | 0 | return NULL; |
15500 | 0 | } |
15501 | 1.26k | goto done; |
15502 | 1.26k | } |
15503 | 221k | p->mark = _mark; |
15504 | 221k | D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ', |
15505 | 221k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?")); |
15506 | 221k | } |
15507 | 0 | { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc? |
15508 | 221k | if (p->error_indicator) { |
15509 | 436 | p->level--; |
15510 | 436 | return NULL; |
15511 | 436 | } |
15512 | 221k | D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?")); |
15513 | 221k | asdl_arg_seq* a; |
15514 | 221k | asdl_seq * b; |
15515 | 221k | void *c; |
15516 | 221k | if ( |
15517 | 221k | (a = (asdl_arg_seq*)_loop1_72_rule(p)) // lambda_param_no_default+ |
15518 | 212k | && |
15519 | 212k | (b = _loop0_71_rule(p)) // lambda_param_with_default* |
15520 | 212k | && |
15521 | 212k | (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc? |
15522 | 221k | ) |
15523 | 211k | { |
15524 | 211k | D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?")); |
15525 | 211k | _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c ); |
15526 | 211k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15527 | 0 | p->error_indicator = 1; |
15528 | 0 | p->level--; |
15529 | 0 | return NULL; |
15530 | 0 | } |
15531 | 211k | goto done; |
15532 | 211k | } |
15533 | 9.44k | p->mark = _mark; |
15534 | 9.44k | D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ', |
15535 | 9.44k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?")); |
15536 | 9.44k | } |
15537 | 0 | { // lambda_param_with_default+ lambda_star_etc? |
15538 | 9.44k | if (p->error_indicator) { |
15539 | 104 | p->level--; |
15540 | 104 | return NULL; |
15541 | 104 | } |
15542 | 9.34k | D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?")); |
15543 | 9.34k | asdl_seq * a; |
15544 | 9.34k | void *b; |
15545 | 9.34k | if ( |
15546 | 9.34k | (a = _loop1_73_rule(p)) // lambda_param_with_default+ |
15547 | 1.54k | && |
15548 | 1.54k | (b = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc? |
15549 | 9.34k | ) |
15550 | 1.51k | { |
15551 | 1.51k | D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?")); |
15552 | 1.51k | _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b ); |
15553 | 1.51k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15554 | 0 | p->error_indicator = 1; |
15555 | 0 | p->level--; |
15556 | 0 | return NULL; |
15557 | 0 | } |
15558 | 1.51k | goto done; |
15559 | 1.51k | } |
15560 | 7.82k | p->mark = _mark; |
15561 | 7.82k | D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ', |
15562 | 7.82k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?")); |
15563 | 7.82k | } |
15564 | 0 | { // lambda_star_etc |
15565 | 7.82k | if (p->error_indicator) { |
15566 | 29 | p->level--; |
15567 | 29 | return NULL; |
15568 | 29 | } |
15569 | 7.79k | D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc")); |
15570 | 7.79k | StarEtc* a; |
15571 | 7.79k | if ( |
15572 | 7.79k | (a = lambda_star_etc_rule(p)) // lambda_star_etc |
15573 | 7.79k | ) |
15574 | 2.45k | { |
15575 | 2.45k | D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc")); |
15576 | 2.45k | _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a ); |
15577 | 2.45k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15578 | 0 | p->error_indicator = 1; |
15579 | 0 | p->level--; |
15580 | 0 | return NULL; |
15581 | 0 | } |
15582 | 2.45k | goto done; |
15583 | 2.45k | } |
15584 | 5.34k | p->mark = _mark; |
15585 | 5.34k | D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ', |
15586 | 5.34k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc")); |
15587 | 5.34k | } |
15588 | 5.34k | _res = NULL; |
15589 | 223k | done: |
15590 | 223k | p->level--; |
15591 | 223k | return _res; |
15592 | 5.34k | } |
15593 | | |
15594 | | // lambda_slash_no_default: |
15595 | | // | lambda_param_no_default+ '/' ',' |
15596 | | // | lambda_param_no_default+ '/' &':' |
15597 | | Py_LOCAL_SYMBOL asdl_arg_seq* |
15598 | | lambda_slash_no_default_rule(Parser *p) |
15599 | 721k | { |
15600 | 721k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
15601 | 0 | _Pypegen_stack_overflow(p); |
15602 | 0 | } |
15603 | 721k | if (p->error_indicator) { |
15604 | 0 | p->level--; |
15605 | 0 | return NULL; |
15606 | 0 | } |
15607 | 721k | asdl_arg_seq* _res = NULL; |
15608 | 721k | int _mark = p->mark; |
15609 | 721k | { // lambda_param_no_default+ '/' ',' |
15610 | 721k | if (p->error_indicator) { |
15611 | 0 | p->level--; |
15612 | 0 | return NULL; |
15613 | 0 | } |
15614 | 721k | D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','")); |
15615 | 721k | Token * _literal; |
15616 | 721k | Token * _literal_1; |
15617 | 721k | asdl_arg_seq* a; |
15618 | 721k | if ( |
15619 | 721k | (a = (asdl_arg_seq*)_loop1_72_rule(p)) // lambda_param_no_default+ |
15620 | 691k | && |
15621 | 691k | (_literal = _PyPegen_expect_token(p, 17)) // token='/' |
15622 | 2.25k | && |
15623 | 2.25k | (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' |
15624 | 721k | ) |
15625 | 1.72k | { |
15626 | 1.72k | D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','")); |
15627 | 1.72k | _res = a; |
15628 | 1.72k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15629 | 0 | p->error_indicator = 1; |
15630 | 0 | p->level--; |
15631 | 0 | return NULL; |
15632 | 0 | } |
15633 | 1.72k | goto done; |
15634 | 1.72k | } |
15635 | 720k | p->mark = _mark; |
15636 | 720k | D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ', |
15637 | 720k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','")); |
15638 | 720k | } |
15639 | 0 | { // lambda_param_no_default+ '/' &':' |
15640 | 720k | if (p->error_indicator) { |
15641 | 19 | p->level--; |
15642 | 19 | return NULL; |
15643 | 19 | } |
15644 | 720k | D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'")); |
15645 | 720k | Token * _literal; |
15646 | 720k | asdl_arg_seq* a; |
15647 | 720k | if ( |
15648 | 720k | (a = (asdl_arg_seq*)_loop1_72_rule(p)) // lambda_param_no_default+ |
15649 | 689k | && |
15650 | 689k | (_literal = _PyPegen_expect_token(p, 17)) // token='/' |
15651 | 529 | && |
15652 | 529 | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':' |
15653 | 720k | ) |
15654 | 467 | { |
15655 | 467 | D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'")); |
15656 | 467 | _res = a; |
15657 | 467 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15658 | 0 | p->error_indicator = 1; |
15659 | 0 | p->level--; |
15660 | 0 | return NULL; |
15661 | 0 | } |
15662 | 467 | goto done; |
15663 | 467 | } |
15664 | 719k | p->mark = _mark; |
15665 | 719k | D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ', |
15666 | 719k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'")); |
15667 | 719k | } |
15668 | 719k | _res = NULL; |
15669 | 721k | done: |
15670 | 721k | p->level--; |
15671 | 721k | return _res; |
15672 | 719k | } |
15673 | | |
15674 | | // lambda_slash_with_default: |
15675 | | // | lambda_param_no_default* lambda_param_with_default+ '/' ',' |
15676 | | // | lambda_param_no_default* lambda_param_with_default+ '/' &':' |
15677 | | Py_LOCAL_SYMBOL SlashWithDefault* |
15678 | | lambda_slash_with_default_rule(Parser *p) |
15679 | 720k | { |
15680 | 720k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
15681 | 0 | _Pypegen_stack_overflow(p); |
15682 | 0 | } |
15683 | 720k | if (p->error_indicator) { |
15684 | 0 | p->level--; |
15685 | 0 | return NULL; |
15686 | 0 | } |
15687 | 720k | SlashWithDefault* _res = NULL; |
15688 | 720k | int _mark = p->mark; |
15689 | 720k | { // lambda_param_no_default* lambda_param_with_default+ '/' ',' |
15690 | 720k | if (p->error_indicator) { |
15691 | 0 | p->level--; |
15692 | 0 | return NULL; |
15693 | 0 | } |
15694 | 720k | D(fprintf(stderr, "%*c> lambda_slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','")); |
15695 | 720k | Token * _literal; |
15696 | 720k | Token * _literal_1; |
15697 | 720k | asdl_seq * a; |
15698 | 720k | asdl_seq * b; |
15699 | 720k | if ( |
15700 | 720k | (a = _loop0_70_rule(p)) // lambda_param_no_default* |
15701 | 720k | && |
15702 | 720k | (b = _loop1_73_rule(p)) // lambda_param_with_default+ |
15703 | 8.76k | && |
15704 | 8.76k | (_literal = _PyPegen_expect_token(p, 17)) // token='/' |
15705 | 4.07k | && |
15706 | 4.07k | (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' |
15707 | 720k | ) |
15708 | 2.03k | { |
15709 | 2.03k | D(fprintf(stderr, "%*c+ lambda_slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','")); |
15710 | 2.03k | _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq* ) a , b ); |
15711 | 2.03k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15712 | 0 | p->error_indicator = 1; |
15713 | 0 | p->level--; |
15714 | 0 | return NULL; |
15715 | 0 | } |
15716 | 2.03k | goto done; |
15717 | 2.03k | } |
15718 | 718k | p->mark = _mark; |
15719 | 718k | D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ', |
15720 | 718k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','")); |
15721 | 718k | } |
15722 | 0 | { // lambda_param_no_default* lambda_param_with_default+ '/' &':' |
15723 | 718k | if (p->error_indicator) { |
15724 | 743 | p->level--; |
15725 | 743 | return NULL; |
15726 | 743 | } |
15727 | 717k | D(fprintf(stderr, "%*c> lambda_slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'")); |
15728 | 717k | Token * _literal; |
15729 | 717k | asdl_seq * a; |
15730 | 717k | asdl_seq * b; |
15731 | 717k | if ( |
15732 | 717k | (a = _loop0_70_rule(p)) // lambda_param_no_default* |
15733 | 717k | && |
15734 | 717k | (b = _loop1_73_rule(p)) // lambda_param_with_default+ |
15735 | 6.73k | && |
15736 | 6.73k | (_literal = _PyPegen_expect_token(p, 17)) // token='/' |
15737 | 2.03k | && |
15738 | 2.03k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':' |
15739 | 717k | ) |
15740 | 2.01k | { |
15741 | 2.01k | D(fprintf(stderr, "%*c+ lambda_slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'")); |
15742 | 2.01k | _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq* ) a , b ); |
15743 | 2.01k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15744 | 0 | p->error_indicator = 1; |
15745 | 0 | p->level--; |
15746 | 0 | return NULL; |
15747 | 0 | } |
15748 | 2.01k | goto done; |
15749 | 2.01k | } |
15750 | 715k | p->mark = _mark; |
15751 | 715k | D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ', |
15752 | 715k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'")); |
15753 | 715k | } |
15754 | 715k | _res = NULL; |
15755 | 719k | done: |
15756 | 719k | p->level--; |
15757 | 719k | return _res; |
15758 | 715k | } |
15759 | | |
15760 | | // lambda_star_etc: |
15761 | | // | invalid_lambda_star_etc |
15762 | | // | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds? |
15763 | | // | '*' ',' lambda_param_maybe_default+ lambda_kwds? |
15764 | | // | lambda_kwds |
15765 | | static StarEtc* |
15766 | | lambda_star_etc_rule(Parser *p) |
15767 | 223k | { |
15768 | 223k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
15769 | 0 | _Pypegen_stack_overflow(p); |
15770 | 0 | } |
15771 | 223k | if (p->error_indicator) { |
15772 | 288 | p->level--; |
15773 | 288 | return NULL; |
15774 | 288 | } |
15775 | 223k | StarEtc* _res = NULL; |
15776 | 223k | int _mark = p->mark; |
15777 | 223k | if (p->call_invalid_rules) { // invalid_lambda_star_etc |
15778 | 165k | if (p->error_indicator) { |
15779 | 0 | p->level--; |
15780 | 0 | return NULL; |
15781 | 0 | } |
15782 | 165k | D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc")); |
15783 | 165k | void *invalid_lambda_star_etc_var; |
15784 | 165k | if ( |
15785 | 165k | (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc |
15786 | 165k | ) |
15787 | 0 | { |
15788 | 0 | D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc")); |
15789 | 0 | _res = invalid_lambda_star_etc_var; |
15790 | 0 | goto done; |
15791 | 0 | } |
15792 | 165k | p->mark = _mark; |
15793 | 165k | D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ', |
15794 | 165k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc")); |
15795 | 165k | } |
15796 | 223k | { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds? |
15797 | 223k | if (p->error_indicator) { |
15798 | 19 | p->level--; |
15799 | 19 | return NULL; |
15800 | 19 | } |
15801 | 223k | D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?")); |
15802 | 223k | Token * _literal; |
15803 | 223k | arg_ty a; |
15804 | 223k | asdl_seq * b; |
15805 | 223k | void *c; |
15806 | 223k | if ( |
15807 | 223k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
15808 | 4.81k | && |
15809 | 4.81k | (a = lambda_param_no_default_rule(p)) // lambda_param_no_default |
15810 | 2.04k | && |
15811 | 2.04k | (b = _loop0_74_rule(p)) // lambda_param_maybe_default* |
15812 | 2.04k | && |
15813 | 2.04k | (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds? |
15814 | 223k | ) |
15815 | 1.83k | { |
15816 | 1.83k | D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?")); |
15817 | 1.83k | _res = _PyPegen_star_etc ( p , a , b , c ); |
15818 | 1.83k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15819 | 0 | p->error_indicator = 1; |
15820 | 0 | p->level--; |
15821 | 0 | return NULL; |
15822 | 0 | } |
15823 | 1.83k | goto done; |
15824 | 1.83k | } |
15825 | 221k | p->mark = _mark; |
15826 | 221k | D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ', |
15827 | 221k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?")); |
15828 | 221k | } |
15829 | 0 | { // '*' ',' lambda_param_maybe_default+ lambda_kwds? |
15830 | 221k | if (p->error_indicator) { |
15831 | 220 | p->level--; |
15832 | 220 | return NULL; |
15833 | 220 | } |
15834 | 221k | D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?")); |
15835 | 221k | Token * _literal; |
15836 | 221k | Token * _literal_1; |
15837 | 221k | asdl_seq * b; |
15838 | 221k | void *c; |
15839 | 221k | if ( |
15840 | 221k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
15841 | 2.75k | && |
15842 | 2.75k | (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' |
15843 | 2.22k | && |
15844 | 2.22k | (b = _loop1_75_rule(p)) // lambda_param_maybe_default+ |
15845 | 348 | && |
15846 | 348 | (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds? |
15847 | 221k | ) |
15848 | 347 | { |
15849 | 347 | D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?")); |
15850 | 347 | _res = _PyPegen_star_etc ( p , NULL , b , c ); |
15851 | 347 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15852 | 0 | p->error_indicator = 1; |
15853 | 0 | p->level--; |
15854 | 0 | return NULL; |
15855 | 0 | } |
15856 | 347 | goto done; |
15857 | 347 | } |
15858 | 220k | p->mark = _mark; |
15859 | 220k | D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ', |
15860 | 220k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?")); |
15861 | 220k | } |
15862 | 0 | { // lambda_kwds |
15863 | 220k | if (p->error_indicator) { |
15864 | 305 | p->level--; |
15865 | 305 | return NULL; |
15866 | 305 | } |
15867 | 220k | D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds")); |
15868 | 220k | arg_ty a; |
15869 | 220k | if ( |
15870 | 220k | (a = lambda_kwds_rule(p)) // lambda_kwds |
15871 | 220k | ) |
15872 | 547 | { |
15873 | 547 | D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds")); |
15874 | 547 | _res = _PyPegen_star_etc ( p , NULL , NULL , a ); |
15875 | 547 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15876 | 0 | p->error_indicator = 1; |
15877 | 0 | p->level--; |
15878 | 0 | return NULL; |
15879 | 0 | } |
15880 | 547 | goto done; |
15881 | 547 | } |
15882 | 220k | p->mark = _mark; |
15883 | 220k | D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ', |
15884 | 220k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds")); |
15885 | 220k | } |
15886 | 220k | _res = NULL; |
15887 | 222k | done: |
15888 | 222k | p->level--; |
15889 | 222k | return _res; |
15890 | 220k | } |
15891 | | |
15892 | | // lambda_kwds: invalid_lambda_kwds | '**' lambda_param_no_default |
15893 | | static arg_ty |
15894 | | lambda_kwds_rule(Parser *p) |
15895 | 222k | { |
15896 | 222k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
15897 | 0 | _Pypegen_stack_overflow(p); |
15898 | 0 | } |
15899 | 222k | if (p->error_indicator) { |
15900 | 212 | p->level--; |
15901 | 212 | return NULL; |
15902 | 212 | } |
15903 | 222k | arg_ty _res = NULL; |
15904 | 222k | int _mark = p->mark; |
15905 | 222k | if (p->call_invalid_rules) { // invalid_lambda_kwds |
15906 | 165k | if (p->error_indicator) { |
15907 | 0 | p->level--; |
15908 | 0 | return NULL; |
15909 | 0 | } |
15910 | 165k | D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_kwds")); |
15911 | 165k | void *invalid_lambda_kwds_var; |
15912 | 165k | if ( |
15913 | 165k | (invalid_lambda_kwds_var = invalid_lambda_kwds_rule(p)) // invalid_lambda_kwds |
15914 | 165k | ) |
15915 | 0 | { |
15916 | 0 | D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_kwds")); |
15917 | 0 | _res = invalid_lambda_kwds_var; |
15918 | 0 | goto done; |
15919 | 0 | } |
15920 | 165k | p->mark = _mark; |
15921 | 165k | D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ', |
15922 | 165k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_kwds")); |
15923 | 165k | } |
15924 | 222k | { // '**' lambda_param_no_default |
15925 | 222k | if (p->error_indicator) { |
15926 | 9 | p->level--; |
15927 | 9 | return NULL; |
15928 | 9 | } |
15929 | 222k | D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default")); |
15930 | 222k | Token * _literal; |
15931 | 222k | arg_ty a; |
15932 | 222k | if ( |
15933 | 222k | (_literal = _PyPegen_expect_token(p, 35)) // token='**' |
15934 | 577 | && |
15935 | 577 | (a = lambda_param_no_default_rule(p)) // lambda_param_no_default |
15936 | 222k | ) |
15937 | 549 | { |
15938 | 549 | D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default")); |
15939 | 549 | _res = a; |
15940 | 549 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15941 | 0 | p->error_indicator = 1; |
15942 | 0 | p->level--; |
15943 | 0 | return NULL; |
15944 | 0 | } |
15945 | 549 | goto done; |
15946 | 549 | } |
15947 | 222k | p->mark = _mark; |
15948 | 222k | D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ', |
15949 | 222k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default")); |
15950 | 222k | } |
15951 | 222k | _res = NULL; |
15952 | 222k | done: |
15953 | 222k | p->level--; |
15954 | 222k | return _res; |
15955 | 222k | } |
15956 | | |
15957 | | // lambda_param_no_default: lambda_param ',' | lambda_param &':' |
15958 | | Py_LOCAL_SYMBOL arg_ty |
15959 | | lambda_param_no_default_rule(Parser *p) |
15960 | 6.51M | { |
15961 | 6.51M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
15962 | 0 | _Pypegen_stack_overflow(p); |
15963 | 0 | } |
15964 | 6.51M | if (p->error_indicator) { |
15965 | 0 | p->level--; |
15966 | 0 | return NULL; |
15967 | 0 | } |
15968 | 6.51M | arg_ty _res = NULL; |
15969 | 6.51M | int _mark = p->mark; |
15970 | 6.51M | { // lambda_param ',' |
15971 | 6.51M | if (p->error_indicator) { |
15972 | 0 | p->level--; |
15973 | 0 | return NULL; |
15974 | 0 | } |
15975 | 6.51M | D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','")); |
15976 | 6.51M | Token * _literal; |
15977 | 6.51M | arg_ty a; |
15978 | 6.51M | if ( |
15979 | 6.51M | (a = lambda_param_rule(p)) // lambda_param |
15980 | 3.11M | && |
15981 | 3.11M | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
15982 | 6.51M | ) |
15983 | 109k | { |
15984 | 109k | D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','")); |
15985 | 109k | _res = a; |
15986 | 109k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
15987 | 0 | p->error_indicator = 1; |
15988 | 0 | p->level--; |
15989 | 0 | return NULL; |
15990 | 0 | } |
15991 | 109k | goto done; |
15992 | 109k | } |
15993 | 6.40M | p->mark = _mark; |
15994 | 6.40M | D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ', |
15995 | 6.40M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','")); |
15996 | 6.40M | } |
15997 | 0 | { // lambda_param &':' |
15998 | 6.40M | if (p->error_indicator) { |
15999 | 30 | p->level--; |
16000 | 30 | return NULL; |
16001 | 30 | } |
16002 | 6.40M | D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'")); |
16003 | 6.40M | arg_ty a; |
16004 | 6.40M | if ( |
16005 | 6.40M | (a = lambda_param_rule(p)) // lambda_param |
16006 | 3.00M | && |
16007 | 3.00M | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':' |
16008 | 6.40M | ) |
16009 | 2.96M | { |
16010 | 2.96M | D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'")); |
16011 | 2.96M | _res = a; |
16012 | 2.96M | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16013 | 0 | p->error_indicator = 1; |
16014 | 0 | p->level--; |
16015 | 0 | return NULL; |
16016 | 0 | } |
16017 | 2.96M | goto done; |
16018 | 2.96M | } |
16019 | 3.44M | p->mark = _mark; |
16020 | 3.44M | D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ', |
16021 | 3.44M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'")); |
16022 | 3.44M | } |
16023 | 3.44M | _res = NULL; |
16024 | 6.51M | done: |
16025 | 6.51M | p->level--; |
16026 | 6.51M | return _res; |
16027 | 3.44M | } |
16028 | | |
16029 | | // lambda_param_with_default: lambda_param default ',' | lambda_param default &':' |
16030 | | Py_LOCAL_SYMBOL NameDefaultPair* |
16031 | | lambda_param_with_default_rule(Parser *p) |
16032 | 1.85M | { |
16033 | 1.85M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
16034 | 0 | _Pypegen_stack_overflow(p); |
16035 | 0 | } |
16036 | 1.85M | if (p->error_indicator) { |
16037 | 0 | p->level--; |
16038 | 0 | return NULL; |
16039 | 0 | } |
16040 | 1.85M | NameDefaultPair* _res = NULL; |
16041 | 1.85M | int _mark = p->mark; |
16042 | 1.85M | { // lambda_param default ',' |
16043 | 1.85M | if (p->error_indicator) { |
16044 | 0 | p->level--; |
16045 | 0 | return NULL; |
16046 | 0 | } |
16047 | 1.85M | D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','")); |
16048 | 1.85M | Token * _literal; |
16049 | 1.85M | arg_ty a; |
16050 | 1.85M | expr_ty c; |
16051 | 1.85M | if ( |
16052 | 1.85M | (a = lambda_param_rule(p)) // lambda_param |
16053 | 33.0k | && |
16054 | 33.0k | (c = default_rule(p)) // default |
16055 | 27.7k | && |
16056 | 27.7k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
16057 | 1.85M | ) |
16058 | 21.8k | { |
16059 | 21.8k | D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','")); |
16060 | 21.8k | _res = _PyPegen_name_default_pair ( p , a , c , NULL ); |
16061 | 21.8k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16062 | 0 | p->error_indicator = 1; |
16063 | 0 | p->level--; |
16064 | 0 | return NULL; |
16065 | 0 | } |
16066 | 21.8k | goto done; |
16067 | 21.8k | } |
16068 | 1.83M | p->mark = _mark; |
16069 | 1.83M | D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ', |
16070 | 1.83M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','")); |
16071 | 1.83M | } |
16072 | 0 | { // lambda_param default &':' |
16073 | 1.83M | if (p->error_indicator) { |
16074 | 1.03k | p->level--; |
16075 | 1.03k | return NULL; |
16076 | 1.03k | } |
16077 | 1.83M | D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'")); |
16078 | 1.83M | arg_ty a; |
16079 | 1.83M | expr_ty c; |
16080 | 1.83M | if ( |
16081 | 1.83M | (a = lambda_param_rule(p)) // lambda_param |
16082 | 10.2k | && |
16083 | 10.2k | (c = default_rule(p)) // default |
16084 | 5.89k | && |
16085 | 5.89k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':' |
16086 | 1.83M | ) |
16087 | 5.20k | { |
16088 | 5.20k | D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'")); |
16089 | 5.20k | _res = _PyPegen_name_default_pair ( p , a , c , NULL ); |
16090 | 5.20k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16091 | 0 | p->error_indicator = 1; |
16092 | 0 | p->level--; |
16093 | 0 | return NULL; |
16094 | 0 | } |
16095 | 5.20k | goto done; |
16096 | 5.20k | } |
16097 | 1.82M | p->mark = _mark; |
16098 | 1.82M | D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ', |
16099 | 1.82M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'")); |
16100 | 1.82M | } |
16101 | 1.82M | _res = NULL; |
16102 | 1.85M | done: |
16103 | 1.85M | p->level--; |
16104 | 1.85M | return _res; |
16105 | 1.82M | } |
16106 | | |
16107 | | // lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':' |
16108 | | Py_LOCAL_SYMBOL NameDefaultPair* |
16109 | | lambda_param_maybe_default_rule(Parser *p) |
16110 | 677k | { |
16111 | 677k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
16112 | 0 | _Pypegen_stack_overflow(p); |
16113 | 0 | } |
16114 | 677k | if (p->error_indicator) { |
16115 | 0 | p->level--; |
16116 | 0 | return NULL; |
16117 | 0 | } |
16118 | 677k | NameDefaultPair* _res = NULL; |
16119 | 677k | int _mark = p->mark; |
16120 | 677k | { // lambda_param default? ',' |
16121 | 677k | if (p->error_indicator) { |
16122 | 0 | p->level--; |
16123 | 0 | return NULL; |
16124 | 0 | } |
16125 | 677k | D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','")); |
16126 | 677k | Token * _literal; |
16127 | 677k | arg_ty a; |
16128 | 677k | void *c; |
16129 | 677k | if ( |
16130 | 677k | (a = lambda_param_rule(p)) // lambda_param |
16131 | 342k | && |
16132 | 342k | (c = default_rule(p), !p->error_indicator) // default? |
16133 | 341k | && |
16134 | 341k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
16135 | 677k | ) |
16136 | 17.8k | { |
16137 | 17.8k | D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','")); |
16138 | 17.8k | _res = _PyPegen_name_default_pair ( p , a , c , NULL ); |
16139 | 17.8k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16140 | 0 | p->error_indicator = 1; |
16141 | 0 | p->level--; |
16142 | 0 | return NULL; |
16143 | 0 | } |
16144 | 17.8k | goto done; |
16145 | 17.8k | } |
16146 | 659k | p->mark = _mark; |
16147 | 659k | D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ', |
16148 | 659k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','")); |
16149 | 659k | } |
16150 | 0 | { // lambda_param default? &':' |
16151 | 659k | if (p->error_indicator) { |
16152 | 940 | p->level--; |
16153 | 940 | return NULL; |
16154 | 940 | } |
16155 | 658k | D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'")); |
16156 | 658k | arg_ty a; |
16157 | 658k | void *c; |
16158 | 658k | if ( |
16159 | 658k | (a = lambda_param_rule(p)) // lambda_param |
16160 | 324k | && |
16161 | 324k | (c = default_rule(p), !p->error_indicator) // default? |
16162 | 324k | && |
16163 | 324k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':' |
16164 | 658k | ) |
16165 | 317k | { |
16166 | 317k | D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'")); |
16167 | 317k | _res = _PyPegen_name_default_pair ( p , a , c , NULL ); |
16168 | 317k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16169 | 0 | p->error_indicator = 1; |
16170 | 0 | p->level--; |
16171 | 0 | return NULL; |
16172 | 0 | } |
16173 | 317k | goto done; |
16174 | 317k | } |
16175 | 341k | p->mark = _mark; |
16176 | 341k | D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ', |
16177 | 341k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'")); |
16178 | 341k | } |
16179 | 341k | _res = NULL; |
16180 | 676k | done: |
16181 | 676k | p->level--; |
16182 | 676k | return _res; |
16183 | 341k | } |
16184 | | |
16185 | | // lambda_param: NAME |
16186 | | Py_LOCAL_SYMBOL arg_ty |
16187 | | lambda_param_rule(Parser *p) |
16188 | 17.9M | { |
16189 | 17.9M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
16190 | 0 | _Pypegen_stack_overflow(p); |
16191 | 0 | } |
16192 | 17.9M | if (p->error_indicator) { |
16193 | 0 | p->level--; |
16194 | 0 | return NULL; |
16195 | 0 | } |
16196 | 17.9M | arg_ty _res = NULL; |
16197 | 17.9M | int _mark = p->mark; |
16198 | 17.9M | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
16199 | 57 | p->error_indicator = 1; |
16200 | 57 | p->level--; |
16201 | 57 | return NULL; |
16202 | 57 | } |
16203 | 17.9M | int _start_lineno = p->tokens[_mark]->lineno; |
16204 | 17.9M | UNUSED(_start_lineno); // Only used by EXTRA macro |
16205 | 17.9M | int _start_col_offset = p->tokens[_mark]->col_offset; |
16206 | 17.9M | UNUSED(_start_col_offset); // Only used by EXTRA macro |
16207 | 17.9M | { // NAME |
16208 | 17.9M | if (p->error_indicator) { |
16209 | 0 | p->level--; |
16210 | 0 | return NULL; |
16211 | 0 | } |
16212 | 17.9M | D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME")); |
16213 | 17.9M | expr_ty a; |
16214 | 17.9M | if ( |
16215 | 17.9M | (a = _PyPegen_name_token(p)) // NAME |
16216 | 17.9M | ) |
16217 | 6.84M | { |
16218 | 6.84M | D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME")); |
16219 | 6.84M | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
16220 | 6.84M | if (_token == NULL) { |
16221 | 0 | p->level--; |
16222 | 0 | return NULL; |
16223 | 0 | } |
16224 | 6.84M | int _end_lineno = _token->end_lineno; |
16225 | 6.84M | UNUSED(_end_lineno); // Only used by EXTRA macro |
16226 | 6.84M | int _end_col_offset = _token->end_col_offset; |
16227 | 6.84M | UNUSED(_end_col_offset); // Only used by EXTRA macro |
16228 | 6.84M | _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA ); |
16229 | 6.84M | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16230 | 0 | p->error_indicator = 1; |
16231 | 0 | p->level--; |
16232 | 0 | return NULL; |
16233 | 0 | } |
16234 | 6.84M | goto done; |
16235 | 6.84M | } |
16236 | 11.0M | p->mark = _mark; |
16237 | 11.0M | D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ', |
16238 | 11.0M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME")); |
16239 | 11.0M | } |
16240 | 11.0M | _res = NULL; |
16241 | 17.9M | done: |
16242 | 17.9M | p->level--; |
16243 | 17.9M | return _res; |
16244 | 11.0M | } |
16245 | | |
16246 | | // fstring_middle: fstring_replacement_field | FSTRING_MIDDLE |
16247 | | static expr_ty |
16248 | | fstring_middle_rule(Parser *p) |
16249 | 65.6k | { |
16250 | 65.6k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
16251 | 2 | _Pypegen_stack_overflow(p); |
16252 | 2 | } |
16253 | 65.6k | if (p->error_indicator) { |
16254 | 2 | p->level--; |
16255 | 2 | return NULL; |
16256 | 2 | } |
16257 | 65.6k | expr_ty _res = NULL; |
16258 | 65.6k | int _mark = p->mark; |
16259 | 65.6k | { // fstring_replacement_field |
16260 | 65.6k | if (p->error_indicator) { |
16261 | 0 | p->level--; |
16262 | 0 | return NULL; |
16263 | 0 | } |
16264 | 65.6k | D(fprintf(stderr, "%*c> fstring_middle[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring_replacement_field")); |
16265 | 65.6k | expr_ty fstring_replacement_field_var; |
16266 | 65.6k | if ( |
16267 | 65.6k | (fstring_replacement_field_var = fstring_replacement_field_rule(p)) // fstring_replacement_field |
16268 | 65.6k | ) |
16269 | 17.6k | { |
16270 | 17.6k | D(fprintf(stderr, "%*c+ fstring_middle[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "fstring_replacement_field")); |
16271 | 17.6k | _res = fstring_replacement_field_var; |
16272 | 17.6k | goto done; |
16273 | 17.6k | } |
16274 | 48.0k | p->mark = _mark; |
16275 | 48.0k | D(fprintf(stderr, "%*c%s fstring_middle[%d-%d]: %s failed!\n", p->level, ' ', |
16276 | 48.0k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_replacement_field")); |
16277 | 48.0k | } |
16278 | 0 | { // FSTRING_MIDDLE |
16279 | 48.0k | if (p->error_indicator) { |
16280 | 4.76k | p->level--; |
16281 | 4.76k | return NULL; |
16282 | 4.76k | } |
16283 | 43.3k | D(fprintf(stderr, "%*c> fstring_middle[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "FSTRING_MIDDLE")); |
16284 | 43.3k | Token * t; |
16285 | 43.3k | if ( |
16286 | 43.3k | (t = _PyPegen_expect_token(p, FSTRING_MIDDLE)) // token='FSTRING_MIDDLE' |
16287 | 43.3k | ) |
16288 | 25.4k | { |
16289 | 25.4k | D(fprintf(stderr, "%*c+ fstring_middle[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "FSTRING_MIDDLE")); |
16290 | 25.4k | _res = _PyPegen_constant_from_token ( p , t ); |
16291 | 25.4k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16292 | 0 | p->error_indicator = 1; |
16293 | 0 | p->level--; |
16294 | 0 | return NULL; |
16295 | 0 | } |
16296 | 25.4k | goto done; |
16297 | 25.4k | } |
16298 | 17.8k | p->mark = _mark; |
16299 | 17.8k | D(fprintf(stderr, "%*c%s fstring_middle[%d-%d]: %s failed!\n", p->level, ' ', |
16300 | 17.8k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "FSTRING_MIDDLE")); |
16301 | 17.8k | } |
16302 | 17.8k | _res = NULL; |
16303 | 60.9k | done: |
16304 | 60.9k | p->level--; |
16305 | 60.9k | return _res; |
16306 | 17.8k | } |
16307 | | |
16308 | | // fstring_replacement_field: |
16309 | | // | '{' annotated_rhs '='? fstring_conversion? fstring_full_format_spec? '}' |
16310 | | // | invalid_fstring_replacement_field |
16311 | | static expr_ty |
16312 | | fstring_replacement_field_rule(Parser *p) |
16313 | 72.7k | { |
16314 | 72.7k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
16315 | 1 | _Pypegen_stack_overflow(p); |
16316 | 1 | } |
16317 | 72.7k | if (p->error_indicator) { |
16318 | 1 | p->level--; |
16319 | 1 | return NULL; |
16320 | 1 | } |
16321 | 72.7k | expr_ty _res = NULL; |
16322 | 72.7k | int _mark = p->mark; |
16323 | 72.7k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
16324 | 108 | p->error_indicator = 1; |
16325 | 108 | p->level--; |
16326 | 108 | return NULL; |
16327 | 108 | } |
16328 | 72.6k | int _start_lineno = p->tokens[_mark]->lineno; |
16329 | 72.6k | UNUSED(_start_lineno); // Only used by EXTRA macro |
16330 | 72.6k | int _start_col_offset = p->tokens[_mark]->col_offset; |
16331 | 72.6k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
16332 | 72.6k | { // '{' annotated_rhs '='? fstring_conversion? fstring_full_format_spec? '}' |
16333 | 72.6k | if (p->error_indicator) { |
16334 | 0 | p->level--; |
16335 | 0 | return NULL; |
16336 | 0 | } |
16337 | 72.6k | D(fprintf(stderr, "%*c> fstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? fstring_conversion? fstring_full_format_spec? '}'")); |
16338 | 72.6k | Token * _literal; |
16339 | 72.6k | expr_ty a; |
16340 | 72.6k | void *conversion; |
16341 | 72.6k | void *debug_expr; |
16342 | 72.6k | void *format; |
16343 | 72.6k | Token * rbrace; |
16344 | 72.6k | if ( |
16345 | 72.6k | (_literal = _PyPegen_expect_token(p, 25)) // token='{' |
16346 | 27.7k | && |
16347 | 27.7k | (a = annotated_rhs_rule(p)) // annotated_rhs |
16348 | 22.1k | && |
16349 | 22.1k | (debug_expr = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? |
16350 | 22.1k | && |
16351 | 22.1k | (conversion = fstring_conversion_rule(p), !p->error_indicator) // fstring_conversion? |
16352 | 22.1k | && |
16353 | 22.1k | (format = fstring_full_format_spec_rule(p), !p->error_indicator) // fstring_full_format_spec? |
16354 | 21.6k | && |
16355 | 21.6k | (rbrace = _PyPegen_expect_token(p, 26)) // token='}' |
16356 | 72.6k | ) |
16357 | 20.8k | { |
16358 | 20.8k | D(fprintf(stderr, "%*c+ fstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? fstring_conversion? fstring_full_format_spec? '}'")); |
16359 | 20.8k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
16360 | 20.8k | if (_token == NULL) { |
16361 | 0 | p->level--; |
16362 | 0 | return NULL; |
16363 | 0 | } |
16364 | 20.8k | int _end_lineno = _token->end_lineno; |
16365 | 20.8k | UNUSED(_end_lineno); // Only used by EXTRA macro |
16366 | 20.8k | int _end_col_offset = _token->end_col_offset; |
16367 | 20.8k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
16368 | 20.8k | _res = _PyPegen_formatted_value ( p , a , debug_expr , conversion , format , rbrace , EXTRA ); |
16369 | 20.8k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16370 | 0 | p->error_indicator = 1; |
16371 | 0 | p->level--; |
16372 | 0 | return NULL; |
16373 | 0 | } |
16374 | 20.8k | goto done; |
16375 | 20.8k | } |
16376 | 51.8k | p->mark = _mark; |
16377 | 51.8k | D(fprintf(stderr, "%*c%s fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', |
16378 | 51.8k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? fstring_conversion? fstring_full_format_spec? '}'")); |
16379 | 51.8k | } |
16380 | 51.8k | if (p->call_invalid_rules) { // invalid_fstring_replacement_field |
16381 | 18.4k | if (p->error_indicator) { |
16382 | 3.94k | p->level--; |
16383 | 3.94k | return NULL; |
16384 | 3.94k | } |
16385 | 14.5k | D(fprintf(stderr, "%*c> fstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_fstring_replacement_field")); |
16386 | 14.5k | void *invalid_fstring_replacement_field_var; |
16387 | 14.5k | if ( |
16388 | 14.5k | (invalid_fstring_replacement_field_var = invalid_fstring_replacement_field_rule(p)) // invalid_fstring_replacement_field |
16389 | 14.5k | ) |
16390 | 0 | { |
16391 | 0 | D(fprintf(stderr, "%*c+ fstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_fstring_replacement_field")); |
16392 | 0 | _res = invalid_fstring_replacement_field_var; |
16393 | 0 | goto done; |
16394 | 0 | } |
16395 | 14.5k | p->mark = _mark; |
16396 | 14.5k | D(fprintf(stderr, "%*c%s fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', |
16397 | 14.5k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_fstring_replacement_field")); |
16398 | 14.5k | } |
16399 | 47.8k | _res = NULL; |
16400 | 68.7k | done: |
16401 | 68.7k | p->level--; |
16402 | 68.7k | return _res; |
16403 | 47.8k | } |
16404 | | |
16405 | | // fstring_conversion: "!" NAME |
16406 | | static ResultTokenWithMetadata* |
16407 | | fstring_conversion_rule(Parser *p) |
16408 | 32.0k | { |
16409 | 32.0k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
16410 | 0 | _Pypegen_stack_overflow(p); |
16411 | 0 | } |
16412 | 32.0k | if (p->error_indicator) { |
16413 | 0 | p->level--; |
16414 | 0 | return NULL; |
16415 | 0 | } |
16416 | 32.0k | ResultTokenWithMetadata* _res = NULL; |
16417 | 32.0k | int _mark = p->mark; |
16418 | 32.0k | { // "!" NAME |
16419 | 32.0k | if (p->error_indicator) { |
16420 | 0 | p->level--; |
16421 | 0 | return NULL; |
16422 | 0 | } |
16423 | 32.0k | D(fprintf(stderr, "%*c> fstring_conversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"!\" NAME")); |
16424 | 32.0k | expr_ty conv; |
16425 | 32.0k | Token * conv_token; |
16426 | 32.0k | if ( |
16427 | 32.0k | (conv_token = _PyPegen_expect_token(p, 54)) // token='!' |
16428 | 2.20k | && |
16429 | 2.20k | (conv = _PyPegen_name_token(p)) // NAME |
16430 | 32.0k | ) |
16431 | 2.17k | { |
16432 | 2.17k | D(fprintf(stderr, "%*c+ fstring_conversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"!\" NAME")); |
16433 | 2.17k | _res = _PyPegen_check_fstring_conversion ( p , conv_token , conv ); |
16434 | 2.17k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16435 | 61 | p->error_indicator = 1; |
16436 | 61 | p->level--; |
16437 | 61 | return NULL; |
16438 | 61 | } |
16439 | 2.11k | goto done; |
16440 | 2.17k | } |
16441 | 29.8k | p->mark = _mark; |
16442 | 29.8k | D(fprintf(stderr, "%*c%s fstring_conversion[%d-%d]: %s failed!\n", p->level, ' ', |
16443 | 29.8k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"!\" NAME")); |
16444 | 29.8k | } |
16445 | 29.8k | _res = NULL; |
16446 | 31.9k | done: |
16447 | 31.9k | p->level--; |
16448 | 31.9k | return _res; |
16449 | 29.8k | } |
16450 | | |
16451 | | // fstring_full_format_spec: ':' fstring_format_spec* |
16452 | | static ResultTokenWithMetadata* |
16453 | | fstring_full_format_spec_rule(Parser *p) |
16454 | 22.1k | { |
16455 | 22.1k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
16456 | 0 | _Pypegen_stack_overflow(p); |
16457 | 0 | } |
16458 | 22.1k | if (p->error_indicator) { |
16459 | 0 | p->level--; |
16460 | 0 | return NULL; |
16461 | 0 | } |
16462 | 22.1k | ResultTokenWithMetadata* _res = NULL; |
16463 | 22.1k | int _mark = p->mark; |
16464 | 22.1k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
16465 | 3 | p->error_indicator = 1; |
16466 | 3 | p->level--; |
16467 | 3 | return NULL; |
16468 | 3 | } |
16469 | 22.1k | int _start_lineno = p->tokens[_mark]->lineno; |
16470 | 22.1k | UNUSED(_start_lineno); // Only used by EXTRA macro |
16471 | 22.1k | int _start_col_offset = p->tokens[_mark]->col_offset; |
16472 | 22.1k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
16473 | 22.1k | { // ':' fstring_format_spec* |
16474 | 22.1k | if (p->error_indicator) { |
16475 | 0 | p->level--; |
16476 | 0 | return NULL; |
16477 | 0 | } |
16478 | 22.1k | D(fprintf(stderr, "%*c> fstring_full_format_spec[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' fstring_format_spec*")); |
16479 | 22.1k | Token * colon; |
16480 | 22.1k | asdl_seq * spec; |
16481 | 22.1k | if ( |
16482 | 22.1k | (colon = _PyPegen_expect_token(p, 11)) // token=':' |
16483 | 3.76k | && |
16484 | 3.76k | (spec = _loop0_76_rule(p)) // fstring_format_spec* |
16485 | 22.1k | ) |
16486 | 3.76k | { |
16487 | 3.76k | D(fprintf(stderr, "%*c+ fstring_full_format_spec[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' fstring_format_spec*")); |
16488 | 3.76k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
16489 | 3.76k | if (_token == NULL) { |
16490 | 0 | p->level--; |
16491 | 0 | return NULL; |
16492 | 0 | } |
16493 | 3.76k | int _end_lineno = _token->end_lineno; |
16494 | 3.76k | UNUSED(_end_lineno); // Only used by EXTRA macro |
16495 | 3.76k | int _end_col_offset = _token->end_col_offset; |
16496 | 3.76k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
16497 | 3.76k | _res = _PyPegen_setup_full_format_spec ( p , colon , ( asdl_expr_seq* ) spec , EXTRA ); |
16498 | 3.76k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16499 | 456 | p->error_indicator = 1; |
16500 | 456 | p->level--; |
16501 | 456 | return NULL; |
16502 | 456 | } |
16503 | 3.30k | goto done; |
16504 | 3.76k | } |
16505 | 18.3k | p->mark = _mark; |
16506 | 18.3k | D(fprintf(stderr, "%*c%s fstring_full_format_spec[%d-%d]: %s failed!\n", p->level, ' ', |
16507 | 18.3k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' fstring_format_spec*")); |
16508 | 18.3k | } |
16509 | 18.3k | _res = NULL; |
16510 | 21.6k | done: |
16511 | 21.6k | p->level--; |
16512 | 21.6k | return _res; |
16513 | 18.3k | } |
16514 | | |
16515 | | // fstring_format_spec: FSTRING_MIDDLE | fstring_replacement_field |
16516 | | Py_LOCAL_SYMBOL expr_ty |
16517 | | fstring_format_spec_rule(Parser *p) |
16518 | 12.5k | { |
16519 | 12.5k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
16520 | 0 | _Pypegen_stack_overflow(p); |
16521 | 0 | } |
16522 | 12.5k | if (p->error_indicator) { |
16523 | 0 | p->level--; |
16524 | 0 | return NULL; |
16525 | 0 | } |
16526 | 12.5k | expr_ty _res = NULL; |
16527 | 12.5k | int _mark = p->mark; |
16528 | 12.5k | { // FSTRING_MIDDLE |
16529 | 12.5k | if (p->error_indicator) { |
16530 | 0 | p->level--; |
16531 | 0 | return NULL; |
16532 | 0 | } |
16533 | 12.5k | D(fprintf(stderr, "%*c> fstring_format_spec[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "FSTRING_MIDDLE")); |
16534 | 12.5k | Token * t; |
16535 | 12.5k | if ( |
16536 | 12.5k | (t = _PyPegen_expect_token(p, FSTRING_MIDDLE)) // token='FSTRING_MIDDLE' |
16537 | 12.5k | ) |
16538 | 5.41k | { |
16539 | 5.41k | D(fprintf(stderr, "%*c+ fstring_format_spec[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "FSTRING_MIDDLE")); |
16540 | 5.41k | _res = _PyPegen_decoded_constant_from_token ( p , t ); |
16541 | 5.41k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16542 | 3 | p->error_indicator = 1; |
16543 | 3 | p->level--; |
16544 | 3 | return NULL; |
16545 | 3 | } |
16546 | 5.41k | goto done; |
16547 | 5.41k | } |
16548 | 7.09k | p->mark = _mark; |
16549 | 7.09k | D(fprintf(stderr, "%*c%s fstring_format_spec[%d-%d]: %s failed!\n", p->level, ' ', |
16550 | 7.09k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "FSTRING_MIDDLE")); |
16551 | 7.09k | } |
16552 | 0 | { // fstring_replacement_field |
16553 | 7.09k | if (p->error_indicator) { |
16554 | 10 | p->level--; |
16555 | 10 | return NULL; |
16556 | 10 | } |
16557 | 7.08k | D(fprintf(stderr, "%*c> fstring_format_spec[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring_replacement_field")); |
16558 | 7.08k | expr_ty fstring_replacement_field_var; |
16559 | 7.08k | if ( |
16560 | 7.08k | (fstring_replacement_field_var = fstring_replacement_field_rule(p)) // fstring_replacement_field |
16561 | 7.08k | ) |
16562 | 3.21k | { |
16563 | 3.21k | D(fprintf(stderr, "%*c+ fstring_format_spec[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "fstring_replacement_field")); |
16564 | 3.21k | _res = fstring_replacement_field_var; |
16565 | 3.21k | goto done; |
16566 | 3.21k | } |
16567 | 3.86k | p->mark = _mark; |
16568 | 3.86k | D(fprintf(stderr, "%*c%s fstring_format_spec[%d-%d]: %s failed!\n", p->level, ' ', |
16569 | 3.86k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_replacement_field")); |
16570 | 3.86k | } |
16571 | 3.86k | _res = NULL; |
16572 | 12.4k | done: |
16573 | 12.4k | p->level--; |
16574 | 12.4k | return _res; |
16575 | 3.86k | } |
16576 | | |
16577 | | // fstring: FSTRING_START fstring_middle* FSTRING_END |
16578 | | Py_LOCAL_SYMBOL expr_ty |
16579 | | fstring_rule(Parser *p) |
16580 | 186k | { |
16581 | 186k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
16582 | 1 | _Pypegen_stack_overflow(p); |
16583 | 1 | } |
16584 | 186k | if (p->error_indicator) { |
16585 | 1 | p->level--; |
16586 | 1 | return NULL; |
16587 | 1 | } |
16588 | 186k | expr_ty _res = NULL; |
16589 | 186k | int _mark = p->mark; |
16590 | 186k | { // FSTRING_START fstring_middle* FSTRING_END |
16591 | 186k | if (p->error_indicator) { |
16592 | 0 | p->level--; |
16593 | 0 | return NULL; |
16594 | 0 | } |
16595 | 186k | D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "FSTRING_START fstring_middle* FSTRING_END")); |
16596 | 186k | Token * a; |
16597 | 186k | asdl_seq * b; |
16598 | 186k | Token * c; |
16599 | 186k | if ( |
16600 | 186k | (a = _PyPegen_expect_token(p, FSTRING_START)) // token='FSTRING_START' |
16601 | 22.6k | && |
16602 | 22.6k | (b = _loop0_77_rule(p)) // fstring_middle* |
16603 | 22.6k | && |
16604 | 22.6k | (c = _PyPegen_expect_token(p, FSTRING_END)) // token='FSTRING_END' |
16605 | 186k | ) |
16606 | 16.3k | { |
16607 | 16.3k | D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "FSTRING_START fstring_middle* FSTRING_END")); |
16608 | 16.3k | _res = _PyPegen_joined_str ( p , a , ( asdl_expr_seq* ) b , c ); |
16609 | 16.3k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16610 | 5 | p->error_indicator = 1; |
16611 | 5 | p->level--; |
16612 | 5 | return NULL; |
16613 | 5 | } |
16614 | 16.3k | goto done; |
16615 | 16.3k | } |
16616 | 170k | p->mark = _mark; |
16617 | 170k | D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ', |
16618 | 170k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "FSTRING_START fstring_middle* FSTRING_END")); |
16619 | 170k | } |
16620 | 170k | _res = NULL; |
16621 | 186k | done: |
16622 | 186k | p->level--; |
16623 | 186k | return _res; |
16624 | 170k | } |
16625 | | |
16626 | | // tstring_format_spec_replacement_field: |
16627 | | // | '{' annotated_rhs '='? fstring_conversion? tstring_full_format_spec? '}' |
16628 | | // | invalid_tstring_replacement_field |
16629 | | static expr_ty |
16630 | | tstring_format_spec_replacement_field_rule(Parser *p) |
16631 | 4.09k | { |
16632 | 4.09k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
16633 | 0 | _Pypegen_stack_overflow(p); |
16634 | 0 | } |
16635 | 4.09k | if (p->error_indicator) { |
16636 | 0 | p->level--; |
16637 | 0 | return NULL; |
16638 | 0 | } |
16639 | 4.09k | expr_ty _res = NULL; |
16640 | 4.09k | int _mark = p->mark; |
16641 | 4.09k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
16642 | 0 | p->error_indicator = 1; |
16643 | 0 | p->level--; |
16644 | 0 | return NULL; |
16645 | 0 | } |
16646 | 4.09k | int _start_lineno = p->tokens[_mark]->lineno; |
16647 | 4.09k | UNUSED(_start_lineno); // Only used by EXTRA macro |
16648 | 4.09k | int _start_col_offset = p->tokens[_mark]->col_offset; |
16649 | 4.09k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
16650 | 4.09k | { // '{' annotated_rhs '='? fstring_conversion? tstring_full_format_spec? '}' |
16651 | 4.09k | if (p->error_indicator) { |
16652 | 0 | p->level--; |
16653 | 0 | return NULL; |
16654 | 0 | } |
16655 | 4.09k | D(fprintf(stderr, "%*c> tstring_format_spec_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? fstring_conversion? tstring_full_format_spec? '}'")); |
16656 | 4.09k | Token * _literal; |
16657 | 4.09k | expr_ty a; |
16658 | 4.09k | void *conversion; |
16659 | 4.09k | void *debug_expr; |
16660 | 4.09k | void *format; |
16661 | 4.09k | Token * rbrace; |
16662 | 4.09k | if ( |
16663 | 4.09k | (_literal = _PyPegen_expect_token(p, 25)) // token='{' |
16664 | 1.82k | && |
16665 | 1.82k | (a = annotated_rhs_rule(p)) // annotated_rhs |
16666 | 1.28k | && |
16667 | 1.28k | (debug_expr = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? |
16668 | 1.28k | && |
16669 | 1.28k | (conversion = fstring_conversion_rule(p), !p->error_indicator) // fstring_conversion? |
16670 | 1.28k | && |
16671 | 1.28k | (format = tstring_full_format_spec_rule(p), !p->error_indicator) // tstring_full_format_spec? |
16672 | 1.07k | && |
16673 | 1.07k | (rbrace = _PyPegen_expect_token(p, 26)) // token='}' |
16674 | 4.09k | ) |
16675 | 883 | { |
16676 | 883 | D(fprintf(stderr, "%*c+ tstring_format_spec_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? fstring_conversion? tstring_full_format_spec? '}'")); |
16677 | 883 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
16678 | 883 | if (_token == NULL) { |
16679 | 0 | p->level--; |
16680 | 0 | return NULL; |
16681 | 0 | } |
16682 | 883 | int _end_lineno = _token->end_lineno; |
16683 | 883 | UNUSED(_end_lineno); // Only used by EXTRA macro |
16684 | 883 | int _end_col_offset = _token->end_col_offset; |
16685 | 883 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
16686 | 883 | _res = _PyPegen_formatted_value ( p , a , debug_expr , conversion , format , rbrace , EXTRA ); |
16687 | 883 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16688 | 0 | p->error_indicator = 1; |
16689 | 0 | p->level--; |
16690 | 0 | return NULL; |
16691 | 0 | } |
16692 | 883 | goto done; |
16693 | 883 | } |
16694 | 3.21k | p->mark = _mark; |
16695 | 3.21k | D(fprintf(stderr, "%*c%s tstring_format_spec_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', |
16696 | 3.21k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? fstring_conversion? tstring_full_format_spec? '}'")); |
16697 | 3.21k | } |
16698 | 3.21k | if (p->call_invalid_rules) { // invalid_tstring_replacement_field |
16699 | 1.38k | if (p->error_indicator) { |
16700 | 412 | p->level--; |
16701 | 412 | return NULL; |
16702 | 412 | } |
16703 | 972 | D(fprintf(stderr, "%*c> tstring_format_spec_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_tstring_replacement_field")); |
16704 | 972 | void *invalid_tstring_replacement_field_var; |
16705 | 972 | if ( |
16706 | 972 | (invalid_tstring_replacement_field_var = invalid_tstring_replacement_field_rule(p)) // invalid_tstring_replacement_field |
16707 | 972 | ) |
16708 | 0 | { |
16709 | 0 | D(fprintf(stderr, "%*c+ tstring_format_spec_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_tstring_replacement_field")); |
16710 | 0 | _res = invalid_tstring_replacement_field_var; |
16711 | 0 | goto done; |
16712 | 0 | } |
16713 | 972 | p->mark = _mark; |
16714 | 972 | D(fprintf(stderr, "%*c%s tstring_format_spec_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', |
16715 | 972 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_tstring_replacement_field")); |
16716 | 972 | } |
16717 | 2.80k | _res = NULL; |
16718 | 3.68k | done: |
16719 | 3.68k | p->level--; |
16720 | 3.68k | return _res; |
16721 | 2.80k | } |
16722 | | |
16723 | | // tstring_format_spec: TSTRING_MIDDLE | tstring_format_spec_replacement_field |
16724 | | static expr_ty |
16725 | | tstring_format_spec_rule(Parser *p) |
16726 | 7.13k | { |
16727 | 7.13k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
16728 | 0 | _Pypegen_stack_overflow(p); |
16729 | 0 | } |
16730 | 7.13k | if (p->error_indicator) { |
16731 | 0 | p->level--; |
16732 | 0 | return NULL; |
16733 | 0 | } |
16734 | 7.13k | expr_ty _res = NULL; |
16735 | 7.13k | int _mark = p->mark; |
16736 | 7.13k | { // TSTRING_MIDDLE |
16737 | 7.13k | if (p->error_indicator) { |
16738 | 0 | p->level--; |
16739 | 0 | return NULL; |
16740 | 0 | } |
16741 | 7.13k | D(fprintf(stderr, "%*c> tstring_format_spec[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TSTRING_MIDDLE")); |
16742 | 7.13k | Token * t; |
16743 | 7.13k | if ( |
16744 | 7.13k | (t = _PyPegen_expect_token(p, TSTRING_MIDDLE)) // token='TSTRING_MIDDLE' |
16745 | 7.13k | ) |
16746 | 3.02k | { |
16747 | 3.02k | D(fprintf(stderr, "%*c+ tstring_format_spec[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TSTRING_MIDDLE")); |
16748 | 3.02k | _res = _PyPegen_decoded_constant_from_token ( p , t ); |
16749 | 3.02k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16750 | 1 | p->error_indicator = 1; |
16751 | 1 | p->level--; |
16752 | 1 | return NULL; |
16753 | 1 | } |
16754 | 3.02k | goto done; |
16755 | 3.02k | } |
16756 | 4.11k | p->mark = _mark; |
16757 | 4.11k | D(fprintf(stderr, "%*c%s tstring_format_spec[%d-%d]: %s failed!\n", p->level, ' ', |
16758 | 4.11k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TSTRING_MIDDLE")); |
16759 | 4.11k | } |
16760 | 0 | { // tstring_format_spec_replacement_field |
16761 | 4.11k | if (p->error_indicator) { |
16762 | 18 | p->level--; |
16763 | 18 | return NULL; |
16764 | 18 | } |
16765 | 4.09k | D(fprintf(stderr, "%*c> tstring_format_spec[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tstring_format_spec_replacement_field")); |
16766 | 4.09k | expr_ty tstring_format_spec_replacement_field_var; |
16767 | 4.09k | if ( |
16768 | 4.09k | (tstring_format_spec_replacement_field_var = tstring_format_spec_replacement_field_rule(p)) // tstring_format_spec_replacement_field |
16769 | 4.09k | ) |
16770 | 883 | { |
16771 | 883 | D(fprintf(stderr, "%*c+ tstring_format_spec[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tstring_format_spec_replacement_field")); |
16772 | 883 | _res = tstring_format_spec_replacement_field_var; |
16773 | 883 | goto done; |
16774 | 883 | } |
16775 | 3.21k | p->mark = _mark; |
16776 | 3.21k | D(fprintf(stderr, "%*c%s tstring_format_spec[%d-%d]: %s failed!\n", p->level, ' ', |
16777 | 3.21k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tstring_format_spec_replacement_field")); |
16778 | 3.21k | } |
16779 | 3.21k | _res = NULL; |
16780 | 7.11k | done: |
16781 | 7.11k | p->level--; |
16782 | 7.11k | return _res; |
16783 | 3.21k | } |
16784 | | |
16785 | | // tstring_full_format_spec: ':' tstring_format_spec* |
16786 | | static ResultTokenWithMetadata* |
16787 | | tstring_full_format_spec_rule(Parser *p) |
16788 | 9.84k | { |
16789 | 9.84k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
16790 | 0 | _Pypegen_stack_overflow(p); |
16791 | 0 | } |
16792 | 9.84k | if (p->error_indicator) { |
16793 | 0 | p->level--; |
16794 | 0 | return NULL; |
16795 | 0 | } |
16796 | 9.84k | ResultTokenWithMetadata* _res = NULL; |
16797 | 9.84k | int _mark = p->mark; |
16798 | 9.84k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
16799 | 1 | p->error_indicator = 1; |
16800 | 1 | p->level--; |
16801 | 1 | return NULL; |
16802 | 1 | } |
16803 | 9.84k | int _start_lineno = p->tokens[_mark]->lineno; |
16804 | 9.84k | UNUSED(_start_lineno); // Only used by EXTRA macro |
16805 | 9.84k | int _start_col_offset = p->tokens[_mark]->col_offset; |
16806 | 9.84k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
16807 | 9.84k | { // ':' tstring_format_spec* |
16808 | 9.84k | if (p->error_indicator) { |
16809 | 0 | p->level--; |
16810 | 0 | return NULL; |
16811 | 0 | } |
16812 | 9.84k | D(fprintf(stderr, "%*c> tstring_full_format_spec[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' tstring_format_spec*")); |
16813 | 9.84k | Token * colon; |
16814 | 9.84k | asdl_seq * spec; |
16815 | 9.84k | if ( |
16816 | 9.84k | (colon = _PyPegen_expect_token(p, 11)) // token=':' |
16817 | 3.23k | && |
16818 | 3.23k | (spec = _loop0_78_rule(p)) // tstring_format_spec* |
16819 | 9.84k | ) |
16820 | 3.23k | { |
16821 | 3.23k | D(fprintf(stderr, "%*c+ tstring_full_format_spec[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' tstring_format_spec*")); |
16822 | 3.23k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
16823 | 3.23k | if (_token == NULL) { |
16824 | 0 | p->level--; |
16825 | 0 | return NULL; |
16826 | 0 | } |
16827 | 3.23k | int _end_lineno = _token->end_lineno; |
16828 | 3.23k | UNUSED(_end_lineno); // Only used by EXTRA macro |
16829 | 3.23k | int _end_col_offset = _token->end_col_offset; |
16830 | 3.23k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
16831 | 3.23k | _res = _PyPegen_setup_full_format_spec ( p , colon , ( asdl_expr_seq* ) spec , EXTRA ); |
16832 | 3.23k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16833 | 556 | p->error_indicator = 1; |
16834 | 556 | p->level--; |
16835 | 556 | return NULL; |
16836 | 556 | } |
16837 | 2.67k | goto done; |
16838 | 3.23k | } |
16839 | 6.60k | p->mark = _mark; |
16840 | 6.60k | D(fprintf(stderr, "%*c%s tstring_full_format_spec[%d-%d]: %s failed!\n", p->level, ' ', |
16841 | 6.60k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' tstring_format_spec*")); |
16842 | 6.60k | } |
16843 | 6.60k | _res = NULL; |
16844 | 9.28k | done: |
16845 | 9.28k | p->level--; |
16846 | 9.28k | return _res; |
16847 | 6.60k | } |
16848 | | |
16849 | | // tstring_replacement_field: |
16850 | | // | '{' annotated_rhs '='? fstring_conversion? tstring_full_format_spec? '}' |
16851 | | // | invalid_tstring_replacement_field |
16852 | | static expr_ty |
16853 | | tstring_replacement_field_rule(Parser *p) |
16854 | 23.3k | { |
16855 | 23.3k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
16856 | 2 | _Pypegen_stack_overflow(p); |
16857 | 2 | } |
16858 | 23.3k | if (p->error_indicator) { |
16859 | 2 | p->level--; |
16860 | 2 | return NULL; |
16861 | 2 | } |
16862 | 23.3k | expr_ty _res = NULL; |
16863 | 23.3k | int _mark = p->mark; |
16864 | 23.3k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
16865 | 88 | p->error_indicator = 1; |
16866 | 88 | p->level--; |
16867 | 88 | return NULL; |
16868 | 88 | } |
16869 | 23.2k | int _start_lineno = p->tokens[_mark]->lineno; |
16870 | 23.2k | UNUSED(_start_lineno); // Only used by EXTRA macro |
16871 | 23.2k | int _start_col_offset = p->tokens[_mark]->col_offset; |
16872 | 23.2k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
16873 | 23.2k | { // '{' annotated_rhs '='? fstring_conversion? tstring_full_format_spec? '}' |
16874 | 23.2k | if (p->error_indicator) { |
16875 | 0 | p->level--; |
16876 | 0 | return NULL; |
16877 | 0 | } |
16878 | 23.2k | D(fprintf(stderr, "%*c> tstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? fstring_conversion? tstring_full_format_spec? '}'")); |
16879 | 23.2k | Token * _literal; |
16880 | 23.2k | expr_ty a; |
16881 | 23.2k | void *conversion; |
16882 | 23.2k | void *debug_expr; |
16883 | 23.2k | void *format; |
16884 | 23.2k | Token * rbrace; |
16885 | 23.2k | if ( |
16886 | 23.2k | (_literal = _PyPegen_expect_token(p, 25)) // token='{' |
16887 | 10.7k | && |
16888 | 10.7k | (a = annotated_rhs_rule(p)) // annotated_rhs |
16889 | 8.59k | && |
16890 | 8.59k | (debug_expr = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? |
16891 | 8.59k | && |
16892 | 8.59k | (conversion = fstring_conversion_rule(p), !p->error_indicator) // fstring_conversion? |
16893 | 8.56k | && |
16894 | 8.56k | (format = tstring_full_format_spec_rule(p), !p->error_indicator) // tstring_full_format_spec? |
16895 | 8.20k | && |
16896 | 8.20k | (rbrace = _PyPegen_expect_token(p, 26)) // token='}' |
16897 | 23.2k | ) |
16898 | 7.57k | { |
16899 | 7.57k | D(fprintf(stderr, "%*c+ tstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? fstring_conversion? tstring_full_format_spec? '}'")); |
16900 | 7.57k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
16901 | 7.57k | if (_token == NULL) { |
16902 | 0 | p->level--; |
16903 | 0 | return NULL; |
16904 | 0 | } |
16905 | 7.57k | int _end_lineno = _token->end_lineno; |
16906 | 7.57k | UNUSED(_end_lineno); // Only used by EXTRA macro |
16907 | 7.57k | int _end_col_offset = _token->end_col_offset; |
16908 | 7.57k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
16909 | 7.57k | _res = _PyPegen_interpolation ( p , a , debug_expr , conversion , format , rbrace , EXTRA ); |
16910 | 7.57k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16911 | 0 | p->error_indicator = 1; |
16912 | 0 | p->level--; |
16913 | 0 | return NULL; |
16914 | 0 | } |
16915 | 7.57k | goto done; |
16916 | 7.57k | } |
16917 | 15.6k | p->mark = _mark; |
16918 | 15.6k | D(fprintf(stderr, "%*c%s tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', |
16919 | 15.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? fstring_conversion? tstring_full_format_spec? '}'")); |
16920 | 15.6k | } |
16921 | 15.6k | if (p->call_invalid_rules) { // invalid_tstring_replacement_field |
16922 | 5.58k | if (p->error_indicator) { |
16923 | 1.84k | p->level--; |
16924 | 1.84k | return NULL; |
16925 | 1.84k | } |
16926 | 3.74k | D(fprintf(stderr, "%*c> tstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_tstring_replacement_field")); |
16927 | 3.74k | void *invalid_tstring_replacement_field_var; |
16928 | 3.74k | if ( |
16929 | 3.74k | (invalid_tstring_replacement_field_var = invalid_tstring_replacement_field_rule(p)) // invalid_tstring_replacement_field |
16930 | 3.74k | ) |
16931 | 0 | { |
16932 | 0 | D(fprintf(stderr, "%*c+ tstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_tstring_replacement_field")); |
16933 | 0 | _res = invalid_tstring_replacement_field_var; |
16934 | 0 | goto done; |
16935 | 0 | } |
16936 | 3.74k | p->mark = _mark; |
16937 | 3.74k | D(fprintf(stderr, "%*c%s tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', |
16938 | 3.74k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_tstring_replacement_field")); |
16939 | 3.74k | } |
16940 | 13.8k | _res = NULL; |
16941 | 21.3k | done: |
16942 | 21.3k | p->level--; |
16943 | 21.3k | return _res; |
16944 | 13.8k | } |
16945 | | |
16946 | | // tstring_middle: tstring_replacement_field | TSTRING_MIDDLE |
16947 | | static expr_ty |
16948 | | tstring_middle_rule(Parser *p) |
16949 | 23.3k | { |
16950 | 23.3k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
16951 | 1 | _Pypegen_stack_overflow(p); |
16952 | 1 | } |
16953 | 23.3k | if (p->error_indicator) { |
16954 | 1 | p->level--; |
16955 | 1 | return NULL; |
16956 | 1 | } |
16957 | 23.3k | expr_ty _res = NULL; |
16958 | 23.3k | int _mark = p->mark; |
16959 | 23.3k | { // tstring_replacement_field |
16960 | 23.3k | if (p->error_indicator) { |
16961 | 0 | p->level--; |
16962 | 0 | return NULL; |
16963 | 0 | } |
16964 | 23.3k | D(fprintf(stderr, "%*c> tstring_middle[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tstring_replacement_field")); |
16965 | 23.3k | expr_ty tstring_replacement_field_var; |
16966 | 23.3k | if ( |
16967 | 23.3k | (tstring_replacement_field_var = tstring_replacement_field_rule(p)) // tstring_replacement_field |
16968 | 23.3k | ) |
16969 | 7.57k | { |
16970 | 7.57k | D(fprintf(stderr, "%*c+ tstring_middle[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tstring_replacement_field")); |
16971 | 7.57k | _res = tstring_replacement_field_var; |
16972 | 7.57k | goto done; |
16973 | 7.57k | } |
16974 | 15.7k | p->mark = _mark; |
16975 | 15.7k | D(fprintf(stderr, "%*c%s tstring_middle[%d-%d]: %s failed!\n", p->level, ' ', |
16976 | 15.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tstring_replacement_field")); |
16977 | 15.7k | } |
16978 | 0 | { // TSTRING_MIDDLE |
16979 | 15.7k | if (p->error_indicator) { |
16980 | 2.38k | p->level--; |
16981 | 2.38k | return NULL; |
16982 | 2.38k | } |
16983 | 13.3k | D(fprintf(stderr, "%*c> tstring_middle[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TSTRING_MIDDLE")); |
16984 | 13.3k | Token * t; |
16985 | 13.3k | if ( |
16986 | 13.3k | (t = _PyPegen_expect_token(p, TSTRING_MIDDLE)) // token='TSTRING_MIDDLE' |
16987 | 13.3k | ) |
16988 | 8.99k | { |
16989 | 8.99k | D(fprintf(stderr, "%*c+ tstring_middle[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TSTRING_MIDDLE")); |
16990 | 8.99k | _res = _PyPegen_constant_from_token ( p , t ); |
16991 | 8.99k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
16992 | 0 | p->error_indicator = 1; |
16993 | 0 | p->level--; |
16994 | 0 | return NULL; |
16995 | 0 | } |
16996 | 8.99k | goto done; |
16997 | 8.99k | } |
16998 | 4.38k | p->mark = _mark; |
16999 | 4.38k | D(fprintf(stderr, "%*c%s tstring_middle[%d-%d]: %s failed!\n", p->level, ' ', |
17000 | 4.38k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TSTRING_MIDDLE")); |
17001 | 4.38k | } |
17002 | 4.38k | _res = NULL; |
17003 | 20.9k | done: |
17004 | 20.9k | p->level--; |
17005 | 20.9k | return _res; |
17006 | 4.38k | } |
17007 | | |
17008 | | // tstring: TSTRING_START tstring_middle* TSTRING_END |
17009 | | Py_LOCAL_SYMBOL expr_ty |
17010 | | tstring_rule(Parser *p) |
17011 | 93.1k | { |
17012 | 93.1k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
17013 | 0 | _Pypegen_stack_overflow(p); |
17014 | 0 | } |
17015 | 93.1k | if (p->error_indicator) { |
17016 | 0 | p->level--; |
17017 | 0 | return NULL; |
17018 | 0 | } |
17019 | 93.1k | expr_ty _res = NULL; |
17020 | 93.1k | if (_PyPegen_is_memoized(p, tstring_type, &_res)) { |
17021 | 21.4k | p->level--; |
17022 | 21.4k | return _res; |
17023 | 21.4k | } |
17024 | 71.6k | int _mark = p->mark; |
17025 | 71.6k | { // TSTRING_START tstring_middle* TSTRING_END |
17026 | 71.6k | if (p->error_indicator) { |
17027 | 0 | p->level--; |
17028 | 0 | return NULL; |
17029 | 0 | } |
17030 | 71.6k | D(fprintf(stderr, "%*c> tstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TSTRING_START tstring_middle* TSTRING_END")); |
17031 | 71.6k | Token * a; |
17032 | 71.6k | asdl_seq * b; |
17033 | 71.6k | Token * c; |
17034 | 71.6k | if ( |
17035 | 71.6k | (a = _PyPegen_expect_token(p, TSTRING_START)) // token='TSTRING_START' |
17036 | 6.76k | && |
17037 | 6.76k | (b = _loop0_79_rule(p)) // tstring_middle* |
17038 | 6.76k | && |
17039 | 6.76k | (c = _PyPegen_expect_token(p, TSTRING_END)) // token='TSTRING_END' |
17040 | 71.6k | ) |
17041 | 3.44k | { |
17042 | 3.44k | D(fprintf(stderr, "%*c+ tstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TSTRING_START tstring_middle* TSTRING_END")); |
17043 | 3.44k | _res = CHECK_VERSION ( expr_ty , 14 , "t-strings are" , _PyPegen_template_str ( p , a , ( asdl_expr_seq* ) b , c ) ); |
17044 | 3.44k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
17045 | 6 | p->error_indicator = 1; |
17046 | 6 | p->level--; |
17047 | 6 | return NULL; |
17048 | 6 | } |
17049 | 3.43k | goto done; |
17050 | 3.44k | } |
17051 | 68.2k | p->mark = _mark; |
17052 | 68.2k | D(fprintf(stderr, "%*c%s tstring[%d-%d]: %s failed!\n", p->level, ' ', |
17053 | 68.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TSTRING_START tstring_middle* TSTRING_END")); |
17054 | 68.2k | } |
17055 | 68.2k | _res = NULL; |
17056 | 71.6k | done: |
17057 | 71.6k | _PyPegen_insert_memo(p, _mark, tstring_type, _res); |
17058 | 71.6k | p->level--; |
17059 | 71.6k | return _res; |
17060 | 68.2k | } |
17061 | | |
17062 | | // string: STRING |
17063 | | Py_LOCAL_SYMBOL expr_ty |
17064 | | string_rule(Parser *p) |
17065 | 165k | { |
17066 | 165k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
17067 | 0 | _Pypegen_stack_overflow(p); |
17068 | 0 | } |
17069 | 165k | if (p->error_indicator) { |
17070 | 0 | p->level--; |
17071 | 0 | return NULL; |
17072 | 0 | } |
17073 | 165k | expr_ty _res = NULL; |
17074 | 165k | int _mark = p->mark; |
17075 | 165k | { // STRING |
17076 | 165k | if (p->error_indicator) { |
17077 | 0 | p->level--; |
17078 | 0 | return NULL; |
17079 | 0 | } |
17080 | 165k | D(fprintf(stderr, "%*c> string[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING")); |
17081 | 165k | Token* s; |
17082 | 165k | if ( |
17083 | 165k | (s = (Token*)_PyPegen_string_token(p)) // STRING |
17084 | 165k | ) |
17085 | 54.9k | { |
17086 | 54.9k | D(fprintf(stderr, "%*c+ string[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING")); |
17087 | 54.9k | _res = _PyPegen_constant_from_string ( p , s ); |
17088 | 54.9k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
17089 | 120 | p->error_indicator = 1; |
17090 | 120 | p->level--; |
17091 | 120 | return NULL; |
17092 | 120 | } |
17093 | 54.7k | goto done; |
17094 | 54.9k | } |
17095 | 110k | p->mark = _mark; |
17096 | 110k | D(fprintf(stderr, "%*c%s string[%d-%d]: %s failed!\n", p->level, ' ', |
17097 | 110k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING")); |
17098 | 110k | } |
17099 | 110k | _res = NULL; |
17100 | 165k | done: |
17101 | 165k | p->level--; |
17102 | 165k | return _res; |
17103 | 110k | } |
17104 | | |
17105 | | // strings: invalid_string_tstring_concat | ((fstring | string))+ | tstring+ |
17106 | | static expr_ty |
17107 | | strings_rule(Parser *p) |
17108 | 115k | { |
17109 | 115k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
17110 | 0 | _Pypegen_stack_overflow(p); |
17111 | 0 | } |
17112 | 115k | if (p->error_indicator) { |
17113 | 0 | p->level--; |
17114 | 0 | return NULL; |
17115 | 0 | } |
17116 | 115k | expr_ty _res = NULL; |
17117 | 115k | if (_PyPegen_is_memoized(p, strings_type, &_res)) { |
17118 | 28.3k | p->level--; |
17119 | 28.3k | return _res; |
17120 | 28.3k | } |
17121 | 87.5k | int _mark = p->mark; |
17122 | 87.5k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
17123 | 0 | p->error_indicator = 1; |
17124 | 0 | p->level--; |
17125 | 0 | return NULL; |
17126 | 0 | } |
17127 | 87.5k | int _start_lineno = p->tokens[_mark]->lineno; |
17128 | 87.5k | UNUSED(_start_lineno); // Only used by EXTRA macro |
17129 | 87.5k | int _start_col_offset = p->tokens[_mark]->col_offset; |
17130 | 87.5k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
17131 | 87.5k | if (p->call_invalid_rules) { // invalid_string_tstring_concat |
17132 | 33.3k | if (p->error_indicator) { |
17133 | 0 | p->level--; |
17134 | 0 | return NULL; |
17135 | 0 | } |
17136 | 33.3k | D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_string_tstring_concat")); |
17137 | 33.3k | void *invalid_string_tstring_concat_var; |
17138 | 33.3k | if ( |
17139 | 33.3k | (invalid_string_tstring_concat_var = invalid_string_tstring_concat_rule(p)) // invalid_string_tstring_concat |
17140 | 33.3k | ) |
17141 | 0 | { |
17142 | 0 | D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_string_tstring_concat")); |
17143 | 0 | _res = invalid_string_tstring_concat_var; |
17144 | 0 | goto done; |
17145 | 0 | } |
17146 | 33.3k | p->mark = _mark; |
17147 | 33.3k | D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ', |
17148 | 33.3k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_string_tstring_concat")); |
17149 | 33.3k | } |
17150 | 87.5k | { // ((fstring | string))+ |
17151 | 87.5k | if (p->error_indicator) { |
17152 | 6.07k | p->level--; |
17153 | 6.07k | return NULL; |
17154 | 6.07k | } |
17155 | 81.5k | D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((fstring | string))+")); |
17156 | 81.5k | asdl_expr_seq* a; |
17157 | 81.5k | if ( |
17158 | 81.5k | (a = (asdl_expr_seq*)_loop1_80_rule(p)) // ((fstring | string))+ |
17159 | 81.5k | ) |
17160 | 27.9k | { |
17161 | 27.9k | D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((fstring | string))+")); |
17162 | 27.9k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
17163 | 27.9k | if (_token == NULL) { |
17164 | 0 | p->level--; |
17165 | 0 | return NULL; |
17166 | 0 | } |
17167 | 27.9k | int _end_lineno = _token->end_lineno; |
17168 | 27.9k | UNUSED(_end_lineno); // Only used by EXTRA macro |
17169 | 27.9k | int _end_col_offset = _token->end_col_offset; |
17170 | 27.9k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
17171 | 27.9k | _res = _PyPegen_concatenate_strings ( p , a , EXTRA ); |
17172 | 27.9k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
17173 | 4 | p->error_indicator = 1; |
17174 | 4 | p->level--; |
17175 | 4 | return NULL; |
17176 | 4 | } |
17177 | 27.9k | goto done; |
17178 | 27.9k | } |
17179 | 53.5k | p->mark = _mark; |
17180 | 53.5k | D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ', |
17181 | 53.5k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((fstring | string))+")); |
17182 | 53.5k | } |
17183 | 0 | { // tstring+ |
17184 | 53.5k | if (p->error_indicator) { |
17185 | 945 | p->level--; |
17186 | 945 | return NULL; |
17187 | 945 | } |
17188 | 52.5k | D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tstring+")); |
17189 | 52.5k | asdl_expr_seq* a; |
17190 | 52.5k | if ( |
17191 | 52.5k | (a = (asdl_expr_seq*)_loop1_81_rule(p)) // tstring+ |
17192 | 52.5k | ) |
17193 | 1.68k | { |
17194 | 1.68k | D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tstring+")); |
17195 | 1.68k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
17196 | 1.68k | if (_token == NULL) { |
17197 | 0 | p->level--; |
17198 | 0 | return NULL; |
17199 | 0 | } |
17200 | 1.68k | int _end_lineno = _token->end_lineno; |
17201 | 1.68k | UNUSED(_end_lineno); // Only used by EXTRA macro |
17202 | 1.68k | int _end_col_offset = _token->end_col_offset; |
17203 | 1.68k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
17204 | 1.68k | _res = _PyPegen_concatenate_tstrings ( p , a , EXTRA ); |
17205 | 1.68k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
17206 | 0 | p->error_indicator = 1; |
17207 | 0 | p->level--; |
17208 | 0 | return NULL; |
17209 | 0 | } |
17210 | 1.68k | goto done; |
17211 | 1.68k | } |
17212 | 50.9k | p->mark = _mark; |
17213 | 50.9k | D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ', |
17214 | 50.9k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tstring+")); |
17215 | 50.9k | } |
17216 | 50.9k | _res = NULL; |
17217 | 80.5k | done: |
17218 | 80.5k | _PyPegen_insert_memo(p, _mark, strings_type, _res); |
17219 | 80.5k | p->level--; |
17220 | 80.5k | return _res; |
17221 | 50.9k | } |
17222 | | |
17223 | | // display_items: ','.display_item+ ','? |
17224 | | static asdl_expr_seq* |
17225 | | display_items_rule(Parser *p) |
17226 | 57.5k | { |
17227 | 57.5k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
17228 | 0 | _Pypegen_stack_overflow(p); |
17229 | 0 | } |
17230 | 57.5k | if (p->error_indicator) { |
17231 | 0 | p->level--; |
17232 | 0 | return NULL; |
17233 | 0 | } |
17234 | 57.5k | asdl_expr_seq* _res = NULL; |
17235 | 57.5k | int _mark = p->mark; |
17236 | 57.5k | { // ','.display_item+ ','? |
17237 | 57.5k | if (p->error_indicator) { |
17238 | 0 | p->level--; |
17239 | 0 | return NULL; |
17240 | 0 | } |
17241 | 57.5k | D(fprintf(stderr, "%*c> display_items[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.display_item+ ','?")); |
17242 | 57.5k | void *_opt_var; |
17243 | 57.5k | UNUSED(_opt_var); // Silence compiler warnings |
17244 | 57.5k | asdl_expr_seq* a; |
17245 | 57.5k | if ( |
17246 | 57.5k | (a = (asdl_expr_seq*)_gather_83_rule(p)) // ','.display_item+ |
17247 | 26.8k | && |
17248 | 26.8k | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
17249 | 57.5k | ) |
17250 | 26.5k | { |
17251 | 26.5k | D(fprintf(stderr, "%*c+ display_items[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.display_item+ ','?")); |
17252 | 26.5k | _res = a; |
17253 | 26.5k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
17254 | 0 | p->error_indicator = 1; |
17255 | 0 | p->level--; |
17256 | 0 | return NULL; |
17257 | 0 | } |
17258 | 26.5k | goto done; |
17259 | 26.5k | } |
17260 | 31.0k | p->mark = _mark; |
17261 | 31.0k | D(fprintf(stderr, "%*c%s display_items[%d-%d]: %s failed!\n", p->level, ' ', |
17262 | 31.0k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.display_item+ ','?")); |
17263 | 31.0k | } |
17264 | 31.0k | _res = NULL; |
17265 | 57.5k | done: |
17266 | 57.5k | p->level--; |
17267 | 57.5k | return _res; |
17268 | 31.0k | } |
17269 | | |
17270 | | // display_item: invalid_starred_expression_unpacking_sequence | star_named_expression |
17271 | | static expr_ty |
17272 | | display_item_rule(Parser *p) |
17273 | 150k | { |
17274 | 150k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
17275 | 0 | _Pypegen_stack_overflow(p); |
17276 | 0 | } |
17277 | 150k | if (p->error_indicator) { |
17278 | 0 | p->level--; |
17279 | 0 | return NULL; |
17280 | 0 | } |
17281 | 150k | expr_ty _res = NULL; |
17282 | 150k | int _mark = p->mark; |
17283 | 150k | if (p->call_invalid_rules) { // invalid_starred_expression_unpacking_sequence |
17284 | 66.7k | if (p->error_indicator) { |
17285 | 0 | p->level--; |
17286 | 0 | return NULL; |
17287 | 0 | } |
17288 | 66.7k | D(fprintf(stderr, "%*c> display_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_starred_expression_unpacking_sequence")); |
17289 | 66.7k | void *invalid_starred_expression_unpacking_sequence_var; |
17290 | 66.7k | if ( |
17291 | 66.7k | (invalid_starred_expression_unpacking_sequence_var = invalid_starred_expression_unpacking_sequence_rule(p)) // invalid_starred_expression_unpacking_sequence |
17292 | 66.7k | ) |
17293 | 0 | { |
17294 | 0 | D(fprintf(stderr, "%*c+ display_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_starred_expression_unpacking_sequence")); |
17295 | 0 | _res = invalid_starred_expression_unpacking_sequence_var; |
17296 | 0 | goto done; |
17297 | 0 | } |
17298 | 66.7k | p->mark = _mark; |
17299 | 66.7k | D(fprintf(stderr, "%*c%s display_item[%d-%d]: %s failed!\n", p->level, ' ', |
17300 | 66.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_starred_expression_unpacking_sequence")); |
17301 | 66.7k | } |
17302 | 150k | { // star_named_expression |
17303 | 150k | if (p->error_indicator) { |
17304 | 334 | p->level--; |
17305 | 334 | return NULL; |
17306 | 334 | } |
17307 | 150k | D(fprintf(stderr, "%*c> display_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression")); |
17308 | 150k | expr_ty star_named_expression_var; |
17309 | 150k | if ( |
17310 | 150k | (star_named_expression_var = star_named_expression_rule(p)) // star_named_expression |
17311 | 150k | ) |
17312 | 80.0k | { |
17313 | 80.0k | D(fprintf(stderr, "%*c+ display_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression")); |
17314 | 80.0k | _res = star_named_expression_var; |
17315 | 80.0k | goto done; |
17316 | 80.0k | } |
17317 | 70.2k | p->mark = _mark; |
17318 | 70.2k | D(fprintf(stderr, "%*c%s display_item[%d-%d]: %s failed!\n", p->level, ' ', |
17319 | 70.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression")); |
17320 | 70.2k | } |
17321 | 70.2k | _res = NULL; |
17322 | 150k | done: |
17323 | 150k | p->level--; |
17324 | 150k | return _res; |
17325 | 70.2k | } |
17326 | | |
17327 | | // list: '[' display_items? ']' |
17328 | | Py_LOCAL_SYMBOL expr_ty |
17329 | | list_rule(Parser *p) |
17330 | 280k | { |
17331 | 280k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
17332 | 0 | _Pypegen_stack_overflow(p); |
17333 | 0 | } |
17334 | 280k | if (p->error_indicator) { |
17335 | 0 | p->level--; |
17336 | 0 | return NULL; |
17337 | 0 | } |
17338 | 280k | expr_ty _res = NULL; |
17339 | 280k | int _mark = p->mark; |
17340 | 280k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
17341 | 0 | p->error_indicator = 1; |
17342 | 0 | p->level--; |
17343 | 0 | return NULL; |
17344 | 0 | } |
17345 | 280k | int _start_lineno = p->tokens[_mark]->lineno; |
17346 | 280k | UNUSED(_start_lineno); // Only used by EXTRA macro |
17347 | 280k | int _start_col_offset = p->tokens[_mark]->col_offset; |
17348 | 280k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
17349 | 280k | { // '[' display_items? ']' |
17350 | 280k | if (p->error_indicator) { |
17351 | 0 | p->level--; |
17352 | 0 | return NULL; |
17353 | 0 | } |
17354 | 280k | D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' display_items? ']'")); |
17355 | 280k | Token * _literal; |
17356 | 280k | Token * _literal_1; |
17357 | 280k | void *a; |
17358 | 280k | if ( |
17359 | 280k | (_literal = _PyPegen_expect_token(p, 9)) // token='[' |
17360 | 34.1k | && |
17361 | 34.1k | (a = display_items_rule(p), !p->error_indicator) // display_items? |
17362 | 33.5k | && |
17363 | 33.5k | (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']' |
17364 | 280k | ) |
17365 | 9.31k | { |
17366 | 9.31k | D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' display_items? ']'")); |
17367 | 9.31k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
17368 | 9.31k | if (_token == NULL) { |
17369 | 0 | p->level--; |
17370 | 0 | return NULL; |
17371 | 0 | } |
17372 | 9.31k | int _end_lineno = _token->end_lineno; |
17373 | 9.31k | UNUSED(_end_lineno); // Only used by EXTRA macro |
17374 | 9.31k | int _end_col_offset = _token->end_col_offset; |
17375 | 9.31k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
17376 | 9.31k | _res = _PyAST_List ( a , Load , EXTRA ); |
17377 | 9.31k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
17378 | 0 | p->error_indicator = 1; |
17379 | 0 | p->level--; |
17380 | 0 | return NULL; |
17381 | 0 | } |
17382 | 9.31k | goto done; |
17383 | 9.31k | } |
17384 | 270k | p->mark = _mark; |
17385 | 270k | D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ', |
17386 | 270k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' display_items? ']'")); |
17387 | 270k | } |
17388 | 270k | _res = NULL; |
17389 | 280k | done: |
17390 | 280k | p->level--; |
17391 | 280k | return _res; |
17392 | 270k | } |
17393 | | |
17394 | | // tuple: '(' [display_item ',' display_items?] ')' |
17395 | | Py_LOCAL_SYMBOL expr_ty |
17396 | | tuple_rule(Parser *p) |
17397 | 308k | { |
17398 | 308k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
17399 | 0 | _Pypegen_stack_overflow(p); |
17400 | 0 | } |
17401 | 308k | if (p->error_indicator) { |
17402 | 0 | p->level--; |
17403 | 0 | return NULL; |
17404 | 0 | } |
17405 | 308k | expr_ty _res = NULL; |
17406 | 308k | int _mark = p->mark; |
17407 | 308k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
17408 | 0 | p->error_indicator = 1; |
17409 | 0 | p->level--; |
17410 | 0 | return NULL; |
17411 | 0 | } |
17412 | 308k | int _start_lineno = p->tokens[_mark]->lineno; |
17413 | 308k | UNUSED(_start_lineno); // Only used by EXTRA macro |
17414 | 308k | int _start_col_offset = p->tokens[_mark]->col_offset; |
17415 | 308k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
17416 | 308k | { // '(' [display_item ',' display_items?] ')' |
17417 | 308k | if (p->error_indicator) { |
17418 | 0 | p->level--; |
17419 | 0 | return NULL; |
17420 | 0 | } |
17421 | 308k | D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [display_item ',' display_items?] ')'")); |
17422 | 308k | Token * _literal; |
17423 | 308k | Token * _literal_1; |
17424 | 308k | void *a; |
17425 | 308k | if ( |
17426 | 308k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
17427 | 66.6k | && |
17428 | 66.6k | (a = _tmp_84_rule(p), !p->error_indicator) // [display_item ',' display_items?] |
17429 | 65.4k | && |
17430 | 65.4k | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
17431 | 308k | ) |
17432 | 37.2k | { |
17433 | 37.2k | D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [display_item ',' display_items?] ')'")); |
17434 | 37.2k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
17435 | 37.2k | if (_token == NULL) { |
17436 | 0 | p->level--; |
17437 | 0 | return NULL; |
17438 | 0 | } |
17439 | 37.2k | int _end_lineno = _token->end_lineno; |
17440 | 37.2k | UNUSED(_end_lineno); // Only used by EXTRA macro |
17441 | 37.2k | int _end_col_offset = _token->end_col_offset; |
17442 | 37.2k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
17443 | 37.2k | _res = _PyAST_Tuple ( a , Load , EXTRA ); |
17444 | 37.2k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
17445 | 0 | p->error_indicator = 1; |
17446 | 0 | p->level--; |
17447 | 0 | return NULL; |
17448 | 0 | } |
17449 | 37.2k | goto done; |
17450 | 37.2k | } |
17451 | 271k | p->mark = _mark; |
17452 | 271k | D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ', |
17453 | 271k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [display_item ',' display_items?] ')'")); |
17454 | 271k | } |
17455 | 271k | _res = NULL; |
17456 | 308k | done: |
17457 | 308k | p->level--; |
17458 | 308k | return _res; |
17459 | 271k | } |
17460 | | |
17461 | | // set: '{' display_items '}' |
17462 | | static expr_ty |
17463 | | set_rule(Parser *p) |
17464 | 12.5k | { |
17465 | 12.5k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
17466 | 0 | _Pypegen_stack_overflow(p); |
17467 | 0 | } |
17468 | 12.5k | if (p->error_indicator) { |
17469 | 0 | p->level--; |
17470 | 0 | return NULL; |
17471 | 0 | } |
17472 | 12.5k | expr_ty _res = NULL; |
17473 | 12.5k | int _mark = p->mark; |
17474 | 12.5k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
17475 | 0 | p->error_indicator = 1; |
17476 | 0 | p->level--; |
17477 | 0 | return NULL; |
17478 | 0 | } |
17479 | 12.5k | int _start_lineno = p->tokens[_mark]->lineno; |
17480 | 12.5k | UNUSED(_start_lineno); // Only used by EXTRA macro |
17481 | 12.5k | int _start_col_offset = p->tokens[_mark]->col_offset; |
17482 | 12.5k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
17483 | 12.5k | { // '{' display_items '}' |
17484 | 12.5k | if (p->error_indicator) { |
17485 | 0 | p->level--; |
17486 | 0 | return NULL; |
17487 | 0 | } |
17488 | 12.5k | D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' display_items '}'")); |
17489 | 12.5k | Token * _literal; |
17490 | 12.5k | Token * _literal_1; |
17491 | 12.5k | asdl_expr_seq* a; |
17492 | 12.5k | if ( |
17493 | 12.5k | (_literal = _PyPegen_expect_token(p, 25)) // token='{' |
17494 | 12.5k | && |
17495 | 12.5k | (a = display_items_rule(p)) // display_items |
17496 | 7.84k | && |
17497 | 7.84k | (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}' |
17498 | 12.5k | ) |
17499 | 2.40k | { |
17500 | 2.40k | D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' display_items '}'")); |
17501 | 2.40k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
17502 | 2.40k | if (_token == NULL) { |
17503 | 0 | p->level--; |
17504 | 0 | return NULL; |
17505 | 0 | } |
17506 | 2.40k | int _end_lineno = _token->end_lineno; |
17507 | 2.40k | UNUSED(_end_lineno); // Only used by EXTRA macro |
17508 | 2.40k | int _end_col_offset = _token->end_col_offset; |
17509 | 2.40k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
17510 | 2.40k | _res = _PyAST_Set ( a , EXTRA ); |
17511 | 2.40k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
17512 | 0 | p->error_indicator = 1; |
17513 | 0 | p->level--; |
17514 | 0 | return NULL; |
17515 | 0 | } |
17516 | 2.40k | goto done; |
17517 | 2.40k | } |
17518 | 10.1k | p->mark = _mark; |
17519 | 10.1k | D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ', |
17520 | 10.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' display_items '}'")); |
17521 | 10.1k | } |
17522 | 10.1k | _res = NULL; |
17523 | 12.5k | done: |
17524 | 12.5k | p->level--; |
17525 | 12.5k | return _res; |
17526 | 10.1k | } |
17527 | | |
17528 | | // dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}' |
17529 | | static expr_ty |
17530 | | dict_rule(Parser *p) |
17531 | 18.7k | { |
17532 | 18.7k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
17533 | 0 | _Pypegen_stack_overflow(p); |
17534 | 0 | } |
17535 | 18.7k | if (p->error_indicator) { |
17536 | 0 | p->level--; |
17537 | 0 | return NULL; |
17538 | 0 | } |
17539 | 18.7k | expr_ty _res = NULL; |
17540 | 18.7k | int _mark = p->mark; |
17541 | 18.7k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
17542 | 0 | p->error_indicator = 1; |
17543 | 0 | p->level--; |
17544 | 0 | return NULL; |
17545 | 0 | } |
17546 | 18.7k | int _start_lineno = p->tokens[_mark]->lineno; |
17547 | 18.7k | UNUSED(_start_lineno); // Only used by EXTRA macro |
17548 | 18.7k | int _start_col_offset = p->tokens[_mark]->col_offset; |
17549 | 18.7k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
17550 | 18.7k | { // '{' double_starred_kvpairs? '}' |
17551 | 18.7k | if (p->error_indicator) { |
17552 | 0 | p->level--; |
17553 | 0 | return NULL; |
17554 | 0 | } |
17555 | 18.7k | D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'")); |
17556 | 18.7k | Token * _literal; |
17557 | 18.7k | Token * _literal_1; |
17558 | 18.7k | void *a; |
17559 | 18.7k | if ( |
17560 | 18.7k | (_literal = _PyPegen_expect_token(p, 25)) // token='{' |
17561 | 18.7k | && |
17562 | 18.7k | (a = double_starred_kvpairs_rule(p), !p->error_indicator) // double_starred_kvpairs? |
17563 | 17.6k | && |
17564 | 17.6k | (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}' |
17565 | 18.7k | ) |
17566 | 4.03k | { |
17567 | 4.03k | D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'")); |
17568 | 4.03k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
17569 | 4.03k | if (_token == NULL) { |
17570 | 0 | p->level--; |
17571 | 0 | return NULL; |
17572 | 0 | } |
17573 | 4.03k | int _end_lineno = _token->end_lineno; |
17574 | 4.03k | UNUSED(_end_lineno); // Only used by EXTRA macro |
17575 | 4.03k | int _end_col_offset = _token->end_col_offset; |
17576 | 4.03k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
17577 | 4.03k | _res = _PyAST_Dict ( CHECK ( asdl_expr_seq* , _PyPegen_get_keys ( p , a ) ) , CHECK ( asdl_expr_seq* , _PyPegen_get_values ( p , a ) ) , EXTRA ); |
17578 | 4.03k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
17579 | 0 | p->error_indicator = 1; |
17580 | 0 | p->level--; |
17581 | 0 | return NULL; |
17582 | 0 | } |
17583 | 4.03k | goto done; |
17584 | 4.03k | } |
17585 | 14.7k | p->mark = _mark; |
17586 | 14.7k | D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ', |
17587 | 14.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'")); |
17588 | 14.7k | } |
17589 | 0 | { // '{' invalid_double_starred_kvpairs '}' |
17590 | 14.7k | if (p->error_indicator) { |
17591 | 1.15k | p->level--; |
17592 | 1.15k | return NULL; |
17593 | 1.15k | } |
17594 | 13.5k | D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'")); |
17595 | 13.5k | Token * _literal; |
17596 | 13.5k | Token * _literal_1; |
17597 | 13.5k | void *invalid_double_starred_kvpairs_var; |
17598 | 13.5k | if ( |
17599 | 13.5k | (_literal = _PyPegen_expect_token(p, 25)) // token='{' |
17600 | 13.5k | && |
17601 | 13.5k | (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs |
17602 | 0 | && |
17603 | 0 | (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}' |
17604 | 13.5k | ) |
17605 | 0 | { |
17606 | 0 | D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'")); |
17607 | 0 | _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1); |
17608 | 0 | goto done; |
17609 | 0 | } |
17610 | 13.5k | p->mark = _mark; |
17611 | 13.5k | D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ', |
17612 | 13.5k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'")); |
17613 | 13.5k | } |
17614 | 13.5k | _res = NULL; |
17615 | 17.6k | done: |
17616 | 17.6k | p->level--; |
17617 | 17.6k | return _res; |
17618 | 13.5k | } |
17619 | | |
17620 | | // double_starred_kvpairs: ','.double_starred_kvpair+ ','? |
17621 | | static asdl_seq* |
17622 | | double_starred_kvpairs_rule(Parser *p) |
17623 | 18.7k | { |
17624 | 18.7k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
17625 | 0 | _Pypegen_stack_overflow(p); |
17626 | 0 | } |
17627 | 18.7k | if (p->error_indicator) { |
17628 | 0 | p->level--; |
17629 | 0 | return NULL; |
17630 | 0 | } |
17631 | 18.7k | asdl_seq* _res = NULL; |
17632 | 18.7k | int _mark = p->mark; |
17633 | 18.7k | { // ','.double_starred_kvpair+ ','? |
17634 | 18.7k | if (p->error_indicator) { |
17635 | 0 | p->level--; |
17636 | 0 | return NULL; |
17637 | 0 | } |
17638 | 18.7k | D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?")); |
17639 | 18.7k | void *_opt_var; |
17640 | 18.7k | UNUSED(_opt_var); // Silence compiler warnings |
17641 | 18.7k | asdl_seq * a; |
17642 | 18.7k | if ( |
17643 | 18.7k | (a = _gather_86_rule(p)) // ','.double_starred_kvpair+ |
17644 | 5.74k | && |
17645 | 5.74k | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
17646 | 18.7k | ) |
17647 | 4.58k | { |
17648 | 4.58k | D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?")); |
17649 | 4.58k | _res = a; |
17650 | 4.58k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
17651 | 0 | p->error_indicator = 1; |
17652 | 0 | p->level--; |
17653 | 0 | return NULL; |
17654 | 0 | } |
17655 | 4.58k | goto done; |
17656 | 4.58k | } |
17657 | 14.1k | p->mark = _mark; |
17658 | 14.1k | D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ', |
17659 | 14.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?")); |
17660 | 14.1k | } |
17661 | 14.1k | _res = NULL; |
17662 | 18.7k | done: |
17663 | 18.7k | p->level--; |
17664 | 18.7k | return _res; |
17665 | 14.1k | } |
17666 | | |
17667 | | // double_starred_kvpair: '**' bitwise_or | kvpair |
17668 | | Py_LOCAL_SYMBOL KeyValuePair* |
17669 | | double_starred_kvpair_rule(Parser *p) |
17670 | 54.0k | { |
17671 | 54.0k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
17672 | 0 | _Pypegen_stack_overflow(p); |
17673 | 0 | } |
17674 | 54.0k | if (p->error_indicator) { |
17675 | 0 | p->level--; |
17676 | 0 | return NULL; |
17677 | 0 | } |
17678 | 54.0k | KeyValuePair* _res = NULL; |
17679 | 54.0k | int _mark = p->mark; |
17680 | 54.0k | { // '**' bitwise_or |
17681 | 54.0k | if (p->error_indicator) { |
17682 | 0 | p->level--; |
17683 | 0 | return NULL; |
17684 | 0 | } |
17685 | 54.0k | D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or")); |
17686 | 54.0k | Token * _literal; |
17687 | 54.0k | expr_ty a; |
17688 | 54.0k | if ( |
17689 | 54.0k | (_literal = _PyPegen_expect_token(p, 35)) // token='**' |
17690 | 5.17k | && |
17691 | 5.17k | (a = bitwise_or_rule(p)) // bitwise_or |
17692 | 54.0k | ) |
17693 | 3.23k | { |
17694 | 3.23k | D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or")); |
17695 | 3.23k | _res = _PyPegen_key_value_pair ( p , NULL , a ); |
17696 | 3.23k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
17697 | 0 | p->error_indicator = 1; |
17698 | 0 | p->level--; |
17699 | 0 | return NULL; |
17700 | 0 | } |
17701 | 3.23k | goto done; |
17702 | 3.23k | } |
17703 | 50.8k | p->mark = _mark; |
17704 | 50.8k | D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ', |
17705 | 50.8k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or")); |
17706 | 50.8k | } |
17707 | 0 | { // kvpair |
17708 | 50.8k | if (p->error_indicator) { |
17709 | 205 | p->level--; |
17710 | 205 | return NULL; |
17711 | 205 | } |
17712 | 50.6k | D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair")); |
17713 | 50.6k | KeyValuePair* kvpair_var; |
17714 | 50.6k | if ( |
17715 | 50.6k | (kvpair_var = kvpair_rule(p)) // kvpair |
17716 | 50.6k | ) |
17717 | 22.4k | { |
17718 | 22.4k | D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair")); |
17719 | 22.4k | _res = kvpair_var; |
17720 | 22.4k | goto done; |
17721 | 22.4k | } |
17722 | 28.1k | p->mark = _mark; |
17723 | 28.1k | D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ', |
17724 | 28.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair")); |
17725 | 28.1k | } |
17726 | 28.1k | _res = NULL; |
17727 | 53.8k | done: |
17728 | 53.8k | p->level--; |
17729 | 53.8k | return _res; |
17730 | 28.1k | } |
17731 | | |
17732 | | // kvpair: expression ':' expression |
17733 | | static KeyValuePair* |
17734 | | kvpair_rule(Parser *p) |
17735 | 75.7k | { |
17736 | 75.7k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
17737 | 1 | _Pypegen_stack_overflow(p); |
17738 | 1 | } |
17739 | 75.7k | if (p->error_indicator) { |
17740 | 1 | p->level--; |
17741 | 1 | return NULL; |
17742 | 1 | } |
17743 | 75.7k | KeyValuePair* _res = NULL; |
17744 | 75.7k | int _mark = p->mark; |
17745 | 75.7k | { // expression ':' expression |
17746 | 75.7k | if (p->error_indicator) { |
17747 | 0 | p->level--; |
17748 | 0 | return NULL; |
17749 | 0 | } |
17750 | 75.7k | D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression")); |
17751 | 75.7k | Token * _literal; |
17752 | 75.7k | expr_ty a; |
17753 | 75.7k | expr_ty b; |
17754 | 75.7k | if ( |
17755 | 75.7k | (a = expression_rule(p)) // expression |
17756 | 49.7k | && |
17757 | 49.7k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
17758 | 32.5k | && |
17759 | 32.5k | (b = expression_rule(p)) // expression |
17760 | 75.7k | ) |
17761 | 27.8k | { |
17762 | 27.8k | D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression")); |
17763 | 27.8k | _res = _PyPegen_key_value_pair ( p , a , b ); |
17764 | 27.8k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
17765 | 0 | p->error_indicator = 1; |
17766 | 0 | p->level--; |
17767 | 0 | return NULL; |
17768 | 0 | } |
17769 | 27.8k | goto done; |
17770 | 27.8k | } |
17771 | 47.9k | p->mark = _mark; |
17772 | 47.9k | D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ', |
17773 | 47.9k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression")); |
17774 | 47.9k | } |
17775 | 47.9k | _res = NULL; |
17776 | 75.7k | done: |
17777 | 75.7k | p->level--; |
17778 | 75.7k | return _res; |
17779 | 47.9k | } |
17780 | | |
17781 | | // for_if_clauses: for_if_clause+ |
17782 | | Py_LOCAL_SYMBOL asdl_comprehension_seq* |
17783 | | for_if_clauses_rule(Parser *p) |
17784 | 107k | { |
17785 | 107k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
17786 | 0 | _Pypegen_stack_overflow(p); |
17787 | 0 | } |
17788 | 107k | if (p->error_indicator) { |
17789 | 0 | p->level--; |
17790 | 0 | return NULL; |
17791 | 0 | } |
17792 | 107k | asdl_comprehension_seq* _res = NULL; |
17793 | 107k | int _mark = p->mark; |
17794 | 107k | { // for_if_clause+ |
17795 | 107k | if (p->error_indicator) { |
17796 | 0 | p->level--; |
17797 | 0 | return NULL; |
17798 | 0 | } |
17799 | 107k | D(fprintf(stderr, "%*c> for_if_clauses[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause+")); |
17800 | 107k | asdl_comprehension_seq* a; |
17801 | 107k | if ( |
17802 | 107k | (a = (asdl_comprehension_seq*)_loop1_87_rule(p)) // for_if_clause+ |
17803 | 107k | ) |
17804 | 7.10k | { |
17805 | 7.10k | D(fprintf(stderr, "%*c+ for_if_clauses[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "for_if_clause+")); |
17806 | 7.10k | _res = a; |
17807 | 7.10k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
17808 | 0 | p->error_indicator = 1; |
17809 | 0 | p->level--; |
17810 | 0 | return NULL; |
17811 | 0 | } |
17812 | 7.10k | goto done; |
17813 | 7.10k | } |
17814 | 99.9k | p->mark = _mark; |
17815 | 99.9k | D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ', |
17816 | 99.9k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+")); |
17817 | 99.9k | } |
17818 | 99.9k | _res = NULL; |
17819 | 107k | done: |
17820 | 107k | p->level--; |
17821 | 107k | return _res; |
17822 | 99.9k | } |
17823 | | |
17824 | | // for_if_clause: |
17825 | | // | 'async' 'for' star_targets 'in' ~ disjunction (('if' disjunction))* |
17826 | | // | 'for' star_targets 'in' ~ disjunction (('if' disjunction))* |
17827 | | // | invalid_for_if_clause |
17828 | | // | invalid_for_target |
17829 | | static comprehension_ty |
17830 | | for_if_clause_rule(Parser *p) |
17831 | 114k | { |
17832 | 114k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
17833 | 0 | _Pypegen_stack_overflow(p); |
17834 | 0 | } |
17835 | 114k | if (p->error_indicator) { |
17836 | 0 | p->level--; |
17837 | 0 | return NULL; |
17838 | 0 | } |
17839 | 114k | comprehension_ty _res = NULL; |
17840 | 114k | int _mark = p->mark; |
17841 | 114k | { // 'async' 'for' star_targets 'in' ~ disjunction (('if' disjunction))* |
17842 | 114k | if (p->error_indicator) { |
17843 | 0 | p->level--; |
17844 | 0 | return NULL; |
17845 | 0 | } |
17846 | 114k | D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async' 'for' star_targets 'in' ~ disjunction (('if' disjunction))*")); |
17847 | 114k | int _cut_var = 0; |
17848 | 114k | Token * _keyword; |
17849 | 114k | Token * _keyword_1; |
17850 | 114k | Token * _keyword_2; |
17851 | 114k | expr_ty a; |
17852 | 114k | expr_ty b; |
17853 | 114k | asdl_expr_seq* c; |
17854 | 114k | if ( |
17855 | 114k | (_keyword = _PyPegen_expect_token(p, 513)) // token='async' |
17856 | 1.61k | && |
17857 | 1.61k | (_keyword_1 = _PyPegen_expect_token(p, 517)) // token='for' |
17858 | 1.58k | && |
17859 | 1.58k | (a = star_targets_rule(p)) // star_targets |
17860 | 765 | && |
17861 | 765 | (_keyword_2 = _PyPegen_expect_token(p, 523)) // token='in' |
17862 | 673 | && |
17863 | 673 | (_cut_var = 1) |
17864 | 673 | && |
17865 | 673 | (b = disjunction_rule(p)) // disjunction |
17866 | 502 | && |
17867 | 502 | (c = (asdl_expr_seq*)_loop0_88_rule(p)) // (('if' disjunction))* |
17868 | 114k | ) |
17869 | 502 | { |
17870 | 502 | D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async' 'for' star_targets 'in' ~ disjunction (('if' disjunction))*")); |
17871 | 502 | _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) ); |
17872 | 502 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
17873 | 100 | p->error_indicator = 1; |
17874 | 100 | p->level--; |
17875 | 100 | return NULL; |
17876 | 100 | } |
17877 | 402 | goto done; |
17878 | 502 | } |
17879 | 114k | p->mark = _mark; |
17880 | 114k | D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ', |
17881 | 114k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async' 'for' star_targets 'in' ~ disjunction (('if' disjunction))*")); |
17882 | 114k | if (_cut_var) { |
17883 | 171 | p->level--; |
17884 | 171 | return NULL; |
17885 | 171 | } |
17886 | 114k | } |
17887 | 114k | { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))* |
17888 | 114k | if (p->error_indicator) { |
17889 | 288 | p->level--; |
17890 | 288 | return NULL; |
17891 | 288 | } |
17892 | 113k | D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*")); |
17893 | 113k | int _cut_var = 0; |
17894 | 113k | Token * _keyword; |
17895 | 113k | Token * _keyword_1; |
17896 | 113k | expr_ty a; |
17897 | 113k | expr_ty b; |
17898 | 113k | asdl_expr_seq* c; |
17899 | 113k | if ( |
17900 | 113k | (_keyword = _PyPegen_expect_token(p, 517)) // token='for' |
17901 | 11.1k | && |
17902 | 11.1k | (a = star_targets_rule(p)) // star_targets |
17903 | 8.45k | && |
17904 | 8.45k | (_keyword_1 = _PyPegen_expect_token(p, 523)) // token='in' |
17905 | 7.73k | && |
17906 | 7.73k | (_cut_var = 1) |
17907 | 7.73k | && |
17908 | 7.73k | (b = disjunction_rule(p)) // disjunction |
17909 | 7.40k | && |
17910 | 7.40k | (c = (asdl_expr_seq*)_loop0_88_rule(p)) // (('if' disjunction))* |
17911 | 113k | ) |
17912 | 7.40k | { |
17913 | 7.40k | D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*")); |
17914 | 7.40k | _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena ); |
17915 | 7.40k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
17916 | 109 | p->error_indicator = 1; |
17917 | 109 | p->level--; |
17918 | 109 | return NULL; |
17919 | 109 | } |
17920 | 7.29k | goto done; |
17921 | 7.40k | } |
17922 | 106k | p->mark = _mark; |
17923 | 106k | D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ', |
17924 | 106k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*")); |
17925 | 106k | if (_cut_var) { |
17926 | 332 | p->level--; |
17927 | 332 | return NULL; |
17928 | 332 | } |
17929 | 106k | } |
17930 | 106k | if (p->call_invalid_rules) { // invalid_for_if_clause |
17931 | 56.0k | if (p->error_indicator) { |
17932 | 691 | p->level--; |
17933 | 691 | return NULL; |
17934 | 691 | } |
17935 | 55.3k | D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_if_clause")); |
17936 | 55.3k | void *invalid_for_if_clause_var; |
17937 | 55.3k | if ( |
17938 | 55.3k | (invalid_for_if_clause_var = invalid_for_if_clause_rule(p)) // invalid_for_if_clause |
17939 | 55.3k | ) |
17940 | 0 | { |
17941 | 0 | D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_if_clause")); |
17942 | 0 | _res = invalid_for_if_clause_var; |
17943 | 0 | goto done; |
17944 | 0 | } |
17945 | 55.3k | p->mark = _mark; |
17946 | 55.3k | D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ', |
17947 | 55.3k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_if_clause")); |
17948 | 55.3k | } |
17949 | 105k | if (p->call_invalid_rules) { // invalid_for_target |
17950 | 55.3k | if (p->error_indicator) { |
17951 | 590 | p->level--; |
17952 | 590 | return NULL; |
17953 | 590 | } |
17954 | 54.7k | D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target")); |
17955 | 54.7k | void *invalid_for_target_var; |
17956 | 54.7k | if ( |
17957 | 54.7k | (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target |
17958 | 54.7k | ) |
17959 | 0 | { |
17960 | 0 | D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target")); |
17961 | 0 | _res = invalid_for_target_var; |
17962 | 0 | goto done; |
17963 | 0 | } |
17964 | 54.7k | p->mark = _mark; |
17965 | 54.7k | D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ', |
17966 | 54.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target")); |
17967 | 54.7k | } |
17968 | 104k | _res = NULL; |
17969 | 112k | done: |
17970 | 112k | p->level--; |
17971 | 112k | return _res; |
17972 | 104k | } |
17973 | | |
17974 | | // listcomp: '[' star_named_expression for_if_clauses ']' | invalid_comprehension |
17975 | | static expr_ty |
17976 | | listcomp_rule(Parser *p) |
17977 | 44.0k | { |
17978 | 44.0k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
17979 | 1 | _Pypegen_stack_overflow(p); |
17980 | 1 | } |
17981 | 44.0k | if (p->error_indicator) { |
17982 | 1 | p->level--; |
17983 | 1 | return NULL; |
17984 | 1 | } |
17985 | 44.0k | expr_ty _res = NULL; |
17986 | 44.0k | int _mark = p->mark; |
17987 | 44.0k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
17988 | 0 | p->error_indicator = 1; |
17989 | 0 | p->level--; |
17990 | 0 | return NULL; |
17991 | 0 | } |
17992 | 44.0k | int _start_lineno = p->tokens[_mark]->lineno; |
17993 | 44.0k | UNUSED(_start_lineno); // Only used by EXTRA macro |
17994 | 44.0k | int _start_col_offset = p->tokens[_mark]->col_offset; |
17995 | 44.0k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
17996 | 44.0k | { // '[' star_named_expression for_if_clauses ']' |
17997 | 44.0k | if (p->error_indicator) { |
17998 | 0 | p->level--; |
17999 | 0 | return NULL; |
18000 | 0 | } |
18001 | 44.0k | D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expression for_if_clauses ']'")); |
18002 | 44.0k | Token * _literal; |
18003 | 44.0k | Token * _literal_1; |
18004 | 44.0k | expr_ty a; |
18005 | 44.0k | asdl_comprehension_seq* b; |
18006 | 44.0k | if ( |
18007 | 44.0k | (_literal = _PyPegen_expect_token(p, 9)) // token='[' |
18008 | 44.0k | && |
18009 | 44.0k | (a = star_named_expression_rule(p)) // star_named_expression |
18010 | 13.7k | && |
18011 | 13.7k | (b = for_if_clauses_rule(p)) // for_if_clauses |
18012 | 1.14k | && |
18013 | 1.14k | (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']' |
18014 | 44.0k | ) |
18015 | 918 | { |
18016 | 918 | D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expression for_if_clauses ']'")); |
18017 | 918 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
18018 | 918 | if (_token == NULL) { |
18019 | 0 | p->level--; |
18020 | 0 | return NULL; |
18021 | 0 | } |
18022 | 918 | int _end_lineno = _token->end_lineno; |
18023 | 918 | UNUSED(_end_lineno); // Only used by EXTRA macro |
18024 | 918 | int _end_col_offset = _token->end_col_offset; |
18025 | 918 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
18026 | 918 | _res = _PyAST_ListComp ( a , b , EXTRA ); |
18027 | 918 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
18028 | 0 | p->error_indicator = 1; |
18029 | 0 | p->level--; |
18030 | 0 | return NULL; |
18031 | 0 | } |
18032 | 918 | goto done; |
18033 | 918 | } |
18034 | 43.1k | p->mark = _mark; |
18035 | 43.1k | D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ', |
18036 | 43.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expression for_if_clauses ']'")); |
18037 | 43.1k | } |
18038 | 43.1k | if (p->call_invalid_rules) { // invalid_comprehension |
18039 | 22.7k | if (p->error_indicator) { |
18040 | 12.8k | p->level--; |
18041 | 12.8k | return NULL; |
18042 | 12.8k | } |
18043 | 9.96k | D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension")); |
18044 | 9.96k | void *invalid_comprehension_var; |
18045 | 9.96k | if ( |
18046 | 9.96k | (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension |
18047 | 9.96k | ) |
18048 | 0 | { |
18049 | 0 | D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension")); |
18050 | 0 | _res = invalid_comprehension_var; |
18051 | 0 | goto done; |
18052 | 0 | } |
18053 | 9.96k | p->mark = _mark; |
18054 | 9.96k | D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ', |
18055 | 9.96k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension")); |
18056 | 9.96k | } |
18057 | 30.2k | _res = NULL; |
18058 | 31.1k | done: |
18059 | 31.1k | p->level--; |
18060 | 31.1k | return _res; |
18061 | 30.2k | } |
18062 | | |
18063 | | // setcomp: '{' star_named_expression for_if_clauses '}' | invalid_comprehension |
18064 | | static expr_ty |
18065 | | setcomp_rule(Parser *p) |
18066 | 20.2k | { |
18067 | 20.2k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
18068 | 0 | _Pypegen_stack_overflow(p); |
18069 | 0 | } |
18070 | 20.2k | if (p->error_indicator) { |
18071 | 0 | p->level--; |
18072 | 0 | return NULL; |
18073 | 0 | } |
18074 | 20.2k | expr_ty _res = NULL; |
18075 | 20.2k | int _mark = p->mark; |
18076 | 20.2k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
18077 | 0 | p->error_indicator = 1; |
18078 | 0 | p->level--; |
18079 | 0 | return NULL; |
18080 | 0 | } |
18081 | 20.2k | int _start_lineno = p->tokens[_mark]->lineno; |
18082 | 20.2k | UNUSED(_start_lineno); // Only used by EXTRA macro |
18083 | 20.2k | int _start_col_offset = p->tokens[_mark]->col_offset; |
18084 | 20.2k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
18085 | 20.2k | { // '{' star_named_expression for_if_clauses '}' |
18086 | 20.2k | if (p->error_indicator) { |
18087 | 0 | p->level--; |
18088 | 0 | return NULL; |
18089 | 0 | } |
18090 | 20.2k | D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expression for_if_clauses '}'")); |
18091 | 20.2k | Token * _literal; |
18092 | 20.2k | Token * _literal_1; |
18093 | 20.2k | expr_ty a; |
18094 | 20.2k | asdl_comprehension_seq* b; |
18095 | 20.2k | if ( |
18096 | 20.2k | (_literal = _PyPegen_expect_token(p, 25)) // token='{' |
18097 | 20.2k | && |
18098 | 20.2k | (a = star_named_expression_rule(p)) // star_named_expression |
18099 | 11.9k | && |
18100 | 11.9k | (b = for_if_clauses_rule(p)) // for_if_clauses |
18101 | 861 | && |
18102 | 861 | (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}' |
18103 | 20.2k | ) |
18104 | 780 | { |
18105 | 780 | D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' star_named_expression for_if_clauses '}'")); |
18106 | 780 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
18107 | 780 | if (_token == NULL) { |
18108 | 0 | p->level--; |
18109 | 0 | return NULL; |
18110 | 0 | } |
18111 | 780 | int _end_lineno = _token->end_lineno; |
18112 | 780 | UNUSED(_end_lineno); // Only used by EXTRA macro |
18113 | 780 | int _end_col_offset = _token->end_col_offset; |
18114 | 780 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
18115 | 780 | _res = _PyAST_SetComp ( a , b , EXTRA ); |
18116 | 780 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
18117 | 0 | p->error_indicator = 1; |
18118 | 0 | p->level--; |
18119 | 0 | return NULL; |
18120 | 0 | } |
18121 | 780 | goto done; |
18122 | 780 | } |
18123 | 19.4k | p->mark = _mark; |
18124 | 19.4k | D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ', |
18125 | 19.4k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expression for_if_clauses '}'")); |
18126 | 19.4k | } |
18127 | 19.4k | if (p->call_invalid_rules) { // invalid_comprehension |
18128 | 7.64k | if (p->error_indicator) { |
18129 | 604 | p->level--; |
18130 | 604 | return NULL; |
18131 | 604 | } |
18132 | 7.04k | D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension")); |
18133 | 7.04k | void *invalid_comprehension_var; |
18134 | 7.04k | if ( |
18135 | 7.04k | (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension |
18136 | 7.04k | ) |
18137 | 0 | { |
18138 | 0 | D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension")); |
18139 | 0 | _res = invalid_comprehension_var; |
18140 | 0 | goto done; |
18141 | 0 | } |
18142 | 7.04k | p->mark = _mark; |
18143 | 7.04k | D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ', |
18144 | 7.04k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension")); |
18145 | 7.04k | } |
18146 | 18.8k | _res = NULL; |
18147 | 19.6k | done: |
18148 | 19.6k | p->level--; |
18149 | 19.6k | return _res; |
18150 | 18.8k | } |
18151 | | |
18152 | | // genexp: |
18153 | | // | '(' (assignment_expression | expression !':=' | starred_expression) for_if_clauses ')' |
18154 | | // | invalid_comprehension |
18155 | | Py_LOCAL_SYMBOL expr_ty |
18156 | | genexp_rule(Parser *p) |
18157 | 596k | { |
18158 | 596k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
18159 | 1 | _Pypegen_stack_overflow(p); |
18160 | 1 | } |
18161 | 596k | if (p->error_indicator) { |
18162 | 1 | p->level--; |
18163 | 1 | return NULL; |
18164 | 1 | } |
18165 | 596k | expr_ty _res = NULL; |
18166 | 596k | int _mark = p->mark; |
18167 | 596k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
18168 | 0 | p->error_indicator = 1; |
18169 | 0 | p->level--; |
18170 | 0 | return NULL; |
18171 | 0 | } |
18172 | 596k | int _start_lineno = p->tokens[_mark]->lineno; |
18173 | 596k | UNUSED(_start_lineno); // Only used by EXTRA macro |
18174 | 596k | int _start_col_offset = p->tokens[_mark]->col_offset; |
18175 | 596k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
18176 | 596k | { // '(' (assignment_expression | expression !':=' | starred_expression) for_if_clauses ')' |
18177 | 596k | if (p->error_indicator) { |
18178 | 0 | p->level--; |
18179 | 0 | return NULL; |
18180 | 0 | } |
18181 | 596k | D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (assignment_expression | expression !':=' | starred_expression) for_if_clauses ')'")); |
18182 | 596k | Token * _literal; |
18183 | 596k | Token * _literal_1; |
18184 | 596k | void *a; |
18185 | 596k | asdl_comprehension_seq* b; |
18186 | 596k | if ( |
18187 | 596k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
18188 | 101k | && |
18189 | 101k | (a = _tmp_89_rule(p)) // assignment_expression | expression !':=' | starred_expression |
18190 | 48.7k | && |
18191 | 48.7k | (b = for_if_clauses_rule(p)) // for_if_clauses |
18192 | 3.22k | && |
18193 | 3.22k | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
18194 | 596k | ) |
18195 | 2.43k | { |
18196 | 2.43k | D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (assignment_expression | expression !':=' | starred_expression) for_if_clauses ')'")); |
18197 | 2.43k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
18198 | 2.43k | if (_token == NULL) { |
18199 | 0 | p->level--; |
18200 | 0 | return NULL; |
18201 | 0 | } |
18202 | 2.43k | int _end_lineno = _token->end_lineno; |
18203 | 2.43k | UNUSED(_end_lineno); // Only used by EXTRA macro |
18204 | 2.43k | int _end_col_offset = _token->end_col_offset; |
18205 | 2.43k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
18206 | 2.43k | _res = _PyAST_GeneratorExp ( a , b , EXTRA ); |
18207 | 2.43k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
18208 | 0 | p->error_indicator = 1; |
18209 | 0 | p->level--; |
18210 | 0 | return NULL; |
18211 | 0 | } |
18212 | 2.43k | goto done; |
18213 | 2.43k | } |
18214 | 594k | p->mark = _mark; |
18215 | 594k | D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ', |
18216 | 594k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assignment_expression | expression !':=' | starred_expression) for_if_clauses ')'")); |
18217 | 594k | } |
18218 | 594k | if (p->call_invalid_rules) { // invalid_comprehension |
18219 | 306k | if (p->error_indicator) { |
18220 | 5.76k | p->level--; |
18221 | 5.76k | return NULL; |
18222 | 5.76k | } |
18223 | 300k | D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension")); |
18224 | 300k | void *invalid_comprehension_var; |
18225 | 300k | if ( |
18226 | 300k | (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension |
18227 | 300k | ) |
18228 | 0 | { |
18229 | 0 | D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension")); |
18230 | 0 | _res = invalid_comprehension_var; |
18231 | 0 | goto done; |
18232 | 0 | } |
18233 | 300k | p->mark = _mark; |
18234 | 300k | D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ', |
18235 | 300k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension")); |
18236 | 300k | } |
18237 | 588k | _res = NULL; |
18238 | 590k | done: |
18239 | 590k | p->level--; |
18240 | 590k | return _res; |
18241 | 588k | } |
18242 | | |
18243 | | // dictcomp: '{' kvpair for_if_clauses '}' | '{' '**' expression for_if_clauses '}' |
18244 | | static expr_ty |
18245 | | dictcomp_rule(Parser *p) |
18246 | 25.1k | { |
18247 | 25.1k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
18248 | 1 | _Pypegen_stack_overflow(p); |
18249 | 1 | } |
18250 | 25.1k | if (p->error_indicator) { |
18251 | 1 | p->level--; |
18252 | 1 | return NULL; |
18253 | 1 | } |
18254 | 25.1k | expr_ty _res = NULL; |
18255 | 25.1k | int _mark = p->mark; |
18256 | 25.1k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
18257 | 0 | p->error_indicator = 1; |
18258 | 0 | p->level--; |
18259 | 0 | return NULL; |
18260 | 0 | } |
18261 | 25.1k | int _start_lineno = p->tokens[_mark]->lineno; |
18262 | 25.1k | UNUSED(_start_lineno); // Only used by EXTRA macro |
18263 | 25.1k | int _start_col_offset = p->tokens[_mark]->col_offset; |
18264 | 25.1k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
18265 | 25.1k | { // '{' kvpair for_if_clauses '}' |
18266 | 25.1k | if (p->error_indicator) { |
18267 | 0 | p->level--; |
18268 | 0 | return NULL; |
18269 | 0 | } |
18270 | 25.1k | D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'")); |
18271 | 25.1k | Token * _literal; |
18272 | 25.1k | Token * _literal_1; |
18273 | 25.1k | KeyValuePair* a; |
18274 | 25.1k | asdl_comprehension_seq* b; |
18275 | 25.1k | if ( |
18276 | 25.1k | (_literal = _PyPegen_expect_token(p, 25)) // token='{' |
18277 | 25.1k | && |
18278 | 25.1k | (a = kvpair_rule(p)) // kvpair |
18279 | 5.37k | && |
18280 | 5.37k | (b = for_if_clauses_rule(p)) // for_if_clauses |
18281 | 996 | && |
18282 | 996 | (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}' |
18283 | 25.1k | ) |
18284 | 930 | { |
18285 | 930 | D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'")); |
18286 | 930 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
18287 | 930 | if (_token == NULL) { |
18288 | 0 | p->level--; |
18289 | 0 | return NULL; |
18290 | 0 | } |
18291 | 930 | int _end_lineno = _token->end_lineno; |
18292 | 930 | UNUSED(_end_lineno); // Only used by EXTRA macro |
18293 | 930 | int _end_col_offset = _token->end_col_offset; |
18294 | 930 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
18295 | 930 | _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA ); |
18296 | 930 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
18297 | 0 | p->error_indicator = 1; |
18298 | 0 | p->level--; |
18299 | 0 | return NULL; |
18300 | 0 | } |
18301 | 930 | goto done; |
18302 | 930 | } |
18303 | 24.2k | p->mark = _mark; |
18304 | 24.2k | D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ', |
18305 | 24.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'")); |
18306 | 24.2k | } |
18307 | 0 | { // '{' '**' expression for_if_clauses '}' |
18308 | 24.2k | if (p->error_indicator) { |
18309 | 3.50k | p->level--; |
18310 | 3.50k | return NULL; |
18311 | 3.50k | } |
18312 | 20.7k | D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' expression for_if_clauses '}'")); |
18313 | 20.7k | Token * _literal; |
18314 | 20.7k | Token * _literal_1; |
18315 | 20.7k | Token * _literal_2; |
18316 | 20.7k | expr_ty a; |
18317 | 20.7k | asdl_comprehension_seq* b; |
18318 | 20.7k | if ( |
18319 | 20.7k | (_literal = _PyPegen_expect_token(p, 25)) // token='{' |
18320 | 20.7k | && |
18321 | 20.7k | (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**' |
18322 | 2.44k | && |
18323 | 2.44k | (a = expression_rule(p)) // expression |
18324 | 1.84k | && |
18325 | 1.84k | (b = for_if_clauses_rule(p)) // for_if_clauses |
18326 | 350 | && |
18327 | 350 | (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}' |
18328 | 20.7k | ) |
18329 | 330 | { |
18330 | 330 | D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' expression for_if_clauses '}'")); |
18331 | 330 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
18332 | 330 | if (_token == NULL) { |
18333 | 0 | p->level--; |
18334 | 0 | return NULL; |
18335 | 0 | } |
18336 | 330 | int _end_lineno = _token->end_lineno; |
18337 | 330 | UNUSED(_end_lineno); // Only used by EXTRA macro |
18338 | 330 | int _end_col_offset = _token->end_col_offset; |
18339 | 330 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
18340 | 330 | _res = _PyAST_DictComp ( a , NULL , b , EXTRA ); |
18341 | 330 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
18342 | 0 | p->error_indicator = 1; |
18343 | 0 | p->level--; |
18344 | 0 | return NULL; |
18345 | 0 | } |
18346 | 330 | goto done; |
18347 | 330 | } |
18348 | 20.4k | p->mark = _mark; |
18349 | 20.4k | D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ', |
18350 | 20.4k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' expression for_if_clauses '}'")); |
18351 | 20.4k | } |
18352 | 20.4k | _res = NULL; |
18353 | 21.6k | done: |
18354 | 21.6k | p->level--; |
18355 | 21.6k | return _res; |
18356 | 20.4k | } |
18357 | | |
18358 | | // arguments: args ','? &')' | invalid_arguments |
18359 | | Py_LOCAL_SYMBOL expr_ty |
18360 | | arguments_rule(Parser *p) |
18361 | 31.4k | { |
18362 | 31.4k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
18363 | 0 | _Pypegen_stack_overflow(p); |
18364 | 0 | } |
18365 | 31.4k | if (p->error_indicator) { |
18366 | 0 | p->level--; |
18367 | 0 | return NULL; |
18368 | 0 | } |
18369 | 31.4k | expr_ty _res = NULL; |
18370 | 31.4k | if (_PyPegen_is_memoized(p, arguments_type, &_res)) { |
18371 | 667 | p->level--; |
18372 | 667 | return _res; |
18373 | 667 | } |
18374 | 30.7k | int _mark = p->mark; |
18375 | 30.7k | { // args ','? &')' |
18376 | 30.7k | if (p->error_indicator) { |
18377 | 0 | p->level--; |
18378 | 0 | return NULL; |
18379 | 0 | } |
18380 | 30.7k | D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'")); |
18381 | 30.7k | void *_opt_var; |
18382 | 30.7k | UNUSED(_opt_var); // Silence compiler warnings |
18383 | 30.7k | expr_ty a; |
18384 | 30.7k | if ( |
18385 | 30.7k | (a = args_rule(p)) // args |
18386 | 18.5k | && |
18387 | 18.5k | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
18388 | 18.5k | && |
18389 | 18.5k | _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')' |
18390 | 30.7k | ) |
18391 | 8.75k | { |
18392 | 8.75k | D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'")); |
18393 | 8.75k | _res = a; |
18394 | 8.75k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
18395 | 0 | p->error_indicator = 1; |
18396 | 0 | p->level--; |
18397 | 0 | return NULL; |
18398 | 0 | } |
18399 | 8.75k | goto done; |
18400 | 8.75k | } |
18401 | 22.0k | p->mark = _mark; |
18402 | 22.0k | D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ', |
18403 | 22.0k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'")); |
18404 | 22.0k | } |
18405 | 22.0k | if (p->call_invalid_rules) { // invalid_arguments |
18406 | 10.2k | if (p->error_indicator) { |
18407 | 1.61k | p->level--; |
18408 | 1.61k | return NULL; |
18409 | 1.61k | } |
18410 | 8.66k | D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments")); |
18411 | 8.66k | void *invalid_arguments_var; |
18412 | 8.66k | if ( |
18413 | 8.66k | (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments |
18414 | 8.66k | ) |
18415 | 0 | { |
18416 | 0 | D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments")); |
18417 | 0 | _res = invalid_arguments_var; |
18418 | 0 | goto done; |
18419 | 0 | } |
18420 | 8.66k | p->mark = _mark; |
18421 | 8.66k | D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ', |
18422 | 8.66k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments")); |
18423 | 8.66k | } |
18424 | 20.4k | _res = NULL; |
18425 | 29.1k | done: |
18426 | 29.1k | _PyPegen_insert_memo(p, _mark, arguments_type, _res); |
18427 | 29.1k | p->level--; |
18428 | 29.1k | return _res; |
18429 | 20.4k | } |
18430 | | |
18431 | | // args: |
18432 | | // | ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs] |
18433 | | // | kwargs |
18434 | | Py_LOCAL_SYMBOL expr_ty |
18435 | | args_rule(Parser *p) |
18436 | 61.3k | { |
18437 | 61.3k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
18438 | 0 | _Pypegen_stack_overflow(p); |
18439 | 0 | } |
18440 | 61.3k | if (p->error_indicator) { |
18441 | 0 | p->level--; |
18442 | 0 | return NULL; |
18443 | 0 | } |
18444 | 61.3k | expr_ty _res = NULL; |
18445 | 61.3k | int _mark = p->mark; |
18446 | 61.3k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
18447 | 2 | p->error_indicator = 1; |
18448 | 2 | p->level--; |
18449 | 2 | return NULL; |
18450 | 2 | } |
18451 | 61.3k | int _start_lineno = p->tokens[_mark]->lineno; |
18452 | 61.3k | UNUSED(_start_lineno); // Only used by EXTRA macro |
18453 | 61.3k | int _start_col_offset = p->tokens[_mark]->col_offset; |
18454 | 61.3k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
18455 | 61.3k | { // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs] |
18456 | 61.3k | if (p->error_indicator) { |
18457 | 0 | p->level--; |
18458 | 0 | return NULL; |
18459 | 0 | } |
18460 | 61.3k | D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]")); |
18461 | 61.3k | asdl_expr_seq* a; |
18462 | 61.3k | void *b; |
18463 | 61.3k | if ( |
18464 | 61.3k | (a = (asdl_expr_seq*)_gather_91_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ |
18465 | 29.0k | && |
18466 | 29.0k | (b = _tmp_92_rule(p), !p->error_indicator) // [',' kwargs] |
18467 | 61.3k | ) |
18468 | 27.8k | { |
18469 | 27.8k | D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]")); |
18470 | 27.8k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
18471 | 27.8k | if (_token == NULL) { |
18472 | 0 | p->level--; |
18473 | 0 | return NULL; |
18474 | 0 | } |
18475 | 27.8k | int _end_lineno = _token->end_lineno; |
18476 | 27.8k | UNUSED(_end_lineno); // Only used by EXTRA macro |
18477 | 27.8k | int _end_col_offset = _token->end_col_offset; |
18478 | 27.8k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
18479 | 27.8k | _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA ); |
18480 | 27.8k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
18481 | 0 | p->error_indicator = 1; |
18482 | 0 | p->level--; |
18483 | 0 | return NULL; |
18484 | 0 | } |
18485 | 27.8k | goto done; |
18486 | 27.8k | } |
18487 | 33.5k | p->mark = _mark; |
18488 | 33.5k | D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ', |
18489 | 33.5k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]")); |
18490 | 33.5k | } |
18491 | 0 | { // kwargs |
18492 | 33.5k | if (p->error_indicator) { |
18493 | 1.34k | p->level--; |
18494 | 1.34k | return NULL; |
18495 | 1.34k | } |
18496 | 32.1k | D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs")); |
18497 | 32.1k | asdl_seq* a; |
18498 | 32.1k | if ( |
18499 | 32.1k | (a = kwargs_rule(p)) // kwargs |
18500 | 32.1k | ) |
18501 | 7.93k | { |
18502 | 7.93k | D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs")); |
18503 | 7.93k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
18504 | 7.93k | if (_token == NULL) { |
18505 | 0 | p->level--; |
18506 | 0 | return NULL; |
18507 | 0 | } |
18508 | 7.93k | int _end_lineno = _token->end_lineno; |
18509 | 7.93k | UNUSED(_end_lineno); // Only used by EXTRA macro |
18510 | 7.93k | int _end_col_offset = _token->end_col_offset; |
18511 | 7.93k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
18512 | 7.93k | _res = _PyAST_Call ( _PyPegen_dummy_name ( p ) , CHECK_NULL_ALLOWED ( asdl_expr_seq* , _PyPegen_seq_extract_starred_exprs ( p , a ) ) , CHECK_NULL_ALLOWED ( asdl_keyword_seq* , _PyPegen_seq_delete_starred_exprs ( p , a ) ) , EXTRA ); |
18513 | 7.93k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
18514 | 379 | p->error_indicator = 1; |
18515 | 379 | p->level--; |
18516 | 379 | return NULL; |
18517 | 379 | } |
18518 | 7.55k | goto done; |
18519 | 7.93k | } |
18520 | 24.2k | p->mark = _mark; |
18521 | 24.2k | D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ', |
18522 | 24.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs")); |
18523 | 24.2k | } |
18524 | 24.2k | _res = NULL; |
18525 | 59.6k | done: |
18526 | 59.6k | p->level--; |
18527 | 59.6k | return _res; |
18528 | 24.2k | } |
18529 | | |
18530 | | // kwargs: |
18531 | | // | ','.kwarg_or_starred+ [',' ','.kwarg_or_double_starred+] |
18532 | | // | ','.kwarg_or_double_starred+ |
18533 | | Py_LOCAL_SYMBOL asdl_seq* |
18534 | | kwargs_rule(Parser *p) |
18535 | 45.5k | { |
18536 | 45.5k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
18537 | 0 | _Pypegen_stack_overflow(p); |
18538 | 0 | } |
18539 | 45.5k | if (p->error_indicator) { |
18540 | 0 | p->level--; |
18541 | 0 | return NULL; |
18542 | 0 | } |
18543 | 45.5k | asdl_seq* _res = NULL; |
18544 | 45.5k | int _mark = p->mark; |
18545 | 45.5k | { // ','.kwarg_or_starred+ [',' ','.kwarg_or_double_starred+] |
18546 | 45.5k | if (p->error_indicator) { |
18547 | 0 | p->level--; |
18548 | 0 | return NULL; |
18549 | 0 | } |
18550 | 45.5k | D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ [',' ','.kwarg_or_double_starred+]")); |
18551 | 45.5k | asdl_seq * a; |
18552 | 45.5k | void *b; |
18553 | 45.5k | if ( |
18554 | 45.5k | (a = _gather_94_rule(p)) // ','.kwarg_or_starred+ |
18555 | 9.62k | && |
18556 | 9.62k | (b = _tmp_95_rule(p), !p->error_indicator) // [',' ','.kwarg_or_double_starred+] |
18557 | 45.5k | ) |
18558 | 9.18k | { |
18559 | 9.18k | D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ [',' ','.kwarg_or_double_starred+]")); |
18560 | 9.18k | _res = b ? _PyPegen_join_sequences ( p , a , b ) : a; |
18561 | 9.18k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
18562 | 0 | p->error_indicator = 1; |
18563 | 0 | p->level--; |
18564 | 0 | return NULL; |
18565 | 0 | } |
18566 | 9.18k | goto done; |
18567 | 9.18k | } |
18568 | 36.3k | p->mark = _mark; |
18569 | 36.3k | D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ', |
18570 | 36.3k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ [',' ','.kwarg_or_double_starred+]")); |
18571 | 36.3k | } |
18572 | 0 | { // ','.kwarg_or_double_starred+ |
18573 | 36.3k | if (p->error_indicator) { |
18574 | 896 | p->level--; |
18575 | 896 | return NULL; |
18576 | 896 | } |
18577 | 35.4k | D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+")); |
18578 | 35.4k | asdl_seq * _gather_97_var; |
18579 | 35.4k | if ( |
18580 | 35.4k | (_gather_97_var = _gather_97_rule(p)) // ','.kwarg_or_double_starred+ |
18581 | 35.4k | ) |
18582 | 3.99k | { |
18583 | 3.99k | D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+")); |
18584 | 3.99k | _res = _gather_97_var; |
18585 | 3.99k | goto done; |
18586 | 3.99k | } |
18587 | 31.4k | p->mark = _mark; |
18588 | 31.4k | D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ', |
18589 | 31.4k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+")); |
18590 | 31.4k | } |
18591 | 31.4k | _res = NULL; |
18592 | 44.6k | done: |
18593 | 44.6k | p->level--; |
18594 | 44.6k | return _res; |
18595 | 31.4k | } |
18596 | | |
18597 | | // starred_expression: |
18598 | | // | invalid_starred_expression_unpacking |
18599 | | // | '*' expression |
18600 | | // | invalid_starred_expression |
18601 | | Py_LOCAL_SYMBOL expr_ty |
18602 | | starred_expression_rule(Parser *p) |
18603 | 192k | { |
18604 | 192k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
18605 | 0 | _Pypegen_stack_overflow(p); |
18606 | 0 | } |
18607 | 192k | if (p->error_indicator) { |
18608 | 0 | p->level--; |
18609 | 0 | return NULL; |
18610 | 0 | } |
18611 | 192k | expr_ty _res = NULL; |
18612 | 192k | int _mark = p->mark; |
18613 | 192k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
18614 | 46 | p->error_indicator = 1; |
18615 | 46 | p->level--; |
18616 | 46 | return NULL; |
18617 | 46 | } |
18618 | 192k | int _start_lineno = p->tokens[_mark]->lineno; |
18619 | 192k | UNUSED(_start_lineno); // Only used by EXTRA macro |
18620 | 192k | int _start_col_offset = p->tokens[_mark]->col_offset; |
18621 | 192k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
18622 | 192k | if (p->call_invalid_rules) { // invalid_starred_expression_unpacking |
18623 | 127k | if (p->error_indicator) { |
18624 | 0 | p->level--; |
18625 | 0 | return NULL; |
18626 | 0 | } |
18627 | 127k | D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_starred_expression_unpacking")); |
18628 | 127k | void *invalid_starred_expression_unpacking_var; |
18629 | 127k | if ( |
18630 | 127k | (invalid_starred_expression_unpacking_var = invalid_starred_expression_unpacking_rule(p)) // invalid_starred_expression_unpacking |
18631 | 127k | ) |
18632 | 0 | { |
18633 | 0 | D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_starred_expression_unpacking")); |
18634 | 0 | _res = invalid_starred_expression_unpacking_var; |
18635 | 0 | goto done; |
18636 | 0 | } |
18637 | 127k | p->mark = _mark; |
18638 | 127k | D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ', |
18639 | 127k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_starred_expression_unpacking")); |
18640 | 127k | } |
18641 | 192k | { // '*' expression |
18642 | 192k | if (p->error_indicator) { |
18643 | 1.29k | p->level--; |
18644 | 1.29k | return NULL; |
18645 | 1.29k | } |
18646 | 190k | D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression")); |
18647 | 190k | Token * _literal; |
18648 | 190k | expr_ty a; |
18649 | 190k | if ( |
18650 | 190k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
18651 | 12.9k | && |
18652 | 12.9k | (a = expression_rule(p)) // expression |
18653 | 190k | ) |
18654 | 12.6k | { |
18655 | 12.6k | D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression")); |
18656 | 12.6k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
18657 | 12.6k | if (_token == NULL) { |
18658 | 0 | p->level--; |
18659 | 0 | return NULL; |
18660 | 0 | } |
18661 | 12.6k | int _end_lineno = _token->end_lineno; |
18662 | 12.6k | UNUSED(_end_lineno); // Only used by EXTRA macro |
18663 | 12.6k | int _end_col_offset = _token->end_col_offset; |
18664 | 12.6k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
18665 | 12.6k | _res = _PyAST_Starred ( a , Load , EXTRA ); |
18666 | 12.6k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
18667 | 0 | p->error_indicator = 1; |
18668 | 0 | p->level--; |
18669 | 0 | return NULL; |
18670 | 0 | } |
18671 | 12.6k | goto done; |
18672 | 12.6k | } |
18673 | 178k | p->mark = _mark; |
18674 | 178k | D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ', |
18675 | 178k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression")); |
18676 | 178k | } |
18677 | 178k | if (p->call_invalid_rules) { // invalid_starred_expression |
18678 | 115k | if (p->error_indicator) { |
18679 | 0 | p->level--; |
18680 | 0 | return NULL; |
18681 | 0 | } |
18682 | 115k | D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_starred_expression")); |
18683 | 115k | void *invalid_starred_expression_var; |
18684 | 115k | if ( |
18685 | 115k | (invalid_starred_expression_var = invalid_starred_expression_rule(p)) // invalid_starred_expression |
18686 | 115k | ) |
18687 | 0 | { |
18688 | 0 | D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_starred_expression")); |
18689 | 0 | _res = invalid_starred_expression_var; |
18690 | 0 | goto done; |
18691 | 0 | } |
18692 | 115k | p->mark = _mark; |
18693 | 115k | D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ', |
18694 | 115k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_starred_expression")); |
18695 | 115k | } |
18696 | 178k | _res = NULL; |
18697 | 190k | done: |
18698 | 190k | p->level--; |
18699 | 190k | return _res; |
18700 | 178k | } |
18701 | | |
18702 | | // kwarg_or_starred: invalid_kwarg | NAME '=' expression | starred_expression |
18703 | | static KeywordOrStarred* |
18704 | | kwarg_or_starred_rule(Parser *p) |
18705 | 54.2k | { |
18706 | 54.2k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
18707 | 0 | _Pypegen_stack_overflow(p); |
18708 | 0 | } |
18709 | 54.2k | if (p->error_indicator) { |
18710 | 0 | p->level--; |
18711 | 0 | return NULL; |
18712 | 0 | } |
18713 | 54.2k | KeywordOrStarred* _res = NULL; |
18714 | 54.2k | int _mark = p->mark; |
18715 | 54.2k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
18716 | 5 | p->error_indicator = 1; |
18717 | 5 | p->level--; |
18718 | 5 | return NULL; |
18719 | 5 | } |
18720 | 54.2k | int _start_lineno = p->tokens[_mark]->lineno; |
18721 | 54.2k | UNUSED(_start_lineno); // Only used by EXTRA macro |
18722 | 54.2k | int _start_col_offset = p->tokens[_mark]->col_offset; |
18723 | 54.2k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
18724 | 54.2k | if (p->call_invalid_rules) { // invalid_kwarg |
18725 | 42.7k | if (p->error_indicator) { |
18726 | 0 | p->level--; |
18727 | 0 | return NULL; |
18728 | 0 | } |
18729 | 42.7k | D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg")); |
18730 | 42.7k | void *invalid_kwarg_var; |
18731 | 42.7k | if ( |
18732 | 42.7k | (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg |
18733 | 42.7k | ) |
18734 | 0 | { |
18735 | 0 | D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg")); |
18736 | 0 | _res = invalid_kwarg_var; |
18737 | 0 | goto done; |
18738 | 0 | } |
18739 | 42.7k | p->mark = _mark; |
18740 | 42.7k | D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ', |
18741 | 42.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg")); |
18742 | 42.7k | } |
18743 | 54.2k | { // NAME '=' expression |
18744 | 54.2k | if (p->error_indicator) { |
18745 | 480 | p->level--; |
18746 | 480 | return NULL; |
18747 | 480 | } |
18748 | 53.7k | D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression")); |
18749 | 53.7k | Token * _literal; |
18750 | 53.7k | expr_ty a; |
18751 | 53.7k | expr_ty b; |
18752 | 53.7k | if ( |
18753 | 53.7k | (a = _PyPegen_name_token(p)) // NAME |
18754 | 16.8k | && |
18755 | 16.8k | (_literal = _PyPegen_expect_token(p, 22)) // token='=' |
18756 | 12.6k | && |
18757 | 12.6k | (b = expression_rule(p)) // expression |
18758 | 53.7k | ) |
18759 | 11.2k | { |
18760 | 11.2k | D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression")); |
18761 | 11.2k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
18762 | 11.2k | if (_token == NULL) { |
18763 | 0 | p->level--; |
18764 | 0 | return NULL; |
18765 | 0 | } |
18766 | 11.2k | int _end_lineno = _token->end_lineno; |
18767 | 11.2k | UNUSED(_end_lineno); // Only used by EXTRA macro |
18768 | 11.2k | int _end_col_offset = _token->end_col_offset; |
18769 | 11.2k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
18770 | 11.2k | _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 ); |
18771 | 11.2k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
18772 | 0 | p->error_indicator = 1; |
18773 | 0 | p->level--; |
18774 | 0 | return NULL; |
18775 | 0 | } |
18776 | 11.2k | goto done; |
18777 | 11.2k | } |
18778 | 42.4k | p->mark = _mark; |
18779 | 42.4k | D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ', |
18780 | 42.4k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression")); |
18781 | 42.4k | } |
18782 | 0 | { // starred_expression |
18783 | 42.4k | if (p->error_indicator) { |
18784 | 201 | p->level--; |
18785 | 201 | return NULL; |
18786 | 201 | } |
18787 | 42.2k | D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); |
18788 | 42.2k | expr_ty a; |
18789 | 42.2k | if ( |
18790 | 42.2k | (a = starred_expression_rule(p)) // starred_expression |
18791 | 42.2k | ) |
18792 | 3.21k | { |
18793 | 3.21k | D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); |
18794 | 3.21k | _res = _PyPegen_keyword_or_starred ( p , a , 0 ); |
18795 | 3.21k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
18796 | 0 | p->error_indicator = 1; |
18797 | 0 | p->level--; |
18798 | 0 | return NULL; |
18799 | 0 | } |
18800 | 3.21k | goto done; |
18801 | 3.21k | } |
18802 | 39.0k | p->mark = _mark; |
18803 | 39.0k | D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ', |
18804 | 39.0k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); |
18805 | 39.0k | } |
18806 | 39.0k | _res = NULL; |
18807 | 53.5k | done: |
18808 | 53.5k | p->level--; |
18809 | 53.5k | return _res; |
18810 | 39.0k | } |
18811 | | |
18812 | | // kwarg_or_double_starred: invalid_kwarg | NAME '=' expression | '**' expression |
18813 | | static KeywordOrStarred* |
18814 | | kwarg_or_double_starred_rule(Parser *p) |
18815 | 50.8k | { |
18816 | 50.8k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
18817 | 0 | _Pypegen_stack_overflow(p); |
18818 | 0 | } |
18819 | 50.8k | if (p->error_indicator) { |
18820 | 0 | p->level--; |
18821 | 0 | return NULL; |
18822 | 0 | } |
18823 | 50.8k | KeywordOrStarred* _res = NULL; |
18824 | 50.8k | int _mark = p->mark; |
18825 | 50.8k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
18826 | 15 | p->error_indicator = 1; |
18827 | 15 | p->level--; |
18828 | 15 | return NULL; |
18829 | 15 | } |
18830 | 50.8k | int _start_lineno = p->tokens[_mark]->lineno; |
18831 | 50.8k | UNUSED(_start_lineno); // Only used by EXTRA macro |
18832 | 50.8k | int _start_col_offset = p->tokens[_mark]->col_offset; |
18833 | 50.8k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
18834 | 50.8k | if (p->call_invalid_rules) { // invalid_kwarg |
18835 | 39.7k | if (p->error_indicator) { |
18836 | 0 | p->level--; |
18837 | 0 | return NULL; |
18838 | 0 | } |
18839 | 39.7k | D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg")); |
18840 | 39.7k | void *invalid_kwarg_var; |
18841 | 39.7k | if ( |
18842 | 39.7k | (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg |
18843 | 39.7k | ) |
18844 | 0 | { |
18845 | 0 | D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg")); |
18846 | 0 | _res = invalid_kwarg_var; |
18847 | 0 | goto done; |
18848 | 0 | } |
18849 | 39.7k | p->mark = _mark; |
18850 | 39.7k | D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ', |
18851 | 39.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg")); |
18852 | 39.7k | } |
18853 | 50.8k | { // NAME '=' expression |
18854 | 50.8k | if (p->error_indicator) { |
18855 | 667 | p->level--; |
18856 | 667 | return NULL; |
18857 | 667 | } |
18858 | 50.1k | D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression")); |
18859 | 50.1k | Token * _literal; |
18860 | 50.1k | expr_ty a; |
18861 | 50.1k | expr_ty b; |
18862 | 50.1k | if ( |
18863 | 50.1k | (a = _PyPegen_name_token(p)) // NAME |
18864 | 9.16k | && |
18865 | 9.16k | (_literal = _PyPegen_expect_token(p, 22)) // token='=' |
18866 | 4.79k | && |
18867 | 4.79k | (b = expression_rule(p)) // expression |
18868 | 50.1k | ) |
18869 | 3.53k | { |
18870 | 3.53k | D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression")); |
18871 | 3.53k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
18872 | 3.53k | if (_token == NULL) { |
18873 | 0 | p->level--; |
18874 | 0 | return NULL; |
18875 | 0 | } |
18876 | 3.53k | int _end_lineno = _token->end_lineno; |
18877 | 3.53k | UNUSED(_end_lineno); // Only used by EXTRA macro |
18878 | 3.53k | int _end_col_offset = _token->end_col_offset; |
18879 | 3.53k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
18880 | 3.53k | _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 ); |
18881 | 3.53k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
18882 | 0 | p->error_indicator = 1; |
18883 | 0 | p->level--; |
18884 | 0 | return NULL; |
18885 | 0 | } |
18886 | 3.53k | goto done; |
18887 | 3.53k | } |
18888 | 46.6k | p->mark = _mark; |
18889 | 46.6k | D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ', |
18890 | 46.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression")); |
18891 | 46.6k | } |
18892 | 0 | { // '**' expression |
18893 | 46.6k | if (p->error_indicator) { |
18894 | 94 | p->level--; |
18895 | 94 | return NULL; |
18896 | 94 | } |
18897 | 46.5k | D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression")); |
18898 | 46.5k | Token * _literal; |
18899 | 46.5k | expr_ty a; |
18900 | 46.5k | if ( |
18901 | 46.5k | (_literal = _PyPegen_expect_token(p, 35)) // token='**' |
18902 | 10.6k | && |
18903 | 10.6k | (a = expression_rule(p)) // expression |
18904 | 46.5k | ) |
18905 | 10.2k | { |
18906 | 10.2k | D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression")); |
18907 | 10.2k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
18908 | 10.2k | if (_token == NULL) { |
18909 | 0 | p->level--; |
18910 | 0 | return NULL; |
18911 | 0 | } |
18912 | 10.2k | int _end_lineno = _token->end_lineno; |
18913 | 10.2k | UNUSED(_end_lineno); // Only used by EXTRA macro |
18914 | 10.2k | int _end_col_offset = _token->end_col_offset; |
18915 | 10.2k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
18916 | 10.2k | _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 ); |
18917 | 10.2k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
18918 | 0 | p->error_indicator = 1; |
18919 | 0 | p->level--; |
18920 | 0 | return NULL; |
18921 | 0 | } |
18922 | 10.2k | goto done; |
18923 | 10.2k | } |
18924 | 36.2k | p->mark = _mark; |
18925 | 36.2k | D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ', |
18926 | 36.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression")); |
18927 | 36.2k | } |
18928 | 36.2k | _res = NULL; |
18929 | 50.0k | done: |
18930 | 50.0k | p->level--; |
18931 | 50.0k | return _res; |
18932 | 36.2k | } |
18933 | | |
18934 | | // star_targets: star_target !',' | star_target ((',' star_target))* ','? |
18935 | | Py_LOCAL_SYMBOL expr_ty |
18936 | | star_targets_rule(Parser *p) |
18937 | 492k | { |
18938 | 492k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
18939 | 0 | _Pypegen_stack_overflow(p); |
18940 | 0 | } |
18941 | 492k | if (p->error_indicator) { |
18942 | 0 | p->level--; |
18943 | 0 | return NULL; |
18944 | 0 | } |
18945 | 492k | expr_ty _res = NULL; |
18946 | 492k | int _mark = p->mark; |
18947 | 492k | expr_ty _prefix_10_result = NULL; |
18948 | 492k | int _prefix_10_end = 0, _prefix_10_valid = 0; |
18949 | 492k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
18950 | 30 | p->error_indicator = 1; |
18951 | 30 | p->level--; |
18952 | 30 | return NULL; |
18953 | 30 | } |
18954 | 492k | int _start_lineno = p->tokens[_mark]->lineno; |
18955 | 492k | UNUSED(_start_lineno); // Only used by EXTRA macro |
18956 | 492k | int _start_col_offset = p->tokens[_mark]->col_offset; |
18957 | 492k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
18958 | 492k | { // star_target !',' |
18959 | 492k | if (p->error_indicator) { |
18960 | 0 | p->level--; |
18961 | 0 | return NULL; |
18962 | 0 | } |
18963 | 492k | D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','")); |
18964 | 492k | expr_ty a; |
18965 | 492k | if ( |
18966 | 492k | (a = ((!p->call_invalid_rules && _prefix_10_valid) ? (p->mark = _prefix_10_end, _prefix_10_result) : (_prefix_10_result = star_target_rule(p), _prefix_10_end = p->mark, _prefix_10_valid = 1, _prefix_10_result))) // star_target |
18967 | 137k | && |
18968 | 137k | _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=',' |
18969 | 492k | ) |
18970 | 131k | { |
18971 | 131k | D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','")); |
18972 | 131k | _res = a; |
18973 | 131k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
18974 | 0 | p->error_indicator = 1; |
18975 | 0 | p->level--; |
18976 | 0 | return NULL; |
18977 | 0 | } |
18978 | 131k | goto done; |
18979 | 131k | } |
18980 | 361k | p->mark = _mark; |
18981 | 361k | D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ', |
18982 | 361k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','")); |
18983 | 361k | } |
18984 | 0 | { // star_target ((',' star_target))* ','? |
18985 | 361k | if (p->error_indicator) { |
18986 | 875 | p->level--; |
18987 | 875 | return NULL; |
18988 | 875 | } |
18989 | 360k | D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?")); |
18990 | 360k | void *_opt_var; |
18991 | 360k | UNUSED(_opt_var); // Silence compiler warnings |
18992 | 360k | expr_ty a; |
18993 | 360k | asdl_seq * b; |
18994 | 360k | if ( |
18995 | 360k | (a = ((!p->call_invalid_rules && _prefix_10_valid) ? (p->mark = _prefix_10_end, _prefix_10_result) : (_prefix_10_result = star_target_rule(p), _prefix_10_end = p->mark, _prefix_10_valid = 1, _prefix_10_result))) // star_target |
18996 | 6.31k | && |
18997 | 6.31k | (b = _loop0_98_rule(p)) // ((',' star_target))* |
18998 | 6.31k | && |
18999 | 6.31k | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
19000 | 360k | ) |
19001 | 6.02k | { |
19002 | 6.02k | D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?")); |
19003 | 6.02k | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
19004 | 6.02k | if (_token == NULL) { |
19005 | 0 | p->level--; |
19006 | 0 | return NULL; |
19007 | 0 | } |
19008 | 6.02k | int _end_lineno = _token->end_lineno; |
19009 | 6.02k | UNUSED(_end_lineno); // Only used by EXTRA macro |
19010 | 6.02k | int _end_col_offset = _token->end_col_offset; |
19011 | 6.02k | UNUSED(_end_col_offset); // Only used by EXTRA macro |
19012 | 6.02k | _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA ); |
19013 | 6.02k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19014 | 0 | p->error_indicator = 1; |
19015 | 0 | p->level--; |
19016 | 0 | return NULL; |
19017 | 0 | } |
19018 | 6.02k | goto done; |
19019 | 6.02k | } |
19020 | 354k | p->mark = _mark; |
19021 | 354k | D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ', |
19022 | 354k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?")); |
19023 | 354k | } |
19024 | 354k | _res = NULL; |
19025 | 491k | done: |
19026 | 491k | p->level--; |
19027 | 491k | return _res; |
19028 | 354k | } |
19029 | | |
19030 | | // star_target: '*' (!'*' star_target) | target |
19031 | | Py_LOCAL_SYMBOL expr_ty |
19032 | | star_target_rule(Parser *p) |
19033 | 743k | { |
19034 | 743k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
19035 | 0 | _Pypegen_stack_overflow(p); |
19036 | 0 | } |
19037 | 743k | if (p->error_indicator) { |
19038 | 11 | p->level--; |
19039 | 11 | return NULL; |
19040 | 11 | } |
19041 | 743k | expr_ty _res = NULL; |
19042 | 743k | if (_PyPegen_is_memoized(p, star_target_type, &_res)) { |
19043 | 444k | p->level--; |
19044 | 444k | return _res; |
19045 | 444k | } |
19046 | 299k | int _mark = p->mark; |
19047 | 299k | if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { |
19048 | 0 | p->error_indicator = 1; |
19049 | 0 | p->level--; |
19050 | 0 | return NULL; |
19051 | 0 | } |
19052 | 299k | int _start_lineno = p->tokens[_mark]->lineno; |
19053 | 299k | UNUSED(_start_lineno); // Only used by EXTRA macro |
19054 | 299k | int _start_col_offset = p->tokens[_mark]->col_offset; |
19055 | 299k | UNUSED(_start_col_offset); // Only used by EXTRA macro |
19056 | 299k | { // '*' (!'*' star_target) |
19057 | 299k | if (p->error_indicator) { |
19058 | 0 | p->level--; |
19059 | 0 | return NULL; |
19060 | 0 | } |
19061 | 299k | D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)")); |
19062 | 299k | Token * _literal; |
19063 | 299k | void *a; |
19064 | 299k | if ( |
19065 | 299k | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
19066 | 1.93k | && |
19067 | 1.93k | (a = _tmp_99_rule(p)) // !'*' star_target |
19068 | 299k | ) |
19069 | 843 | { |
19070 | 843 | D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)")); |
19071 | 843 | Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); |
19072 | 843 | if (_token == NULL) { |
19073 | 0 | p->level--; |
19074 | 0 | return NULL; |
19075 | 0 | } |
19076 | 843 | int _end_lineno = _token->end_lineno; |
19077 | 843 | UNUSED(_end_lineno); // Only used by EXTRA macro |
19078 | 843 | int _end_col_offset = _token->end_col_offset; |
19079 | 843 | UNUSED(_end_col_offset); // Only used by EXTRA macro |
19080 | 843 | _res = _PyAST_Starred ( a , Store , EXTRA ); |
19081 | 843 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19082 | 0 | p->error_indicator = 1; |
19083 | 0 | p->level--; |
19084 | 0 | return NULL; |
19085 | 0 | } |
19086 | 843 | goto done; |
19087 | 843 | } |
19088 | 298k | p->mark = _mark; |
19089 | 298k | D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ', |
19090 | 298k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)")); |
19091 | 298k | } |
19092 | 0 | { // target |
19093 | 298k | if (p->error_indicator) { |
19094 | 295 | p->level--; |
19095 | 295 | return NULL; |
19096 | 295 | } |
19097 | 298k | D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target")); |
19098 | 298k | expr_ty target_var; |
19099 | 298k | if ( |
19100 | 298k | (target_var = target_rule(p)) // target |
19101 | 298k | ) |
19102 | 95.1k | { |
19103 | 95.1k | D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target")); |
19104 | 95.1k | _res = target_var; |
19105 | 95.1k | goto done; |
19106 | 95.1k | } |
19107 | 203k | p->mark = _mark; |
19108 | 203k | D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ', |
19109 | 203k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target")); |
19110 | 203k | } |
19111 | 203k | _res = NULL; |
19112 | 299k | done: |
19113 | 299k | _PyPegen_insert_memo(p, _mark, star_target_type, _res); |
19114 | 299k | p->level--; |
19115 | 299k | return _res; |
19116 | 203k | } |
19117 | | |
19118 | | // target: target_value |
19119 | | static expr_ty |
19120 | | target_rule(Parser *p) |
19121 | 298k | { |
19122 | 298k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
19123 | 0 | _Pypegen_stack_overflow(p); |
19124 | 0 | } |
19125 | 298k | if (p->error_indicator) { |
19126 | 0 | p->level--; |
19127 | 0 | return NULL; |
19128 | 0 | } |
19129 | 298k | expr_ty _res = NULL; |
19130 | 298k | if (_PyPegen_is_memoized(p, target_type, &_res)) { |
19131 | 0 | p->level--; |
19132 | 0 | return _res; |
19133 | 0 | } |
19134 | 298k | int _mark = p->mark; |
19135 | 298k | { // target_value |
19136 | 298k | if (p->error_indicator) { |
19137 | 0 | p->level--; |
19138 | 0 | return NULL; |
19139 | 0 | } |
19140 | 298k | D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_value")); |
19141 | 298k | expr_ty a; |
19142 | 298k | if ( |
19143 | 298k | (a = target_value_rule(p)) // target_value |
19144 | 298k | ) |
19145 | 134k | { |
19146 | 134k | D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_value")); |
19147 | 134k | _res = _PyPegen_make_target ( p , a , STAR_TARGETS ); |
19148 | 134k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19149 | 0 | p->error_indicator = 1; |
19150 | 0 | p->level--; |
19151 | 0 | return NULL; |
19152 | 0 | } |
19153 | 134k | goto done; |
19154 | 134k | } |
19155 | 164k | p->mark = _mark; |
19156 | 164k | D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ', |
19157 | 164k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_value")); |
19158 | 164k | } |
19159 | 164k | _res = NULL; |
19160 | 298k | done: |
19161 | 298k | _PyPegen_insert_memo(p, _mark, target_type, _res); |
19162 | 298k | p->level--; |
19163 | 298k | return _res; |
19164 | 164k | } |
19165 | | |
19166 | | // single_target: target_value |
19167 | | static expr_ty |
19168 | | single_target_rule(Parser *p) |
19169 | 274k | { |
19170 | 274k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
19171 | 0 | _Pypegen_stack_overflow(p); |
19172 | 0 | } |
19173 | 274k | if (p->error_indicator) { |
19174 | 0 | p->level--; |
19175 | 0 | return NULL; |
19176 | 0 | } |
19177 | 274k | expr_ty _res = NULL; |
19178 | 274k | int _mark = p->mark; |
19179 | 274k | { // target_value |
19180 | 274k | if (p->error_indicator) { |
19181 | 0 | p->level--; |
19182 | 0 | return NULL; |
19183 | 0 | } |
19184 | 274k | D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_value")); |
19185 | 274k | expr_ty a; |
19186 | 274k | if ( |
19187 | 274k | (a = target_value_rule(p)) // target_value |
19188 | 274k | ) |
19189 | 114k | { |
19190 | 114k | D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_value")); |
19191 | 114k | _res = _PyPegen_make_target ( p , a , SINGLE_TARGETS ); |
19192 | 114k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19193 | 0 | p->error_indicator = 1; |
19194 | 0 | p->level--; |
19195 | 0 | return NULL; |
19196 | 0 | } |
19197 | 114k | goto done; |
19198 | 114k | } |
19199 | 159k | p->mark = _mark; |
19200 | 159k | D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ', |
19201 | 159k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_value")); |
19202 | 159k | } |
19203 | 159k | _res = NULL; |
19204 | 274k | done: |
19205 | 274k | p->level--; |
19206 | 274k | return _res; |
19207 | 159k | } |
19208 | | |
19209 | | // attribute_or_subscript_target: target_value |
19210 | | static expr_ty |
19211 | | attribute_or_subscript_target_rule(Parser *p) |
19212 | 277k | { |
19213 | 277k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
19214 | 0 | _Pypegen_stack_overflow(p); |
19215 | 0 | } |
19216 | 277k | if (p->error_indicator) { |
19217 | 0 | p->level--; |
19218 | 0 | return NULL; |
19219 | 0 | } |
19220 | 277k | expr_ty _res = NULL; |
19221 | 277k | int _mark = p->mark; |
19222 | 277k | { // target_value |
19223 | 277k | if (p->error_indicator) { |
19224 | 0 | p->level--; |
19225 | 0 | return NULL; |
19226 | 0 | } |
19227 | 277k | D(fprintf(stderr, "%*c> attribute_or_subscript_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_value")); |
19228 | 277k | expr_ty a; |
19229 | 277k | if ( |
19230 | 277k | (a = target_value_rule(p)) // target_value |
19231 | 277k | ) |
19232 | 116k | { |
19233 | 116k | D(fprintf(stderr, "%*c+ attribute_or_subscript_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_value")); |
19234 | 116k | _res = _PyPegen_make_target ( p , a , ATTRIBUTE_OR_SUBSCRIPT_TARGETS ); |
19235 | 116k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19236 | 0 | p->error_indicator = 1; |
19237 | 0 | p->level--; |
19238 | 0 | return NULL; |
19239 | 0 | } |
19240 | 116k | goto done; |
19241 | 116k | } |
19242 | 161k | p->mark = _mark; |
19243 | 161k | D(fprintf(stderr, "%*c%s attribute_or_subscript_target[%d-%d]: %s failed!\n", p->level, ' ', |
19244 | 161k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_value")); |
19245 | 161k | } |
19246 | 161k | _res = NULL; |
19247 | 277k | done: |
19248 | 277k | p->level--; |
19249 | 277k | return _res; |
19250 | 161k | } |
19251 | | |
19252 | | // target_value: primary !('(' | '[' | '.') |
19253 | | static expr_ty |
19254 | | target_value_rule(Parser *p) |
19255 | 852k | { |
19256 | 852k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
19257 | 0 | _Pypegen_stack_overflow(p); |
19258 | 0 | } |
19259 | 852k | if (p->error_indicator) { |
19260 | 0 | p->level--; |
19261 | 0 | return NULL; |
19262 | 0 | } |
19263 | 852k | expr_ty _res = NULL; |
19264 | 852k | int _mark = p->mark; |
19265 | 852k | { // primary !('(' | '[' | '.') |
19266 | 852k | if (p->error_indicator) { |
19267 | 0 | p->level--; |
19268 | 0 | return NULL; |
19269 | 0 | } |
19270 | 852k | D(fprintf(stderr, "%*c> target_value[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary !('(' | '[' | '.')")); |
19271 | 852k | expr_ty a; |
19272 | 852k | if ( |
19273 | 852k | (a = primary_rule(p)) // primary |
19274 | 372k | && |
19275 | 372k | _PyPegen_lookahead(0, _tmp_100_rule, p) |
19276 | 852k | ) |
19277 | 367k | { |
19278 | 367k | D(fprintf(stderr, "%*c+ target_value[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary !('(' | '[' | '.')")); |
19279 | 367k | _res = a; |
19280 | 367k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19281 | 0 | p->error_indicator = 1; |
19282 | 0 | p->level--; |
19283 | 0 | return NULL; |
19284 | 0 | } |
19285 | 367k | goto done; |
19286 | 367k | } |
19287 | 485k | p->mark = _mark; |
19288 | 485k | D(fprintf(stderr, "%*c%s target_value[%d-%d]: %s failed!\n", p->level, ' ', |
19289 | 485k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary !('(' | '[' | '.')")); |
19290 | 485k | } |
19291 | 485k | _res = NULL; |
19292 | 852k | done: |
19293 | 852k | p->level--; |
19294 | 852k | return _res; |
19295 | 485k | } |
19296 | | |
19297 | | // del_targets: ','.del_target+ ','? |
19298 | | static asdl_expr_seq* |
19299 | | del_targets_rule(Parser *p) |
19300 | 1.00k | { |
19301 | 1.00k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
19302 | 0 | _Pypegen_stack_overflow(p); |
19303 | 0 | } |
19304 | 1.00k | if (p->error_indicator) { |
19305 | 0 | p->level--; |
19306 | 0 | return NULL; |
19307 | 0 | } |
19308 | 1.00k | asdl_expr_seq* _res = NULL; |
19309 | 1.00k | int _mark = p->mark; |
19310 | 1.00k | { // ','.del_target+ ','? |
19311 | 1.00k | if (p->error_indicator) { |
19312 | 0 | p->level--; |
19313 | 0 | return NULL; |
19314 | 0 | } |
19315 | 1.00k | D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?")); |
19316 | 1.00k | void *_opt_var; |
19317 | 1.00k | UNUSED(_opt_var); // Silence compiler warnings |
19318 | 1.00k | asdl_expr_seq* a; |
19319 | 1.00k | if ( |
19320 | 1.00k | (a = (asdl_expr_seq*)_gather_102_rule(p)) // ','.del_target+ |
19321 | 809 | && |
19322 | 809 | (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? |
19323 | 1.00k | ) |
19324 | 767 | { |
19325 | 767 | D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?")); |
19326 | 767 | _res = a; |
19327 | 767 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19328 | 0 | p->error_indicator = 1; |
19329 | 0 | p->level--; |
19330 | 0 | return NULL; |
19331 | 0 | } |
19332 | 767 | goto done; |
19333 | 767 | } |
19334 | 242 | p->mark = _mark; |
19335 | 242 | D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ', |
19336 | 242 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?")); |
19337 | 242 | } |
19338 | 242 | _res = NULL; |
19339 | 1.00k | done: |
19340 | 1.00k | p->level--; |
19341 | 1.00k | return _res; |
19342 | 242 | } |
19343 | | |
19344 | | // del_target: target_value |
19345 | | static expr_ty |
19346 | | del_target_rule(Parser *p) |
19347 | 2.19k | { |
19348 | 2.19k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
19349 | 0 | _Pypegen_stack_overflow(p); |
19350 | 0 | } |
19351 | 2.19k | if (p->error_indicator) { |
19352 | 0 | p->level--; |
19353 | 0 | return NULL; |
19354 | 0 | } |
19355 | 2.19k | expr_ty _res = NULL; |
19356 | 2.19k | if (_PyPegen_is_memoized(p, del_target_type, &_res)) { |
19357 | 2 | p->level--; |
19358 | 2 | return _res; |
19359 | 2 | } |
19360 | 2.19k | int _mark = p->mark; |
19361 | 2.19k | { // target_value |
19362 | 2.19k | if (p->error_indicator) { |
19363 | 0 | p->level--; |
19364 | 0 | return NULL; |
19365 | 0 | } |
19366 | 2.19k | D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_value")); |
19367 | 2.19k | expr_ty a; |
19368 | 2.19k | if ( |
19369 | 2.19k | (a = target_value_rule(p)) // target_value |
19370 | 2.19k | ) |
19371 | 1.90k | { |
19372 | 1.90k | D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_value")); |
19373 | 1.90k | _res = _PyPegen_make_target ( p , a , DEL_TARGETS ); |
19374 | 1.90k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19375 | 0 | p->error_indicator = 1; |
19376 | 0 | p->level--; |
19377 | 0 | return NULL; |
19378 | 0 | } |
19379 | 1.90k | goto done; |
19380 | 1.90k | } |
19381 | 290 | p->mark = _mark; |
19382 | 290 | D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ', |
19383 | 290 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_value")); |
19384 | 290 | } |
19385 | 290 | _res = NULL; |
19386 | 2.19k | done: |
19387 | 2.19k | _PyPegen_insert_memo(p, _mark, del_target_type, _res); |
19388 | 2.19k | p->level--; |
19389 | 2.19k | return _res; |
19390 | 290 | } |
19391 | | |
19392 | | // type_expressions: |
19393 | | // | ','.expression+ ',' '*' expression ',' '**' expression |
19394 | | // | ','.expression+ ',' '*' expression |
19395 | | // | ','.expression+ ',' '**' expression |
19396 | | // | '*' expression ',' '**' expression |
19397 | | // | '*' expression |
19398 | | // | '**' expression |
19399 | | // | ','.expression+ |
19400 | | static asdl_expr_seq* |
19401 | | type_expressions_rule(Parser *p) |
19402 | 0 | { |
19403 | 0 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
19404 | 0 | _Pypegen_stack_overflow(p); |
19405 | 0 | } |
19406 | 0 | if (p->error_indicator) { |
19407 | 0 | p->level--; |
19408 | 0 | return NULL; |
19409 | 0 | } |
19410 | 0 | asdl_expr_seq* _res = NULL; |
19411 | 0 | int _mark = p->mark; |
19412 | 0 | { // ','.expression+ ',' '*' expression ',' '**' expression |
19413 | 0 | if (p->error_indicator) { |
19414 | 0 | p->level--; |
19415 | 0 | return NULL; |
19416 | 0 | } |
19417 | 0 | D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression")); |
19418 | 0 | Token * _literal; |
19419 | 0 | Token * _literal_1; |
19420 | 0 | Token * _literal_2; |
19421 | 0 | Token * _literal_3; |
19422 | 0 | asdl_seq * a; |
19423 | 0 | expr_ty b; |
19424 | 0 | expr_ty c; |
19425 | 0 | if ( |
19426 | 0 | (a = _gather_104_rule(p)) // ','.expression+ |
19427 | 0 | && |
19428 | 0 | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
19429 | 0 | && |
19430 | 0 | (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*' |
19431 | 0 | && |
19432 | 0 | (b = expression_rule(p)) // expression |
19433 | 0 | && |
19434 | 0 | (_literal_2 = _PyPegen_expect_token(p, 12)) // token=',' |
19435 | 0 | && |
19436 | 0 | (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**' |
19437 | 0 | && |
19438 | 0 | (c = expression_rule(p)) // expression |
19439 | 0 | ) |
19440 | 0 | { |
19441 | 0 | D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression")); |
19442 | 0 | _res = ( asdl_expr_seq* ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq* , _PyPegen_seq_append_to_end ( p , a , b ) ) , c ); |
19443 | 0 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19444 | 0 | p->error_indicator = 1; |
19445 | 0 | p->level--; |
19446 | 0 | return NULL; |
19447 | 0 | } |
19448 | 0 | goto done; |
19449 | 0 | } |
19450 | 0 | p->mark = _mark; |
19451 | 0 | D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', |
19452 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression")); |
19453 | 0 | } |
19454 | 0 | { // ','.expression+ ',' '*' expression |
19455 | 0 | if (p->error_indicator) { |
19456 | 0 | p->level--; |
19457 | 0 | return NULL; |
19458 | 0 | } |
19459 | 0 | D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression")); |
19460 | 0 | Token * _literal; |
19461 | 0 | Token * _literal_1; |
19462 | 0 | asdl_seq * a; |
19463 | 0 | expr_ty b; |
19464 | 0 | if ( |
19465 | 0 | (a = _gather_104_rule(p)) // ','.expression+ |
19466 | 0 | && |
19467 | 0 | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
19468 | 0 | && |
19469 | 0 | (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*' |
19470 | 0 | && |
19471 | 0 | (b = expression_rule(p)) // expression |
19472 | 0 | ) |
19473 | 0 | { |
19474 | 0 | D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression")); |
19475 | 0 | _res = ( asdl_expr_seq* ) _PyPegen_seq_append_to_end ( p , a , b ); |
19476 | 0 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19477 | 0 | p->error_indicator = 1; |
19478 | 0 | p->level--; |
19479 | 0 | return NULL; |
19480 | 0 | } |
19481 | 0 | goto done; |
19482 | 0 | } |
19483 | 0 | p->mark = _mark; |
19484 | 0 | D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', |
19485 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression")); |
19486 | 0 | } |
19487 | 0 | { // ','.expression+ ',' '**' expression |
19488 | 0 | if (p->error_indicator) { |
19489 | 0 | p->level--; |
19490 | 0 | return NULL; |
19491 | 0 | } |
19492 | 0 | D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression")); |
19493 | 0 | Token * _literal; |
19494 | 0 | Token * _literal_1; |
19495 | 0 | asdl_seq * a; |
19496 | 0 | expr_ty b; |
19497 | 0 | if ( |
19498 | 0 | (a = _gather_104_rule(p)) // ','.expression+ |
19499 | 0 | && |
19500 | 0 | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
19501 | 0 | && |
19502 | 0 | (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**' |
19503 | 0 | && |
19504 | 0 | (b = expression_rule(p)) // expression |
19505 | 0 | ) |
19506 | 0 | { |
19507 | 0 | D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression")); |
19508 | 0 | _res = ( asdl_expr_seq* ) _PyPegen_seq_append_to_end ( p , a , b ); |
19509 | 0 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19510 | 0 | p->error_indicator = 1; |
19511 | 0 | p->level--; |
19512 | 0 | return NULL; |
19513 | 0 | } |
19514 | 0 | goto done; |
19515 | 0 | } |
19516 | 0 | p->mark = _mark; |
19517 | 0 | D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', |
19518 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression")); |
19519 | 0 | } |
19520 | 0 | { // '*' expression ',' '**' expression |
19521 | 0 | if (p->error_indicator) { |
19522 | 0 | p->level--; |
19523 | 0 | return NULL; |
19524 | 0 | } |
19525 | 0 | D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression")); |
19526 | 0 | Token * _literal; |
19527 | 0 | Token * _literal_1; |
19528 | 0 | Token * _literal_2; |
19529 | 0 | expr_ty a; |
19530 | 0 | expr_ty b; |
19531 | 0 | if ( |
19532 | 0 | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
19533 | 0 | && |
19534 | 0 | (a = expression_rule(p)) // expression |
19535 | 0 | && |
19536 | 0 | (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' |
19537 | 0 | && |
19538 | 0 | (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**' |
19539 | 0 | && |
19540 | 0 | (b = expression_rule(p)) // expression |
19541 | 0 | ) |
19542 | 0 | { |
19543 | 0 | D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression")); |
19544 | 0 | _res = ( asdl_expr_seq* ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq* , _PyPegen_singleton_seq ( p , a ) ) , b ); |
19545 | 0 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19546 | 0 | p->error_indicator = 1; |
19547 | 0 | p->level--; |
19548 | 0 | return NULL; |
19549 | 0 | } |
19550 | 0 | goto done; |
19551 | 0 | } |
19552 | 0 | p->mark = _mark; |
19553 | 0 | D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', |
19554 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression")); |
19555 | 0 | } |
19556 | 0 | { // '*' expression |
19557 | 0 | if (p->error_indicator) { |
19558 | 0 | p->level--; |
19559 | 0 | return NULL; |
19560 | 0 | } |
19561 | 0 | D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression")); |
19562 | 0 | Token * _literal; |
19563 | 0 | expr_ty a; |
19564 | 0 | if ( |
19565 | 0 | (_literal = _PyPegen_expect_token(p, 16)) // token='*' |
19566 | 0 | && |
19567 | 0 | (a = expression_rule(p)) // expression |
19568 | 0 | ) |
19569 | 0 | { |
19570 | 0 | D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression")); |
19571 | 0 | _res = ( asdl_expr_seq* ) _PyPegen_singleton_seq ( p , a ); |
19572 | 0 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19573 | 0 | p->error_indicator = 1; |
19574 | 0 | p->level--; |
19575 | 0 | return NULL; |
19576 | 0 | } |
19577 | 0 | goto done; |
19578 | 0 | } |
19579 | 0 | p->mark = _mark; |
19580 | 0 | D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', |
19581 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression")); |
19582 | 0 | } |
19583 | 0 | { // '**' expression |
19584 | 0 | if (p->error_indicator) { |
19585 | 0 | p->level--; |
19586 | 0 | return NULL; |
19587 | 0 | } |
19588 | 0 | D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression")); |
19589 | 0 | Token * _literal; |
19590 | 0 | expr_ty a; |
19591 | 0 | if ( |
19592 | 0 | (_literal = _PyPegen_expect_token(p, 35)) // token='**' |
19593 | 0 | && |
19594 | 0 | (a = expression_rule(p)) // expression |
19595 | 0 | ) |
19596 | 0 | { |
19597 | 0 | D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression")); |
19598 | 0 | _res = ( asdl_expr_seq* ) _PyPegen_singleton_seq ( p , a ); |
19599 | 0 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19600 | 0 | p->error_indicator = 1; |
19601 | 0 | p->level--; |
19602 | 0 | return NULL; |
19603 | 0 | } |
19604 | 0 | goto done; |
19605 | 0 | } |
19606 | 0 | p->mark = _mark; |
19607 | 0 | D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', |
19608 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression")); |
19609 | 0 | } |
19610 | 0 | { // ','.expression+ |
19611 | 0 | if (p->error_indicator) { |
19612 | 0 | p->level--; |
19613 | 0 | return NULL; |
19614 | 0 | } |
19615 | 0 | D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+")); |
19616 | 0 | asdl_expr_seq* a; |
19617 | 0 | if ( |
19618 | 0 | (a = (asdl_expr_seq*)_gather_104_rule(p)) // ','.expression+ |
19619 | 0 | ) |
19620 | 0 | { |
19621 | 0 | D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+")); |
19622 | 0 | _res = a; |
19623 | 0 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19624 | 0 | p->error_indicator = 1; |
19625 | 0 | p->level--; |
19626 | 0 | return NULL; |
19627 | 0 | } |
19628 | 0 | goto done; |
19629 | 0 | } |
19630 | 0 | p->mark = _mark; |
19631 | 0 | D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', |
19632 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+")); |
19633 | 0 | } |
19634 | 0 | _res = NULL; |
19635 | 0 | done: |
19636 | 0 | p->level--; |
19637 | 0 | return _res; |
19638 | 0 | } |
19639 | | |
19640 | | // func_type_comment: |
19641 | | // | NEWLINE TYPE_COMMENT &(NEWLINE INDENT) |
19642 | | // | invalid_double_type_comments |
19643 | | // | TYPE_COMMENT |
19644 | | Py_LOCAL_SYMBOL Token* |
19645 | | func_type_comment_rule(Parser *p) |
19646 | 9.48k | { |
19647 | 9.48k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
19648 | 0 | _Pypegen_stack_overflow(p); |
19649 | 0 | } |
19650 | 9.48k | if (p->error_indicator) { |
19651 | 0 | p->level--; |
19652 | 0 | return NULL; |
19653 | 0 | } |
19654 | 9.48k | Token* _res = NULL; |
19655 | 9.48k | int _mark = p->mark; |
19656 | 9.48k | { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT) |
19657 | 9.48k | if (p->error_indicator) { |
19658 | 0 | p->level--; |
19659 | 0 | return NULL; |
19660 | 0 | } |
19661 | 9.48k | D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)")); |
19662 | 9.48k | Token * newline_var; |
19663 | 9.48k | Token * t; |
19664 | 9.48k | if ( |
19665 | 9.48k | (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' |
19666 | 2.98k | && |
19667 | 2.98k | (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT' |
19668 | 0 | && |
19669 | 0 | _PyPegen_lookahead(1, _tmp_105_rule, p) |
19670 | 9.48k | ) |
19671 | 0 | { |
19672 | 0 | D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)")); |
19673 | 0 | _res = t; |
19674 | 0 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19675 | 0 | p->error_indicator = 1; |
19676 | 0 | p->level--; |
19677 | 0 | return NULL; |
19678 | 0 | } |
19679 | 0 | goto done; |
19680 | 0 | } |
19681 | 9.48k | p->mark = _mark; |
19682 | 9.48k | D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ', |
19683 | 9.48k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)")); |
19684 | 9.48k | } |
19685 | 9.48k | if (p->call_invalid_rules) { // invalid_double_type_comments |
19686 | 2.14k | if (p->error_indicator) { |
19687 | 0 | p->level--; |
19688 | 0 | return NULL; |
19689 | 0 | } |
19690 | 2.14k | D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments")); |
19691 | 2.14k | void *invalid_double_type_comments_var; |
19692 | 2.14k | if ( |
19693 | 2.14k | (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments |
19694 | 2.14k | ) |
19695 | 0 | { |
19696 | 0 | D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments")); |
19697 | 0 | _res = invalid_double_type_comments_var; |
19698 | 0 | goto done; |
19699 | 0 | } |
19700 | 2.14k | p->mark = _mark; |
19701 | 2.14k | D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ', |
19702 | 2.14k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments")); |
19703 | 2.14k | } |
19704 | 9.48k | { // TYPE_COMMENT |
19705 | 9.48k | if (p->error_indicator) { |
19706 | 2 | p->level--; |
19707 | 2 | return NULL; |
19708 | 2 | } |
19709 | 9.47k | D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT")); |
19710 | 9.47k | Token * type_comment_var; |
19711 | 9.47k | if ( |
19712 | 9.47k | (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT' |
19713 | 9.47k | ) |
19714 | 0 | { |
19715 | 0 | D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT")); |
19716 | 0 | _res = type_comment_var; |
19717 | 0 | goto done; |
19718 | 0 | } |
19719 | 9.47k | p->mark = _mark; |
19720 | 9.47k | D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ', |
19721 | 9.47k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT")); |
19722 | 9.47k | } |
19723 | 9.47k | _res = NULL; |
19724 | 9.47k | done: |
19725 | 9.47k | p->level--; |
19726 | 9.47k | return _res; |
19727 | 9.47k | } |
19728 | | |
19729 | | // _loop0_1: NEWLINE |
19730 | | static asdl_seq * |
19731 | | _loop0_1_rule(Parser *p) |
19732 | 172 | { |
19733 | 172 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
19734 | 0 | _Pypegen_stack_overflow(p); |
19735 | 0 | } |
19736 | 172 | if (p->error_indicator) { |
19737 | 0 | p->level--; |
19738 | 0 | return NULL; |
19739 | 0 | } |
19740 | 172 | void *_res = NULL; |
19741 | 172 | int _mark = p->mark; |
19742 | 172 | void **_children = NULL; |
19743 | 172 | Py_ssize_t _children_capacity = 0; |
19744 | 172 | Py_ssize_t _n = 0; |
19745 | 172 | { // NEWLINE |
19746 | 172 | if (p->error_indicator) { |
19747 | 0 | p->level--; |
19748 | 0 | return NULL; |
19749 | 0 | } |
19750 | 172 | D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE")); |
19751 | 172 | Token * newline_var; |
19752 | 172 | while ( |
19753 | 172 | (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' |
19754 | 172 | ) |
19755 | 0 | { |
19756 | 0 | _res = newline_var; |
19757 | 0 | if (_n == _children_capacity) { |
19758 | 0 | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
19759 | 0 | p->error_indicator = 1; |
19760 | 0 | PyErr_NoMemory(); |
19761 | 0 | PyMem_Free(_children); |
19762 | 0 | p->level--; |
19763 | 0 | return NULL; |
19764 | 0 | } |
19765 | 0 | } |
19766 | 0 | _children[_n++] = _res; |
19767 | 0 | _mark = p->mark; |
19768 | 0 | } |
19769 | 172 | p->mark = _mark; |
19770 | 172 | D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ', |
19771 | 172 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); |
19772 | 172 | } |
19773 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
19774 | 172 | if (!_seq) { |
19775 | 0 | p->error_indicator = 1; |
19776 | 0 | PyErr_NoMemory(); |
19777 | 0 | PyMem_Free(_children); |
19778 | 0 | p->level--; |
19779 | 0 | return NULL; |
19780 | 0 | } |
19781 | 172 | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
19782 | 172 | PyMem_Free(_children); |
19783 | 172 | p->level--; |
19784 | 172 | return _seq; |
19785 | 172 | } |
19786 | | |
19787 | | // _loop1_2: statement |
19788 | | static asdl_seq * |
19789 | | _loop1_2_rule(Parser *p) |
19790 | 145k | { |
19791 | 145k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
19792 | 0 | _Pypegen_stack_overflow(p); |
19793 | 0 | } |
19794 | 145k | if (p->error_indicator) { |
19795 | 0 | p->level--; |
19796 | 0 | return NULL; |
19797 | 0 | } |
19798 | 145k | void *_res = NULL; |
19799 | 145k | int _mark = p->mark; |
19800 | 145k | void **_children = NULL; |
19801 | 145k | Py_ssize_t _children_capacity = 0; |
19802 | 145k | Py_ssize_t _n = 0; |
19803 | 145k | { // statement |
19804 | 145k | if (p->error_indicator) { |
19805 | 0 | p->level--; |
19806 | 0 | return NULL; |
19807 | 0 | } |
19808 | 145k | D(fprintf(stderr, "%*c> _loop1_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement")); |
19809 | 145k | asdl_stmt_seq* statement_var; |
19810 | 145k | while ( |
19811 | 236k | (statement_var = statement_rule(p)) // statement |
19812 | 145k | ) |
19813 | 90.7k | { |
19814 | 90.7k | _res = statement_var; |
19815 | 90.7k | if (_n == _children_capacity) { |
19816 | 33.7k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
19817 | 0 | p->error_indicator = 1; |
19818 | 0 | PyErr_NoMemory(); |
19819 | 0 | PyMem_Free(_children); |
19820 | 0 | p->level--; |
19821 | 0 | return NULL; |
19822 | 0 | } |
19823 | 33.7k | } |
19824 | 90.7k | _children[_n++] = _res; |
19825 | 90.7k | _mark = p->mark; |
19826 | 90.7k | } |
19827 | 145k | p->mark = _mark; |
19828 | 145k | D(fprintf(stderr, "%*c%s _loop1_2[%d-%d]: %s failed!\n", p->level, ' ', |
19829 | 145k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement")); |
19830 | 145k | } |
19831 | 145k | if (_n == 0 || p->error_indicator) { |
19832 | 127k | PyMem_Free(_children); |
19833 | 127k | p->level--; |
19834 | 127k | return NULL; |
19835 | 127k | } |
19836 | 18.5k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
19837 | 18.5k | if (!_seq) { |
19838 | 0 | p->error_indicator = 1; |
19839 | 0 | PyErr_NoMemory(); |
19840 | 0 | PyMem_Free(_children); |
19841 | 0 | p->level--; |
19842 | 0 | return NULL; |
19843 | 0 | } |
19844 | 105k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
19845 | 18.5k | PyMem_Free(_children); |
19846 | 18.5k | p->level--; |
19847 | 18.5k | return _seq; |
19848 | 18.5k | } |
19849 | | |
19850 | | // _loop0_3: ';' simple_stmt |
19851 | | static asdl_seq * |
19852 | | _loop0_3_rule(Parser *p) |
19853 | 13.4k | { |
19854 | 13.4k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
19855 | 0 | _Pypegen_stack_overflow(p); |
19856 | 0 | } |
19857 | 13.4k | if (p->error_indicator) { |
19858 | 0 | p->level--; |
19859 | 0 | return NULL; |
19860 | 0 | } |
19861 | 13.4k | void *_res = NULL; |
19862 | 13.4k | int _mark = p->mark; |
19863 | 13.4k | void **_children = NULL; |
19864 | 13.4k | Py_ssize_t _children_capacity = 0; |
19865 | 13.4k | Py_ssize_t _n = 0; |
19866 | 13.4k | { // ';' simple_stmt |
19867 | 13.4k | if (p->error_indicator) { |
19868 | 0 | p->level--; |
19869 | 0 | return NULL; |
19870 | 0 | } |
19871 | 13.4k | D(fprintf(stderr, "%*c> _loop0_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt")); |
19872 | 13.4k | Token * _literal; |
19873 | 13.4k | stmt_ty elem; |
19874 | 13.4k | while ( |
19875 | 50.2k | (_literal = _PyPegen_expect_token(p, 13)) // token=';' |
19876 | 38.1k | && |
19877 | 38.1k | (elem = simple_stmt_rule(p)) // simple_stmt |
19878 | 13.4k | ) |
19879 | 36.8k | { |
19880 | 36.8k | _res = elem; |
19881 | 36.8k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
19882 | 0 | p->error_indicator = 1; |
19883 | 0 | PyMem_Free(_children); |
19884 | 0 | p->level--; |
19885 | 0 | return NULL; |
19886 | 0 | } |
19887 | 36.8k | if (_n == _children_capacity) { |
19888 | 5.95k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
19889 | 0 | p->error_indicator = 1; |
19890 | 0 | PyErr_NoMemory(); |
19891 | 0 | PyMem_Free(_children); |
19892 | 0 | p->level--; |
19893 | 0 | return NULL; |
19894 | 0 | } |
19895 | 5.95k | } |
19896 | 36.8k | _children[_n++] = _res; |
19897 | 36.8k | _mark = p->mark; |
19898 | 36.8k | } |
19899 | 13.4k | p->mark = _mark; |
19900 | 13.4k | D(fprintf(stderr, "%*c%s _loop0_3[%d-%d]: %s failed!\n", p->level, ' ', |
19901 | 13.4k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt")); |
19902 | 13.4k | } |
19903 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
19904 | 13.4k | if (!_seq) { |
19905 | 0 | p->error_indicator = 1; |
19906 | 0 | PyErr_NoMemory(); |
19907 | 0 | PyMem_Free(_children); |
19908 | 0 | p->level--; |
19909 | 0 | return NULL; |
19910 | 0 | } |
19911 | 50.2k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
19912 | 13.4k | PyMem_Free(_children); |
19913 | 13.4k | p->level--; |
19914 | 13.4k | return _seq; |
19915 | 13.4k | } |
19916 | | |
19917 | | // _gather_4: simple_stmt _loop0_3 |
19918 | | static asdl_seq * |
19919 | | _gather_4_rule(Parser *p) |
19920 | 145k | { |
19921 | 145k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
19922 | 0 | _Pypegen_stack_overflow(p); |
19923 | 0 | } |
19924 | 145k | if (p->error_indicator) { |
19925 | 0 | p->level--; |
19926 | 0 | return NULL; |
19927 | 0 | } |
19928 | 145k | asdl_seq * _res = NULL; |
19929 | 145k | int _mark = p->mark; |
19930 | 145k | { // simple_stmt _loop0_3 |
19931 | 145k | if (p->error_indicator) { |
19932 | 0 | p->level--; |
19933 | 0 | return NULL; |
19934 | 0 | } |
19935 | 145k | D(fprintf(stderr, "%*c> _gather_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt _loop0_3")); |
19936 | 145k | stmt_ty elem; |
19937 | 145k | asdl_seq * seq; |
19938 | 145k | if ( |
19939 | 145k | (elem = simple_stmt_rule(p)) // simple_stmt |
19940 | 13.4k | && |
19941 | 13.4k | (seq = _loop0_3_rule(p)) // _loop0_3 |
19942 | 145k | ) |
19943 | 13.4k | { |
19944 | 13.4k | D(fprintf(stderr, "%*c+ _gather_4[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt _loop0_3")); |
19945 | 13.4k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
19946 | 13.4k | goto done; |
19947 | 13.4k | } |
19948 | 131k | p->mark = _mark; |
19949 | 131k | D(fprintf(stderr, "%*c%s _gather_4[%d-%d]: %s failed!\n", p->level, ' ', |
19950 | 131k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_3")); |
19951 | 131k | } |
19952 | 131k | _res = NULL; |
19953 | 145k | done: |
19954 | 145k | p->level--; |
19955 | 145k | return _res; |
19956 | 131k | } |
19957 | | |
19958 | | // _tmp_5: 'import' | 'from' | "lazy" |
19959 | | static void * |
19960 | | _tmp_5_rule(Parser *p) |
19961 | 265k | { |
19962 | 265k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
19963 | 0 | _Pypegen_stack_overflow(p); |
19964 | 0 | } |
19965 | 265k | if (p->error_indicator) { |
19966 | 0 | p->level--; |
19967 | 0 | return NULL; |
19968 | 0 | } |
19969 | 265k | void * _res = NULL; |
19970 | 265k | int _mark = p->mark; |
19971 | 265k | { // 'import' |
19972 | 265k | if (p->error_indicator) { |
19973 | 0 | p->level--; |
19974 | 0 | return NULL; |
19975 | 0 | } |
19976 | 265k | D(fprintf(stderr, "%*c> _tmp_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'")); |
19977 | 265k | Token * _keyword; |
19978 | 265k | if ( |
19979 | 265k | (_keyword = _PyPegen_expect_token(p, 500)) // token='import' |
19980 | 265k | ) |
19981 | 2.71k | { |
19982 | 2.71k | D(fprintf(stderr, "%*c+ _tmp_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'")); |
19983 | 2.71k | _res = _keyword; |
19984 | 2.71k | goto done; |
19985 | 2.71k | } |
19986 | 262k | p->mark = _mark; |
19987 | 262k | D(fprintf(stderr, "%*c%s _tmp_5[%d-%d]: %s failed!\n", p->level, ' ', |
19988 | 262k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'")); |
19989 | 262k | } |
19990 | 0 | { // 'from' |
19991 | 262k | if (p->error_indicator) { |
19992 | 0 | p->level--; |
19993 | 0 | return NULL; |
19994 | 0 | } |
19995 | 262k | D(fprintf(stderr, "%*c> _tmp_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'")); |
19996 | 262k | Token * _keyword; |
19997 | 262k | if ( |
19998 | 262k | (_keyword = _PyPegen_expect_token(p, 501)) // token='from' |
19999 | 262k | ) |
20000 | 6.13k | { |
20001 | 6.13k | D(fprintf(stderr, "%*c+ _tmp_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'")); |
20002 | 6.13k | _res = _keyword; |
20003 | 6.13k | goto done; |
20004 | 6.13k | } |
20005 | 256k | p->mark = _mark; |
20006 | 256k | D(fprintf(stderr, "%*c%s _tmp_5[%d-%d]: %s failed!\n", p->level, ' ', |
20007 | 256k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'")); |
20008 | 256k | } |
20009 | 0 | { // "lazy" |
20010 | 256k | if (p->error_indicator) { |
20011 | 0 | p->level--; |
20012 | 0 | return NULL; |
20013 | 0 | } |
20014 | 256k | D(fprintf(stderr, "%*c> _tmp_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"lazy\"")); |
20015 | 256k | expr_ty _keyword; |
20016 | 256k | if ( |
20017 | 256k | (_keyword = _PyPegen_expect_soft_keyword(p, "lazy")) // soft_keyword='"lazy"' |
20018 | 256k | ) |
20019 | 605 | { |
20020 | 605 | D(fprintf(stderr, "%*c+ _tmp_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"lazy\"")); |
20021 | 605 | _res = _keyword; |
20022 | 605 | goto done; |
20023 | 605 | } |
20024 | 255k | p->mark = _mark; |
20025 | 255k | D(fprintf(stderr, "%*c%s _tmp_5[%d-%d]: %s failed!\n", p->level, ' ', |
20026 | 255k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"lazy\"")); |
20027 | 255k | } |
20028 | 255k | _res = NULL; |
20029 | 265k | done: |
20030 | 265k | p->level--; |
20031 | 265k | return _res; |
20032 | 255k | } |
20033 | | |
20034 | | // _tmp_6: 'def' | '@' | 'async' |
20035 | | static void * |
20036 | | _tmp_6_rule(Parser *p) |
20037 | 236k | { |
20038 | 236k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20039 | 0 | _Pypegen_stack_overflow(p); |
20040 | 0 | } |
20041 | 236k | if (p->error_indicator) { |
20042 | 0 | p->level--; |
20043 | 0 | return NULL; |
20044 | 0 | } |
20045 | 236k | void * _res = NULL; |
20046 | 236k | int _mark = p->mark; |
20047 | 236k | { // 'def' |
20048 | 236k | if (p->error_indicator) { |
20049 | 0 | p->level--; |
20050 | 0 | return NULL; |
20051 | 0 | } |
20052 | 236k | D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'")); |
20053 | 236k | Token * _keyword; |
20054 | 236k | if ( |
20055 | 236k | (_keyword = _PyPegen_expect_token(p, 512)) // token='def' |
20056 | 236k | ) |
20057 | 8.87k | { |
20058 | 8.87k | D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'")); |
20059 | 8.87k | _res = _keyword; |
20060 | 8.87k | goto done; |
20061 | 8.87k | } |
20062 | 227k | p->mark = _mark; |
20063 | 227k | D(fprintf(stderr, "%*c%s _tmp_6[%d-%d]: %s failed!\n", p->level, ' ', |
20064 | 227k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'")); |
20065 | 227k | } |
20066 | 0 | { // '@' |
20067 | 227k | if (p->error_indicator) { |
20068 | 825 | p->level--; |
20069 | 825 | return NULL; |
20070 | 825 | } |
20071 | 226k | D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'")); |
20072 | 226k | Token * _literal; |
20073 | 226k | if ( |
20074 | 226k | (_literal = _PyPegen_expect_token(p, 49)) // token='@' |
20075 | 226k | ) |
20076 | 1.21k | { |
20077 | 1.21k | D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'")); |
20078 | 1.21k | _res = _literal; |
20079 | 1.21k | goto done; |
20080 | 1.21k | } |
20081 | 225k | p->mark = _mark; |
20082 | 225k | D(fprintf(stderr, "%*c%s _tmp_6[%d-%d]: %s failed!\n", p->level, ' ', |
20083 | 225k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'")); |
20084 | 225k | } |
20085 | 0 | { // 'async' |
20086 | 225k | if (p->error_indicator) { |
20087 | 0 | p->level--; |
20088 | 0 | return NULL; |
20089 | 0 | } |
20090 | 225k | D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); |
20091 | 225k | Token * _keyword; |
20092 | 225k | if ( |
20093 | 225k | (_keyword = _PyPegen_expect_token(p, 513)) // token='async' |
20094 | 225k | ) |
20095 | 1.71k | { |
20096 | 1.71k | D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); |
20097 | 1.71k | _res = _keyword; |
20098 | 1.71k | goto done; |
20099 | 1.71k | } |
20100 | 224k | p->mark = _mark; |
20101 | 224k | D(fprintf(stderr, "%*c%s _tmp_6[%d-%d]: %s failed!\n", p->level, ' ', |
20102 | 224k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'")); |
20103 | 224k | } |
20104 | 224k | _res = NULL; |
20105 | 235k | done: |
20106 | 235k | p->level--; |
20107 | 235k | return _res; |
20108 | 224k | } |
20109 | | |
20110 | | // _tmp_7: 'class' | '@' |
20111 | | static void * |
20112 | | _tmp_7_rule(Parser *p) |
20113 | 222k | { |
20114 | 222k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20115 | 0 | _Pypegen_stack_overflow(p); |
20116 | 0 | } |
20117 | 222k | if (p->error_indicator) { |
20118 | 0 | p->level--; |
20119 | 0 | return NULL; |
20120 | 0 | } |
20121 | 222k | void * _res = NULL; |
20122 | 222k | int _mark = p->mark; |
20123 | 222k | { // 'class' |
20124 | 222k | if (p->error_indicator) { |
20125 | 0 | p->level--; |
20126 | 0 | return NULL; |
20127 | 0 | } |
20128 | 222k | D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'")); |
20129 | 222k | Token * _keyword; |
20130 | 222k | if ( |
20131 | 222k | (_keyword = _PyPegen_expect_token(p, 515)) // token='class' |
20132 | 222k | ) |
20133 | 2.60k | { |
20134 | 2.60k | D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'")); |
20135 | 2.60k | _res = _keyword; |
20136 | 2.60k | goto done; |
20137 | 2.60k | } |
20138 | 219k | p->mark = _mark; |
20139 | 219k | D(fprintf(stderr, "%*c%s _tmp_7[%d-%d]: %s failed!\n", p->level, ' ', |
20140 | 219k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'")); |
20141 | 219k | } |
20142 | 0 | { // '@' |
20143 | 219k | if (p->error_indicator) { |
20144 | 0 | p->level--; |
20145 | 0 | return NULL; |
20146 | 0 | } |
20147 | 219k | D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'")); |
20148 | 219k | Token * _literal; |
20149 | 219k | if ( |
20150 | 219k | (_literal = _PyPegen_expect_token(p, 49)) // token='@' |
20151 | 219k | ) |
20152 | 537 | { |
20153 | 537 | D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'")); |
20154 | 537 | _res = _literal; |
20155 | 537 | goto done; |
20156 | 537 | } |
20157 | 219k | p->mark = _mark; |
20158 | 219k | D(fprintf(stderr, "%*c%s _tmp_7[%d-%d]: %s failed!\n", p->level, ' ', |
20159 | 219k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'")); |
20160 | 219k | } |
20161 | 219k | _res = NULL; |
20162 | 222k | done: |
20163 | 222k | p->level--; |
20164 | 222k | return _res; |
20165 | 219k | } |
20166 | | |
20167 | | // _tmp_8: 'with' | 'async' |
20168 | | static void * |
20169 | | _tmp_8_rule(Parser *p) |
20170 | 219k | { |
20171 | 219k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20172 | 0 | _Pypegen_stack_overflow(p); |
20173 | 0 | } |
20174 | 219k | if (p->error_indicator) { |
20175 | 0 | p->level--; |
20176 | 0 | return NULL; |
20177 | 0 | } |
20178 | 219k | void * _res = NULL; |
20179 | 219k | int _mark = p->mark; |
20180 | 219k | { // 'with' |
20181 | 219k | if (p->error_indicator) { |
20182 | 0 | p->level--; |
20183 | 0 | return NULL; |
20184 | 0 | } |
20185 | 219k | D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'")); |
20186 | 219k | Token * _keyword; |
20187 | 219k | if ( |
20188 | 219k | (_keyword = _PyPegen_expect_token(p, 516)) // token='with' |
20189 | 219k | ) |
20190 | 4.38k | { |
20191 | 4.38k | D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'")); |
20192 | 4.38k | _res = _keyword; |
20193 | 4.38k | goto done; |
20194 | 4.38k | } |
20195 | 215k | p->mark = _mark; |
20196 | 215k | D(fprintf(stderr, "%*c%s _tmp_8[%d-%d]: %s failed!\n", p->level, ' ', |
20197 | 215k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'")); |
20198 | 215k | } |
20199 | 0 | { // 'async' |
20200 | 215k | if (p->error_indicator) { |
20201 | 0 | p->level--; |
20202 | 0 | return NULL; |
20203 | 0 | } |
20204 | 215k | D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); |
20205 | 215k | Token * _keyword; |
20206 | 215k | if ( |
20207 | 215k | (_keyword = _PyPegen_expect_token(p, 513)) // token='async' |
20208 | 215k | ) |
20209 | 1.07k | { |
20210 | 1.07k | D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); |
20211 | 1.07k | _res = _keyword; |
20212 | 1.07k | goto done; |
20213 | 1.07k | } |
20214 | 214k | p->mark = _mark; |
20215 | 214k | D(fprintf(stderr, "%*c%s _tmp_8[%d-%d]: %s failed!\n", p->level, ' ', |
20216 | 214k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'")); |
20217 | 214k | } |
20218 | 214k | _res = NULL; |
20219 | 219k | done: |
20220 | 219k | p->level--; |
20221 | 219k | return _res; |
20222 | 214k | } |
20223 | | |
20224 | | // _tmp_9: 'for' | 'async' |
20225 | | static void * |
20226 | | _tmp_9_rule(Parser *p) |
20227 | 214k | { |
20228 | 214k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20229 | 0 | _Pypegen_stack_overflow(p); |
20230 | 0 | } |
20231 | 214k | if (p->error_indicator) { |
20232 | 0 | p->level--; |
20233 | 0 | return NULL; |
20234 | 0 | } |
20235 | 214k | void * _res = NULL; |
20236 | 214k | int _mark = p->mark; |
20237 | 214k | { // 'for' |
20238 | 214k | if (p->error_indicator) { |
20239 | 0 | p->level--; |
20240 | 0 | return NULL; |
20241 | 0 | } |
20242 | 214k | D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'")); |
20243 | 214k | Token * _keyword; |
20244 | 214k | if ( |
20245 | 214k | (_keyword = _PyPegen_expect_token(p, 517)) // token='for' |
20246 | 214k | ) |
20247 | 1.11k | { |
20248 | 1.11k | D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'")); |
20249 | 1.11k | _res = _keyword; |
20250 | 1.11k | goto done; |
20251 | 1.11k | } |
20252 | 213k | p->mark = _mark; |
20253 | 213k | D(fprintf(stderr, "%*c%s _tmp_9[%d-%d]: %s failed!\n", p->level, ' ', |
20254 | 213k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'")); |
20255 | 213k | } |
20256 | 0 | { // 'async' |
20257 | 213k | if (p->error_indicator) { |
20258 | 0 | p->level--; |
20259 | 0 | return NULL; |
20260 | 0 | } |
20261 | 213k | D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); |
20262 | 213k | Token * _keyword; |
20263 | 213k | if ( |
20264 | 213k | (_keyword = _PyPegen_expect_token(p, 513)) // token='async' |
20265 | 213k | ) |
20266 | 377 | { |
20267 | 377 | D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); |
20268 | 377 | _res = _keyword; |
20269 | 377 | goto done; |
20270 | 377 | } |
20271 | 213k | p->mark = _mark; |
20272 | 213k | D(fprintf(stderr, "%*c%s _tmp_9[%d-%d]: %s failed!\n", p->level, ' ', |
20273 | 213k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'")); |
20274 | 213k | } |
20275 | 213k | _res = NULL; |
20276 | 214k | done: |
20277 | 214k | p->level--; |
20278 | 214k | return _res; |
20279 | 213k | } |
20280 | | |
20281 | | // _tmp_10: '=' annotated_rhs |
20282 | | static void * |
20283 | | _tmp_10_rule(Parser *p) |
20284 | 3.45k | { |
20285 | 3.45k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20286 | 0 | _Pypegen_stack_overflow(p); |
20287 | 0 | } |
20288 | 3.45k | if (p->error_indicator) { |
20289 | 0 | p->level--; |
20290 | 0 | return NULL; |
20291 | 0 | } |
20292 | 3.45k | void * _res = NULL; |
20293 | 3.45k | int _mark = p->mark; |
20294 | 3.45k | { // '=' annotated_rhs |
20295 | 3.45k | if (p->error_indicator) { |
20296 | 0 | p->level--; |
20297 | 0 | return NULL; |
20298 | 0 | } |
20299 | 3.45k | D(fprintf(stderr, "%*c> _tmp_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs")); |
20300 | 3.45k | Token * _literal; |
20301 | 3.45k | expr_ty d; |
20302 | 3.45k | if ( |
20303 | 3.45k | (_literal = _PyPegen_expect_token(p, 22)) // token='=' |
20304 | 734 | && |
20305 | 734 | (d = annotated_rhs_rule(p)) // annotated_rhs |
20306 | 3.45k | ) |
20307 | 598 | { |
20308 | 598 | D(fprintf(stderr, "%*c+ _tmp_10[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs")); |
20309 | 598 | _res = d; |
20310 | 598 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
20311 | 0 | p->error_indicator = 1; |
20312 | 0 | p->level--; |
20313 | 0 | return NULL; |
20314 | 0 | } |
20315 | 598 | goto done; |
20316 | 598 | } |
20317 | 2.85k | p->mark = _mark; |
20318 | 2.85k | D(fprintf(stderr, "%*c%s _tmp_10[%d-%d]: %s failed!\n", p->level, ' ', |
20319 | 2.85k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs")); |
20320 | 2.85k | } |
20321 | 2.85k | _res = NULL; |
20322 | 3.45k | done: |
20323 | 3.45k | p->level--; |
20324 | 3.45k | return _res; |
20325 | 2.85k | } |
20326 | | |
20327 | | // _tmp_11: '(' single_target ')' | attribute_or_subscript_target |
20328 | | static void * |
20329 | | _tmp_11_rule(Parser *p) |
20330 | 278k | { |
20331 | 278k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20332 | 0 | _Pypegen_stack_overflow(p); |
20333 | 0 | } |
20334 | 278k | if (p->error_indicator) { |
20335 | 0 | p->level--; |
20336 | 0 | return NULL; |
20337 | 0 | } |
20338 | 278k | void * _res = NULL; |
20339 | 278k | int _mark = p->mark; |
20340 | 278k | { // '(' single_target ')' |
20341 | 278k | if (p->error_indicator) { |
20342 | 0 | p->level--; |
20343 | 0 | return NULL; |
20344 | 0 | } |
20345 | 278k | D(fprintf(stderr, "%*c> _tmp_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'")); |
20346 | 278k | Token * _literal; |
20347 | 278k | Token * _literal_1; |
20348 | 278k | expr_ty b; |
20349 | 278k | if ( |
20350 | 278k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
20351 | 3.89k | && |
20352 | 3.89k | (b = single_target_rule(p)) // single_target |
20353 | 1.65k | && |
20354 | 1.65k | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
20355 | 278k | ) |
20356 | 376 | { |
20357 | 376 | D(fprintf(stderr, "%*c+ _tmp_11[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'")); |
20358 | 376 | _res = b; |
20359 | 376 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
20360 | 0 | p->error_indicator = 1; |
20361 | 0 | p->level--; |
20362 | 0 | return NULL; |
20363 | 0 | } |
20364 | 376 | goto done; |
20365 | 376 | } |
20366 | 277k | p->mark = _mark; |
20367 | 277k | D(fprintf(stderr, "%*c%s _tmp_11[%d-%d]: %s failed!\n", p->level, ' ', |
20368 | 277k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'")); |
20369 | 277k | } |
20370 | 0 | { // attribute_or_subscript_target |
20371 | 277k | if (p->error_indicator) { |
20372 | 166 | p->level--; |
20373 | 166 | return NULL; |
20374 | 166 | } |
20375 | 277k | D(fprintf(stderr, "%*c> _tmp_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attribute_or_subscript_target")); |
20376 | 277k | expr_ty attribute_or_subscript_target_var; |
20377 | 277k | if ( |
20378 | 277k | (attribute_or_subscript_target_var = attribute_or_subscript_target_rule(p)) // attribute_or_subscript_target |
20379 | 277k | ) |
20380 | 3.03k | { |
20381 | 3.03k | D(fprintf(stderr, "%*c+ _tmp_11[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attribute_or_subscript_target")); |
20382 | 3.03k | _res = attribute_or_subscript_target_var; |
20383 | 3.03k | goto done; |
20384 | 3.03k | } |
20385 | 274k | p->mark = _mark; |
20386 | 274k | D(fprintf(stderr, "%*c%s _tmp_11[%d-%d]: %s failed!\n", p->level, ' ', |
20387 | 274k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attribute_or_subscript_target")); |
20388 | 274k | } |
20389 | 274k | _res = NULL; |
20390 | 278k | done: |
20391 | 278k | p->level--; |
20392 | 278k | return _res; |
20393 | 274k | } |
20394 | | |
20395 | | // _loop1_12: (star_targets '=') |
20396 | | static asdl_seq * |
20397 | | _loop1_12_rule(Parser *p) |
20398 | 274k | { |
20399 | 274k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20400 | 0 | _Pypegen_stack_overflow(p); |
20401 | 0 | } |
20402 | 274k | if (p->error_indicator) { |
20403 | 0 | p->level--; |
20404 | 0 | return NULL; |
20405 | 0 | } |
20406 | 274k | void *_res = NULL; |
20407 | 274k | int _mark = p->mark; |
20408 | 274k | void **_children = NULL; |
20409 | 274k | Py_ssize_t _children_capacity = 0; |
20410 | 274k | Py_ssize_t _n = 0; |
20411 | 274k | { // (star_targets '=') |
20412 | 274k | if (p->error_indicator) { |
20413 | 0 | p->level--; |
20414 | 0 | return NULL; |
20415 | 0 | } |
20416 | 274k | D(fprintf(stderr, "%*c> _loop1_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); |
20417 | 274k | void *_tmp_178_var; |
20418 | 274k | while ( |
20419 | 279k | (_tmp_178_var = _tmp_178_rule(p)) // star_targets '=' |
20420 | 274k | ) |
20421 | 5.40k | { |
20422 | 5.40k | _res = _tmp_178_var; |
20423 | 5.40k | if (_n == _children_capacity) { |
20424 | 4.57k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
20425 | 0 | p->error_indicator = 1; |
20426 | 0 | PyErr_NoMemory(); |
20427 | 0 | PyMem_Free(_children); |
20428 | 0 | p->level--; |
20429 | 0 | return NULL; |
20430 | 0 | } |
20431 | 4.57k | } |
20432 | 5.40k | _children[_n++] = _res; |
20433 | 5.40k | _mark = p->mark; |
20434 | 5.40k | } |
20435 | 274k | p->mark = _mark; |
20436 | 274k | D(fprintf(stderr, "%*c%s _loop1_12[%d-%d]: %s failed!\n", p->level, ' ', |
20437 | 274k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')")); |
20438 | 274k | } |
20439 | 274k | if (_n == 0 || p->error_indicator) { |
20440 | 270k | PyMem_Free(_children); |
20441 | 270k | p->level--; |
20442 | 270k | return NULL; |
20443 | 270k | } |
20444 | 4.15k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
20445 | 4.15k | if (!_seq) { |
20446 | 0 | p->error_indicator = 1; |
20447 | 0 | PyErr_NoMemory(); |
20448 | 0 | PyMem_Free(_children); |
20449 | 0 | p->level--; |
20450 | 0 | return NULL; |
20451 | 0 | } |
20452 | 9.43k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
20453 | 4.15k | PyMem_Free(_children); |
20454 | 4.15k | p->level--; |
20455 | 4.15k | return _seq; |
20456 | 4.15k | } |
20457 | | |
20458 | | // _loop0_13: ',' NAME |
20459 | | static asdl_seq * |
20460 | | _loop0_13_rule(Parser *p) |
20461 | 1.13k | { |
20462 | 1.13k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20463 | 0 | _Pypegen_stack_overflow(p); |
20464 | 0 | } |
20465 | 1.13k | if (p->error_indicator) { |
20466 | 0 | p->level--; |
20467 | 0 | return NULL; |
20468 | 0 | } |
20469 | 1.13k | void *_res = NULL; |
20470 | 1.13k | int _mark = p->mark; |
20471 | 1.13k | void **_children = NULL; |
20472 | 1.13k | Py_ssize_t _children_capacity = 0; |
20473 | 1.13k | Py_ssize_t _n = 0; |
20474 | 1.13k | { // ',' NAME |
20475 | 1.13k | if (p->error_indicator) { |
20476 | 0 | p->level--; |
20477 | 0 | return NULL; |
20478 | 0 | } |
20479 | 1.13k | D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME")); |
20480 | 1.13k | Token * _literal; |
20481 | 1.13k | expr_ty elem; |
20482 | 1.13k | while ( |
20483 | 4.00k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
20484 | 2.90k | && |
20485 | 2.90k | (elem = _PyPegen_name_token(p)) // NAME |
20486 | 1.13k | ) |
20487 | 2.86k | { |
20488 | 2.86k | _res = elem; |
20489 | 2.86k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
20490 | 0 | p->error_indicator = 1; |
20491 | 0 | PyMem_Free(_children); |
20492 | 0 | p->level--; |
20493 | 0 | return NULL; |
20494 | 0 | } |
20495 | 2.86k | if (_n == _children_capacity) { |
20496 | 1.42k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
20497 | 0 | p->error_indicator = 1; |
20498 | 0 | PyErr_NoMemory(); |
20499 | 0 | PyMem_Free(_children); |
20500 | 0 | p->level--; |
20501 | 0 | return NULL; |
20502 | 0 | } |
20503 | 1.42k | } |
20504 | 2.86k | _children[_n++] = _res; |
20505 | 2.86k | _mark = p->mark; |
20506 | 2.86k | } |
20507 | 1.13k | p->mark = _mark; |
20508 | 1.13k | D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ', |
20509 | 1.13k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME")); |
20510 | 1.13k | } |
20511 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
20512 | 1.13k | if (!_seq) { |
20513 | 0 | p->error_indicator = 1; |
20514 | 0 | PyErr_NoMemory(); |
20515 | 0 | PyMem_Free(_children); |
20516 | 0 | p->level--; |
20517 | 0 | return NULL; |
20518 | 0 | } |
20519 | 4.00k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
20520 | 1.13k | PyMem_Free(_children); |
20521 | 1.13k | p->level--; |
20522 | 1.13k | return _seq; |
20523 | 1.13k | } |
20524 | | |
20525 | | // _gather_14: NAME _loop0_13 |
20526 | | static asdl_seq * |
20527 | | _gather_14_rule(Parser *p) |
20528 | 1.14k | { |
20529 | 1.14k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20530 | 0 | _Pypegen_stack_overflow(p); |
20531 | 0 | } |
20532 | 1.14k | if (p->error_indicator) { |
20533 | 0 | p->level--; |
20534 | 0 | return NULL; |
20535 | 0 | } |
20536 | 1.14k | asdl_seq * _res = NULL; |
20537 | 1.14k | int _mark = p->mark; |
20538 | 1.14k | { // NAME _loop0_13 |
20539 | 1.14k | if (p->error_indicator) { |
20540 | 0 | p->level--; |
20541 | 0 | return NULL; |
20542 | 0 | } |
20543 | 1.14k | D(fprintf(stderr, "%*c> _gather_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_13")); |
20544 | 1.14k | expr_ty elem; |
20545 | 1.14k | asdl_seq * seq; |
20546 | 1.14k | if ( |
20547 | 1.14k | (elem = _PyPegen_name_token(p)) // NAME |
20548 | 1.13k | && |
20549 | 1.13k | (seq = _loop0_13_rule(p)) // _loop0_13 |
20550 | 1.14k | ) |
20551 | 1.13k | { |
20552 | 1.13k | D(fprintf(stderr, "%*c+ _gather_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_13")); |
20553 | 1.13k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
20554 | 1.13k | goto done; |
20555 | 1.13k | } |
20556 | 12 | p->mark = _mark; |
20557 | 12 | D(fprintf(stderr, "%*c%s _gather_14[%d-%d]: %s failed!\n", p->level, ' ', |
20558 | 12 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_13")); |
20559 | 12 | } |
20560 | 12 | _res = NULL; |
20561 | 1.14k | done: |
20562 | 1.14k | p->level--; |
20563 | 1.14k | return _res; |
20564 | 12 | } |
20565 | | |
20566 | | // _tmp_15: ';' | NEWLINE |
20567 | | static void * |
20568 | | _tmp_15_rule(Parser *p) |
20569 | 767 | { |
20570 | 767 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20571 | 0 | _Pypegen_stack_overflow(p); |
20572 | 0 | } |
20573 | 767 | if (p->error_indicator) { |
20574 | 0 | p->level--; |
20575 | 0 | return NULL; |
20576 | 0 | } |
20577 | 767 | void * _res = NULL; |
20578 | 767 | int _mark = p->mark; |
20579 | 767 | { // ';' |
20580 | 767 | if (p->error_indicator) { |
20581 | 0 | p->level--; |
20582 | 0 | return NULL; |
20583 | 0 | } |
20584 | 767 | D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'")); |
20585 | 767 | Token * _literal; |
20586 | 767 | if ( |
20587 | 767 | (_literal = _PyPegen_expect_token(p, 13)) // token=';' |
20588 | 767 | ) |
20589 | 275 | { |
20590 | 275 | D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'")); |
20591 | 275 | _res = _literal; |
20592 | 275 | goto done; |
20593 | 275 | } |
20594 | 492 | p->mark = _mark; |
20595 | 492 | D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ', |
20596 | 492 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'")); |
20597 | 492 | } |
20598 | 0 | { // NEWLINE |
20599 | 492 | if (p->error_indicator) { |
20600 | 0 | p->level--; |
20601 | 0 | return NULL; |
20602 | 0 | } |
20603 | 492 | D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE")); |
20604 | 492 | Token * newline_var; |
20605 | 492 | if ( |
20606 | 492 | (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' |
20607 | 492 | ) |
20608 | 344 | { |
20609 | 344 | D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE")); |
20610 | 344 | _res = newline_var; |
20611 | 344 | goto done; |
20612 | 344 | } |
20613 | 148 | p->mark = _mark; |
20614 | 148 | D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ', |
20615 | 148 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); |
20616 | 148 | } |
20617 | 148 | _res = NULL; |
20618 | 767 | done: |
20619 | 767 | p->level--; |
20620 | 767 | return _res; |
20621 | 148 | } |
20622 | | |
20623 | | // _tmp_16: ',' expression |
20624 | | static void * |
20625 | | _tmp_16_rule(Parser *p) |
20626 | 9.16k | { |
20627 | 9.16k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20628 | 0 | _Pypegen_stack_overflow(p); |
20629 | 0 | } |
20630 | 9.16k | if (p->error_indicator) { |
20631 | 0 | p->level--; |
20632 | 0 | return NULL; |
20633 | 0 | } |
20634 | 9.16k | void * _res = NULL; |
20635 | 9.16k | int _mark = p->mark; |
20636 | 9.16k | { // ',' expression |
20637 | 9.16k | if (p->error_indicator) { |
20638 | 0 | p->level--; |
20639 | 0 | return NULL; |
20640 | 0 | } |
20641 | 9.16k | D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); |
20642 | 9.16k | Token * _literal; |
20643 | 9.16k | expr_ty z; |
20644 | 9.16k | if ( |
20645 | 9.16k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
20646 | 6.09k | && |
20647 | 6.09k | (z = expression_rule(p)) // expression |
20648 | 9.16k | ) |
20649 | 4.18k | { |
20650 | 4.18k | D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression")); |
20651 | 4.18k | _res = z; |
20652 | 4.18k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
20653 | 0 | p->error_indicator = 1; |
20654 | 0 | p->level--; |
20655 | 0 | return NULL; |
20656 | 0 | } |
20657 | 4.18k | goto done; |
20658 | 4.18k | } |
20659 | 4.97k | p->mark = _mark; |
20660 | 4.97k | D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ', |
20661 | 4.97k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression")); |
20662 | 4.97k | } |
20663 | 4.97k | _res = NULL; |
20664 | 9.16k | done: |
20665 | 9.16k | p->level--; |
20666 | 9.16k | return _res; |
20667 | 4.97k | } |
20668 | | |
20669 | | // _loop0_17: ('.' | '...') |
20670 | | static asdl_seq * |
20671 | | _loop0_17_rule(Parser *p) |
20672 | 6.18k | { |
20673 | 6.18k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20674 | 0 | _Pypegen_stack_overflow(p); |
20675 | 0 | } |
20676 | 6.18k | if (p->error_indicator) { |
20677 | 0 | p->level--; |
20678 | 0 | return NULL; |
20679 | 0 | } |
20680 | 6.18k | void *_res = NULL; |
20681 | 6.18k | int _mark = p->mark; |
20682 | 6.18k | void **_children = NULL; |
20683 | 6.18k | Py_ssize_t _children_capacity = 0; |
20684 | 6.18k | Py_ssize_t _n = 0; |
20685 | 6.18k | { // ('.' | '...') |
20686 | 6.18k | if (p->error_indicator) { |
20687 | 0 | p->level--; |
20688 | 0 | return NULL; |
20689 | 0 | } |
20690 | 6.18k | D(fprintf(stderr, "%*c> _loop0_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); |
20691 | 6.18k | void *_tmp_179_var; |
20692 | 6.18k | while ( |
20693 | 18.6k | (_tmp_179_var = _tmp_179_rule(p)) // '.' | '...' |
20694 | 6.18k | ) |
20695 | 12.4k | { |
20696 | 12.4k | _res = _tmp_179_var; |
20697 | 12.4k | if (_n == _children_capacity) { |
20698 | 5.78k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
20699 | 0 | p->error_indicator = 1; |
20700 | 0 | PyErr_NoMemory(); |
20701 | 0 | PyMem_Free(_children); |
20702 | 0 | p->level--; |
20703 | 0 | return NULL; |
20704 | 0 | } |
20705 | 5.78k | } |
20706 | 12.4k | _children[_n++] = _res; |
20707 | 12.4k | _mark = p->mark; |
20708 | 12.4k | } |
20709 | 6.18k | p->mark = _mark; |
20710 | 6.18k | D(fprintf(stderr, "%*c%s _loop0_17[%d-%d]: %s failed!\n", p->level, ' ', |
20711 | 6.18k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')")); |
20712 | 6.18k | } |
20713 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
20714 | 6.18k | if (!_seq) { |
20715 | 0 | p->error_indicator = 1; |
20716 | 0 | PyErr_NoMemory(); |
20717 | 0 | PyMem_Free(_children); |
20718 | 0 | p->level--; |
20719 | 0 | return NULL; |
20720 | 0 | } |
20721 | 18.6k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
20722 | 6.18k | PyMem_Free(_children); |
20723 | 6.18k | p->level--; |
20724 | 6.18k | return _seq; |
20725 | 6.18k | } |
20726 | | |
20727 | | // _loop1_18: ('.' | '...') |
20728 | | static asdl_seq * |
20729 | | _loop1_18_rule(Parser *p) |
20730 | 2.30k | { |
20731 | 2.30k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20732 | 0 | _Pypegen_stack_overflow(p); |
20733 | 0 | } |
20734 | 2.30k | if (p->error_indicator) { |
20735 | 0 | p->level--; |
20736 | 0 | return NULL; |
20737 | 0 | } |
20738 | 2.30k | void *_res = NULL; |
20739 | 2.30k | int _mark = p->mark; |
20740 | 2.30k | void **_children = NULL; |
20741 | 2.30k | Py_ssize_t _children_capacity = 0; |
20742 | 2.30k | Py_ssize_t _n = 0; |
20743 | 2.30k | { // ('.' | '...') |
20744 | 2.30k | if (p->error_indicator) { |
20745 | 0 | p->level--; |
20746 | 0 | return NULL; |
20747 | 0 | } |
20748 | 2.30k | D(fprintf(stderr, "%*c> _loop1_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); |
20749 | 2.30k | void *_tmp_179_var; |
20750 | 2.30k | while ( |
20751 | 8.20k | (_tmp_179_var = _tmp_179_rule(p)) // '.' | '...' |
20752 | 2.30k | ) |
20753 | 5.89k | { |
20754 | 5.89k | _res = _tmp_179_var; |
20755 | 5.89k | if (_n == _children_capacity) { |
20756 | 3.26k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
20757 | 0 | p->error_indicator = 1; |
20758 | 0 | PyErr_NoMemory(); |
20759 | 0 | PyMem_Free(_children); |
20760 | 0 | p->level--; |
20761 | 0 | return NULL; |
20762 | 0 | } |
20763 | 3.26k | } |
20764 | 5.89k | _children[_n++] = _res; |
20765 | 5.89k | _mark = p->mark; |
20766 | 5.89k | } |
20767 | 2.30k | p->mark = _mark; |
20768 | 2.30k | D(fprintf(stderr, "%*c%s _loop1_18[%d-%d]: %s failed!\n", p->level, ' ', |
20769 | 2.30k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')")); |
20770 | 2.30k | } |
20771 | 2.30k | if (_n == 0 || p->error_indicator) { |
20772 | 69 | PyMem_Free(_children); |
20773 | 69 | p->level--; |
20774 | 69 | return NULL; |
20775 | 69 | } |
20776 | 2.23k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
20777 | 2.23k | if (!_seq) { |
20778 | 0 | p->error_indicator = 1; |
20779 | 0 | PyErr_NoMemory(); |
20780 | 0 | PyMem_Free(_children); |
20781 | 0 | p->level--; |
20782 | 0 | return NULL; |
20783 | 0 | } |
20784 | 8.13k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
20785 | 2.23k | PyMem_Free(_children); |
20786 | 2.23k | p->level--; |
20787 | 2.23k | return _seq; |
20788 | 2.23k | } |
20789 | | |
20790 | | // _loop0_19: ',' import_from_as_name |
20791 | | static asdl_seq * |
20792 | | _loop0_19_rule(Parser *p) |
20793 | 4.19k | { |
20794 | 4.19k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20795 | 0 | _Pypegen_stack_overflow(p); |
20796 | 0 | } |
20797 | 4.19k | if (p->error_indicator) { |
20798 | 0 | p->level--; |
20799 | 0 | return NULL; |
20800 | 0 | } |
20801 | 4.19k | void *_res = NULL; |
20802 | 4.19k | int _mark = p->mark; |
20803 | 4.19k | void **_children = NULL; |
20804 | 4.19k | Py_ssize_t _children_capacity = 0; |
20805 | 4.19k | Py_ssize_t _n = 0; |
20806 | 4.19k | { // ',' import_from_as_name |
20807 | 4.19k | if (p->error_indicator) { |
20808 | 0 | p->level--; |
20809 | 0 | return NULL; |
20810 | 0 | } |
20811 | 4.19k | D(fprintf(stderr, "%*c> _loop0_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' import_from_as_name")); |
20812 | 4.19k | Token * _literal; |
20813 | 4.19k | alias_ty elem; |
20814 | 4.19k | while ( |
20815 | 6.81k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
20816 | 2.72k | && |
20817 | 2.72k | (elem = import_from_as_name_rule(p)) // import_from_as_name |
20818 | 4.19k | ) |
20819 | 2.62k | { |
20820 | 2.62k | _res = elem; |
20821 | 2.62k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
20822 | 0 | p->error_indicator = 1; |
20823 | 0 | PyMem_Free(_children); |
20824 | 0 | p->level--; |
20825 | 0 | return NULL; |
20826 | 0 | } |
20827 | 2.62k | if (_n == _children_capacity) { |
20828 | 1.44k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
20829 | 0 | p->error_indicator = 1; |
20830 | 0 | PyErr_NoMemory(); |
20831 | 0 | PyMem_Free(_children); |
20832 | 0 | p->level--; |
20833 | 0 | return NULL; |
20834 | 0 | } |
20835 | 1.44k | } |
20836 | 2.62k | _children[_n++] = _res; |
20837 | 2.62k | _mark = p->mark; |
20838 | 2.62k | } |
20839 | 4.19k | p->mark = _mark; |
20840 | 4.19k | D(fprintf(stderr, "%*c%s _loop0_19[%d-%d]: %s failed!\n", p->level, ' ', |
20841 | 4.19k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name")); |
20842 | 4.19k | } |
20843 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
20844 | 4.19k | if (!_seq) { |
20845 | 0 | p->error_indicator = 1; |
20846 | 0 | PyErr_NoMemory(); |
20847 | 0 | PyMem_Free(_children); |
20848 | 0 | p->level--; |
20849 | 0 | return NULL; |
20850 | 0 | } |
20851 | 6.81k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
20852 | 4.19k | PyMem_Free(_children); |
20853 | 4.19k | p->level--; |
20854 | 4.19k | return _seq; |
20855 | 4.19k | } |
20856 | | |
20857 | | // _gather_20: import_from_as_name _loop0_19 |
20858 | | static asdl_seq * |
20859 | | _gather_20_rule(Parser *p) |
20860 | 6.30k | { |
20861 | 6.30k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20862 | 0 | _Pypegen_stack_overflow(p); |
20863 | 0 | } |
20864 | 6.30k | if (p->error_indicator) { |
20865 | 0 | p->level--; |
20866 | 0 | return NULL; |
20867 | 0 | } |
20868 | 6.30k | asdl_seq * _res = NULL; |
20869 | 6.30k | int _mark = p->mark; |
20870 | 6.30k | { // import_from_as_name _loop0_19 |
20871 | 6.30k | if (p->error_indicator) { |
20872 | 0 | p->level--; |
20873 | 0 | return NULL; |
20874 | 0 | } |
20875 | 6.30k | D(fprintf(stderr, "%*c> _gather_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_19")); |
20876 | 6.30k | alias_ty elem; |
20877 | 6.30k | asdl_seq * seq; |
20878 | 6.30k | if ( |
20879 | 6.30k | (elem = import_from_as_name_rule(p)) // import_from_as_name |
20880 | 4.19k | && |
20881 | 4.19k | (seq = _loop0_19_rule(p)) // _loop0_19 |
20882 | 6.30k | ) |
20883 | 4.19k | { |
20884 | 4.19k | D(fprintf(stderr, "%*c+ _gather_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_19")); |
20885 | 4.19k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
20886 | 4.19k | goto done; |
20887 | 4.19k | } |
20888 | 2.11k | p->mark = _mark; |
20889 | 2.11k | D(fprintf(stderr, "%*c%s _gather_20[%d-%d]: %s failed!\n", p->level, ' ', |
20890 | 2.11k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_19")); |
20891 | 2.11k | } |
20892 | 2.11k | _res = NULL; |
20893 | 6.30k | done: |
20894 | 6.30k | p->level--; |
20895 | 6.30k | return _res; |
20896 | 2.11k | } |
20897 | | |
20898 | | // _tmp_21: 'as' NAME |
20899 | | static void * |
20900 | | _tmp_21_rule(Parser *p) |
20901 | 14.1k | { |
20902 | 14.1k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20903 | 0 | _Pypegen_stack_overflow(p); |
20904 | 0 | } |
20905 | 14.1k | if (p->error_indicator) { |
20906 | 0 | p->level--; |
20907 | 0 | return NULL; |
20908 | 0 | } |
20909 | 14.1k | void * _res = NULL; |
20910 | 14.1k | int _mark = p->mark; |
20911 | 14.1k | { // 'as' NAME |
20912 | 14.1k | if (p->error_indicator) { |
20913 | 0 | p->level--; |
20914 | 0 | return NULL; |
20915 | 0 | } |
20916 | 14.1k | D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); |
20917 | 14.1k | Token * _keyword; |
20918 | 14.1k | expr_ty z; |
20919 | 14.1k | if ( |
20920 | 14.1k | (_keyword = _PyPegen_expect_token(p, 520)) // token='as' |
20921 | 1.74k | && |
20922 | 1.74k | (z = _PyPegen_name_token(p)) // NAME |
20923 | 14.1k | ) |
20924 | 1.61k | { |
20925 | 1.61k | D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); |
20926 | 1.61k | _res = z; |
20927 | 1.61k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
20928 | 0 | p->error_indicator = 1; |
20929 | 0 | p->level--; |
20930 | 0 | return NULL; |
20931 | 0 | } |
20932 | 1.61k | goto done; |
20933 | 1.61k | } |
20934 | 12.5k | p->mark = _mark; |
20935 | 12.5k | D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ', |
20936 | 12.5k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); |
20937 | 12.5k | } |
20938 | 12.5k | _res = NULL; |
20939 | 14.1k | done: |
20940 | 14.1k | p->level--; |
20941 | 14.1k | return _res; |
20942 | 12.5k | } |
20943 | | |
20944 | | // _loop0_22: ',' dotted_as_name |
20945 | | static asdl_seq * |
20946 | | _loop0_22_rule(Parser *p) |
20947 | 2.57k | { |
20948 | 2.57k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
20949 | 0 | _Pypegen_stack_overflow(p); |
20950 | 0 | } |
20951 | 2.57k | if (p->error_indicator) { |
20952 | 0 | p->level--; |
20953 | 0 | return NULL; |
20954 | 0 | } |
20955 | 2.57k | void *_res = NULL; |
20956 | 2.57k | int _mark = p->mark; |
20957 | 2.57k | void **_children = NULL; |
20958 | 2.57k | Py_ssize_t _children_capacity = 0; |
20959 | 2.57k | Py_ssize_t _n = 0; |
20960 | 2.57k | { // ',' dotted_as_name |
20961 | 2.57k | if (p->error_indicator) { |
20962 | 0 | p->level--; |
20963 | 0 | return NULL; |
20964 | 0 | } |
20965 | 2.57k | D(fprintf(stderr, "%*c> _loop0_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_as_name")); |
20966 | 2.57k | Token * _literal; |
20967 | 2.57k | alias_ty elem; |
20968 | 2.57k | while ( |
20969 | 7.31k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
20970 | 4.84k | && |
20971 | 4.84k | (elem = dotted_as_name_rule(p)) // dotted_as_name |
20972 | 2.57k | ) |
20973 | 4.74k | { |
20974 | 4.74k | _res = elem; |
20975 | 4.74k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
20976 | 0 | p->error_indicator = 1; |
20977 | 0 | PyMem_Free(_children); |
20978 | 0 | p->level--; |
20979 | 0 | return NULL; |
20980 | 0 | } |
20981 | 4.74k | if (_n == _children_capacity) { |
20982 | 1.96k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
20983 | 0 | p->error_indicator = 1; |
20984 | 0 | PyErr_NoMemory(); |
20985 | 0 | PyMem_Free(_children); |
20986 | 0 | p->level--; |
20987 | 0 | return NULL; |
20988 | 0 | } |
20989 | 1.96k | } |
20990 | 4.74k | _children[_n++] = _res; |
20991 | 4.74k | _mark = p->mark; |
20992 | 4.74k | } |
20993 | 2.57k | p->mark = _mark; |
20994 | 2.57k | D(fprintf(stderr, "%*c%s _loop0_22[%d-%d]: %s failed!\n", p->level, ' ', |
20995 | 2.57k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name")); |
20996 | 2.57k | } |
20997 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
20998 | 2.57k | if (!_seq) { |
20999 | 0 | p->error_indicator = 1; |
21000 | 0 | PyErr_NoMemory(); |
21001 | 0 | PyMem_Free(_children); |
21002 | 0 | p->level--; |
21003 | 0 | return NULL; |
21004 | 0 | } |
21005 | 7.31k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
21006 | 2.57k | PyMem_Free(_children); |
21007 | 2.57k | p->level--; |
21008 | 2.57k | return _seq; |
21009 | 2.57k | } |
21010 | | |
21011 | | // _gather_23: dotted_as_name _loop0_22 |
21012 | | static asdl_seq * |
21013 | | _gather_23_rule(Parser *p) |
21014 | 2.72k | { |
21015 | 2.72k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21016 | 0 | _Pypegen_stack_overflow(p); |
21017 | 0 | } |
21018 | 2.72k | if (p->error_indicator) { |
21019 | 0 | p->level--; |
21020 | 0 | return NULL; |
21021 | 0 | } |
21022 | 2.72k | asdl_seq * _res = NULL; |
21023 | 2.72k | int _mark = p->mark; |
21024 | 2.72k | { // dotted_as_name _loop0_22 |
21025 | 2.72k | if (p->error_indicator) { |
21026 | 0 | p->level--; |
21027 | 0 | return NULL; |
21028 | 0 | } |
21029 | 2.72k | D(fprintf(stderr, "%*c> _gather_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_22")); |
21030 | 2.72k | alias_ty elem; |
21031 | 2.72k | asdl_seq * seq; |
21032 | 2.72k | if ( |
21033 | 2.72k | (elem = dotted_as_name_rule(p)) // dotted_as_name |
21034 | 2.57k | && |
21035 | 2.57k | (seq = _loop0_22_rule(p)) // _loop0_22 |
21036 | 2.72k | ) |
21037 | 2.57k | { |
21038 | 2.57k | D(fprintf(stderr, "%*c+ _gather_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_22")); |
21039 | 2.57k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
21040 | 2.57k | goto done; |
21041 | 2.57k | } |
21042 | 152 | p->mark = _mark; |
21043 | 152 | D(fprintf(stderr, "%*c%s _gather_23[%d-%d]: %s failed!\n", p->level, ' ', |
21044 | 152 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_22")); |
21045 | 152 | } |
21046 | 152 | _res = NULL; |
21047 | 2.72k | done: |
21048 | 2.72k | p->level--; |
21049 | 2.72k | return _res; |
21050 | 152 | } |
21051 | | |
21052 | | // _loop1_24: ('@' named_expression NEWLINE) |
21053 | | static asdl_seq * |
21054 | | _loop1_24_rule(Parser *p) |
21055 | 14.9k | { |
21056 | 14.9k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21057 | 0 | _Pypegen_stack_overflow(p); |
21058 | 0 | } |
21059 | 14.9k | if (p->error_indicator) { |
21060 | 0 | p->level--; |
21061 | 0 | return NULL; |
21062 | 0 | } |
21063 | 14.9k | void *_res = NULL; |
21064 | 14.9k | int _mark = p->mark; |
21065 | 14.9k | void **_children = NULL; |
21066 | 14.9k | Py_ssize_t _children_capacity = 0; |
21067 | 14.9k | Py_ssize_t _n = 0; |
21068 | 14.9k | { // ('@' named_expression NEWLINE) |
21069 | 14.9k | if (p->error_indicator) { |
21070 | 0 | p->level--; |
21071 | 0 | return NULL; |
21072 | 0 | } |
21073 | 14.9k | D(fprintf(stderr, "%*c> _loop1_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)")); |
21074 | 14.9k | void *_tmp_180_var; |
21075 | 14.9k | while ( |
21076 | 19.1k | (_tmp_180_var = _tmp_180_rule(p)) // '@' named_expression NEWLINE |
21077 | 14.9k | ) |
21078 | 4.19k | { |
21079 | 4.19k | _res = _tmp_180_var; |
21080 | 4.19k | if (_n == _children_capacity) { |
21081 | 2.52k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
21082 | 0 | p->error_indicator = 1; |
21083 | 0 | PyErr_NoMemory(); |
21084 | 0 | PyMem_Free(_children); |
21085 | 0 | p->level--; |
21086 | 0 | return NULL; |
21087 | 0 | } |
21088 | 2.52k | } |
21089 | 4.19k | _children[_n++] = _res; |
21090 | 4.19k | _mark = p->mark; |
21091 | 4.19k | } |
21092 | 14.9k | p->mark = _mark; |
21093 | 14.9k | D(fprintf(stderr, "%*c%s _loop1_24[%d-%d]: %s failed!\n", p->level, ' ', |
21094 | 14.9k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)")); |
21095 | 14.9k | } |
21096 | 14.9k | if (_n == 0 || p->error_indicator) { |
21097 | 13.3k | PyMem_Free(_children); |
21098 | 13.3k | p->level--; |
21099 | 13.3k | return NULL; |
21100 | 13.3k | } |
21101 | 1.57k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
21102 | 1.57k | if (!_seq) { |
21103 | 0 | p->error_indicator = 1; |
21104 | 0 | PyErr_NoMemory(); |
21105 | 0 | PyMem_Free(_children); |
21106 | 0 | p->level--; |
21107 | 0 | return NULL; |
21108 | 0 | } |
21109 | 5.75k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
21110 | 1.57k | PyMem_Free(_children); |
21111 | 1.57k | p->level--; |
21112 | 1.57k | return _seq; |
21113 | 1.57k | } |
21114 | | |
21115 | | // _tmp_25: '(' arguments? ')' |
21116 | | static void * |
21117 | | _tmp_25_rule(Parser *p) |
21118 | 2.89k | { |
21119 | 2.89k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21120 | 0 | _Pypegen_stack_overflow(p); |
21121 | 0 | } |
21122 | 2.89k | if (p->error_indicator) { |
21123 | 0 | p->level--; |
21124 | 0 | return NULL; |
21125 | 0 | } |
21126 | 2.89k | void * _res = NULL; |
21127 | 2.89k | int _mark = p->mark; |
21128 | 2.89k | { // '(' arguments? ')' |
21129 | 2.89k | if (p->error_indicator) { |
21130 | 0 | p->level--; |
21131 | 0 | return NULL; |
21132 | 0 | } |
21133 | 2.89k | D(fprintf(stderr, "%*c> _tmp_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); |
21134 | 2.89k | Token * _literal; |
21135 | 2.89k | Token * _literal_1; |
21136 | 2.89k | void *z; |
21137 | 2.89k | if ( |
21138 | 2.89k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
21139 | 1.15k | && |
21140 | 1.15k | (z = arguments_rule(p), !p->error_indicator) // arguments? |
21141 | 1.15k | && |
21142 | 1.15k | (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' |
21143 | 2.89k | ) |
21144 | 1.14k | { |
21145 | 1.14k | D(fprintf(stderr, "%*c+ _tmp_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); |
21146 | 1.14k | _res = z; |
21147 | 1.14k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
21148 | 0 | p->error_indicator = 1; |
21149 | 0 | p->level--; |
21150 | 0 | return NULL; |
21151 | 0 | } |
21152 | 1.14k | goto done; |
21153 | 1.14k | } |
21154 | 1.74k | p->mark = _mark; |
21155 | 1.74k | D(fprintf(stderr, "%*c%s _tmp_25[%d-%d]: %s failed!\n", p->level, ' ', |
21156 | 1.74k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'")); |
21157 | 1.74k | } |
21158 | 1.74k | _res = NULL; |
21159 | 2.89k | done: |
21160 | 2.89k | p->level--; |
21161 | 2.89k | return _res; |
21162 | 1.74k | } |
21163 | | |
21164 | | // _tmp_26: '->' expression |
21165 | | static void * |
21166 | | _tmp_26_rule(Parser *p) |
21167 | 7.47k | { |
21168 | 7.47k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21169 | 0 | _Pypegen_stack_overflow(p); |
21170 | 0 | } |
21171 | 7.47k | if (p->error_indicator) { |
21172 | 0 | p->level--; |
21173 | 0 | return NULL; |
21174 | 0 | } |
21175 | 7.47k | void * _res = NULL; |
21176 | 7.47k | int _mark = p->mark; |
21177 | 7.47k | { // '->' expression |
21178 | 7.47k | if (p->error_indicator) { |
21179 | 0 | p->level--; |
21180 | 0 | return NULL; |
21181 | 0 | } |
21182 | 7.47k | D(fprintf(stderr, "%*c> _tmp_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression")); |
21183 | 7.47k | Token * _literal; |
21184 | 7.47k | expr_ty z; |
21185 | 7.47k | if ( |
21186 | 7.47k | (_literal = _PyPegen_expect_token(p, 51)) // token='->' |
21187 | 371 | && |
21188 | 371 | (z = expression_rule(p)) // expression |
21189 | 7.47k | ) |
21190 | 369 | { |
21191 | 369 | D(fprintf(stderr, "%*c+ _tmp_26[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression")); |
21192 | 369 | _res = z; |
21193 | 369 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
21194 | 0 | p->error_indicator = 1; |
21195 | 0 | p->level--; |
21196 | 0 | return NULL; |
21197 | 0 | } |
21198 | 369 | goto done; |
21199 | 369 | } |
21200 | 7.10k | p->mark = _mark; |
21201 | 7.10k | D(fprintf(stderr, "%*c%s _tmp_26[%d-%d]: %s failed!\n", p->level, ' ', |
21202 | 7.10k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression")); |
21203 | 7.10k | } |
21204 | 7.10k | _res = NULL; |
21205 | 7.47k | done: |
21206 | 7.47k | p->level--; |
21207 | 7.47k | return _res; |
21208 | 7.10k | } |
21209 | | |
21210 | | // _loop0_27: param_no_default |
21211 | | static asdl_seq * |
21212 | | _loop0_27_rule(Parser *p) |
21213 | 50.6k | { |
21214 | 50.6k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21215 | 0 | _Pypegen_stack_overflow(p); |
21216 | 0 | } |
21217 | 50.6k | if (p->error_indicator) { |
21218 | 0 | p->level--; |
21219 | 0 | return NULL; |
21220 | 0 | } |
21221 | 50.6k | void *_res = NULL; |
21222 | 50.6k | int _mark = p->mark; |
21223 | 50.6k | void **_children = NULL; |
21224 | 50.6k | Py_ssize_t _children_capacity = 0; |
21225 | 50.6k | Py_ssize_t _n = 0; |
21226 | 50.6k | { // param_no_default |
21227 | 50.6k | if (p->error_indicator) { |
21228 | 0 | p->level--; |
21229 | 0 | return NULL; |
21230 | 0 | } |
21231 | 50.6k | D(fprintf(stderr, "%*c> _loop0_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); |
21232 | 50.6k | arg_ty param_no_default_var; |
21233 | 50.6k | while ( |
21234 | 73.0k | (param_no_default_var = param_no_default_rule(p)) // param_no_default |
21235 | 50.6k | ) |
21236 | 22.3k | { |
21237 | 22.3k | _res = param_no_default_var; |
21238 | 22.3k | if (_n == _children_capacity) { |
21239 | 15.2k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
21240 | 0 | p->error_indicator = 1; |
21241 | 0 | PyErr_NoMemory(); |
21242 | 0 | PyMem_Free(_children); |
21243 | 0 | p->level--; |
21244 | 0 | return NULL; |
21245 | 0 | } |
21246 | 15.2k | } |
21247 | 22.3k | _children[_n++] = _res; |
21248 | 22.3k | _mark = p->mark; |
21249 | 22.3k | } |
21250 | 50.6k | p->mark = _mark; |
21251 | 50.6k | D(fprintf(stderr, "%*c%s _loop0_27[%d-%d]: %s failed!\n", p->level, ' ', |
21252 | 50.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); |
21253 | 50.6k | } |
21254 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
21255 | 50.6k | if (!_seq) { |
21256 | 0 | p->error_indicator = 1; |
21257 | 0 | PyErr_NoMemory(); |
21258 | 0 | PyMem_Free(_children); |
21259 | 0 | p->level--; |
21260 | 0 | return NULL; |
21261 | 0 | } |
21262 | 73.0k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
21263 | 50.6k | PyMem_Free(_children); |
21264 | 50.6k | p->level--; |
21265 | 50.6k | return _seq; |
21266 | 50.6k | } |
21267 | | |
21268 | | // _loop0_28: param_with_default |
21269 | | static asdl_seq * |
21270 | | _loop0_28_rule(Parser *p) |
21271 | 5.01k | { |
21272 | 5.01k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21273 | 0 | _Pypegen_stack_overflow(p); |
21274 | 0 | } |
21275 | 5.01k | if (p->error_indicator) { |
21276 | 1 | p->level--; |
21277 | 1 | return NULL; |
21278 | 1 | } |
21279 | 5.01k | void *_res = NULL; |
21280 | 5.01k | int _mark = p->mark; |
21281 | 5.01k | void **_children = NULL; |
21282 | 5.01k | Py_ssize_t _children_capacity = 0; |
21283 | 5.01k | Py_ssize_t _n = 0; |
21284 | 5.01k | { // param_with_default |
21285 | 5.01k | if (p->error_indicator) { |
21286 | 0 | p->level--; |
21287 | 0 | return NULL; |
21288 | 0 | } |
21289 | 5.01k | D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); |
21290 | 5.01k | NameDefaultPair* param_with_default_var; |
21291 | 5.01k | while ( |
21292 | 6.57k | (param_with_default_var = param_with_default_rule(p)) // param_with_default |
21293 | 5.01k | ) |
21294 | 1.55k | { |
21295 | 1.55k | _res = param_with_default_var; |
21296 | 1.55k | if (_n == _children_capacity) { |
21297 | 981 | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
21298 | 0 | p->error_indicator = 1; |
21299 | 0 | PyErr_NoMemory(); |
21300 | 0 | PyMem_Free(_children); |
21301 | 0 | p->level--; |
21302 | 0 | return NULL; |
21303 | 0 | } |
21304 | 981 | } |
21305 | 1.55k | _children[_n++] = _res; |
21306 | 1.55k | _mark = p->mark; |
21307 | 1.55k | } |
21308 | 5.01k | p->mark = _mark; |
21309 | 5.01k | D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ', |
21310 | 5.01k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default")); |
21311 | 5.01k | } |
21312 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
21313 | 5.01k | if (!_seq) { |
21314 | 0 | p->error_indicator = 1; |
21315 | 0 | PyErr_NoMemory(); |
21316 | 0 | PyMem_Free(_children); |
21317 | 0 | p->level--; |
21318 | 0 | return NULL; |
21319 | 0 | } |
21320 | 6.57k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
21321 | 5.01k | PyMem_Free(_children); |
21322 | 5.01k | p->level--; |
21323 | 5.01k | return _seq; |
21324 | 5.01k | } |
21325 | | |
21326 | | // _loop1_29: param_no_default |
21327 | | static asdl_seq * |
21328 | | _loop1_29_rule(Parser *p) |
21329 | 64.9k | { |
21330 | 64.9k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21331 | 0 | _Pypegen_stack_overflow(p); |
21332 | 0 | } |
21333 | 64.9k | if (p->error_indicator) { |
21334 | 0 | p->level--; |
21335 | 0 | return NULL; |
21336 | 0 | } |
21337 | 64.9k | void *_res = NULL; |
21338 | 64.9k | int _mark = p->mark; |
21339 | 64.9k | void **_children = NULL; |
21340 | 64.9k | Py_ssize_t _children_capacity = 0; |
21341 | 64.9k | Py_ssize_t _n = 0; |
21342 | 64.9k | { // param_no_default |
21343 | 64.9k | if (p->error_indicator) { |
21344 | 0 | p->level--; |
21345 | 0 | return NULL; |
21346 | 0 | } |
21347 | 64.9k | D(fprintf(stderr, "%*c> _loop1_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); |
21348 | 64.9k | arg_ty param_no_default_var; |
21349 | 64.9k | while ( |
21350 | 103k | (param_no_default_var = param_no_default_rule(p)) // param_no_default |
21351 | 64.9k | ) |
21352 | 38.4k | { |
21353 | 38.4k | _res = param_no_default_var; |
21354 | 38.4k | if (_n == _children_capacity) { |
21355 | 26.0k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
21356 | 0 | p->error_indicator = 1; |
21357 | 0 | PyErr_NoMemory(); |
21358 | 0 | PyMem_Free(_children); |
21359 | 0 | p->level--; |
21360 | 0 | return NULL; |
21361 | 0 | } |
21362 | 26.0k | } |
21363 | 38.4k | _children[_n++] = _res; |
21364 | 38.4k | _mark = p->mark; |
21365 | 38.4k | } |
21366 | 64.9k | p->mark = _mark; |
21367 | 64.9k | D(fprintf(stderr, "%*c%s _loop1_29[%d-%d]: %s failed!\n", p->level, ' ', |
21368 | 64.9k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); |
21369 | 64.9k | } |
21370 | 64.9k | if (_n == 0 || p->error_indicator) { |
21371 | 47.3k | PyMem_Free(_children); |
21372 | 47.3k | p->level--; |
21373 | 47.3k | return NULL; |
21374 | 47.3k | } |
21375 | 17.5k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
21376 | 17.5k | if (!_seq) { |
21377 | 0 | p->error_indicator = 1; |
21378 | 0 | PyErr_NoMemory(); |
21379 | 0 | PyMem_Free(_children); |
21380 | 0 | p->level--; |
21381 | 0 | return NULL; |
21382 | 0 | } |
21383 | 55.9k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
21384 | 17.5k | PyMem_Free(_children); |
21385 | 17.5k | p->level--; |
21386 | 17.5k | return _seq; |
21387 | 17.5k | } |
21388 | | |
21389 | | // _loop1_30: param_with_default |
21390 | | static asdl_seq * |
21391 | | _loop1_30_rule(Parser *p) |
21392 | 57.2k | { |
21393 | 57.2k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21394 | 0 | _Pypegen_stack_overflow(p); |
21395 | 0 | } |
21396 | 57.2k | if (p->error_indicator) { |
21397 | 0 | p->level--; |
21398 | 0 | return NULL; |
21399 | 0 | } |
21400 | 57.2k | void *_res = NULL; |
21401 | 57.2k | int _mark = p->mark; |
21402 | 57.2k | void **_children = NULL; |
21403 | 57.2k | Py_ssize_t _children_capacity = 0; |
21404 | 57.2k | Py_ssize_t _n = 0; |
21405 | 57.2k | { // param_with_default |
21406 | 57.2k | if (p->error_indicator) { |
21407 | 0 | p->level--; |
21408 | 0 | return NULL; |
21409 | 0 | } |
21410 | 57.2k | D(fprintf(stderr, "%*c> _loop1_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); |
21411 | 57.2k | NameDefaultPair* param_with_default_var; |
21412 | 57.2k | while ( |
21413 | 72.2k | (param_with_default_var = param_with_default_rule(p)) // param_with_default |
21414 | 57.2k | ) |
21415 | 14.9k | { |
21416 | 14.9k | _res = param_with_default_var; |
21417 | 14.9k | if (_n == _children_capacity) { |
21418 | 11.1k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
21419 | 0 | p->error_indicator = 1; |
21420 | 0 | PyErr_NoMemory(); |
21421 | 0 | PyMem_Free(_children); |
21422 | 0 | p->level--; |
21423 | 0 | return NULL; |
21424 | 0 | } |
21425 | 11.1k | } |
21426 | 14.9k | _children[_n++] = _res; |
21427 | 14.9k | _mark = p->mark; |
21428 | 14.9k | } |
21429 | 57.2k | p->mark = _mark; |
21430 | 57.2k | D(fprintf(stderr, "%*c%s _loop1_30[%d-%d]: %s failed!\n", p->level, ' ', |
21431 | 57.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default")); |
21432 | 57.2k | } |
21433 | 57.2k | if (_n == 0 || p->error_indicator) { |
21434 | 47.9k | PyMem_Free(_children); |
21435 | 47.9k | p->level--; |
21436 | 47.9k | return NULL; |
21437 | 47.9k | } |
21438 | 9.33k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
21439 | 9.33k | if (!_seq) { |
21440 | 0 | p->error_indicator = 1; |
21441 | 0 | PyErr_NoMemory(); |
21442 | 0 | PyMem_Free(_children); |
21443 | 0 | p->level--; |
21444 | 0 | return NULL; |
21445 | 0 | } |
21446 | 24.2k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
21447 | 9.33k | PyMem_Free(_children); |
21448 | 9.33k | p->level--; |
21449 | 9.33k | return _seq; |
21450 | 9.33k | } |
21451 | | |
21452 | | // _loop0_31: param_maybe_default |
21453 | | static asdl_seq * |
21454 | | _loop0_31_rule(Parser *p) |
21455 | 2.18k | { |
21456 | 2.18k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21457 | 0 | _Pypegen_stack_overflow(p); |
21458 | 0 | } |
21459 | 2.18k | if (p->error_indicator) { |
21460 | 0 | p->level--; |
21461 | 0 | return NULL; |
21462 | 0 | } |
21463 | 2.18k | void *_res = NULL; |
21464 | 2.18k | int _mark = p->mark; |
21465 | 2.18k | void **_children = NULL; |
21466 | 2.18k | Py_ssize_t _children_capacity = 0; |
21467 | 2.18k | Py_ssize_t _n = 0; |
21468 | 2.18k | { // param_maybe_default |
21469 | 2.18k | if (p->error_indicator) { |
21470 | 0 | p->level--; |
21471 | 0 | return NULL; |
21472 | 0 | } |
21473 | 2.18k | D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); |
21474 | 2.18k | NameDefaultPair* param_maybe_default_var; |
21475 | 2.18k | while ( |
21476 | 7.70k | (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default |
21477 | 2.18k | ) |
21478 | 5.52k | { |
21479 | 5.52k | _res = param_maybe_default_var; |
21480 | 5.52k | if (_n == _children_capacity) { |
21481 | 401 | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
21482 | 0 | p->error_indicator = 1; |
21483 | 0 | PyErr_NoMemory(); |
21484 | 0 | PyMem_Free(_children); |
21485 | 0 | p->level--; |
21486 | 0 | return NULL; |
21487 | 0 | } |
21488 | 401 | } |
21489 | 5.52k | _children[_n++] = _res; |
21490 | 5.52k | _mark = p->mark; |
21491 | 5.52k | } |
21492 | 2.18k | p->mark = _mark; |
21493 | 2.18k | D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ', |
21494 | 2.18k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default")); |
21495 | 2.18k | } |
21496 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
21497 | 2.18k | if (!_seq) { |
21498 | 0 | p->error_indicator = 1; |
21499 | 0 | PyErr_NoMemory(); |
21500 | 0 | PyMem_Free(_children); |
21501 | 0 | p->level--; |
21502 | 0 | return NULL; |
21503 | 0 | } |
21504 | 7.70k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
21505 | 2.18k | PyMem_Free(_children); |
21506 | 2.18k | p->level--; |
21507 | 2.18k | return _seq; |
21508 | 2.18k | } |
21509 | | |
21510 | | // _loop1_32: param_maybe_default |
21511 | | static asdl_seq * |
21512 | | _loop1_32_rule(Parser *p) |
21513 | 915 | { |
21514 | 915 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21515 | 0 | _Pypegen_stack_overflow(p); |
21516 | 0 | } |
21517 | 915 | if (p->error_indicator) { |
21518 | 0 | p->level--; |
21519 | 0 | return NULL; |
21520 | 0 | } |
21521 | 915 | void *_res = NULL; |
21522 | 915 | int _mark = p->mark; |
21523 | 915 | void **_children = NULL; |
21524 | 915 | Py_ssize_t _children_capacity = 0; |
21525 | 915 | Py_ssize_t _n = 0; |
21526 | 915 | { // param_maybe_default |
21527 | 915 | if (p->error_indicator) { |
21528 | 0 | p->level--; |
21529 | 0 | return NULL; |
21530 | 0 | } |
21531 | 915 | D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default")); |
21532 | 915 | NameDefaultPair* param_maybe_default_var; |
21533 | 915 | while ( |
21534 | 2.55k | (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default |
21535 | 915 | ) |
21536 | 1.64k | { |
21537 | 1.64k | _res = param_maybe_default_var; |
21538 | 1.64k | if (_n == _children_capacity) { |
21539 | 1.18k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
21540 | 0 | p->error_indicator = 1; |
21541 | 0 | PyErr_NoMemory(); |
21542 | 0 | PyMem_Free(_children); |
21543 | 0 | p->level--; |
21544 | 0 | return NULL; |
21545 | 0 | } |
21546 | 1.18k | } |
21547 | 1.64k | _children[_n++] = _res; |
21548 | 1.64k | _mark = p->mark; |
21549 | 1.64k | } |
21550 | 915 | p->mark = _mark; |
21551 | 915 | D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ', |
21552 | 915 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default")); |
21553 | 915 | } |
21554 | 915 | if (_n == 0 || p->error_indicator) { |
21555 | 61 | PyMem_Free(_children); |
21556 | 61 | p->level--; |
21557 | 61 | return NULL; |
21558 | 61 | } |
21559 | 854 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
21560 | 854 | if (!_seq) { |
21561 | 0 | p->error_indicator = 1; |
21562 | 0 | PyErr_NoMemory(); |
21563 | 0 | PyMem_Free(_children); |
21564 | 0 | p->level--; |
21565 | 0 | return NULL; |
21566 | 0 | } |
21567 | 2.48k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
21568 | 854 | PyMem_Free(_children); |
21569 | 854 | p->level--; |
21570 | 854 | return _seq; |
21571 | 854 | } |
21572 | | |
21573 | | // _loop0_33: ',' with_item |
21574 | | static asdl_seq * |
21575 | | _loop0_33_rule(Parser *p) |
21576 | 6.61k | { |
21577 | 6.61k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21578 | 0 | _Pypegen_stack_overflow(p); |
21579 | 0 | } |
21580 | 6.61k | if (p->error_indicator) { |
21581 | 0 | p->level--; |
21582 | 0 | return NULL; |
21583 | 0 | } |
21584 | 6.61k | void *_res = NULL; |
21585 | 6.61k | int _mark = p->mark; |
21586 | 6.61k | void **_children = NULL; |
21587 | 6.61k | Py_ssize_t _children_capacity = 0; |
21588 | 6.61k | Py_ssize_t _n = 0; |
21589 | 6.61k | { // ',' with_item |
21590 | 6.61k | if (p->error_indicator) { |
21591 | 0 | p->level--; |
21592 | 0 | return NULL; |
21593 | 0 | } |
21594 | 6.61k | D(fprintf(stderr, "%*c> _loop0_33[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item")); |
21595 | 6.61k | Token * _literal; |
21596 | 6.61k | withitem_ty elem; |
21597 | 6.61k | while ( |
21598 | 15.0k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
21599 | 9.45k | && |
21600 | 9.45k | (elem = with_item_rule(p)) // with_item |
21601 | 6.61k | ) |
21602 | 8.45k | { |
21603 | 8.45k | _res = elem; |
21604 | 8.45k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
21605 | 0 | p->error_indicator = 1; |
21606 | 0 | PyMem_Free(_children); |
21607 | 0 | p->level--; |
21608 | 0 | return NULL; |
21609 | 0 | } |
21610 | 8.45k | if (_n == _children_capacity) { |
21611 | 3.96k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
21612 | 0 | p->error_indicator = 1; |
21613 | 0 | PyErr_NoMemory(); |
21614 | 0 | PyMem_Free(_children); |
21615 | 0 | p->level--; |
21616 | 0 | return NULL; |
21617 | 0 | } |
21618 | 3.96k | } |
21619 | 8.45k | _children[_n++] = _res; |
21620 | 8.45k | _mark = p->mark; |
21621 | 8.45k | } |
21622 | 6.61k | p->mark = _mark; |
21623 | 6.61k | D(fprintf(stderr, "%*c%s _loop0_33[%d-%d]: %s failed!\n", p->level, ' ', |
21624 | 6.61k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item")); |
21625 | 6.61k | } |
21626 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
21627 | 6.61k | if (!_seq) { |
21628 | 0 | p->error_indicator = 1; |
21629 | 0 | PyErr_NoMemory(); |
21630 | 0 | PyMem_Free(_children); |
21631 | 0 | p->level--; |
21632 | 0 | return NULL; |
21633 | 0 | } |
21634 | 15.0k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
21635 | 6.61k | PyMem_Free(_children); |
21636 | 6.61k | p->level--; |
21637 | 6.61k | return _seq; |
21638 | 6.61k | } |
21639 | | |
21640 | | // _gather_34: with_item _loop0_33 |
21641 | | static asdl_seq * |
21642 | | _gather_34_rule(Parser *p) |
21643 | 7.67k | { |
21644 | 7.67k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21645 | 0 | _Pypegen_stack_overflow(p); |
21646 | 0 | } |
21647 | 7.67k | if (p->error_indicator) { |
21648 | 0 | p->level--; |
21649 | 0 | return NULL; |
21650 | 0 | } |
21651 | 7.67k | asdl_seq * _res = NULL; |
21652 | 7.67k | int _mark = p->mark; |
21653 | 7.67k | { // with_item _loop0_33 |
21654 | 7.67k | if (p->error_indicator) { |
21655 | 0 | p->level--; |
21656 | 0 | return NULL; |
21657 | 0 | } |
21658 | 7.67k | D(fprintf(stderr, "%*c> _gather_34[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_33")); |
21659 | 7.67k | withitem_ty elem; |
21660 | 7.67k | asdl_seq * seq; |
21661 | 7.67k | if ( |
21662 | 7.67k | (elem = with_item_rule(p)) // with_item |
21663 | 6.61k | && |
21664 | 6.61k | (seq = _loop0_33_rule(p)) // _loop0_33 |
21665 | 7.67k | ) |
21666 | 6.61k | { |
21667 | 6.61k | D(fprintf(stderr, "%*c+ _gather_34[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_33")); |
21668 | 6.61k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
21669 | 6.61k | goto done; |
21670 | 6.61k | } |
21671 | 1.05k | p->mark = _mark; |
21672 | 1.05k | D(fprintf(stderr, "%*c%s _gather_34[%d-%d]: %s failed!\n", p->level, ' ', |
21673 | 1.05k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_33")); |
21674 | 1.05k | } |
21675 | 1.05k | _res = NULL; |
21676 | 7.67k | done: |
21677 | 7.67k | p->level--; |
21678 | 7.67k | return _res; |
21679 | 1.05k | } |
21680 | | |
21681 | | // _tmp_35: ',' | ')' | ':' |
21682 | | static void * |
21683 | | _tmp_35_rule(Parser *p) |
21684 | 1.64k | { |
21685 | 1.64k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21686 | 0 | _Pypegen_stack_overflow(p); |
21687 | 0 | } |
21688 | 1.64k | if (p->error_indicator) { |
21689 | 0 | p->level--; |
21690 | 0 | return NULL; |
21691 | 0 | } |
21692 | 1.64k | void * _res = NULL; |
21693 | 1.64k | int _mark = p->mark; |
21694 | 1.64k | { // ',' |
21695 | 1.64k | if (p->error_indicator) { |
21696 | 0 | p->level--; |
21697 | 0 | return NULL; |
21698 | 0 | } |
21699 | 1.64k | D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); |
21700 | 1.64k | Token * _literal; |
21701 | 1.64k | if ( |
21702 | 1.64k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
21703 | 1.64k | ) |
21704 | 565 | { |
21705 | 565 | D(fprintf(stderr, "%*c+ _tmp_35[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); |
21706 | 565 | _res = _literal; |
21707 | 565 | goto done; |
21708 | 565 | } |
21709 | 1.07k | p->mark = _mark; |
21710 | 1.07k | D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ', |
21711 | 1.07k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); |
21712 | 1.07k | } |
21713 | 0 | { // ')' |
21714 | 1.07k | if (p->error_indicator) { |
21715 | 0 | p->level--; |
21716 | 0 | return NULL; |
21717 | 0 | } |
21718 | 1.07k | D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); |
21719 | 1.07k | Token * _literal; |
21720 | 1.07k | if ( |
21721 | 1.07k | (_literal = _PyPegen_expect_token(p, 8)) // token=')' |
21722 | 1.07k | ) |
21723 | 340 | { |
21724 | 340 | D(fprintf(stderr, "%*c+ _tmp_35[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); |
21725 | 340 | _res = _literal; |
21726 | 340 | goto done; |
21727 | 340 | } |
21728 | 738 | p->mark = _mark; |
21729 | 738 | D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ', |
21730 | 738 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); |
21731 | 738 | } |
21732 | 0 | { // ':' |
21733 | 738 | if (p->error_indicator) { |
21734 | 0 | p->level--; |
21735 | 0 | return NULL; |
21736 | 0 | } |
21737 | 738 | D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); |
21738 | 738 | Token * _literal; |
21739 | 738 | if ( |
21740 | 738 | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
21741 | 738 | ) |
21742 | 731 | { |
21743 | 731 | D(fprintf(stderr, "%*c+ _tmp_35[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); |
21744 | 731 | _res = _literal; |
21745 | 731 | goto done; |
21746 | 731 | } |
21747 | 7 | p->mark = _mark; |
21748 | 7 | D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ', |
21749 | 7 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); |
21750 | 7 | } |
21751 | 7 | _res = NULL; |
21752 | 1.64k | done: |
21753 | 1.64k | p->level--; |
21754 | 1.64k | return _res; |
21755 | 7 | } |
21756 | | |
21757 | | // _loop1_36: except_block |
21758 | | static asdl_seq * |
21759 | | _loop1_36_rule(Parser *p) |
21760 | 3.91k | { |
21761 | 3.91k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21762 | 0 | _Pypegen_stack_overflow(p); |
21763 | 0 | } |
21764 | 3.91k | if (p->error_indicator) { |
21765 | 0 | p->level--; |
21766 | 0 | return NULL; |
21767 | 0 | } |
21768 | 3.91k | void *_res = NULL; |
21769 | 3.91k | int _mark = p->mark; |
21770 | 3.91k | void **_children = NULL; |
21771 | 3.91k | Py_ssize_t _children_capacity = 0; |
21772 | 3.91k | Py_ssize_t _n = 0; |
21773 | 3.91k | { // except_block |
21774 | 3.91k | if (p->error_indicator) { |
21775 | 0 | p->level--; |
21776 | 0 | return NULL; |
21777 | 0 | } |
21778 | 3.91k | D(fprintf(stderr, "%*c> _loop1_36[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block")); |
21779 | 3.91k | excepthandler_ty except_block_var; |
21780 | 3.91k | while ( |
21781 | 8.04k | (except_block_var = except_block_rule(p)) // except_block |
21782 | 3.91k | ) |
21783 | 4.13k | { |
21784 | 4.13k | _res = except_block_var; |
21785 | 4.13k | if (_n == _children_capacity) { |
21786 | 3.03k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
21787 | 0 | p->error_indicator = 1; |
21788 | 0 | PyErr_NoMemory(); |
21789 | 0 | PyMem_Free(_children); |
21790 | 0 | p->level--; |
21791 | 0 | return NULL; |
21792 | 0 | } |
21793 | 3.03k | } |
21794 | 4.13k | _children[_n++] = _res; |
21795 | 4.13k | _mark = p->mark; |
21796 | 4.13k | } |
21797 | 3.91k | p->mark = _mark; |
21798 | 3.91k | D(fprintf(stderr, "%*c%s _loop1_36[%d-%d]: %s failed!\n", p->level, ' ', |
21799 | 3.91k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block")); |
21800 | 3.91k | } |
21801 | 3.91k | if (_n == 0 || p->error_indicator) { |
21802 | 1.56k | PyMem_Free(_children); |
21803 | 1.56k | p->level--; |
21804 | 1.56k | return NULL; |
21805 | 1.56k | } |
21806 | 2.34k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
21807 | 2.34k | if (!_seq) { |
21808 | 0 | p->error_indicator = 1; |
21809 | 0 | PyErr_NoMemory(); |
21810 | 0 | PyMem_Free(_children); |
21811 | 0 | p->level--; |
21812 | 0 | return NULL; |
21813 | 0 | } |
21814 | 6.47k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
21815 | 2.34k | PyMem_Free(_children); |
21816 | 2.34k | p->level--; |
21817 | 2.34k | return _seq; |
21818 | 2.34k | } |
21819 | | |
21820 | | // _loop1_37: except_star_block |
21821 | | static asdl_seq * |
21822 | | _loop1_37_rule(Parser *p) |
21823 | 1.55k | { |
21824 | 1.55k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21825 | 0 | _Pypegen_stack_overflow(p); |
21826 | 0 | } |
21827 | 1.55k | if (p->error_indicator) { |
21828 | 0 | p->level--; |
21829 | 0 | return NULL; |
21830 | 0 | } |
21831 | 1.55k | void *_res = NULL; |
21832 | 1.55k | int _mark = p->mark; |
21833 | 1.55k | void **_children = NULL; |
21834 | 1.55k | Py_ssize_t _children_capacity = 0; |
21835 | 1.55k | Py_ssize_t _n = 0; |
21836 | 1.55k | { // except_star_block |
21837 | 1.55k | if (p->error_indicator) { |
21838 | 0 | p->level--; |
21839 | 0 | return NULL; |
21840 | 0 | } |
21841 | 1.55k | D(fprintf(stderr, "%*c> _loop1_37[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block")); |
21842 | 1.55k | excepthandler_ty except_star_block_var; |
21843 | 1.55k | while ( |
21844 | 4.63k | (except_star_block_var = except_star_block_rule(p)) // except_star_block |
21845 | 1.55k | ) |
21846 | 3.07k | { |
21847 | 3.07k | _res = except_star_block_var; |
21848 | 3.07k | if (_n == _children_capacity) { |
21849 | 1.65k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
21850 | 0 | p->error_indicator = 1; |
21851 | 0 | PyErr_NoMemory(); |
21852 | 0 | PyMem_Free(_children); |
21853 | 0 | p->level--; |
21854 | 0 | return NULL; |
21855 | 0 | } |
21856 | 1.65k | } |
21857 | 3.07k | _children[_n++] = _res; |
21858 | 3.07k | _mark = p->mark; |
21859 | 3.07k | } |
21860 | 1.55k | p->mark = _mark; |
21861 | 1.55k | D(fprintf(stderr, "%*c%s _loop1_37[%d-%d]: %s failed!\n", p->level, ' ', |
21862 | 1.55k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block")); |
21863 | 1.55k | } |
21864 | 1.55k | if (_n == 0 || p->error_indicator) { |
21865 | 218 | PyMem_Free(_children); |
21866 | 218 | p->level--; |
21867 | 218 | return NULL; |
21868 | 218 | } |
21869 | 1.33k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
21870 | 1.33k | if (!_seq) { |
21871 | 0 | p->error_indicator = 1; |
21872 | 0 | PyErr_NoMemory(); |
21873 | 0 | PyMem_Free(_children); |
21874 | 0 | p->level--; |
21875 | 0 | return NULL; |
21876 | 0 | } |
21877 | 4.41k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
21878 | 1.33k | PyMem_Free(_children); |
21879 | 1.33k | p->level--; |
21880 | 1.33k | return _seq; |
21881 | 1.33k | } |
21882 | | |
21883 | | // _loop1_38: case_block |
21884 | | static asdl_seq * |
21885 | | _loop1_38_rule(Parser *p) |
21886 | 1.71k | { |
21887 | 1.71k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21888 | 0 | _Pypegen_stack_overflow(p); |
21889 | 0 | } |
21890 | 1.71k | if (p->error_indicator) { |
21891 | 0 | p->level--; |
21892 | 0 | return NULL; |
21893 | 0 | } |
21894 | 1.71k | void *_res = NULL; |
21895 | 1.71k | int _mark = p->mark; |
21896 | 1.71k | void **_children = NULL; |
21897 | 1.71k | Py_ssize_t _children_capacity = 0; |
21898 | 1.71k | Py_ssize_t _n = 0; |
21899 | 1.71k | { // case_block |
21900 | 1.71k | if (p->error_indicator) { |
21901 | 0 | p->level--; |
21902 | 0 | return NULL; |
21903 | 0 | } |
21904 | 1.71k | D(fprintf(stderr, "%*c> _loop1_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block")); |
21905 | 1.71k | match_case_ty case_block_var; |
21906 | 1.71k | while ( |
21907 | 4.71k | (case_block_var = case_block_rule(p)) // case_block |
21908 | 1.71k | ) |
21909 | 3.00k | { |
21910 | 3.00k | _res = case_block_var; |
21911 | 3.00k | if (_n == _children_capacity) { |
21912 | 1.35k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
21913 | 0 | p->error_indicator = 1; |
21914 | 0 | PyErr_NoMemory(); |
21915 | 0 | PyMem_Free(_children); |
21916 | 0 | p->level--; |
21917 | 0 | return NULL; |
21918 | 0 | } |
21919 | 1.35k | } |
21920 | 3.00k | _children[_n++] = _res; |
21921 | 3.00k | _mark = p->mark; |
21922 | 3.00k | } |
21923 | 1.71k | p->mark = _mark; |
21924 | 1.71k | D(fprintf(stderr, "%*c%s _loop1_38[%d-%d]: %s failed!\n", p->level, ' ', |
21925 | 1.71k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block")); |
21926 | 1.71k | } |
21927 | 1.71k | if (_n == 0 || p->error_indicator) { |
21928 | 853 | PyMem_Free(_children); |
21929 | 853 | p->level--; |
21930 | 853 | return NULL; |
21931 | 853 | } |
21932 | 858 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
21933 | 858 | if (!_seq) { |
21934 | 0 | p->error_indicator = 1; |
21935 | 0 | PyErr_NoMemory(); |
21936 | 0 | PyMem_Free(_children); |
21937 | 0 | p->level--; |
21938 | 0 | return NULL; |
21939 | 0 | } |
21940 | 3.84k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
21941 | 858 | PyMem_Free(_children); |
21942 | 858 | p->level--; |
21943 | 858 | return _seq; |
21944 | 858 | } |
21945 | | |
21946 | | // _loop0_39: '|' closed_pattern |
21947 | | static asdl_seq * |
21948 | | _loop0_39_rule(Parser *p) |
21949 | 151k | { |
21950 | 151k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
21951 | 0 | _Pypegen_stack_overflow(p); |
21952 | 0 | } |
21953 | 151k | if (p->error_indicator) { |
21954 | 0 | p->level--; |
21955 | 0 | return NULL; |
21956 | 0 | } |
21957 | 151k | void *_res = NULL; |
21958 | 151k | int _mark = p->mark; |
21959 | 151k | void **_children = NULL; |
21960 | 151k | Py_ssize_t _children_capacity = 0; |
21961 | 151k | Py_ssize_t _n = 0; |
21962 | 151k | { // '|' closed_pattern |
21963 | 151k | if (p->error_indicator) { |
21964 | 0 | p->level--; |
21965 | 0 | return NULL; |
21966 | 0 | } |
21967 | 151k | D(fprintf(stderr, "%*c> _loop0_39[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern")); |
21968 | 151k | Token * _literal; |
21969 | 151k | pattern_ty elem; |
21970 | 151k | while ( |
21971 | 164k | (_literal = _PyPegen_expect_token(p, 18)) // token='|' |
21972 | 21.1k | && |
21973 | 21.1k | (elem = closed_pattern_rule(p)) // closed_pattern |
21974 | 151k | ) |
21975 | 12.4k | { |
21976 | 12.4k | _res = elem; |
21977 | 12.4k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
21978 | 0 | p->error_indicator = 1; |
21979 | 0 | PyMem_Free(_children); |
21980 | 0 | p->level--; |
21981 | 0 | return NULL; |
21982 | 0 | } |
21983 | 12.4k | if (_n == _children_capacity) { |
21984 | 11.3k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
21985 | 0 | p->error_indicator = 1; |
21986 | 0 | PyErr_NoMemory(); |
21987 | 0 | PyMem_Free(_children); |
21988 | 0 | p->level--; |
21989 | 0 | return NULL; |
21990 | 0 | } |
21991 | 11.3k | } |
21992 | 12.4k | _children[_n++] = _res; |
21993 | 12.4k | _mark = p->mark; |
21994 | 12.4k | } |
21995 | 151k | p->mark = _mark; |
21996 | 151k | D(fprintf(stderr, "%*c%s _loop0_39[%d-%d]: %s failed!\n", p->level, ' ', |
21997 | 151k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern")); |
21998 | 151k | } |
21999 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
22000 | 151k | if (!_seq) { |
22001 | 0 | p->error_indicator = 1; |
22002 | 0 | PyErr_NoMemory(); |
22003 | 0 | PyMem_Free(_children); |
22004 | 0 | p->level--; |
22005 | 0 | return NULL; |
22006 | 0 | } |
22007 | 164k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
22008 | 151k | PyMem_Free(_children); |
22009 | 151k | p->level--; |
22010 | 151k | return _seq; |
22011 | 151k | } |
22012 | | |
22013 | | // _gather_40: closed_pattern _loop0_39 |
22014 | | static asdl_seq * |
22015 | | _gather_40_rule(Parser *p) |
22016 | 260k | { |
22017 | 260k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22018 | 0 | _Pypegen_stack_overflow(p); |
22019 | 0 | } |
22020 | 260k | if (p->error_indicator) { |
22021 | 0 | p->level--; |
22022 | 0 | return NULL; |
22023 | 0 | } |
22024 | 260k | asdl_seq * _res = NULL; |
22025 | 260k | int _mark = p->mark; |
22026 | 260k | { // closed_pattern _loop0_39 |
22027 | 260k | if (p->error_indicator) { |
22028 | 0 | p->level--; |
22029 | 0 | return NULL; |
22030 | 0 | } |
22031 | 260k | D(fprintf(stderr, "%*c> _gather_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_39")); |
22032 | 260k | pattern_ty elem; |
22033 | 260k | asdl_seq * seq; |
22034 | 260k | if ( |
22035 | 260k | (elem = closed_pattern_rule(p)) // closed_pattern |
22036 | 151k | && |
22037 | 151k | (seq = _loop0_39_rule(p)) // _loop0_39 |
22038 | 260k | ) |
22039 | 151k | { |
22040 | 151k | D(fprintf(stderr, "%*c+ _gather_40[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_39")); |
22041 | 151k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
22042 | 151k | goto done; |
22043 | 151k | } |
22044 | 109k | p->mark = _mark; |
22045 | 109k | D(fprintf(stderr, "%*c%s _gather_40[%d-%d]: %s failed!\n", p->level, ' ', |
22046 | 109k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_39")); |
22047 | 109k | } |
22048 | 109k | _res = NULL; |
22049 | 260k | done: |
22050 | 260k | p->level--; |
22051 | 260k | return _res; |
22052 | 109k | } |
22053 | | |
22054 | | // _tmp_41: '+' | '-' |
22055 | | static void * |
22056 | | _tmp_41_rule(Parser *p) |
22057 | 22.3k | { |
22058 | 22.3k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22059 | 0 | _Pypegen_stack_overflow(p); |
22060 | 0 | } |
22061 | 22.3k | if (p->error_indicator) { |
22062 | 0 | p->level--; |
22063 | 0 | return NULL; |
22064 | 0 | } |
22065 | 22.3k | void * _res = NULL; |
22066 | 22.3k | int _mark = p->mark; |
22067 | 22.3k | { // '+' |
22068 | 22.3k | if (p->error_indicator) { |
22069 | 0 | p->level--; |
22070 | 0 | return NULL; |
22071 | 0 | } |
22072 | 22.3k | D(fprintf(stderr, "%*c> _tmp_41[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'")); |
22073 | 22.3k | Token * _literal; |
22074 | 22.3k | if ( |
22075 | 22.3k | (_literal = _PyPegen_expect_token(p, 14)) // token='+' |
22076 | 22.3k | ) |
22077 | 553 | { |
22078 | 553 | D(fprintf(stderr, "%*c+ _tmp_41[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'")); |
22079 | 553 | _res = _literal; |
22080 | 553 | goto done; |
22081 | 553 | } |
22082 | 21.7k | p->mark = _mark; |
22083 | 21.7k | D(fprintf(stderr, "%*c%s _tmp_41[%d-%d]: %s failed!\n", p->level, ' ', |
22084 | 21.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'")); |
22085 | 21.7k | } |
22086 | 0 | { // '-' |
22087 | 21.7k | if (p->error_indicator) { |
22088 | 13 | p->level--; |
22089 | 13 | return NULL; |
22090 | 13 | } |
22091 | 21.7k | D(fprintf(stderr, "%*c> _tmp_41[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'")); |
22092 | 21.7k | Token * _literal; |
22093 | 21.7k | if ( |
22094 | 21.7k | (_literal = _PyPegen_expect_token(p, 15)) // token='-' |
22095 | 21.7k | ) |
22096 | 1.38k | { |
22097 | 1.38k | D(fprintf(stderr, "%*c+ _tmp_41[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'")); |
22098 | 1.38k | _res = _literal; |
22099 | 1.38k | goto done; |
22100 | 1.38k | } |
22101 | 20.3k | p->mark = _mark; |
22102 | 20.3k | D(fprintf(stderr, "%*c%s _tmp_41[%d-%d]: %s failed!\n", p->level, ' ', |
22103 | 20.3k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'")); |
22104 | 20.3k | } |
22105 | 20.3k | _res = NULL; |
22106 | 22.3k | done: |
22107 | 22.3k | p->level--; |
22108 | 22.3k | return _res; |
22109 | 20.3k | } |
22110 | | |
22111 | | // _tmp_42: STRING | FSTRING_START | TSTRING_START |
22112 | | static void * |
22113 | | _tmp_42_rule(Parser *p) |
22114 | 826k | { |
22115 | 826k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22116 | 1 | _Pypegen_stack_overflow(p); |
22117 | 1 | } |
22118 | 826k | if (p->error_indicator) { |
22119 | 1 | p->level--; |
22120 | 1 | return NULL; |
22121 | 1 | } |
22122 | 826k | void * _res = NULL; |
22123 | 826k | int _mark = p->mark; |
22124 | 826k | { // STRING |
22125 | 826k | if (p->error_indicator) { |
22126 | 0 | p->level--; |
22127 | 0 | return NULL; |
22128 | 0 | } |
22129 | 826k | D(fprintf(stderr, "%*c> _tmp_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING")); |
22130 | 826k | expr_ty string_var; |
22131 | 826k | if ( |
22132 | 826k | (string_var = _PyPegen_string_token(p)) // STRING |
22133 | 826k | ) |
22134 | 36.6k | { |
22135 | 36.6k | D(fprintf(stderr, "%*c+ _tmp_42[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING")); |
22136 | 36.6k | _res = string_var; |
22137 | 36.6k | goto done; |
22138 | 36.6k | } |
22139 | 789k | p->mark = _mark; |
22140 | 789k | D(fprintf(stderr, "%*c%s _tmp_42[%d-%d]: %s failed!\n", p->level, ' ', |
22141 | 789k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING")); |
22142 | 789k | } |
22143 | 0 | { // FSTRING_START |
22144 | 789k | if (p->error_indicator) { |
22145 | 0 | p->level--; |
22146 | 0 | return NULL; |
22147 | 0 | } |
22148 | 789k | D(fprintf(stderr, "%*c> _tmp_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "FSTRING_START")); |
22149 | 789k | Token * fstring_start_var; |
22150 | 789k | if ( |
22151 | 789k | (fstring_start_var = _PyPegen_expect_token(p, FSTRING_START)) // token='FSTRING_START' |
22152 | 789k | ) |
22153 | 24.5k | { |
22154 | 24.5k | D(fprintf(stderr, "%*c+ _tmp_42[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "FSTRING_START")); |
22155 | 24.5k | _res = fstring_start_var; |
22156 | 24.5k | goto done; |
22157 | 24.5k | } |
22158 | 765k | p->mark = _mark; |
22159 | 765k | D(fprintf(stderr, "%*c%s _tmp_42[%d-%d]: %s failed!\n", p->level, ' ', |
22160 | 765k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "FSTRING_START")); |
22161 | 765k | } |
22162 | 0 | { // TSTRING_START |
22163 | 765k | if (p->error_indicator) { |
22164 | 0 | p->level--; |
22165 | 0 | return NULL; |
22166 | 0 | } |
22167 | 765k | D(fprintf(stderr, "%*c> _tmp_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TSTRING_START")); |
22168 | 765k | Token * tstring_start_var; |
22169 | 765k | if ( |
22170 | 765k | (tstring_start_var = _PyPegen_expect_token(p, TSTRING_START)) // token='TSTRING_START' |
22171 | 765k | ) |
22172 | 6.24k | { |
22173 | 6.24k | D(fprintf(stderr, "%*c+ _tmp_42[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TSTRING_START")); |
22174 | 6.24k | _res = tstring_start_var; |
22175 | 6.24k | goto done; |
22176 | 6.24k | } |
22177 | 758k | p->mark = _mark; |
22178 | 758k | D(fprintf(stderr, "%*c%s _tmp_42[%d-%d]: %s failed!\n", p->level, ' ', |
22179 | 758k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TSTRING_START")); |
22180 | 758k | } |
22181 | 758k | _res = NULL; |
22182 | 826k | done: |
22183 | 826k | p->level--; |
22184 | 826k | return _res; |
22185 | 758k | } |
22186 | | |
22187 | | // _tmp_43: '.' | '(' | '=' |
22188 | | static void * |
22189 | | _tmp_43_rule(Parser *p) |
22190 | 29.1k | { |
22191 | 29.1k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22192 | 0 | _Pypegen_stack_overflow(p); |
22193 | 0 | } |
22194 | 29.1k | if (p->error_indicator) { |
22195 | 0 | p->level--; |
22196 | 0 | return NULL; |
22197 | 0 | } |
22198 | 29.1k | void * _res = NULL; |
22199 | 29.1k | int _mark = p->mark; |
22200 | 29.1k | { // '.' |
22201 | 29.1k | if (p->error_indicator) { |
22202 | 0 | p->level--; |
22203 | 0 | return NULL; |
22204 | 0 | } |
22205 | 29.1k | D(fprintf(stderr, "%*c> _tmp_43[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); |
22206 | 29.1k | Token * _literal; |
22207 | 29.1k | if ( |
22208 | 29.1k | (_literal = _PyPegen_expect_token(p, 23)) // token='.' |
22209 | 29.1k | ) |
22210 | 454 | { |
22211 | 454 | D(fprintf(stderr, "%*c+ _tmp_43[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); |
22212 | 454 | _res = _literal; |
22213 | 454 | goto done; |
22214 | 454 | } |
22215 | 28.7k | p->mark = _mark; |
22216 | 28.7k | D(fprintf(stderr, "%*c%s _tmp_43[%d-%d]: %s failed!\n", p->level, ' ', |
22217 | 28.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); |
22218 | 28.7k | } |
22219 | 0 | { // '(' |
22220 | 28.7k | if (p->error_indicator) { |
22221 | 22 | p->level--; |
22222 | 22 | return NULL; |
22223 | 22 | } |
22224 | 28.7k | D(fprintf(stderr, "%*c> _tmp_43[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); |
22225 | 28.7k | Token * _literal; |
22226 | 28.7k | if ( |
22227 | 28.7k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
22228 | 28.7k | ) |
22229 | 8.87k | { |
22230 | 8.87k | D(fprintf(stderr, "%*c+ _tmp_43[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); |
22231 | 8.87k | _res = _literal; |
22232 | 8.87k | goto done; |
22233 | 8.87k | } |
22234 | 19.8k | p->mark = _mark; |
22235 | 19.8k | D(fprintf(stderr, "%*c%s _tmp_43[%d-%d]: %s failed!\n", p->level, ' ', |
22236 | 19.8k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('")); |
22237 | 19.8k | } |
22238 | 0 | { // '=' |
22239 | 19.8k | if (p->error_indicator) { |
22240 | 0 | p->level--; |
22241 | 0 | return NULL; |
22242 | 0 | } |
22243 | 19.8k | D(fprintf(stderr, "%*c> _tmp_43[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); |
22244 | 19.8k | Token * _literal; |
22245 | 19.8k | if ( |
22246 | 19.8k | (_literal = _PyPegen_expect_token(p, 22)) // token='=' |
22247 | 19.8k | ) |
22248 | 2.99k | { |
22249 | 2.99k | D(fprintf(stderr, "%*c+ _tmp_43[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); |
22250 | 2.99k | _res = _literal; |
22251 | 2.99k | goto done; |
22252 | 2.99k | } |
22253 | 16.8k | p->mark = _mark; |
22254 | 16.8k | D(fprintf(stderr, "%*c%s _tmp_43[%d-%d]: %s failed!\n", p->level, ' ', |
22255 | 16.8k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); |
22256 | 16.8k | } |
22257 | 16.8k | _res = NULL; |
22258 | 29.1k | done: |
22259 | 29.1k | p->level--; |
22260 | 29.1k | return _res; |
22261 | 16.8k | } |
22262 | | |
22263 | | // _loop0_44: ',' maybe_star_pattern |
22264 | | static asdl_seq * |
22265 | | _loop0_44_rule(Parser *p) |
22266 | 2.10k | { |
22267 | 2.10k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22268 | 0 | _Pypegen_stack_overflow(p); |
22269 | 0 | } |
22270 | 2.10k | if (p->error_indicator) { |
22271 | 0 | p->level--; |
22272 | 0 | return NULL; |
22273 | 0 | } |
22274 | 2.10k | void *_res = NULL; |
22275 | 2.10k | int _mark = p->mark; |
22276 | 2.10k | void **_children = NULL; |
22277 | 2.10k | Py_ssize_t _children_capacity = 0; |
22278 | 2.10k | Py_ssize_t _n = 0; |
22279 | 2.10k | { // ',' maybe_star_pattern |
22280 | 2.10k | if (p->error_indicator) { |
22281 | 0 | p->level--; |
22282 | 0 | return NULL; |
22283 | 0 | } |
22284 | 2.10k | D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern")); |
22285 | 2.10k | Token * _literal; |
22286 | 2.10k | pattern_ty elem; |
22287 | 2.10k | while ( |
22288 | 11.7k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
22289 | 10.9k | && |
22290 | 10.9k | (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern |
22291 | 2.10k | ) |
22292 | 9.66k | { |
22293 | 9.66k | _res = elem; |
22294 | 9.66k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
22295 | 0 | p->error_indicator = 1; |
22296 | 0 | PyMem_Free(_children); |
22297 | 0 | p->level--; |
22298 | 0 | return NULL; |
22299 | 0 | } |
22300 | 9.66k | if (_n == _children_capacity) { |
22301 | 2.49k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
22302 | 0 | p->error_indicator = 1; |
22303 | 0 | PyErr_NoMemory(); |
22304 | 0 | PyMem_Free(_children); |
22305 | 0 | p->level--; |
22306 | 0 | return NULL; |
22307 | 0 | } |
22308 | 2.49k | } |
22309 | 9.66k | _children[_n++] = _res; |
22310 | 9.66k | _mark = p->mark; |
22311 | 9.66k | } |
22312 | 2.10k | p->mark = _mark; |
22313 | 2.10k | D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ', |
22314 | 2.10k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern")); |
22315 | 2.10k | } |
22316 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
22317 | 2.10k | if (!_seq) { |
22318 | 0 | p->error_indicator = 1; |
22319 | 0 | PyErr_NoMemory(); |
22320 | 0 | PyMem_Free(_children); |
22321 | 0 | p->level--; |
22322 | 0 | return NULL; |
22323 | 0 | } |
22324 | 11.7k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
22325 | 2.10k | PyMem_Free(_children); |
22326 | 2.10k | p->level--; |
22327 | 2.10k | return _seq; |
22328 | 2.10k | } |
22329 | | |
22330 | | // _gather_45: maybe_star_pattern _loop0_44 |
22331 | | static asdl_seq * |
22332 | | _gather_45_rule(Parser *p) |
22333 | 5.05k | { |
22334 | 5.05k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22335 | 0 | _Pypegen_stack_overflow(p); |
22336 | 0 | } |
22337 | 5.05k | if (p->error_indicator) { |
22338 | 0 | p->level--; |
22339 | 0 | return NULL; |
22340 | 0 | } |
22341 | 5.05k | asdl_seq * _res = NULL; |
22342 | 5.05k | int _mark = p->mark; |
22343 | 5.05k | { // maybe_star_pattern _loop0_44 |
22344 | 5.05k | if (p->error_indicator) { |
22345 | 0 | p->level--; |
22346 | 0 | return NULL; |
22347 | 0 | } |
22348 | 5.05k | D(fprintf(stderr, "%*c> _gather_45[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_44")); |
22349 | 5.05k | pattern_ty elem; |
22350 | 5.05k | asdl_seq * seq; |
22351 | 5.05k | if ( |
22352 | 5.05k | (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern |
22353 | 2.10k | && |
22354 | 2.10k | (seq = _loop0_44_rule(p)) // _loop0_44 |
22355 | 5.05k | ) |
22356 | 2.10k | { |
22357 | 2.10k | D(fprintf(stderr, "%*c+ _gather_45[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_44")); |
22358 | 2.10k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
22359 | 2.10k | goto done; |
22360 | 2.10k | } |
22361 | 2.94k | p->mark = _mark; |
22362 | 2.94k | D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ', |
22363 | 2.94k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_44")); |
22364 | 2.94k | } |
22365 | 2.94k | _res = NULL; |
22366 | 5.05k | done: |
22367 | 5.05k | p->level--; |
22368 | 5.05k | return _res; |
22369 | 2.94k | } |
22370 | | |
22371 | | // _loop0_46: ',' key_value_pattern |
22372 | | static asdl_seq * |
22373 | | _loop0_46_rule(Parser *p) |
22374 | 5.94k | { |
22375 | 5.94k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22376 | 0 | _Pypegen_stack_overflow(p); |
22377 | 0 | } |
22378 | 5.94k | if (p->error_indicator) { |
22379 | 0 | p->level--; |
22380 | 0 | return NULL; |
22381 | 0 | } |
22382 | 5.94k | void *_res = NULL; |
22383 | 5.94k | int _mark = p->mark; |
22384 | 5.94k | void **_children = NULL; |
22385 | 5.94k | Py_ssize_t _children_capacity = 0; |
22386 | 5.94k | Py_ssize_t _n = 0; |
22387 | 5.94k | { // ',' key_value_pattern |
22388 | 5.94k | if (p->error_indicator) { |
22389 | 0 | p->level--; |
22390 | 0 | return NULL; |
22391 | 0 | } |
22392 | 5.94k | D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern")); |
22393 | 5.94k | Token * _literal; |
22394 | 5.94k | KeyPatternPair* elem; |
22395 | 5.94k | while ( |
22396 | 9.58k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
22397 | 7.60k | && |
22398 | 7.60k | (elem = key_value_pattern_rule(p)) // key_value_pattern |
22399 | 5.94k | ) |
22400 | 3.63k | { |
22401 | 3.63k | _res = elem; |
22402 | 3.63k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
22403 | 0 | p->error_indicator = 1; |
22404 | 0 | PyMem_Free(_children); |
22405 | 0 | p->level--; |
22406 | 0 | return NULL; |
22407 | 0 | } |
22408 | 3.63k | if (_n == _children_capacity) { |
22409 | 2.97k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
22410 | 0 | p->error_indicator = 1; |
22411 | 0 | PyErr_NoMemory(); |
22412 | 0 | PyMem_Free(_children); |
22413 | 0 | p->level--; |
22414 | 0 | return NULL; |
22415 | 0 | } |
22416 | 2.97k | } |
22417 | 3.63k | _children[_n++] = _res; |
22418 | 3.63k | _mark = p->mark; |
22419 | 3.63k | } |
22420 | 5.94k | p->mark = _mark; |
22421 | 5.94k | D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ', |
22422 | 5.94k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern")); |
22423 | 5.94k | } |
22424 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
22425 | 5.94k | if (!_seq) { |
22426 | 0 | p->error_indicator = 1; |
22427 | 0 | PyErr_NoMemory(); |
22428 | 0 | PyMem_Free(_children); |
22429 | 0 | p->level--; |
22430 | 0 | return NULL; |
22431 | 0 | } |
22432 | 9.58k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
22433 | 5.94k | PyMem_Free(_children); |
22434 | 5.94k | p->level--; |
22435 | 5.94k | return _seq; |
22436 | 5.94k | } |
22437 | | |
22438 | | // _gather_47: key_value_pattern _loop0_46 |
22439 | | static asdl_seq * |
22440 | | _gather_47_rule(Parser *p) |
22441 | 11.4k | { |
22442 | 11.4k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22443 | 0 | _Pypegen_stack_overflow(p); |
22444 | 0 | } |
22445 | 11.4k | if (p->error_indicator) { |
22446 | 0 | p->level--; |
22447 | 0 | return NULL; |
22448 | 0 | } |
22449 | 11.4k | asdl_seq * _res = NULL; |
22450 | 11.4k | int _mark = p->mark; |
22451 | 11.4k | { // key_value_pattern _loop0_46 |
22452 | 11.4k | if (p->error_indicator) { |
22453 | 0 | p->level--; |
22454 | 0 | return NULL; |
22455 | 0 | } |
22456 | 11.4k | D(fprintf(stderr, "%*c> _gather_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_46")); |
22457 | 11.4k | KeyPatternPair* elem; |
22458 | 11.4k | asdl_seq * seq; |
22459 | 11.4k | if ( |
22460 | 11.4k | (elem = key_value_pattern_rule(p)) // key_value_pattern |
22461 | 5.94k | && |
22462 | 5.94k | (seq = _loop0_46_rule(p)) // _loop0_46 |
22463 | 11.4k | ) |
22464 | 5.94k | { |
22465 | 5.94k | D(fprintf(stderr, "%*c+ _gather_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_46")); |
22466 | 5.94k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
22467 | 5.94k | goto done; |
22468 | 5.94k | } |
22469 | 5.50k | p->mark = _mark; |
22470 | 5.50k | D(fprintf(stderr, "%*c%s _gather_47[%d-%d]: %s failed!\n", p->level, ' ', |
22471 | 5.50k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_46")); |
22472 | 5.50k | } |
22473 | 5.50k | _res = NULL; |
22474 | 11.4k | done: |
22475 | 11.4k | p->level--; |
22476 | 11.4k | return _res; |
22477 | 5.50k | } |
22478 | | |
22479 | | // _tmp_48: literal_expr | attr |
22480 | | static void * |
22481 | | _tmp_48_rule(Parser *p) |
22482 | 19.0k | { |
22483 | 19.0k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22484 | 0 | _Pypegen_stack_overflow(p); |
22485 | 0 | } |
22486 | 19.0k | if (p->error_indicator) { |
22487 | 0 | p->level--; |
22488 | 0 | return NULL; |
22489 | 0 | } |
22490 | 19.0k | void * _res = NULL; |
22491 | 19.0k | int _mark = p->mark; |
22492 | 19.0k | { // literal_expr |
22493 | 19.0k | if (p->error_indicator) { |
22494 | 0 | p->level--; |
22495 | 0 | return NULL; |
22496 | 0 | } |
22497 | 19.0k | D(fprintf(stderr, "%*c> _tmp_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr")); |
22498 | 19.0k | expr_ty literal_expr_var; |
22499 | 19.0k | if ( |
22500 | 19.0k | (literal_expr_var = literal_expr_rule(p)) // literal_expr |
22501 | 19.0k | ) |
22502 | 16.0k | { |
22503 | 16.0k | D(fprintf(stderr, "%*c+ _tmp_48[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr")); |
22504 | 16.0k | _res = literal_expr_var; |
22505 | 16.0k | goto done; |
22506 | 16.0k | } |
22507 | 2.95k | p->mark = _mark; |
22508 | 2.95k | D(fprintf(stderr, "%*c%s _tmp_48[%d-%d]: %s failed!\n", p->level, ' ', |
22509 | 2.95k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr")); |
22510 | 2.95k | } |
22511 | 0 | { // attr |
22512 | 2.95k | if (p->error_indicator) { |
22513 | 22 | p->level--; |
22514 | 22 | return NULL; |
22515 | 22 | } |
22516 | 2.93k | D(fprintf(stderr, "%*c> _tmp_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr")); |
22517 | 2.93k | expr_ty attr_var; |
22518 | 2.93k | if ( |
22519 | 2.93k | (attr_var = attr_rule(p)) // attr |
22520 | 2.93k | ) |
22521 | 76 | { |
22522 | 76 | D(fprintf(stderr, "%*c+ _tmp_48[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr")); |
22523 | 76 | _res = attr_var; |
22524 | 76 | goto done; |
22525 | 76 | } |
22526 | 2.86k | p->mark = _mark; |
22527 | 2.86k | D(fprintf(stderr, "%*c%s _tmp_48[%d-%d]: %s failed!\n", p->level, ' ', |
22528 | 2.86k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr")); |
22529 | 2.86k | } |
22530 | 2.86k | _res = NULL; |
22531 | 19.0k | done: |
22532 | 19.0k | p->level--; |
22533 | 19.0k | return _res; |
22534 | 2.86k | } |
22535 | | |
22536 | | // _loop0_49: ',' pattern |
22537 | | static asdl_seq * |
22538 | | _loop0_49_rule(Parser *p) |
22539 | 8.37k | { |
22540 | 8.37k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22541 | 0 | _Pypegen_stack_overflow(p); |
22542 | 0 | } |
22543 | 8.37k | if (p->error_indicator) { |
22544 | 0 | p->level--; |
22545 | 0 | return NULL; |
22546 | 0 | } |
22547 | 8.37k | void *_res = NULL; |
22548 | 8.37k | int _mark = p->mark; |
22549 | 8.37k | void **_children = NULL; |
22550 | 8.37k | Py_ssize_t _children_capacity = 0; |
22551 | 8.37k | Py_ssize_t _n = 0; |
22552 | 8.37k | { // ',' pattern |
22553 | 8.37k | if (p->error_indicator) { |
22554 | 0 | p->level--; |
22555 | 0 | return NULL; |
22556 | 0 | } |
22557 | 8.37k | D(fprintf(stderr, "%*c> _loop0_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern")); |
22558 | 8.37k | Token * _literal; |
22559 | 8.37k | pattern_ty elem; |
22560 | 8.37k | while ( |
22561 | 14.4k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
22562 | 11.3k | && |
22563 | 11.3k | (elem = pattern_rule(p)) // pattern |
22564 | 8.37k | ) |
22565 | 6.11k | { |
22566 | 6.11k | _res = elem; |
22567 | 6.11k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
22568 | 0 | p->error_indicator = 1; |
22569 | 0 | PyMem_Free(_children); |
22570 | 0 | p->level--; |
22571 | 0 | return NULL; |
22572 | 0 | } |
22573 | 6.11k | if (_n == _children_capacity) { |
22574 | 2.58k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
22575 | 0 | p->error_indicator = 1; |
22576 | 0 | PyErr_NoMemory(); |
22577 | 0 | PyMem_Free(_children); |
22578 | 0 | p->level--; |
22579 | 0 | return NULL; |
22580 | 0 | } |
22581 | 2.58k | } |
22582 | 6.11k | _children[_n++] = _res; |
22583 | 6.11k | _mark = p->mark; |
22584 | 6.11k | } |
22585 | 8.37k | p->mark = _mark; |
22586 | 8.37k | D(fprintf(stderr, "%*c%s _loop0_49[%d-%d]: %s failed!\n", p->level, ' ', |
22587 | 8.37k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern")); |
22588 | 8.37k | } |
22589 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
22590 | 8.37k | if (!_seq) { |
22591 | 0 | p->error_indicator = 1; |
22592 | 0 | PyErr_NoMemory(); |
22593 | 0 | PyMem_Free(_children); |
22594 | 0 | p->level--; |
22595 | 0 | return NULL; |
22596 | 0 | } |
22597 | 14.4k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
22598 | 8.37k | PyMem_Free(_children); |
22599 | 8.37k | p->level--; |
22600 | 8.37k | return _seq; |
22601 | 8.37k | } |
22602 | | |
22603 | | // _gather_50: pattern _loop0_49 |
22604 | | static asdl_seq * |
22605 | | _gather_50_rule(Parser *p) |
22606 | 16.1k | { |
22607 | 16.1k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22608 | 0 | _Pypegen_stack_overflow(p); |
22609 | 0 | } |
22610 | 16.1k | if (p->error_indicator) { |
22611 | 0 | p->level--; |
22612 | 0 | return NULL; |
22613 | 0 | } |
22614 | 16.1k | asdl_seq * _res = NULL; |
22615 | 16.1k | int _mark = p->mark; |
22616 | 16.1k | { // pattern _loop0_49 |
22617 | 16.1k | if (p->error_indicator) { |
22618 | 0 | p->level--; |
22619 | 0 | return NULL; |
22620 | 0 | } |
22621 | 16.1k | D(fprintf(stderr, "%*c> _gather_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_49")); |
22622 | 16.1k | pattern_ty elem; |
22623 | 16.1k | asdl_seq * seq; |
22624 | 16.1k | if ( |
22625 | 16.1k | (elem = pattern_rule(p)) // pattern |
22626 | 8.37k | && |
22627 | 8.37k | (seq = _loop0_49_rule(p)) // _loop0_49 |
22628 | 16.1k | ) |
22629 | 8.37k | { |
22630 | 8.37k | D(fprintf(stderr, "%*c+ _gather_50[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_49")); |
22631 | 8.37k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
22632 | 8.37k | goto done; |
22633 | 8.37k | } |
22634 | 7.74k | p->mark = _mark; |
22635 | 7.74k | D(fprintf(stderr, "%*c%s _gather_50[%d-%d]: %s failed!\n", p->level, ' ', |
22636 | 7.74k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_49")); |
22637 | 7.74k | } |
22638 | 7.74k | _res = NULL; |
22639 | 16.1k | done: |
22640 | 16.1k | p->level--; |
22641 | 16.1k | return _res; |
22642 | 7.74k | } |
22643 | | |
22644 | | // _loop0_51: ',' keyword_pattern |
22645 | | static asdl_seq * |
22646 | | _loop0_51_rule(Parser *p) |
22647 | 3.12k | { |
22648 | 3.12k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22649 | 0 | _Pypegen_stack_overflow(p); |
22650 | 0 | } |
22651 | 3.12k | if (p->error_indicator) { |
22652 | 0 | p->level--; |
22653 | 0 | return NULL; |
22654 | 0 | } |
22655 | 3.12k | void *_res = NULL; |
22656 | 3.12k | int _mark = p->mark; |
22657 | 3.12k | void **_children = NULL; |
22658 | 3.12k | Py_ssize_t _children_capacity = 0; |
22659 | 3.12k | Py_ssize_t _n = 0; |
22660 | 3.12k | { // ',' keyword_pattern |
22661 | 3.12k | if (p->error_indicator) { |
22662 | 0 | p->level--; |
22663 | 0 | return NULL; |
22664 | 0 | } |
22665 | 3.12k | D(fprintf(stderr, "%*c> _loop0_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern")); |
22666 | 3.12k | Token * _literal; |
22667 | 3.12k | KeyPatternPair* elem; |
22668 | 3.12k | while ( |
22669 | 4.01k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
22670 | 2.16k | && |
22671 | 2.16k | (elem = keyword_pattern_rule(p)) // keyword_pattern |
22672 | 3.12k | ) |
22673 | 888 | { |
22674 | 888 | _res = elem; |
22675 | 888 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
22676 | 0 | p->error_indicator = 1; |
22677 | 0 | PyMem_Free(_children); |
22678 | 0 | p->level--; |
22679 | 0 | return NULL; |
22680 | 0 | } |
22681 | 888 | if (_n == _children_capacity) { |
22682 | 521 | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
22683 | 0 | p->error_indicator = 1; |
22684 | 0 | PyErr_NoMemory(); |
22685 | 0 | PyMem_Free(_children); |
22686 | 0 | p->level--; |
22687 | 0 | return NULL; |
22688 | 0 | } |
22689 | 521 | } |
22690 | 888 | _children[_n++] = _res; |
22691 | 888 | _mark = p->mark; |
22692 | 888 | } |
22693 | 3.12k | p->mark = _mark; |
22694 | 3.12k | D(fprintf(stderr, "%*c%s _loop0_51[%d-%d]: %s failed!\n", p->level, ' ', |
22695 | 3.12k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern")); |
22696 | 3.12k | } |
22697 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
22698 | 3.12k | if (!_seq) { |
22699 | 0 | p->error_indicator = 1; |
22700 | 0 | PyErr_NoMemory(); |
22701 | 0 | PyMem_Free(_children); |
22702 | 0 | p->level--; |
22703 | 0 | return NULL; |
22704 | 0 | } |
22705 | 4.01k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
22706 | 3.12k | PyMem_Free(_children); |
22707 | 3.12k | p->level--; |
22708 | 3.12k | return _seq; |
22709 | 3.12k | } |
22710 | | |
22711 | | // _gather_52: keyword_pattern _loop0_51 |
22712 | | static asdl_seq * |
22713 | | _gather_52_rule(Parser *p) |
22714 | 11.3k | { |
22715 | 11.3k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22716 | 0 | _Pypegen_stack_overflow(p); |
22717 | 0 | } |
22718 | 11.3k | if (p->error_indicator) { |
22719 | 0 | p->level--; |
22720 | 0 | return NULL; |
22721 | 0 | } |
22722 | 11.3k | asdl_seq * _res = NULL; |
22723 | 11.3k | int _mark = p->mark; |
22724 | 11.3k | { // keyword_pattern _loop0_51 |
22725 | 11.3k | if (p->error_indicator) { |
22726 | 0 | p->level--; |
22727 | 0 | return NULL; |
22728 | 0 | } |
22729 | 11.3k | D(fprintf(stderr, "%*c> _gather_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_51")); |
22730 | 11.3k | KeyPatternPair* elem; |
22731 | 11.3k | asdl_seq * seq; |
22732 | 11.3k | if ( |
22733 | 11.3k | (elem = keyword_pattern_rule(p)) // keyword_pattern |
22734 | 3.12k | && |
22735 | 3.12k | (seq = _loop0_51_rule(p)) // _loop0_51 |
22736 | 11.3k | ) |
22737 | 3.12k | { |
22738 | 3.12k | D(fprintf(stderr, "%*c+ _gather_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_51")); |
22739 | 3.12k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
22740 | 3.12k | goto done; |
22741 | 3.12k | } |
22742 | 8.20k | p->mark = _mark; |
22743 | 8.20k | D(fprintf(stderr, "%*c%s _gather_52[%d-%d]: %s failed!\n", p->level, ' ', |
22744 | 8.20k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_51")); |
22745 | 8.20k | } |
22746 | 8.20k | _res = NULL; |
22747 | 11.3k | done: |
22748 | 11.3k | p->level--; |
22749 | 11.3k | return _res; |
22750 | 8.20k | } |
22751 | | |
22752 | | // _loop0_53: ',' type_param |
22753 | | static asdl_seq * |
22754 | | _loop0_53_rule(Parser *p) |
22755 | 1.53k | { |
22756 | 1.53k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22757 | 0 | _Pypegen_stack_overflow(p); |
22758 | 0 | } |
22759 | 1.53k | if (p->error_indicator) { |
22760 | 0 | p->level--; |
22761 | 0 | return NULL; |
22762 | 0 | } |
22763 | 1.53k | void *_res = NULL; |
22764 | 1.53k | int _mark = p->mark; |
22765 | 1.53k | void **_children = NULL; |
22766 | 1.53k | Py_ssize_t _children_capacity = 0; |
22767 | 1.53k | Py_ssize_t _n = 0; |
22768 | 1.53k | { // ',' type_param |
22769 | 1.53k | if (p->error_indicator) { |
22770 | 0 | p->level--; |
22771 | 0 | return NULL; |
22772 | 0 | } |
22773 | 1.53k | D(fprintf(stderr, "%*c> _loop0_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' type_param")); |
22774 | 1.53k | Token * _literal; |
22775 | 1.53k | type_param_ty elem; |
22776 | 1.53k | while ( |
22777 | 12.6k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
22778 | 12.1k | && |
22779 | 12.1k | (elem = type_param_rule(p)) // type_param |
22780 | 1.53k | ) |
22781 | 11.0k | { |
22782 | 11.0k | _res = elem; |
22783 | 11.0k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
22784 | 0 | p->error_indicator = 1; |
22785 | 0 | PyMem_Free(_children); |
22786 | 0 | p->level--; |
22787 | 0 | return NULL; |
22788 | 0 | } |
22789 | 11.0k | if (_n == _children_capacity) { |
22790 | 1.48k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
22791 | 0 | p->error_indicator = 1; |
22792 | 0 | PyErr_NoMemory(); |
22793 | 0 | PyMem_Free(_children); |
22794 | 0 | p->level--; |
22795 | 0 | return NULL; |
22796 | 0 | } |
22797 | 1.48k | } |
22798 | 11.0k | _children[_n++] = _res; |
22799 | 11.0k | _mark = p->mark; |
22800 | 11.0k | } |
22801 | 1.53k | p->mark = _mark; |
22802 | 1.53k | D(fprintf(stderr, "%*c%s _loop0_53[%d-%d]: %s failed!\n", p->level, ' ', |
22803 | 1.53k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' type_param")); |
22804 | 1.53k | } |
22805 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
22806 | 1.53k | if (!_seq) { |
22807 | 0 | p->error_indicator = 1; |
22808 | 0 | PyErr_NoMemory(); |
22809 | 0 | PyMem_Free(_children); |
22810 | 0 | p->level--; |
22811 | 0 | return NULL; |
22812 | 0 | } |
22813 | 12.6k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
22814 | 1.53k | PyMem_Free(_children); |
22815 | 1.53k | p->level--; |
22816 | 1.53k | return _seq; |
22817 | 1.53k | } |
22818 | | |
22819 | | // _gather_54: type_param _loop0_53 |
22820 | | static asdl_seq * |
22821 | | _gather_54_rule(Parser *p) |
22822 | 1.64k | { |
22823 | 1.64k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22824 | 0 | _Pypegen_stack_overflow(p); |
22825 | 0 | } |
22826 | 1.64k | if (p->error_indicator) { |
22827 | 0 | p->level--; |
22828 | 0 | return NULL; |
22829 | 0 | } |
22830 | 1.64k | asdl_seq * _res = NULL; |
22831 | 1.64k | int _mark = p->mark; |
22832 | 1.64k | { // type_param _loop0_53 |
22833 | 1.64k | if (p->error_indicator) { |
22834 | 0 | p->level--; |
22835 | 0 | return NULL; |
22836 | 0 | } |
22837 | 1.64k | D(fprintf(stderr, "%*c> _gather_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "type_param _loop0_53")); |
22838 | 1.64k | type_param_ty elem; |
22839 | 1.64k | asdl_seq * seq; |
22840 | 1.64k | if ( |
22841 | 1.64k | (elem = type_param_rule(p)) // type_param |
22842 | 1.53k | && |
22843 | 1.53k | (seq = _loop0_53_rule(p)) // _loop0_53 |
22844 | 1.64k | ) |
22845 | 1.53k | { |
22846 | 1.53k | D(fprintf(stderr, "%*c+ _gather_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "type_param _loop0_53")); |
22847 | 1.53k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
22848 | 1.53k | goto done; |
22849 | 1.53k | } |
22850 | 109 | p->mark = _mark; |
22851 | 109 | D(fprintf(stderr, "%*c%s _gather_54[%d-%d]: %s failed!\n", p->level, ' ', |
22852 | 109 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "type_param _loop0_53")); |
22853 | 109 | } |
22854 | 109 | _res = NULL; |
22855 | 1.64k | done: |
22856 | 1.64k | p->level--; |
22857 | 1.64k | return _res; |
22858 | 109 | } |
22859 | | |
22860 | | // _loop1_55: (',' expression) |
22861 | | static asdl_seq * |
22862 | | _loop1_55_rule(Parser *p) |
22863 | 4.07k | { |
22864 | 4.07k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22865 | 0 | _Pypegen_stack_overflow(p); |
22866 | 0 | } |
22867 | 4.07k | if (p->error_indicator) { |
22868 | 0 | p->level--; |
22869 | 0 | return NULL; |
22870 | 0 | } |
22871 | 4.07k | void *_res = NULL; |
22872 | 4.07k | int _mark = p->mark; |
22873 | 4.07k | void **_children = NULL; |
22874 | 4.07k | Py_ssize_t _children_capacity = 0; |
22875 | 4.07k | Py_ssize_t _n = 0; |
22876 | 4.07k | { // (',' expression) |
22877 | 4.07k | if (p->error_indicator) { |
22878 | 0 | p->level--; |
22879 | 0 | return NULL; |
22880 | 0 | } |
22881 | 4.07k | D(fprintf(stderr, "%*c> _loop1_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)")); |
22882 | 4.07k | void *_tmp_16_var; |
22883 | 4.07k | while ( |
22884 | 8.03k | (_tmp_16_var = _tmp_16_rule(p)) // ',' expression |
22885 | 4.07k | ) |
22886 | 3.95k | { |
22887 | 3.95k | _res = _tmp_16_var; |
22888 | 3.95k | if (_n == _children_capacity) { |
22889 | 2.49k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
22890 | 0 | p->error_indicator = 1; |
22891 | 0 | PyErr_NoMemory(); |
22892 | 0 | PyMem_Free(_children); |
22893 | 0 | p->level--; |
22894 | 0 | return NULL; |
22895 | 0 | } |
22896 | 2.49k | } |
22897 | 3.95k | _children[_n++] = _res; |
22898 | 3.95k | _mark = p->mark; |
22899 | 3.95k | } |
22900 | 4.07k | p->mark = _mark; |
22901 | 4.07k | D(fprintf(stderr, "%*c%s _loop1_55[%d-%d]: %s failed!\n", p->level, ' ', |
22902 | 4.07k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)")); |
22903 | 4.07k | } |
22904 | 4.07k | if (_n == 0 || p->error_indicator) { |
22905 | 2.70k | PyMem_Free(_children); |
22906 | 2.70k | p->level--; |
22907 | 2.70k | return NULL; |
22908 | 2.70k | } |
22909 | 1.37k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
22910 | 1.37k | if (!_seq) { |
22911 | 0 | p->error_indicator = 1; |
22912 | 0 | PyErr_NoMemory(); |
22913 | 0 | PyMem_Free(_children); |
22914 | 0 | p->level--; |
22915 | 0 | return NULL; |
22916 | 0 | } |
22917 | 5.33k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
22918 | 1.37k | PyMem_Free(_children); |
22919 | 1.37k | p->level--; |
22920 | 1.37k | return _seq; |
22921 | 1.37k | } |
22922 | | |
22923 | | // _loop1_56: (',' star_expression) |
22924 | | static asdl_seq * |
22925 | | _loop1_56_rule(Parser *p) |
22926 | 229k | { |
22927 | 229k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22928 | 0 | _Pypegen_stack_overflow(p); |
22929 | 0 | } |
22930 | 229k | if (p->error_indicator) { |
22931 | 0 | p->level--; |
22932 | 0 | return NULL; |
22933 | 0 | } |
22934 | 229k | void *_res = NULL; |
22935 | 229k | int _mark = p->mark; |
22936 | 229k | void **_children = NULL; |
22937 | 229k | Py_ssize_t _children_capacity = 0; |
22938 | 229k | Py_ssize_t _n = 0; |
22939 | 229k | { // (',' star_expression) |
22940 | 229k | if (p->error_indicator) { |
22941 | 0 | p->level--; |
22942 | 0 | return NULL; |
22943 | 0 | } |
22944 | 229k | D(fprintf(stderr, "%*c> _loop1_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)")); |
22945 | 229k | void *_tmp_181_var; |
22946 | 229k | while ( |
22947 | 245k | (_tmp_181_var = _tmp_181_rule(p)) // ',' star_expression |
22948 | 229k | ) |
22949 | 16.4k | { |
22950 | 16.4k | _res = _tmp_181_var; |
22951 | 16.4k | if (_n == _children_capacity) { |
22952 | 9.68k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
22953 | 0 | p->error_indicator = 1; |
22954 | 0 | PyErr_NoMemory(); |
22955 | 0 | PyMem_Free(_children); |
22956 | 0 | p->level--; |
22957 | 0 | return NULL; |
22958 | 0 | } |
22959 | 9.68k | } |
22960 | 16.4k | _children[_n++] = _res; |
22961 | 16.4k | _mark = p->mark; |
22962 | 16.4k | } |
22963 | 229k | p->mark = _mark; |
22964 | 229k | D(fprintf(stderr, "%*c%s _loop1_56[%d-%d]: %s failed!\n", p->level, ' ', |
22965 | 229k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)")); |
22966 | 229k | } |
22967 | 229k | if (_n == 0 || p->error_indicator) { |
22968 | 222k | PyMem_Free(_children); |
22969 | 222k | p->level--; |
22970 | 222k | return NULL; |
22971 | 222k | } |
22972 | 6.68k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
22973 | 6.68k | if (!_seq) { |
22974 | 0 | p->error_indicator = 1; |
22975 | 0 | PyErr_NoMemory(); |
22976 | 0 | PyMem_Free(_children); |
22977 | 0 | p->level--; |
22978 | 0 | return NULL; |
22979 | 0 | } |
22980 | 22.7k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
22981 | 6.68k | PyMem_Free(_children); |
22982 | 6.68k | p->level--; |
22983 | 6.68k | return _seq; |
22984 | 6.68k | } |
22985 | | |
22986 | | // _loop0_57: ',' star_named_expression |
22987 | | static asdl_seq * |
22988 | | _loop0_57_rule(Parser *p) |
22989 | 5.50k | { |
22990 | 5.50k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
22991 | 0 | _Pypegen_stack_overflow(p); |
22992 | 0 | } |
22993 | 5.50k | if (p->error_indicator) { |
22994 | 0 | p->level--; |
22995 | 0 | return NULL; |
22996 | 0 | } |
22997 | 5.50k | void *_res = NULL; |
22998 | 5.50k | int _mark = p->mark; |
22999 | 5.50k | void **_children = NULL; |
23000 | 5.50k | Py_ssize_t _children_capacity = 0; |
23001 | 5.50k | Py_ssize_t _n = 0; |
23002 | 5.50k | { // ',' star_named_expression |
23003 | 5.50k | if (p->error_indicator) { |
23004 | 0 | p->level--; |
23005 | 0 | return NULL; |
23006 | 0 | } |
23007 | 5.50k | D(fprintf(stderr, "%*c> _loop0_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression")); |
23008 | 5.50k | Token * _literal; |
23009 | 5.50k | expr_ty elem; |
23010 | 5.50k | while ( |
23011 | 11.1k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
23012 | 6.32k | && |
23013 | 6.32k | (elem = star_named_expression_rule(p)) // star_named_expression |
23014 | 5.50k | ) |
23015 | 5.66k | { |
23016 | 5.66k | _res = elem; |
23017 | 5.66k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
23018 | 0 | p->error_indicator = 1; |
23019 | 0 | PyMem_Free(_children); |
23020 | 0 | p->level--; |
23021 | 0 | return NULL; |
23022 | 0 | } |
23023 | 5.66k | if (_n == _children_capacity) { |
23024 | 2.32k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
23025 | 0 | p->error_indicator = 1; |
23026 | 0 | PyErr_NoMemory(); |
23027 | 0 | PyMem_Free(_children); |
23028 | 0 | p->level--; |
23029 | 0 | return NULL; |
23030 | 0 | } |
23031 | 2.32k | } |
23032 | 5.66k | _children[_n++] = _res; |
23033 | 5.66k | _mark = p->mark; |
23034 | 5.66k | } |
23035 | 5.50k | p->mark = _mark; |
23036 | 5.50k | D(fprintf(stderr, "%*c%s _loop0_57[%d-%d]: %s failed!\n", p->level, ' ', |
23037 | 5.50k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression")); |
23038 | 5.50k | } |
23039 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
23040 | 5.50k | if (!_seq) { |
23041 | 0 | p->error_indicator = 1; |
23042 | 0 | PyErr_NoMemory(); |
23043 | 0 | PyMem_Free(_children); |
23044 | 0 | p->level--; |
23045 | 0 | return NULL; |
23046 | 0 | } |
23047 | 11.1k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
23048 | 5.50k | PyMem_Free(_children); |
23049 | 5.50k | p->level--; |
23050 | 5.50k | return _seq; |
23051 | 5.50k | } |
23052 | | |
23053 | | // _gather_58: star_named_expression _loop0_57 |
23054 | | static asdl_seq * |
23055 | | _gather_58_rule(Parser *p) |
23056 | 7.83k | { |
23057 | 7.83k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23058 | 0 | _Pypegen_stack_overflow(p); |
23059 | 0 | } |
23060 | 7.83k | if (p->error_indicator) { |
23061 | 0 | p->level--; |
23062 | 0 | return NULL; |
23063 | 0 | } |
23064 | 7.83k | asdl_seq * _res = NULL; |
23065 | 7.83k | int _mark = p->mark; |
23066 | 7.83k | { // star_named_expression _loop0_57 |
23067 | 7.83k | if (p->error_indicator) { |
23068 | 0 | p->level--; |
23069 | 0 | return NULL; |
23070 | 0 | } |
23071 | 7.83k | D(fprintf(stderr, "%*c> _gather_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_57")); |
23072 | 7.83k | expr_ty elem; |
23073 | 7.83k | asdl_seq * seq; |
23074 | 7.83k | if ( |
23075 | 7.83k | (elem = star_named_expression_rule(p)) // star_named_expression |
23076 | 5.50k | && |
23077 | 5.50k | (seq = _loop0_57_rule(p)) // _loop0_57 |
23078 | 7.83k | ) |
23079 | 5.50k | { |
23080 | 5.50k | D(fprintf(stderr, "%*c+ _gather_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_57")); |
23081 | 5.50k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
23082 | 5.50k | goto done; |
23083 | 5.50k | } |
23084 | 2.32k | p->mark = _mark; |
23085 | 2.32k | D(fprintf(stderr, "%*c%s _gather_58[%d-%d]: %s failed!\n", p->level, ' ', |
23086 | 2.32k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_57")); |
23087 | 2.32k | } |
23088 | 2.32k | _res = NULL; |
23089 | 7.83k | done: |
23090 | 7.83k | p->level--; |
23091 | 7.83k | return _res; |
23092 | 2.32k | } |
23093 | | |
23094 | | // _loop1_59: ('or' conjunction) |
23095 | | static asdl_seq * |
23096 | | _loop1_59_rule(Parser *p) |
23097 | 139k | { |
23098 | 139k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23099 | 0 | _Pypegen_stack_overflow(p); |
23100 | 0 | } |
23101 | 139k | if (p->error_indicator) { |
23102 | 0 | p->level--; |
23103 | 0 | return NULL; |
23104 | 0 | } |
23105 | 139k | void *_res = NULL; |
23106 | 139k | int _mark = p->mark; |
23107 | 139k | void **_children = NULL; |
23108 | 139k | Py_ssize_t _children_capacity = 0; |
23109 | 139k | Py_ssize_t _n = 0; |
23110 | 139k | { // ('or' conjunction) |
23111 | 139k | if (p->error_indicator) { |
23112 | 0 | p->level--; |
23113 | 0 | return NULL; |
23114 | 0 | } |
23115 | 139k | D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)")); |
23116 | 139k | void *_tmp_182_var; |
23117 | 139k | while ( |
23118 | 143k | (_tmp_182_var = _tmp_182_rule(p)) // 'or' conjunction |
23119 | 139k | ) |
23120 | 4.11k | { |
23121 | 4.11k | _res = _tmp_182_var; |
23122 | 4.11k | if (_n == _children_capacity) { |
23123 | 1.91k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
23124 | 0 | p->error_indicator = 1; |
23125 | 0 | PyErr_NoMemory(); |
23126 | 0 | PyMem_Free(_children); |
23127 | 0 | p->level--; |
23128 | 0 | return NULL; |
23129 | 0 | } |
23130 | 1.91k | } |
23131 | 4.11k | _children[_n++] = _res; |
23132 | 4.11k | _mark = p->mark; |
23133 | 4.11k | } |
23134 | 139k | p->mark = _mark; |
23135 | 139k | D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ', |
23136 | 139k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)")); |
23137 | 139k | } |
23138 | 139k | if (_n == 0 || p->error_indicator) { |
23139 | 138k | PyMem_Free(_children); |
23140 | 138k | p->level--; |
23141 | 138k | return NULL; |
23142 | 138k | } |
23143 | 1.13k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
23144 | 1.13k | if (!_seq) { |
23145 | 0 | p->error_indicator = 1; |
23146 | 0 | PyErr_NoMemory(); |
23147 | 0 | PyMem_Free(_children); |
23148 | 0 | p->level--; |
23149 | 0 | return NULL; |
23150 | 0 | } |
23151 | 4.89k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
23152 | 1.13k | PyMem_Free(_children); |
23153 | 1.13k | p->level--; |
23154 | 1.13k | return _seq; |
23155 | 1.13k | } |
23156 | | |
23157 | | // _loop1_60: ('and' inversion) |
23158 | | static asdl_seq * |
23159 | | _loop1_60_rule(Parser *p) |
23160 | 143k | { |
23161 | 143k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23162 | 0 | _Pypegen_stack_overflow(p); |
23163 | 0 | } |
23164 | 143k | if (p->error_indicator) { |
23165 | 0 | p->level--; |
23166 | 0 | return NULL; |
23167 | 0 | } |
23168 | 143k | void *_res = NULL; |
23169 | 143k | int _mark = p->mark; |
23170 | 143k | void **_children = NULL; |
23171 | 143k | Py_ssize_t _children_capacity = 0; |
23172 | 143k | Py_ssize_t _n = 0; |
23173 | 143k | { // ('and' inversion) |
23174 | 143k | if (p->error_indicator) { |
23175 | 0 | p->level--; |
23176 | 0 | return NULL; |
23177 | 0 | } |
23178 | 143k | D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)")); |
23179 | 143k | void *_tmp_183_var; |
23180 | 143k | while ( |
23181 | 145k | (_tmp_183_var = _tmp_183_rule(p)) // 'and' inversion |
23182 | 143k | ) |
23183 | 2.00k | { |
23184 | 2.00k | _res = _tmp_183_var; |
23185 | 2.00k | if (_n == _children_capacity) { |
23186 | 1.29k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
23187 | 0 | p->error_indicator = 1; |
23188 | 0 | PyErr_NoMemory(); |
23189 | 0 | PyMem_Free(_children); |
23190 | 0 | p->level--; |
23191 | 0 | return NULL; |
23192 | 0 | } |
23193 | 1.29k | } |
23194 | 2.00k | _children[_n++] = _res; |
23195 | 2.00k | _mark = p->mark; |
23196 | 2.00k | } |
23197 | 143k | p->mark = _mark; |
23198 | 143k | D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ', |
23199 | 143k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)")); |
23200 | 143k | } |
23201 | 143k | if (_n == 0 || p->error_indicator) { |
23202 | 143k | PyMem_Free(_children); |
23203 | 143k | p->level--; |
23204 | 143k | return NULL; |
23205 | 143k | } |
23206 | 746 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
23207 | 746 | if (!_seq) { |
23208 | 0 | p->error_indicator = 1; |
23209 | 0 | PyErr_NoMemory(); |
23210 | 0 | PyMem_Free(_children); |
23211 | 0 | p->level--; |
23212 | 0 | return NULL; |
23213 | 0 | } |
23214 | 2.59k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
23215 | 746 | PyMem_Free(_children); |
23216 | 746 | p->level--; |
23217 | 746 | return _seq; |
23218 | 746 | } |
23219 | | |
23220 | | // _loop1_61: compare_op_bitwise_or_pair |
23221 | | static asdl_seq * |
23222 | | _loop1_61_rule(Parser *p) |
23223 | 147k | { |
23224 | 147k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23225 | 0 | _Pypegen_stack_overflow(p); |
23226 | 0 | } |
23227 | 147k | if (p->error_indicator) { |
23228 | 0 | p->level--; |
23229 | 0 | return NULL; |
23230 | 0 | } |
23231 | 147k | void *_res = NULL; |
23232 | 147k | int _mark = p->mark; |
23233 | 147k | void **_children = NULL; |
23234 | 147k | Py_ssize_t _children_capacity = 0; |
23235 | 147k | Py_ssize_t _n = 0; |
23236 | 147k | { // compare_op_bitwise_or_pair |
23237 | 147k | if (p->error_indicator) { |
23238 | 0 | p->level--; |
23239 | 0 | return NULL; |
23240 | 0 | } |
23241 | 147k | D(fprintf(stderr, "%*c> _loop1_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair")); |
23242 | 147k | CmpopExprPair* compare_op_bitwise_or_pair_var; |
23243 | 147k | while ( |
23244 | 165k | (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair |
23245 | 147k | ) |
23246 | 18.5k | { |
23247 | 18.5k | _res = compare_op_bitwise_or_pair_var; |
23248 | 18.5k | if (_n == _children_capacity) { |
23249 | 9.00k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
23250 | 0 | p->error_indicator = 1; |
23251 | 0 | PyErr_NoMemory(); |
23252 | 0 | PyMem_Free(_children); |
23253 | 0 | p->level--; |
23254 | 0 | return NULL; |
23255 | 0 | } |
23256 | 9.00k | } |
23257 | 18.5k | _children[_n++] = _res; |
23258 | 18.5k | _mark = p->mark; |
23259 | 18.5k | } |
23260 | 147k | p->mark = _mark; |
23261 | 147k | D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ', |
23262 | 147k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair")); |
23263 | 147k | } |
23264 | 147k | if (_n == 0 || p->error_indicator) { |
23265 | 141k | PyMem_Free(_children); |
23266 | 141k | p->level--; |
23267 | 141k | return NULL; |
23268 | 141k | } |
23269 | 5.70k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
23270 | 5.70k | if (!_seq) { |
23271 | 0 | p->error_indicator = 1; |
23272 | 0 | PyErr_NoMemory(); |
23273 | 0 | PyMem_Free(_children); |
23274 | 0 | p->level--; |
23275 | 0 | return NULL; |
23276 | 0 | } |
23277 | 23.6k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
23278 | 5.70k | PyMem_Free(_children); |
23279 | 5.70k | p->level--; |
23280 | 5.70k | return _seq; |
23281 | 5.70k | } |
23282 | | |
23283 | | // _tmp_62: '!=' |
23284 | | static void * |
23285 | | _tmp_62_rule(Parser *p) |
23286 | 163k | { |
23287 | 163k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23288 | 0 | _Pypegen_stack_overflow(p); |
23289 | 0 | } |
23290 | 163k | if (p->error_indicator) { |
23291 | 0 | p->level--; |
23292 | 0 | return NULL; |
23293 | 0 | } |
23294 | 163k | void * _res = NULL; |
23295 | 163k | int _mark = p->mark; |
23296 | 163k | { // '!=' |
23297 | 163k | if (p->error_indicator) { |
23298 | 0 | p->level--; |
23299 | 0 | return NULL; |
23300 | 0 | } |
23301 | 163k | D(fprintf(stderr, "%*c> _tmp_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='")); |
23302 | 163k | Token * tok; |
23303 | 163k | if ( |
23304 | 163k | (tok = _PyPegen_expect_token(p, 28)) // token='!=' |
23305 | 163k | ) |
23306 | 1.20k | { |
23307 | 1.20k | D(fprintf(stderr, "%*c+ _tmp_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='")); |
23308 | 1.20k | _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok; |
23309 | 1.20k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
23310 | 1 | p->error_indicator = 1; |
23311 | 1 | p->level--; |
23312 | 1 | return NULL; |
23313 | 1 | } |
23314 | 1.20k | goto done; |
23315 | 1.20k | } |
23316 | 162k | p->mark = _mark; |
23317 | 162k | D(fprintf(stderr, "%*c%s _tmp_62[%d-%d]: %s failed!\n", p->level, ' ', |
23318 | 162k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='")); |
23319 | 162k | } |
23320 | 162k | _res = NULL; |
23321 | 163k | done: |
23322 | 163k | p->level--; |
23323 | 163k | return _res; |
23324 | 162k | } |
23325 | | |
23326 | | // _loop0_63: ',' (slice | starred_expression) |
23327 | | static asdl_seq * |
23328 | | _loop0_63_rule(Parser *p) |
23329 | 3.07k | { |
23330 | 3.07k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23331 | 0 | _Pypegen_stack_overflow(p); |
23332 | 0 | } |
23333 | 3.07k | if (p->error_indicator) { |
23334 | 0 | p->level--; |
23335 | 0 | return NULL; |
23336 | 0 | } |
23337 | 3.07k | void *_res = NULL; |
23338 | 3.07k | int _mark = p->mark; |
23339 | 3.07k | void **_children = NULL; |
23340 | 3.07k | Py_ssize_t _children_capacity = 0; |
23341 | 3.07k | Py_ssize_t _n = 0; |
23342 | 3.07k | { // ',' (slice | starred_expression) |
23343 | 3.07k | if (p->error_indicator) { |
23344 | 0 | p->level--; |
23345 | 0 | return NULL; |
23346 | 0 | } |
23347 | 3.07k | D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (slice | starred_expression)")); |
23348 | 3.07k | Token * _literal; |
23349 | 3.07k | void *elem; |
23350 | 3.07k | while ( |
23351 | 9.57k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
23352 | 7.17k | && |
23353 | 7.17k | (elem = _tmp_184_rule(p)) // slice | starred_expression |
23354 | 3.07k | ) |
23355 | 6.50k | { |
23356 | 6.50k | _res = elem; |
23357 | 6.50k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
23358 | 0 | p->error_indicator = 1; |
23359 | 0 | PyMem_Free(_children); |
23360 | 0 | p->level--; |
23361 | 0 | return NULL; |
23362 | 0 | } |
23363 | 6.50k | if (_n == _children_capacity) { |
23364 | 3.80k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
23365 | 0 | p->error_indicator = 1; |
23366 | 0 | PyErr_NoMemory(); |
23367 | 0 | PyMem_Free(_children); |
23368 | 0 | p->level--; |
23369 | 0 | return NULL; |
23370 | 0 | } |
23371 | 3.80k | } |
23372 | 6.50k | _children[_n++] = _res; |
23373 | 6.50k | _mark = p->mark; |
23374 | 6.50k | } |
23375 | 3.07k | p->mark = _mark; |
23376 | 3.07k | D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ', |
23377 | 3.07k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (slice | starred_expression)")); |
23378 | 3.07k | } |
23379 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
23380 | 3.07k | if (!_seq) { |
23381 | 0 | p->error_indicator = 1; |
23382 | 0 | PyErr_NoMemory(); |
23383 | 0 | PyMem_Free(_children); |
23384 | 0 | p->level--; |
23385 | 0 | return NULL; |
23386 | 0 | } |
23387 | 9.57k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
23388 | 3.07k | PyMem_Free(_children); |
23389 | 3.07k | p->level--; |
23390 | 3.07k | return _seq; |
23391 | 3.07k | } |
23392 | | |
23393 | | // _gather_64: (slice | starred_expression) _loop0_63 |
23394 | | static asdl_seq * |
23395 | | _gather_64_rule(Parser *p) |
23396 | 4.50k | { |
23397 | 4.50k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23398 | 0 | _Pypegen_stack_overflow(p); |
23399 | 0 | } |
23400 | 4.50k | if (p->error_indicator) { |
23401 | 0 | p->level--; |
23402 | 0 | return NULL; |
23403 | 0 | } |
23404 | 4.50k | asdl_seq * _res = NULL; |
23405 | 4.50k | int _mark = p->mark; |
23406 | 4.50k | { // (slice | starred_expression) _loop0_63 |
23407 | 4.50k | if (p->error_indicator) { |
23408 | 0 | p->level--; |
23409 | 0 | return NULL; |
23410 | 0 | } |
23411 | 4.50k | D(fprintf(stderr, "%*c> _gather_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(slice | starred_expression) _loop0_63")); |
23412 | 4.50k | void *elem; |
23413 | 4.50k | asdl_seq * seq; |
23414 | 4.50k | if ( |
23415 | 4.50k | (elem = _tmp_184_rule(p)) // slice | starred_expression |
23416 | 3.07k | && |
23417 | 3.07k | (seq = _loop0_63_rule(p)) // _loop0_63 |
23418 | 4.50k | ) |
23419 | 3.07k | { |
23420 | 3.07k | D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(slice | starred_expression) _loop0_63")); |
23421 | 3.07k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
23422 | 3.07k | goto done; |
23423 | 3.07k | } |
23424 | 1.42k | p->mark = _mark; |
23425 | 1.42k | D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ', |
23426 | 1.42k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(slice | starred_expression) _loop0_63")); |
23427 | 1.42k | } |
23428 | 1.42k | _res = NULL; |
23429 | 4.50k | done: |
23430 | 4.50k | p->level--; |
23431 | 4.50k | return _res; |
23432 | 1.42k | } |
23433 | | |
23434 | | // _tmp_65: ':' expression? |
23435 | | static void * |
23436 | | _tmp_65_rule(Parser *p) |
23437 | 5.29k | { |
23438 | 5.29k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23439 | 0 | _Pypegen_stack_overflow(p); |
23440 | 0 | } |
23441 | 5.29k | if (p->error_indicator) { |
23442 | 0 | p->level--; |
23443 | 0 | return NULL; |
23444 | 0 | } |
23445 | 5.29k | void * _res = NULL; |
23446 | 5.29k | int _mark = p->mark; |
23447 | 5.29k | { // ':' expression? |
23448 | 5.29k | if (p->error_indicator) { |
23449 | 0 | p->level--; |
23450 | 0 | return NULL; |
23451 | 0 | } |
23452 | 5.29k | D(fprintf(stderr, "%*c> _tmp_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?")); |
23453 | 5.29k | Token * _literal; |
23454 | 5.29k | void *d; |
23455 | 5.29k | if ( |
23456 | 5.29k | (_literal = _PyPegen_expect_token(p, 11)) // token=':' |
23457 | 1.83k | && |
23458 | 1.83k | (d = expression_rule(p), !p->error_indicator) // expression? |
23459 | 5.29k | ) |
23460 | 1.75k | { |
23461 | 1.75k | D(fprintf(stderr, "%*c+ _tmp_65[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?")); |
23462 | 1.75k | _res = d; |
23463 | 1.75k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
23464 | 0 | p->error_indicator = 1; |
23465 | 0 | p->level--; |
23466 | 0 | return NULL; |
23467 | 0 | } |
23468 | 1.75k | goto done; |
23469 | 1.75k | } |
23470 | 3.54k | p->mark = _mark; |
23471 | 3.54k | D(fprintf(stderr, "%*c%s _tmp_65[%d-%d]: %s failed!\n", p->level, ' ', |
23472 | 3.54k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?")); |
23473 | 3.54k | } |
23474 | 3.54k | _res = NULL; |
23475 | 5.29k | done: |
23476 | 5.29k | p->level--; |
23477 | 5.29k | return _res; |
23478 | 3.54k | } |
23479 | | |
23480 | | // _tmp_66: genexp | tuple | group |
23481 | | static void * |
23482 | | _tmp_66_rule(Parser *p) |
23483 | 65.1k | { |
23484 | 65.1k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23485 | 0 | _Pypegen_stack_overflow(p); |
23486 | 0 | } |
23487 | 65.1k | if (p->error_indicator) { |
23488 | 0 | p->level--; |
23489 | 0 | return NULL; |
23490 | 0 | } |
23491 | 65.1k | void * _res = NULL; |
23492 | 65.1k | int _mark = p->mark; |
23493 | 65.1k | { // genexp |
23494 | 65.1k | if (p->error_indicator) { |
23495 | 0 | p->level--; |
23496 | 0 | return NULL; |
23497 | 0 | } |
23498 | 65.1k | D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp")); |
23499 | 65.1k | expr_ty genexp_var; |
23500 | 65.1k | if ( |
23501 | 65.1k | (genexp_var = genexp_rule(p)) // genexp |
23502 | 65.1k | ) |
23503 | 1.71k | { |
23504 | 1.71k | D(fprintf(stderr, "%*c+ _tmp_66[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp")); |
23505 | 1.71k | _res = genexp_var; |
23506 | 1.71k | goto done; |
23507 | 1.71k | } |
23508 | 63.3k | p->mark = _mark; |
23509 | 63.3k | D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ', |
23510 | 63.3k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp")); |
23511 | 63.3k | } |
23512 | 0 | { // tuple |
23513 | 63.3k | if (p->error_indicator) { |
23514 | 5.72k | p->level--; |
23515 | 5.72k | return NULL; |
23516 | 5.72k | } |
23517 | 57.6k | D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple")); |
23518 | 57.6k | expr_ty tuple_var; |
23519 | 57.6k | if ( |
23520 | 57.6k | (tuple_var = tuple_rule(p)) // tuple |
23521 | 57.6k | ) |
23522 | 33.0k | { |
23523 | 33.0k | D(fprintf(stderr, "%*c+ _tmp_66[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple")); |
23524 | 33.0k | _res = tuple_var; |
23525 | 33.0k | goto done; |
23526 | 33.0k | } |
23527 | 24.6k | p->mark = _mark; |
23528 | 24.6k | D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ', |
23529 | 24.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple")); |
23530 | 24.6k | } |
23531 | 0 | { // group |
23532 | 24.6k | if (p->error_indicator) { |
23533 | 914 | p->level--; |
23534 | 914 | return NULL; |
23535 | 914 | } |
23536 | 23.7k | D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group")); |
23537 | 23.7k | expr_ty group_var; |
23538 | 23.7k | if ( |
23539 | 23.7k | (group_var = group_rule(p)) // group |
23540 | 23.7k | ) |
23541 | 7.71k | { |
23542 | 7.71k | D(fprintf(stderr, "%*c+ _tmp_66[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group")); |
23543 | 7.71k | _res = group_var; |
23544 | 7.71k | goto done; |
23545 | 7.71k | } |
23546 | 16.0k | p->mark = _mark; |
23547 | 16.0k | D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ', |
23548 | 16.0k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group")); |
23549 | 16.0k | } |
23550 | 16.0k | _res = NULL; |
23551 | 58.4k | done: |
23552 | 58.4k | p->level--; |
23553 | 58.4k | return _res; |
23554 | 16.0k | } |
23555 | | |
23556 | | // _tmp_67: listcomp | list |
23557 | | static void * |
23558 | | _tmp_67_rule(Parser *p) |
23559 | 44.0k | { |
23560 | 44.0k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23561 | 0 | _Pypegen_stack_overflow(p); |
23562 | 0 | } |
23563 | 44.0k | if (p->error_indicator) { |
23564 | 0 | p->level--; |
23565 | 0 | return NULL; |
23566 | 0 | } |
23567 | 44.0k | void * _res = NULL; |
23568 | 44.0k | int _mark = p->mark; |
23569 | 44.0k | { // listcomp |
23570 | 44.0k | if (p->error_indicator) { |
23571 | 0 | p->level--; |
23572 | 0 | return NULL; |
23573 | 0 | } |
23574 | 44.0k | D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp")); |
23575 | 44.0k | expr_ty listcomp_var; |
23576 | 44.0k | if ( |
23577 | 44.0k | (listcomp_var = listcomp_rule(p)) // listcomp |
23578 | 44.0k | ) |
23579 | 918 | { |
23580 | 918 | D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp")); |
23581 | 918 | _res = listcomp_var; |
23582 | 918 | goto done; |
23583 | 918 | } |
23584 | 43.1k | p->mark = _mark; |
23585 | 43.1k | D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ', |
23586 | 43.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp")); |
23587 | 43.1k | } |
23588 | 0 | { // list |
23589 | 43.1k | if (p->error_indicator) { |
23590 | 15.8k | p->level--; |
23591 | 15.8k | return NULL; |
23592 | 15.8k | } |
23593 | 27.3k | D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list")); |
23594 | 27.3k | expr_ty list_var; |
23595 | 27.3k | if ( |
23596 | 27.3k | (list_var = list_rule(p)) // list |
23597 | 27.3k | ) |
23598 | 7.93k | { |
23599 | 7.93k | D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list")); |
23600 | 7.93k | _res = list_var; |
23601 | 7.93k | goto done; |
23602 | 7.93k | } |
23603 | 19.3k | p->mark = _mark; |
23604 | 19.3k | D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ', |
23605 | 19.3k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list")); |
23606 | 19.3k | } |
23607 | 19.3k | _res = NULL; |
23608 | 28.2k | done: |
23609 | 28.2k | p->level--; |
23610 | 28.2k | return _res; |
23611 | 19.3k | } |
23612 | | |
23613 | | // _tmp_68: dictcomp | setcomp | dict | set |
23614 | | static void * |
23615 | | _tmp_68_rule(Parser *p) |
23616 | 25.1k | { |
23617 | 25.1k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23618 | 0 | _Pypegen_stack_overflow(p); |
23619 | 0 | } |
23620 | 25.1k | if (p->error_indicator) { |
23621 | 0 | p->level--; |
23622 | 0 | return NULL; |
23623 | 0 | } |
23624 | 25.1k | void * _res = NULL; |
23625 | 25.1k | int _mark = p->mark; |
23626 | 25.1k | { // dictcomp |
23627 | 25.1k | if (p->error_indicator) { |
23628 | 0 | p->level--; |
23629 | 0 | return NULL; |
23630 | 0 | } |
23631 | 25.1k | D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp")); |
23632 | 25.1k | expr_ty dictcomp_var; |
23633 | 25.1k | if ( |
23634 | 25.1k | (dictcomp_var = dictcomp_rule(p)) // dictcomp |
23635 | 25.1k | ) |
23636 | 1.26k | { |
23637 | 1.26k | D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp")); |
23638 | 1.26k | _res = dictcomp_var; |
23639 | 1.26k | goto done; |
23640 | 1.26k | } |
23641 | 23.9k | p->mark = _mark; |
23642 | 23.9k | D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ', |
23643 | 23.9k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp")); |
23644 | 23.9k | } |
23645 | 0 | { // setcomp |
23646 | 23.9k | if (p->error_indicator) { |
23647 | 3.70k | p->level--; |
23648 | 3.70k | return NULL; |
23649 | 3.70k | } |
23650 | 20.2k | D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp")); |
23651 | 20.2k | expr_ty setcomp_var; |
23652 | 20.2k | if ( |
23653 | 20.2k | (setcomp_var = setcomp_rule(p)) // setcomp |
23654 | 20.2k | ) |
23655 | 780 | { |
23656 | 780 | D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp")); |
23657 | 780 | _res = setcomp_var; |
23658 | 780 | goto done; |
23659 | 780 | } |
23660 | 19.4k | p->mark = _mark; |
23661 | 19.4k | D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ', |
23662 | 19.4k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp")); |
23663 | 19.4k | } |
23664 | 0 | { // dict |
23665 | 19.4k | if (p->error_indicator) { |
23666 | 662 | p->level--; |
23667 | 662 | return NULL; |
23668 | 662 | } |
23669 | 18.7k | D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict")); |
23670 | 18.7k | expr_ty dict_var; |
23671 | 18.7k | if ( |
23672 | 18.7k | (dict_var = dict_rule(p)) // dict |
23673 | 18.7k | ) |
23674 | 4.03k | { |
23675 | 4.03k | D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict")); |
23676 | 4.03k | _res = dict_var; |
23677 | 4.03k | goto done; |
23678 | 4.03k | } |
23679 | 14.7k | p->mark = _mark; |
23680 | 14.7k | D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ', |
23681 | 14.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict")); |
23682 | 14.7k | } |
23683 | 0 | { // set |
23684 | 14.7k | if (p->error_indicator) { |
23685 | 2.21k | p->level--; |
23686 | 2.21k | return NULL; |
23687 | 2.21k | } |
23688 | 12.5k | D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set")); |
23689 | 12.5k | expr_ty set_var; |
23690 | 12.5k | if ( |
23691 | 12.5k | (set_var = set_rule(p)) // set |
23692 | 12.5k | ) |
23693 | 2.40k | { |
23694 | 2.40k | D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set")); |
23695 | 2.40k | _res = set_var; |
23696 | 2.40k | goto done; |
23697 | 2.40k | } |
23698 | 10.1k | p->mark = _mark; |
23699 | 10.1k | D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ', |
23700 | 10.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set")); |
23701 | 10.1k | } |
23702 | 10.1k | _res = NULL; |
23703 | 18.6k | done: |
23704 | 18.6k | p->level--; |
23705 | 18.6k | return _res; |
23706 | 10.1k | } |
23707 | | |
23708 | | // _tmp_69: yield_expr | named_expression |
23709 | | static void * |
23710 | | _tmp_69_rule(Parser *p) |
23711 | 23.7k | { |
23712 | 23.7k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23713 | 0 | _Pypegen_stack_overflow(p); |
23714 | 0 | } |
23715 | 23.7k | if (p->error_indicator) { |
23716 | 0 | p->level--; |
23717 | 0 | return NULL; |
23718 | 0 | } |
23719 | 23.7k | void * _res = NULL; |
23720 | 23.7k | int _mark = p->mark; |
23721 | 23.7k | { // yield_expr |
23722 | 23.7k | if (p->error_indicator) { |
23723 | 0 | p->level--; |
23724 | 0 | return NULL; |
23725 | 0 | } |
23726 | 23.7k | D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); |
23727 | 23.7k | expr_ty yield_expr_var; |
23728 | 23.7k | if ( |
23729 | 23.7k | (yield_expr_var = yield_expr_rule(p)) // yield_expr |
23730 | 23.7k | ) |
23731 | 473 | { |
23732 | 473 | D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); |
23733 | 473 | _res = yield_expr_var; |
23734 | 473 | goto done; |
23735 | 473 | } |
23736 | 23.2k | p->mark = _mark; |
23737 | 23.2k | D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ', |
23738 | 23.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); |
23739 | 23.2k | } |
23740 | 0 | { // named_expression |
23741 | 23.2k | if (p->error_indicator) { |
23742 | 307 | p->level--; |
23743 | 307 | return NULL; |
23744 | 307 | } |
23745 | 22.9k | D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression")); |
23746 | 22.9k | expr_ty named_expression_var; |
23747 | 22.9k | if ( |
23748 | 22.9k | (named_expression_var = named_expression_rule(p)) // named_expression |
23749 | 22.9k | ) |
23750 | 16.7k | { |
23751 | 16.7k | D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression")); |
23752 | 16.7k | _res = named_expression_var; |
23753 | 16.7k | goto done; |
23754 | 16.7k | } |
23755 | 6.20k | p->mark = _mark; |
23756 | 6.20k | D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ', |
23757 | 6.20k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression")); |
23758 | 6.20k | } |
23759 | 6.20k | _res = NULL; |
23760 | 23.4k | done: |
23761 | 23.4k | p->level--; |
23762 | 23.4k | return _res; |
23763 | 6.20k | } |
23764 | | |
23765 | | // _loop0_70: lambda_param_no_default |
23766 | | static asdl_seq * |
23767 | | _loop0_70_rule(Parser *p) |
23768 | 1.43M | { |
23769 | 1.43M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23770 | 0 | _Pypegen_stack_overflow(p); |
23771 | 0 | } |
23772 | 1.43M | if (p->error_indicator) { |
23773 | 0 | p->level--; |
23774 | 0 | return NULL; |
23775 | 0 | } |
23776 | 1.43M | void *_res = NULL; |
23777 | 1.43M | int _mark = p->mark; |
23778 | 1.43M | void **_children = NULL; |
23779 | 1.43M | Py_ssize_t _children_capacity = 0; |
23780 | 1.43M | Py_ssize_t _n = 0; |
23781 | 1.43M | { // lambda_param_no_default |
23782 | 1.43M | if (p->error_indicator) { |
23783 | 0 | p->level--; |
23784 | 0 | return NULL; |
23785 | 0 | } |
23786 | 1.43M | D(fprintf(stderr, "%*c> _loop0_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); |
23787 | 1.43M | arg_ty lambda_param_no_default_var; |
23788 | 1.43M | while ( |
23789 | 2.53M | (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default |
23790 | 1.43M | ) |
23791 | 1.09M | { |
23792 | 1.09M | _res = lambda_param_no_default_var; |
23793 | 1.09M | if (_n == _children_capacity) { |
23794 | 1.06M | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
23795 | 0 | p->error_indicator = 1; |
23796 | 0 | PyErr_NoMemory(); |
23797 | 0 | PyMem_Free(_children); |
23798 | 0 | p->level--; |
23799 | 0 | return NULL; |
23800 | 0 | } |
23801 | 1.06M | } |
23802 | 1.09M | _children[_n++] = _res; |
23803 | 1.09M | _mark = p->mark; |
23804 | 1.09M | } |
23805 | 1.43M | p->mark = _mark; |
23806 | 1.43M | D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ', |
23807 | 1.43M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); |
23808 | 1.43M | } |
23809 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
23810 | 1.43M | if (!_seq) { |
23811 | 0 | p->error_indicator = 1; |
23812 | 0 | PyErr_NoMemory(); |
23813 | 0 | PyMem_Free(_children); |
23814 | 0 | p->level--; |
23815 | 0 | return NULL; |
23816 | 0 | } |
23817 | 2.53M | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
23818 | 1.43M | PyMem_Free(_children); |
23819 | 1.43M | p->level--; |
23820 | 1.43M | return _seq; |
23821 | 1.43M | } |
23822 | | |
23823 | | // _loop0_71: lambda_param_with_default |
23824 | | static asdl_seq * |
23825 | | _loop0_71_rule(Parser *p) |
23826 | 214k | { |
23827 | 214k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23828 | 0 | _Pypegen_stack_overflow(p); |
23829 | 0 | } |
23830 | 214k | if (p->error_indicator) { |
23831 | 1 | p->level--; |
23832 | 1 | return NULL; |
23833 | 1 | } |
23834 | 214k | void *_res = NULL; |
23835 | 214k | int _mark = p->mark; |
23836 | 214k | void **_children = NULL; |
23837 | 214k | Py_ssize_t _children_capacity = 0; |
23838 | 214k | Py_ssize_t _n = 0; |
23839 | 214k | { // lambda_param_with_default |
23840 | 214k | if (p->error_indicator) { |
23841 | 0 | p->level--; |
23842 | 0 | return NULL; |
23843 | 0 | } |
23844 | 214k | D(fprintf(stderr, "%*c> _loop0_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); |
23845 | 214k | NameDefaultPair* lambda_param_with_default_var; |
23846 | 214k | while ( |
23847 | 215k | (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default |
23848 | 214k | ) |
23849 | 1.00k | { |
23850 | 1.00k | _res = lambda_param_with_default_var; |
23851 | 1.00k | if (_n == _children_capacity) { |
23852 | 594 | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
23853 | 0 | p->error_indicator = 1; |
23854 | 0 | PyErr_NoMemory(); |
23855 | 0 | PyMem_Free(_children); |
23856 | 0 | p->level--; |
23857 | 0 | return NULL; |
23858 | 0 | } |
23859 | 594 | } |
23860 | 1.00k | _children[_n++] = _res; |
23861 | 1.00k | _mark = p->mark; |
23862 | 1.00k | } |
23863 | 214k | p->mark = _mark; |
23864 | 214k | D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ', |
23865 | 214k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default")); |
23866 | 214k | } |
23867 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
23868 | 214k | if (!_seq) { |
23869 | 0 | p->error_indicator = 1; |
23870 | 0 | PyErr_NoMemory(); |
23871 | 0 | PyMem_Free(_children); |
23872 | 0 | p->level--; |
23873 | 0 | return NULL; |
23874 | 0 | } |
23875 | 215k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
23876 | 214k | PyMem_Free(_children); |
23877 | 214k | p->level--; |
23878 | 214k | return _seq; |
23879 | 214k | } |
23880 | | |
23881 | | // _loop1_72: lambda_param_no_default |
23882 | | static asdl_seq * |
23883 | | _loop1_72_rule(Parser *p) |
23884 | 1.66M | { |
23885 | 1.66M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23886 | 0 | _Pypegen_stack_overflow(p); |
23887 | 0 | } |
23888 | 1.66M | if (p->error_indicator) { |
23889 | 0 | p->level--; |
23890 | 0 | return NULL; |
23891 | 0 | } |
23892 | 1.66M | void *_res = NULL; |
23893 | 1.66M | int _mark = p->mark; |
23894 | 1.66M | void **_children = NULL; |
23895 | 1.66M | Py_ssize_t _children_capacity = 0; |
23896 | 1.66M | Py_ssize_t _n = 0; |
23897 | 1.66M | { // lambda_param_no_default |
23898 | 1.66M | if (p->error_indicator) { |
23899 | 0 | p->level--; |
23900 | 0 | return NULL; |
23901 | 0 | } |
23902 | 1.66M | D(fprintf(stderr, "%*c> _loop1_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); |
23903 | 1.66M | arg_ty lambda_param_no_default_var; |
23904 | 1.66M | while ( |
23905 | 3.30M | (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default |
23906 | 1.66M | ) |
23907 | 1.64M | { |
23908 | 1.64M | _res = lambda_param_no_default_var; |
23909 | 1.64M | if (_n == _children_capacity) { |
23910 | 1.59M | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
23911 | 0 | p->error_indicator = 1; |
23912 | 0 | PyErr_NoMemory(); |
23913 | 0 | PyMem_Free(_children); |
23914 | 0 | p->level--; |
23915 | 0 | return NULL; |
23916 | 0 | } |
23917 | 1.59M | } |
23918 | 1.64M | _children[_n++] = _res; |
23919 | 1.64M | _mark = p->mark; |
23920 | 1.64M | } |
23921 | 1.66M | p->mark = _mark; |
23922 | 1.66M | D(fprintf(stderr, "%*c%s _loop1_72[%d-%d]: %s failed!\n", p->level, ' ', |
23923 | 1.66M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); |
23924 | 1.66M | } |
23925 | 1.66M | if (_n == 0 || p->error_indicator) { |
23926 | 71.1k | PyMem_Free(_children); |
23927 | 71.1k | p->level--; |
23928 | 71.1k | return NULL; |
23929 | 71.1k | } |
23930 | 1.59M | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
23931 | 1.59M | if (!_seq) { |
23932 | 0 | p->error_indicator = 1; |
23933 | 0 | PyErr_NoMemory(); |
23934 | 0 | PyMem_Free(_children); |
23935 | 0 | p->level--; |
23936 | 0 | return NULL; |
23937 | 0 | } |
23938 | 3.23M | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
23939 | 1.59M | PyMem_Free(_children); |
23940 | 1.59M | p->level--; |
23941 | 1.59M | return _seq; |
23942 | 1.59M | } |
23943 | | |
23944 | | // _loop1_73: lambda_param_with_default |
23945 | | static asdl_seq * |
23946 | | _loop1_73_rule(Parser *p) |
23947 | 1.44M | { |
23948 | 1.44M | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
23949 | 0 | _Pypegen_stack_overflow(p); |
23950 | 0 | } |
23951 | 1.44M | if (p->error_indicator) { |
23952 | 0 | p->level--; |
23953 | 0 | return NULL; |
23954 | 0 | } |
23955 | 1.44M | void *_res = NULL; |
23956 | 1.44M | int _mark = p->mark; |
23957 | 1.44M | void **_children = NULL; |
23958 | 1.44M | Py_ssize_t _children_capacity = 0; |
23959 | 1.44M | Py_ssize_t _n = 0; |
23960 | 1.44M | { // lambda_param_with_default |
23961 | 1.44M | if (p->error_indicator) { |
23962 | 0 | p->level--; |
23963 | 0 | return NULL; |
23964 | 0 | } |
23965 | 1.44M | D(fprintf(stderr, "%*c> _loop1_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); |
23966 | 1.44M | NameDefaultPair* lambda_param_with_default_var; |
23967 | 1.44M | while ( |
23968 | 1.47M | (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default |
23969 | 1.44M | ) |
23970 | 24.2k | { |
23971 | 24.2k | _res = lambda_param_with_default_var; |
23972 | 24.2k | if (_n == _children_capacity) { |
23973 | 19.2k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
23974 | 0 | p->error_indicator = 1; |
23975 | 0 | PyErr_NoMemory(); |
23976 | 0 | PyMem_Free(_children); |
23977 | 0 | p->level--; |
23978 | 0 | return NULL; |
23979 | 0 | } |
23980 | 19.2k | } |
23981 | 24.2k | _children[_n++] = _res; |
23982 | 24.2k | _mark = p->mark; |
23983 | 24.2k | } |
23984 | 1.44M | p->mark = _mark; |
23985 | 1.44M | D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ', |
23986 | 1.44M | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default")); |
23987 | 1.44M | } |
23988 | 1.44M | if (_n == 0 || p->error_indicator) { |
23989 | 1.42M | PyMem_Free(_children); |
23990 | 1.42M | p->level--; |
23991 | 1.42M | return NULL; |
23992 | 1.42M | } |
23993 | 17.0k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
23994 | 17.0k | if (!_seq) { |
23995 | 0 | p->error_indicator = 1; |
23996 | 0 | PyErr_NoMemory(); |
23997 | 0 | PyMem_Free(_children); |
23998 | 0 | p->level--; |
23999 | 0 | return NULL; |
24000 | 0 | } |
24001 | 41.0k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
24002 | 17.0k | PyMem_Free(_children); |
24003 | 17.0k | p->level--; |
24004 | 17.0k | return _seq; |
24005 | 17.0k | } |
24006 | | |
24007 | | // _loop0_74: lambda_param_maybe_default |
24008 | | static asdl_seq * |
24009 | | _loop0_74_rule(Parser *p) |
24010 | 2.04k | { |
24011 | 2.04k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24012 | 0 | _Pypegen_stack_overflow(p); |
24013 | 0 | } |
24014 | 2.04k | if (p->error_indicator) { |
24015 | 0 | p->level--; |
24016 | 0 | return NULL; |
24017 | 0 | } |
24018 | 2.04k | void *_res = NULL; |
24019 | 2.04k | int _mark = p->mark; |
24020 | 2.04k | void **_children = NULL; |
24021 | 2.04k | Py_ssize_t _children_capacity = 0; |
24022 | 2.04k | Py_ssize_t _n = 0; |
24023 | 2.04k | { // lambda_param_maybe_default |
24024 | 2.04k | if (p->error_indicator) { |
24025 | 0 | p->level--; |
24026 | 0 | return NULL; |
24027 | 0 | } |
24028 | 2.04k | D(fprintf(stderr, "%*c> _loop0_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); |
24029 | 2.04k | NameDefaultPair* lambda_param_maybe_default_var; |
24030 | 2.04k | while ( |
24031 | 2.96k | (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default |
24032 | 2.04k | ) |
24033 | 919 | { |
24034 | 919 | _res = lambda_param_maybe_default_var; |
24035 | 919 | if (_n == _children_capacity) { |
24036 | 628 | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
24037 | 0 | p->error_indicator = 1; |
24038 | 0 | PyErr_NoMemory(); |
24039 | 0 | PyMem_Free(_children); |
24040 | 0 | p->level--; |
24041 | 0 | return NULL; |
24042 | 0 | } |
24043 | 628 | } |
24044 | 919 | _children[_n++] = _res; |
24045 | 919 | _mark = p->mark; |
24046 | 919 | } |
24047 | 2.04k | p->mark = _mark; |
24048 | 2.04k | D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ', |
24049 | 2.04k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); |
24050 | 2.04k | } |
24051 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
24052 | 2.04k | if (!_seq) { |
24053 | 0 | p->error_indicator = 1; |
24054 | 0 | PyErr_NoMemory(); |
24055 | 0 | PyMem_Free(_children); |
24056 | 0 | p->level--; |
24057 | 0 | return NULL; |
24058 | 0 | } |
24059 | 2.96k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
24060 | 2.04k | PyMem_Free(_children); |
24061 | 2.04k | p->level--; |
24062 | 2.04k | return _seq; |
24063 | 2.04k | } |
24064 | | |
24065 | | // _loop1_75: lambda_param_maybe_default |
24066 | | static asdl_seq * |
24067 | | _loop1_75_rule(Parser *p) |
24068 | 2.22k | { |
24069 | 2.22k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24070 | 0 | _Pypegen_stack_overflow(p); |
24071 | 0 | } |
24072 | 2.22k | if (p->error_indicator) { |
24073 | 0 | p->level--; |
24074 | 0 | return NULL; |
24075 | 0 | } |
24076 | 2.22k | void *_res = NULL; |
24077 | 2.22k | int _mark = p->mark; |
24078 | 2.22k | void **_children = NULL; |
24079 | 2.22k | Py_ssize_t _children_capacity = 0; |
24080 | 2.22k | Py_ssize_t _n = 0; |
24081 | 2.22k | { // lambda_param_maybe_default |
24082 | 2.22k | if (p->error_indicator) { |
24083 | 0 | p->level--; |
24084 | 0 | return NULL; |
24085 | 0 | } |
24086 | 2.22k | D(fprintf(stderr, "%*c> _loop1_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default")); |
24087 | 2.22k | NameDefaultPair* lambda_param_maybe_default_var; |
24088 | 2.22k | while ( |
24089 | 3.69k | (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default |
24090 | 2.22k | ) |
24091 | 1.47k | { |
24092 | 1.47k | _res = lambda_param_maybe_default_var; |
24093 | 1.47k | if (_n == _children_capacity) { |
24094 | 665 | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
24095 | 0 | p->error_indicator = 1; |
24096 | 0 | PyErr_NoMemory(); |
24097 | 0 | PyMem_Free(_children); |
24098 | 0 | p->level--; |
24099 | 0 | return NULL; |
24100 | 0 | } |
24101 | 665 | } |
24102 | 1.47k | _children[_n++] = _res; |
24103 | 1.47k | _mark = p->mark; |
24104 | 1.47k | } |
24105 | 2.22k | p->mark = _mark; |
24106 | 2.22k | D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ', |
24107 | 2.22k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default")); |
24108 | 2.22k | } |
24109 | 2.22k | if (_n == 0 || p->error_indicator) { |
24110 | 1.87k | PyMem_Free(_children); |
24111 | 1.87k | p->level--; |
24112 | 1.87k | return NULL; |
24113 | 1.87k | } |
24114 | 348 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
24115 | 348 | if (!_seq) { |
24116 | 0 | p->error_indicator = 1; |
24117 | 0 | PyErr_NoMemory(); |
24118 | 0 | PyMem_Free(_children); |
24119 | 0 | p->level--; |
24120 | 0 | return NULL; |
24121 | 0 | } |
24122 | 1.70k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
24123 | 348 | PyMem_Free(_children); |
24124 | 348 | p->level--; |
24125 | 348 | return _seq; |
24126 | 348 | } |
24127 | | |
24128 | | // _loop0_76: fstring_format_spec |
24129 | | static asdl_seq * |
24130 | | _loop0_76_rule(Parser *p) |
24131 | 3.76k | { |
24132 | 3.76k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24133 | 0 | _Pypegen_stack_overflow(p); |
24134 | 0 | } |
24135 | 3.76k | if (p->error_indicator) { |
24136 | 0 | p->level--; |
24137 | 0 | return NULL; |
24138 | 0 | } |
24139 | 3.76k | void *_res = NULL; |
24140 | 3.76k | int _mark = p->mark; |
24141 | 3.76k | void **_children = NULL; |
24142 | 3.76k | Py_ssize_t _children_capacity = 0; |
24143 | 3.76k | Py_ssize_t _n = 0; |
24144 | 3.76k | { // fstring_format_spec |
24145 | 3.76k | if (p->error_indicator) { |
24146 | 0 | p->level--; |
24147 | 0 | return NULL; |
24148 | 0 | } |
24149 | 3.76k | D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring_format_spec")); |
24150 | 3.76k | expr_ty fstring_format_spec_var; |
24151 | 3.76k | while ( |
24152 | 11.6k | (fstring_format_spec_var = fstring_format_spec_rule(p)) // fstring_format_spec |
24153 | 3.76k | ) |
24154 | 7.87k | { |
24155 | 7.87k | _res = fstring_format_spec_var; |
24156 | 7.87k | if (_n == _children_capacity) { |
24157 | 4.42k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
24158 | 0 | p->error_indicator = 1; |
24159 | 0 | PyErr_NoMemory(); |
24160 | 0 | PyMem_Free(_children); |
24161 | 0 | p->level--; |
24162 | 0 | return NULL; |
24163 | 0 | } |
24164 | 4.42k | } |
24165 | 7.87k | _children[_n++] = _res; |
24166 | 7.87k | _mark = p->mark; |
24167 | 7.87k | } |
24168 | 3.76k | p->mark = _mark; |
24169 | 3.76k | D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ', |
24170 | 3.76k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_format_spec")); |
24171 | 3.76k | } |
24172 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
24173 | 3.76k | if (!_seq) { |
24174 | 0 | p->error_indicator = 1; |
24175 | 0 | PyErr_NoMemory(); |
24176 | 0 | PyMem_Free(_children); |
24177 | 0 | p->level--; |
24178 | 0 | return NULL; |
24179 | 0 | } |
24180 | 11.6k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
24181 | 3.76k | PyMem_Free(_children); |
24182 | 3.76k | p->level--; |
24183 | 3.76k | return _seq; |
24184 | 3.76k | } |
24185 | | |
24186 | | // _loop0_77: fstring_middle |
24187 | | static asdl_seq * |
24188 | | _loop0_77_rule(Parser *p) |
24189 | 22.6k | { |
24190 | 22.6k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24191 | 1 | _Pypegen_stack_overflow(p); |
24192 | 1 | } |
24193 | 22.6k | if (p->error_indicator) { |
24194 | 1 | p->level--; |
24195 | 1 | return NULL; |
24196 | 1 | } |
24197 | 22.6k | void *_res = NULL; |
24198 | 22.6k | int _mark = p->mark; |
24199 | 22.6k | void **_children = NULL; |
24200 | 22.6k | Py_ssize_t _children_capacity = 0; |
24201 | 22.6k | Py_ssize_t _n = 0; |
24202 | 22.6k | { // fstring_middle |
24203 | 22.6k | if (p->error_indicator) { |
24204 | 0 | p->level--; |
24205 | 0 | return NULL; |
24206 | 0 | } |
24207 | 22.6k | D(fprintf(stderr, "%*c> _loop0_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring_middle")); |
24208 | 22.6k | expr_ty fstring_middle_var; |
24209 | 22.6k | while ( |
24210 | 65.6k | (fstring_middle_var = fstring_middle_rule(p)) // fstring_middle |
24211 | 22.6k | ) |
24212 | 43.0k | { |
24213 | 43.0k | _res = fstring_middle_var; |
24214 | 43.0k | if (_n == _children_capacity) { |
24215 | 22.4k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
24216 | 0 | p->error_indicator = 1; |
24217 | 0 | PyErr_NoMemory(); |
24218 | 0 | PyMem_Free(_children); |
24219 | 0 | p->level--; |
24220 | 0 | return NULL; |
24221 | 0 | } |
24222 | 22.4k | } |
24223 | 43.0k | _children[_n++] = _res; |
24224 | 43.0k | _mark = p->mark; |
24225 | 43.0k | } |
24226 | 22.6k | p->mark = _mark; |
24227 | 22.6k | D(fprintf(stderr, "%*c%s _loop0_77[%d-%d]: %s failed!\n", p->level, ' ', |
24228 | 22.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_middle")); |
24229 | 22.6k | } |
24230 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
24231 | 22.6k | if (!_seq) { |
24232 | 0 | p->error_indicator = 1; |
24233 | 0 | PyErr_NoMemory(); |
24234 | 0 | PyMem_Free(_children); |
24235 | 0 | p->level--; |
24236 | 0 | return NULL; |
24237 | 0 | } |
24238 | 65.6k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
24239 | 22.6k | PyMem_Free(_children); |
24240 | 22.6k | p->level--; |
24241 | 22.6k | return _seq; |
24242 | 22.6k | } |
24243 | | |
24244 | | // _loop0_78: tstring_format_spec |
24245 | | static asdl_seq * |
24246 | | _loop0_78_rule(Parser *p) |
24247 | 3.23k | { |
24248 | 3.23k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24249 | 0 | _Pypegen_stack_overflow(p); |
24250 | 0 | } |
24251 | 3.23k | if (p->error_indicator) { |
24252 | 0 | p->level--; |
24253 | 0 | return NULL; |
24254 | 0 | } |
24255 | 3.23k | void *_res = NULL; |
24256 | 3.23k | int _mark = p->mark; |
24257 | 3.23k | void **_children = NULL; |
24258 | 3.23k | Py_ssize_t _children_capacity = 0; |
24259 | 3.23k | Py_ssize_t _n = 0; |
24260 | 3.23k | { // tstring_format_spec |
24261 | 3.23k | if (p->error_indicator) { |
24262 | 0 | p->level--; |
24263 | 0 | return NULL; |
24264 | 0 | } |
24265 | 3.23k | D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tstring_format_spec")); |
24266 | 3.23k | expr_ty tstring_format_spec_var; |
24267 | 3.23k | while ( |
24268 | 7.13k | (tstring_format_spec_var = tstring_format_spec_rule(p)) // tstring_format_spec |
24269 | 3.23k | ) |
24270 | 3.90k | { |
24271 | 3.90k | _res = tstring_format_spec_var; |
24272 | 3.90k | if (_n == _children_capacity) { |
24273 | 2.73k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
24274 | 0 | p->error_indicator = 1; |
24275 | 0 | PyErr_NoMemory(); |
24276 | 0 | PyMem_Free(_children); |
24277 | 0 | p->level--; |
24278 | 0 | return NULL; |
24279 | 0 | } |
24280 | 2.73k | } |
24281 | 3.90k | _children[_n++] = _res; |
24282 | 3.90k | _mark = p->mark; |
24283 | 3.90k | } |
24284 | 3.23k | p->mark = _mark; |
24285 | 3.23k | D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ', |
24286 | 3.23k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tstring_format_spec")); |
24287 | 3.23k | } |
24288 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
24289 | 3.23k | if (!_seq) { |
24290 | 0 | p->error_indicator = 1; |
24291 | 0 | PyErr_NoMemory(); |
24292 | 0 | PyMem_Free(_children); |
24293 | 0 | p->level--; |
24294 | 0 | return NULL; |
24295 | 0 | } |
24296 | 7.13k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
24297 | 3.23k | PyMem_Free(_children); |
24298 | 3.23k | p->level--; |
24299 | 3.23k | return _seq; |
24300 | 3.23k | } |
24301 | | |
24302 | | // _loop0_79: tstring_middle |
24303 | | static asdl_seq * |
24304 | | _loop0_79_rule(Parser *p) |
24305 | 6.76k | { |
24306 | 6.76k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24307 | 0 | _Pypegen_stack_overflow(p); |
24308 | 0 | } |
24309 | 6.76k | if (p->error_indicator) { |
24310 | 0 | p->level--; |
24311 | 0 | return NULL; |
24312 | 0 | } |
24313 | 6.76k | void *_res = NULL; |
24314 | 6.76k | int _mark = p->mark; |
24315 | 6.76k | void **_children = NULL; |
24316 | 6.76k | Py_ssize_t _children_capacity = 0; |
24317 | 6.76k | Py_ssize_t _n = 0; |
24318 | 6.76k | { // tstring_middle |
24319 | 6.76k | if (p->error_indicator) { |
24320 | 0 | p->level--; |
24321 | 0 | return NULL; |
24322 | 0 | } |
24323 | 6.76k | D(fprintf(stderr, "%*c> _loop0_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tstring_middle")); |
24324 | 6.76k | expr_ty tstring_middle_var; |
24325 | 6.76k | while ( |
24326 | 23.3k | (tstring_middle_var = tstring_middle_rule(p)) // tstring_middle |
24327 | 6.76k | ) |
24328 | 16.5k | { |
24329 | 16.5k | _res = tstring_middle_var; |
24330 | 16.5k | if (_n == _children_capacity) { |
24331 | 4.52k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
24332 | 0 | p->error_indicator = 1; |
24333 | 0 | PyErr_NoMemory(); |
24334 | 0 | PyMem_Free(_children); |
24335 | 0 | p->level--; |
24336 | 0 | return NULL; |
24337 | 0 | } |
24338 | 4.52k | } |
24339 | 16.5k | _children[_n++] = _res; |
24340 | 16.5k | _mark = p->mark; |
24341 | 16.5k | } |
24342 | 6.76k | p->mark = _mark; |
24343 | 6.76k | D(fprintf(stderr, "%*c%s _loop0_79[%d-%d]: %s failed!\n", p->level, ' ', |
24344 | 6.76k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tstring_middle")); |
24345 | 6.76k | } |
24346 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
24347 | 6.76k | if (!_seq) { |
24348 | 0 | p->error_indicator = 1; |
24349 | 0 | PyErr_NoMemory(); |
24350 | 0 | PyMem_Free(_children); |
24351 | 0 | p->level--; |
24352 | 0 | return NULL; |
24353 | 0 | } |
24354 | 23.3k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
24355 | 6.76k | PyMem_Free(_children); |
24356 | 6.76k | p->level--; |
24357 | 6.76k | return _seq; |
24358 | 6.76k | } |
24359 | | |
24360 | | // _loop1_80: (fstring | string) |
24361 | | static asdl_seq * |
24362 | | _loop1_80_rule(Parser *p) |
24363 | 81.5k | { |
24364 | 81.5k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24365 | 1 | _Pypegen_stack_overflow(p); |
24366 | 1 | } |
24367 | 81.5k | if (p->error_indicator) { |
24368 | 1 | p->level--; |
24369 | 1 | return NULL; |
24370 | 1 | } |
24371 | 81.5k | void *_res = NULL; |
24372 | 81.5k | int _mark = p->mark; |
24373 | 81.5k | void **_children = NULL; |
24374 | 81.5k | Py_ssize_t _children_capacity = 0; |
24375 | 81.5k | Py_ssize_t _n = 0; |
24376 | 81.5k | { // (fstring | string) |
24377 | 81.5k | if (p->error_indicator) { |
24378 | 0 | p->level--; |
24379 | 0 | return NULL; |
24380 | 0 | } |
24381 | 81.5k | D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(fstring | string)")); |
24382 | 81.5k | void *_tmp_185_var; |
24383 | 81.5k | while ( |
24384 | 140k | (_tmp_185_var = _tmp_185_rule(p)) // fstring | string |
24385 | 81.5k | ) |
24386 | 58.9k | { |
24387 | 58.9k | _res = _tmp_185_var; |
24388 | 58.9k | if (_n == _children_capacity) { |
24389 | 35.5k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
24390 | 0 | p->error_indicator = 1; |
24391 | 0 | PyErr_NoMemory(); |
24392 | 0 | PyMem_Free(_children); |
24393 | 0 | p->level--; |
24394 | 0 | return NULL; |
24395 | 0 | } |
24396 | 35.5k | } |
24397 | 58.9k | _children[_n++] = _res; |
24398 | 58.9k | _mark = p->mark; |
24399 | 58.9k | } |
24400 | 81.5k | p->mark = _mark; |
24401 | 81.5k | D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ', |
24402 | 81.5k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(fstring | string)")); |
24403 | 81.5k | } |
24404 | 81.5k | if (_n == 0 || p->error_indicator) { |
24405 | 53.5k | PyMem_Free(_children); |
24406 | 53.5k | p->level--; |
24407 | 53.5k | return NULL; |
24408 | 53.5k | } |
24409 | 27.9k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
24410 | 27.9k | if (!_seq) { |
24411 | 0 | p->error_indicator = 1; |
24412 | 0 | PyErr_NoMemory(); |
24413 | 0 | PyMem_Free(_children); |
24414 | 0 | p->level--; |
24415 | 0 | return NULL; |
24416 | 0 | } |
24417 | 86.5k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
24418 | 27.9k | PyMem_Free(_children); |
24419 | 27.9k | p->level--; |
24420 | 27.9k | return _seq; |
24421 | 27.9k | } |
24422 | | |
24423 | | // _loop1_81: tstring |
24424 | | static asdl_seq * |
24425 | | _loop1_81_rule(Parser *p) |
24426 | 52.5k | { |
24427 | 52.5k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24428 | 0 | _Pypegen_stack_overflow(p); |
24429 | 0 | } |
24430 | 52.5k | if (p->error_indicator) { |
24431 | 0 | p->level--; |
24432 | 0 | return NULL; |
24433 | 0 | } |
24434 | 52.5k | void *_res = NULL; |
24435 | 52.5k | int _mark = p->mark; |
24436 | 52.5k | void **_children = NULL; |
24437 | 52.5k | Py_ssize_t _children_capacity = 0; |
24438 | 52.5k | Py_ssize_t _n = 0; |
24439 | 52.5k | { // tstring |
24440 | 52.5k | if (p->error_indicator) { |
24441 | 0 | p->level--; |
24442 | 0 | return NULL; |
24443 | 0 | } |
24444 | 52.5k | D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tstring")); |
24445 | 52.5k | expr_ty tstring_var; |
24446 | 52.5k | while ( |
24447 | 55.7k | (tstring_var = tstring_rule(p)) // tstring |
24448 | 52.5k | ) |
24449 | 3.15k | { |
24450 | 3.15k | _res = tstring_var; |
24451 | 3.15k | if (_n == _children_capacity) { |
24452 | 2.19k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
24453 | 0 | p->error_indicator = 1; |
24454 | 0 | PyErr_NoMemory(); |
24455 | 0 | PyMem_Free(_children); |
24456 | 0 | p->level--; |
24457 | 0 | return NULL; |
24458 | 0 | } |
24459 | 2.19k | } |
24460 | 3.15k | _children[_n++] = _res; |
24461 | 3.15k | _mark = p->mark; |
24462 | 3.15k | } |
24463 | 52.5k | p->mark = _mark; |
24464 | 52.5k | D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ', |
24465 | 52.5k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tstring")); |
24466 | 52.5k | } |
24467 | 52.5k | if (_n == 0 || p->error_indicator) { |
24468 | 50.9k | PyMem_Free(_children); |
24469 | 50.9k | p->level--; |
24470 | 50.9k | return NULL; |
24471 | 50.9k | } |
24472 | 1.68k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
24473 | 1.68k | if (!_seq) { |
24474 | 0 | p->error_indicator = 1; |
24475 | 0 | PyErr_NoMemory(); |
24476 | 0 | PyMem_Free(_children); |
24477 | 0 | p->level--; |
24478 | 0 | return NULL; |
24479 | 0 | } |
24480 | 4.58k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
24481 | 1.68k | PyMem_Free(_children); |
24482 | 1.68k | p->level--; |
24483 | 1.68k | return _seq; |
24484 | 1.68k | } |
24485 | | |
24486 | | // _loop0_82: ',' display_item |
24487 | | static asdl_seq * |
24488 | | _loop0_82_rule(Parser *p) |
24489 | 26.8k | { |
24490 | 26.8k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24491 | 0 | _Pypegen_stack_overflow(p); |
24492 | 0 | } |
24493 | 26.8k | if (p->error_indicator) { |
24494 | 0 | p->level--; |
24495 | 0 | return NULL; |
24496 | 0 | } |
24497 | 26.8k | void *_res = NULL; |
24498 | 26.8k | int _mark = p->mark; |
24499 | 26.8k | void **_children = NULL; |
24500 | 26.8k | Py_ssize_t _children_capacity = 0; |
24501 | 26.8k | Py_ssize_t _n = 0; |
24502 | 26.8k | { // ',' display_item |
24503 | 26.8k | if (p->error_indicator) { |
24504 | 0 | p->level--; |
24505 | 0 | return NULL; |
24506 | 0 | } |
24507 | 26.8k | D(fprintf(stderr, "%*c> _loop0_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' display_item")); |
24508 | 26.8k | Token * _literal; |
24509 | 26.8k | expr_ty elem; |
24510 | 26.8k | while ( |
24511 | 51.0k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
24512 | 26.4k | && |
24513 | 26.4k | (elem = display_item_rule(p)) // display_item |
24514 | 26.8k | ) |
24515 | 24.2k | { |
24516 | 24.2k | _res = elem; |
24517 | 24.2k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
24518 | 0 | p->error_indicator = 1; |
24519 | 0 | PyMem_Free(_children); |
24520 | 0 | p->level--; |
24521 | 0 | return NULL; |
24522 | 0 | } |
24523 | 24.2k | if (_n == _children_capacity) { |
24524 | 9.17k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
24525 | 0 | p->error_indicator = 1; |
24526 | 0 | PyErr_NoMemory(); |
24527 | 0 | PyMem_Free(_children); |
24528 | 0 | p->level--; |
24529 | 0 | return NULL; |
24530 | 0 | } |
24531 | 9.17k | } |
24532 | 24.2k | _children[_n++] = _res; |
24533 | 24.2k | _mark = p->mark; |
24534 | 24.2k | } |
24535 | 26.8k | p->mark = _mark; |
24536 | 26.8k | D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ', |
24537 | 26.8k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' display_item")); |
24538 | 26.8k | } |
24539 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
24540 | 26.8k | if (!_seq) { |
24541 | 0 | p->error_indicator = 1; |
24542 | 0 | PyErr_NoMemory(); |
24543 | 0 | PyMem_Free(_children); |
24544 | 0 | p->level--; |
24545 | 0 | return NULL; |
24546 | 0 | } |
24547 | 51.0k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
24548 | 26.8k | PyMem_Free(_children); |
24549 | 26.8k | p->level--; |
24550 | 26.8k | return _seq; |
24551 | 26.8k | } |
24552 | | |
24553 | | // _gather_83: display_item _loop0_82 |
24554 | | static asdl_seq * |
24555 | | _gather_83_rule(Parser *p) |
24556 | 57.5k | { |
24557 | 57.5k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24558 | 0 | _Pypegen_stack_overflow(p); |
24559 | 0 | } |
24560 | 57.5k | if (p->error_indicator) { |
24561 | 0 | p->level--; |
24562 | 0 | return NULL; |
24563 | 0 | } |
24564 | 57.5k | asdl_seq * _res = NULL; |
24565 | 57.5k | int _mark = p->mark; |
24566 | 57.5k | { // display_item _loop0_82 |
24567 | 57.5k | if (p->error_indicator) { |
24568 | 0 | p->level--; |
24569 | 0 | return NULL; |
24570 | 0 | } |
24571 | 57.5k | D(fprintf(stderr, "%*c> _gather_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "display_item _loop0_82")); |
24572 | 57.5k | expr_ty elem; |
24573 | 57.5k | asdl_seq * seq; |
24574 | 57.5k | if ( |
24575 | 57.5k | (elem = display_item_rule(p)) // display_item |
24576 | 26.8k | && |
24577 | 26.8k | (seq = _loop0_82_rule(p)) // _loop0_82 |
24578 | 57.5k | ) |
24579 | 26.8k | { |
24580 | 26.8k | D(fprintf(stderr, "%*c+ _gather_83[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "display_item _loop0_82")); |
24581 | 26.8k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
24582 | 26.8k | goto done; |
24583 | 26.8k | } |
24584 | 30.7k | p->mark = _mark; |
24585 | 30.7k | D(fprintf(stderr, "%*c%s _gather_83[%d-%d]: %s failed!\n", p->level, ' ', |
24586 | 30.7k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "display_item _loop0_82")); |
24587 | 30.7k | } |
24588 | 30.7k | _res = NULL; |
24589 | 57.5k | done: |
24590 | 57.5k | p->level--; |
24591 | 57.5k | return _res; |
24592 | 30.7k | } |
24593 | | |
24594 | | // _tmp_84: display_item ',' display_items? |
24595 | | static void * |
24596 | | _tmp_84_rule(Parser *p) |
24597 | 66.6k | { |
24598 | 66.6k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24599 | 0 | _Pypegen_stack_overflow(p); |
24600 | 0 | } |
24601 | 66.6k | if (p->error_indicator) { |
24602 | 0 | p->level--; |
24603 | 0 | return NULL; |
24604 | 0 | } |
24605 | 66.6k | void * _res = NULL; |
24606 | 66.6k | int _mark = p->mark; |
24607 | 66.6k | { // display_item ',' display_items? |
24608 | 66.6k | if (p->error_indicator) { |
24609 | 0 | p->level--; |
24610 | 0 | return NULL; |
24611 | 0 | } |
24612 | 66.6k | D(fprintf(stderr, "%*c> _tmp_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "display_item ',' display_items?")); |
24613 | 66.6k | Token * _literal; |
24614 | 66.6k | expr_ty y; |
24615 | 66.6k | void *z; |
24616 | 66.6k | if ( |
24617 | 66.6k | (y = display_item_rule(p)) // display_item |
24618 | 29.0k | && |
24619 | 29.0k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
24620 | 10.9k | && |
24621 | 10.9k | (z = display_items_rule(p), !p->error_indicator) // display_items? |
24622 | 66.6k | ) |
24623 | 10.2k | { |
24624 | 10.2k | D(fprintf(stderr, "%*c+ _tmp_84[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "display_item ',' display_items?")); |
24625 | 10.2k | _res = _PyPegen_seq_insert_in_front ( p , y , z ); |
24626 | 10.2k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
24627 | 0 | p->error_indicator = 1; |
24628 | 0 | p->level--; |
24629 | 0 | return NULL; |
24630 | 0 | } |
24631 | 10.2k | goto done; |
24632 | 10.2k | } |
24633 | 56.3k | p->mark = _mark; |
24634 | 56.3k | D(fprintf(stderr, "%*c%s _tmp_84[%d-%d]: %s failed!\n", p->level, ' ', |
24635 | 56.3k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "display_item ',' display_items?")); |
24636 | 56.3k | } |
24637 | 56.3k | _res = NULL; |
24638 | 66.6k | done: |
24639 | 66.6k | p->level--; |
24640 | 66.6k | return _res; |
24641 | 56.3k | } |
24642 | | |
24643 | | // _loop0_85: ',' double_starred_kvpair |
24644 | | static asdl_seq * |
24645 | | _loop0_85_rule(Parser *p) |
24646 | 5.74k | { |
24647 | 5.74k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24648 | 0 | _Pypegen_stack_overflow(p); |
24649 | 0 | } |
24650 | 5.74k | if (p->error_indicator) { |
24651 | 0 | p->level--; |
24652 | 0 | return NULL; |
24653 | 0 | } |
24654 | 5.74k | void *_res = NULL; |
24655 | 5.74k | int _mark = p->mark; |
24656 | 5.74k | void **_children = NULL; |
24657 | 5.74k | Py_ssize_t _children_capacity = 0; |
24658 | 5.74k | Py_ssize_t _n = 0; |
24659 | 5.74k | { // ',' double_starred_kvpair |
24660 | 5.74k | if (p->error_indicator) { |
24661 | 0 | p->level--; |
24662 | 0 | return NULL; |
24663 | 0 | } |
24664 | 5.74k | D(fprintf(stderr, "%*c> _loop0_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair")); |
24665 | 5.74k | Token * _literal; |
24666 | 5.74k | KeyValuePair* elem; |
24667 | 5.74k | while ( |
24668 | 22.0k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
24669 | 19.4k | && |
24670 | 19.4k | (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair |
24671 | 5.74k | ) |
24672 | 16.3k | { |
24673 | 16.3k | _res = elem; |
24674 | 16.3k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
24675 | 0 | p->error_indicator = 1; |
24676 | 0 | PyMem_Free(_children); |
24677 | 0 | p->level--; |
24678 | 0 | return NULL; |
24679 | 0 | } |
24680 | 16.3k | if (_n == _children_capacity) { |
24681 | 1.82k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
24682 | 0 | p->error_indicator = 1; |
24683 | 0 | PyErr_NoMemory(); |
24684 | 0 | PyMem_Free(_children); |
24685 | 0 | p->level--; |
24686 | 0 | return NULL; |
24687 | 0 | } |
24688 | 1.82k | } |
24689 | 16.3k | _children[_n++] = _res; |
24690 | 16.3k | _mark = p->mark; |
24691 | 16.3k | } |
24692 | 5.74k | p->mark = _mark; |
24693 | 5.74k | D(fprintf(stderr, "%*c%s _loop0_85[%d-%d]: %s failed!\n", p->level, ' ', |
24694 | 5.74k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair")); |
24695 | 5.74k | } |
24696 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
24697 | 5.74k | if (!_seq) { |
24698 | 0 | p->error_indicator = 1; |
24699 | 0 | PyErr_NoMemory(); |
24700 | 0 | PyMem_Free(_children); |
24701 | 0 | p->level--; |
24702 | 0 | return NULL; |
24703 | 0 | } |
24704 | 22.0k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
24705 | 5.74k | PyMem_Free(_children); |
24706 | 5.74k | p->level--; |
24707 | 5.74k | return _seq; |
24708 | 5.74k | } |
24709 | | |
24710 | | // _gather_86: double_starred_kvpair _loop0_85 |
24711 | | static asdl_seq * |
24712 | | _gather_86_rule(Parser *p) |
24713 | 18.7k | { |
24714 | 18.7k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24715 | 0 | _Pypegen_stack_overflow(p); |
24716 | 0 | } |
24717 | 18.7k | if (p->error_indicator) { |
24718 | 0 | p->level--; |
24719 | 0 | return NULL; |
24720 | 0 | } |
24721 | 18.7k | asdl_seq * _res = NULL; |
24722 | 18.7k | int _mark = p->mark; |
24723 | 18.7k | { // double_starred_kvpair _loop0_85 |
24724 | 18.7k | if (p->error_indicator) { |
24725 | 0 | p->level--; |
24726 | 0 | return NULL; |
24727 | 0 | } |
24728 | 18.7k | D(fprintf(stderr, "%*c> _gather_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_85")); |
24729 | 18.7k | KeyValuePair* elem; |
24730 | 18.7k | asdl_seq * seq; |
24731 | 18.7k | if ( |
24732 | 18.7k | (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair |
24733 | 5.74k | && |
24734 | 5.74k | (seq = _loop0_85_rule(p)) // _loop0_85 |
24735 | 18.7k | ) |
24736 | 5.74k | { |
24737 | 5.74k | D(fprintf(stderr, "%*c+ _gather_86[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_85")); |
24738 | 5.74k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
24739 | 5.74k | goto done; |
24740 | 5.74k | } |
24741 | 13.0k | p->mark = _mark; |
24742 | 13.0k | D(fprintf(stderr, "%*c%s _gather_86[%d-%d]: %s failed!\n", p->level, ' ', |
24743 | 13.0k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_85")); |
24744 | 13.0k | } |
24745 | 13.0k | _res = NULL; |
24746 | 18.7k | done: |
24747 | 18.7k | p->level--; |
24748 | 18.7k | return _res; |
24749 | 13.0k | } |
24750 | | |
24751 | | // _loop1_87: for_if_clause |
24752 | | static asdl_seq * |
24753 | | _loop1_87_rule(Parser *p) |
24754 | 107k | { |
24755 | 107k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24756 | 0 | _Pypegen_stack_overflow(p); |
24757 | 0 | } |
24758 | 107k | if (p->error_indicator) { |
24759 | 0 | p->level--; |
24760 | 0 | return NULL; |
24761 | 0 | } |
24762 | 107k | void *_res = NULL; |
24763 | 107k | int _mark = p->mark; |
24764 | 107k | void **_children = NULL; |
24765 | 107k | Py_ssize_t _children_capacity = 0; |
24766 | 107k | Py_ssize_t _n = 0; |
24767 | 107k | { // for_if_clause |
24768 | 107k | if (p->error_indicator) { |
24769 | 0 | p->level--; |
24770 | 0 | return NULL; |
24771 | 0 | } |
24772 | 107k | D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause")); |
24773 | 107k | comprehension_ty for_if_clause_var; |
24774 | 107k | while ( |
24775 | 114k | (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause |
24776 | 107k | ) |
24777 | 7.69k | { |
24778 | 7.69k | _res = for_if_clause_var; |
24779 | 7.69k | if (_n == _children_capacity) { |
24780 | 7.55k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
24781 | 0 | p->error_indicator = 1; |
24782 | 0 | PyErr_NoMemory(); |
24783 | 0 | PyMem_Free(_children); |
24784 | 0 | p->level--; |
24785 | 0 | return NULL; |
24786 | 0 | } |
24787 | 7.55k | } |
24788 | 7.69k | _children[_n++] = _res; |
24789 | 7.69k | _mark = p->mark; |
24790 | 7.69k | } |
24791 | 107k | p->mark = _mark; |
24792 | 107k | D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ', |
24793 | 107k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause")); |
24794 | 107k | } |
24795 | 107k | if (_n == 0 || p->error_indicator) { |
24796 | 99.9k | PyMem_Free(_children); |
24797 | 99.9k | p->level--; |
24798 | 99.9k | return NULL; |
24799 | 99.9k | } |
24800 | 7.10k | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
24801 | 7.10k | if (!_seq) { |
24802 | 0 | p->error_indicator = 1; |
24803 | 0 | PyErr_NoMemory(); |
24804 | 0 | PyMem_Free(_children); |
24805 | 0 | p->level--; |
24806 | 0 | return NULL; |
24807 | 0 | } |
24808 | 14.6k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
24809 | 7.10k | PyMem_Free(_children); |
24810 | 7.10k | p->level--; |
24811 | 7.10k | return _seq; |
24812 | 7.10k | } |
24813 | | |
24814 | | // _loop0_88: ('if' disjunction) |
24815 | | static asdl_seq * |
24816 | | _loop0_88_rule(Parser *p) |
24817 | 7.90k | { |
24818 | 7.90k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24819 | 0 | _Pypegen_stack_overflow(p); |
24820 | 0 | } |
24821 | 7.90k | if (p->error_indicator) { |
24822 | 0 | p->level--; |
24823 | 0 | return NULL; |
24824 | 0 | } |
24825 | 7.90k | void *_res = NULL; |
24826 | 7.90k | int _mark = p->mark; |
24827 | 7.90k | void **_children = NULL; |
24828 | 7.90k | Py_ssize_t _children_capacity = 0; |
24829 | 7.90k | Py_ssize_t _n = 0; |
24830 | 7.90k | { // ('if' disjunction) |
24831 | 7.90k | if (p->error_indicator) { |
24832 | 0 | p->level--; |
24833 | 0 | return NULL; |
24834 | 0 | } |
24835 | 7.90k | D(fprintf(stderr, "%*c> _loop0_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); |
24836 | 7.90k | void *_tmp_186_var; |
24837 | 7.90k | while ( |
24838 | 11.7k | (_tmp_186_var = _tmp_186_rule(p)) // 'if' disjunction |
24839 | 7.90k | ) |
24840 | 3.85k | { |
24841 | 3.85k | _res = _tmp_186_var; |
24842 | 3.85k | if (_n == _children_capacity) { |
24843 | 3.02k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
24844 | 0 | p->error_indicator = 1; |
24845 | 0 | PyErr_NoMemory(); |
24846 | 0 | PyMem_Free(_children); |
24847 | 0 | p->level--; |
24848 | 0 | return NULL; |
24849 | 0 | } |
24850 | 3.02k | } |
24851 | 3.85k | _children[_n++] = _res; |
24852 | 3.85k | _mark = p->mark; |
24853 | 3.85k | } |
24854 | 7.90k | p->mark = _mark; |
24855 | 7.90k | D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ', |
24856 | 7.90k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)")); |
24857 | 7.90k | } |
24858 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
24859 | 7.90k | if (!_seq) { |
24860 | 0 | p->error_indicator = 1; |
24861 | 0 | PyErr_NoMemory(); |
24862 | 0 | PyMem_Free(_children); |
24863 | 0 | p->level--; |
24864 | 0 | return NULL; |
24865 | 0 | } |
24866 | 11.7k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
24867 | 7.90k | PyMem_Free(_children); |
24868 | 7.90k | p->level--; |
24869 | 7.90k | return _seq; |
24870 | 7.90k | } |
24871 | | |
24872 | | // _tmp_89: assignment_expression | expression !':=' | starred_expression |
24873 | | static void * |
24874 | | _tmp_89_rule(Parser *p) |
24875 | 101k | { |
24876 | 101k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24877 | 1 | _Pypegen_stack_overflow(p); |
24878 | 1 | } |
24879 | 101k | if (p->error_indicator) { |
24880 | 1 | p->level--; |
24881 | 1 | return NULL; |
24882 | 1 | } |
24883 | 101k | void * _res = NULL; |
24884 | 101k | int _mark = p->mark; |
24885 | 101k | { // assignment_expression |
24886 | 101k | if (p->error_indicator) { |
24887 | 0 | p->level--; |
24888 | 0 | return NULL; |
24889 | 0 | } |
24890 | 101k | D(fprintf(stderr, "%*c> _tmp_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression")); |
24891 | 101k | expr_ty assignment_expression_var; |
24892 | 101k | if ( |
24893 | 101k | (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression |
24894 | 101k | ) |
24895 | 562 | { |
24896 | 562 | D(fprintf(stderr, "%*c+ _tmp_89[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression")); |
24897 | 562 | _res = assignment_expression_var; |
24898 | 562 | goto done; |
24899 | 562 | } |
24900 | 100k | p->mark = _mark; |
24901 | 100k | D(fprintf(stderr, "%*c%s _tmp_89[%d-%d]: %s failed!\n", p->level, ' ', |
24902 | 100k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); |
24903 | 100k | } |
24904 | 0 | { // expression !':=' |
24905 | 100k | if (p->error_indicator) { |
24906 | 376 | p->level--; |
24907 | 376 | return NULL; |
24908 | 376 | } |
24909 | 100k | D(fprintf(stderr, "%*c> _tmp_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); |
24910 | 100k | expr_ty expression_var; |
24911 | 100k | if ( |
24912 | 100k | (expression_var = expression_rule(p)) // expression |
24913 | 46.5k | && |
24914 | 46.5k | _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':=' |
24915 | 100k | ) |
24916 | 46.1k | { |
24917 | 46.1k | D(fprintf(stderr, "%*c+ _tmp_89[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); |
24918 | 46.1k | _res = expression_var; |
24919 | 46.1k | goto done; |
24920 | 46.1k | } |
24921 | 53.9k | p->mark = _mark; |
24922 | 53.9k | D(fprintf(stderr, "%*c%s _tmp_89[%d-%d]: %s failed!\n", p->level, ' ', |
24923 | 53.9k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='")); |
24924 | 53.9k | } |
24925 | 0 | { // starred_expression |
24926 | 53.9k | if (p->error_indicator) { |
24927 | 6.11k | p->level--; |
24928 | 6.11k | return NULL; |
24929 | 6.11k | } |
24930 | 47.8k | D(fprintf(stderr, "%*c> _tmp_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); |
24931 | 47.8k | expr_ty starred_expression_var; |
24932 | 47.8k | if ( |
24933 | 47.8k | (starred_expression_var = starred_expression_rule(p)) // starred_expression |
24934 | 47.8k | ) |
24935 | 2.04k | { |
24936 | 2.04k | D(fprintf(stderr, "%*c+ _tmp_89[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); |
24937 | 2.04k | _res = starred_expression_var; |
24938 | 2.04k | goto done; |
24939 | 2.04k | } |
24940 | 45.8k | p->mark = _mark; |
24941 | 45.8k | D(fprintf(stderr, "%*c%s _tmp_89[%d-%d]: %s failed!\n", p->level, ' ', |
24942 | 45.8k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); |
24943 | 45.8k | } |
24944 | 45.8k | _res = NULL; |
24945 | 94.6k | done: |
24946 | 94.6k | p->level--; |
24947 | 94.6k | return _res; |
24948 | 45.8k | } |
24949 | | |
24950 | | // _loop0_90: ',' (starred_expression | (assignment_expression | expression !':=') !'=') |
24951 | | static asdl_seq * |
24952 | | _loop0_90_rule(Parser *p) |
24953 | 29.0k | { |
24954 | 29.0k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
24955 | 0 | _Pypegen_stack_overflow(p); |
24956 | 0 | } |
24957 | 29.0k | if (p->error_indicator) { |
24958 | 0 | p->level--; |
24959 | 0 | return NULL; |
24960 | 0 | } |
24961 | 29.0k | void *_res = NULL; |
24962 | 29.0k | int _mark = p->mark; |
24963 | 29.0k | void **_children = NULL; |
24964 | 29.0k | Py_ssize_t _children_capacity = 0; |
24965 | 29.0k | Py_ssize_t _n = 0; |
24966 | 29.0k | { // ',' (starred_expression | (assignment_expression | expression !':=') !'=') |
24967 | 29.0k | if (p->error_indicator) { |
24968 | 0 | p->level--; |
24969 | 0 | return NULL; |
24970 | 0 | } |
24971 | 29.0k | D(fprintf(stderr, "%*c> _loop0_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')")); |
24972 | 29.0k | Token * _literal; |
24973 | 29.0k | void *elem; |
24974 | 29.0k | while ( |
24975 | 42.4k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
24976 | 18.8k | && |
24977 | 18.8k | (elem = _tmp_187_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' |
24978 | 29.0k | ) |
24979 | 13.3k | { |
24980 | 13.3k | _res = elem; |
24981 | 13.3k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
24982 | 0 | p->error_indicator = 1; |
24983 | 0 | PyMem_Free(_children); |
24984 | 0 | p->level--; |
24985 | 0 | return NULL; |
24986 | 0 | } |
24987 | 13.3k | if (_n == _children_capacity) { |
24988 | 10.9k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
24989 | 0 | p->error_indicator = 1; |
24990 | 0 | PyErr_NoMemory(); |
24991 | 0 | PyMem_Free(_children); |
24992 | 0 | p->level--; |
24993 | 0 | return NULL; |
24994 | 0 | } |
24995 | 10.9k | } |
24996 | 13.3k | _children[_n++] = _res; |
24997 | 13.3k | _mark = p->mark; |
24998 | 13.3k | } |
24999 | 29.0k | p->mark = _mark; |
25000 | 29.0k | D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ', |
25001 | 29.0k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')")); |
25002 | 29.0k | } |
25003 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
25004 | 29.0k | if (!_seq) { |
25005 | 0 | p->error_indicator = 1; |
25006 | 0 | PyErr_NoMemory(); |
25007 | 0 | PyMem_Free(_children); |
25008 | 0 | p->level--; |
25009 | 0 | return NULL; |
25010 | 0 | } |
25011 | 42.4k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
25012 | 29.0k | PyMem_Free(_children); |
25013 | 29.0k | p->level--; |
25014 | 29.0k | return _seq; |
25015 | 29.0k | } |
25016 | | |
25017 | | // _gather_91: |
25018 | | // | (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_90 |
25019 | | static asdl_seq * |
25020 | | _gather_91_rule(Parser *p) |
25021 | 61.3k | { |
25022 | 61.3k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25023 | 0 | _Pypegen_stack_overflow(p); |
25024 | 0 | } |
25025 | 61.3k | if (p->error_indicator) { |
25026 | 0 | p->level--; |
25027 | 0 | return NULL; |
25028 | 0 | } |
25029 | 61.3k | asdl_seq * _res = NULL; |
25030 | 61.3k | int _mark = p->mark; |
25031 | 61.3k | { // (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_90 |
25032 | 61.3k | if (p->error_indicator) { |
25033 | 0 | p->level--; |
25034 | 0 | return NULL; |
25035 | 0 | } |
25036 | 61.3k | D(fprintf(stderr, "%*c> _gather_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_90")); |
25037 | 61.3k | void *elem; |
25038 | 61.3k | asdl_seq * seq; |
25039 | 61.3k | if ( |
25040 | 61.3k | (elem = _tmp_187_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' |
25041 | 29.0k | && |
25042 | 29.0k | (seq = _loop0_90_rule(p)) // _loop0_90 |
25043 | 61.3k | ) |
25044 | 29.0k | { |
25045 | 29.0k | D(fprintf(stderr, "%*c+ _gather_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_90")); |
25046 | 29.0k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
25047 | 29.0k | goto done; |
25048 | 29.0k | } |
25049 | 32.2k | p->mark = _mark; |
25050 | 32.2k | D(fprintf(stderr, "%*c%s _gather_91[%d-%d]: %s failed!\n", p->level, ' ', |
25051 | 32.2k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_90")); |
25052 | 32.2k | } |
25053 | 32.2k | _res = NULL; |
25054 | 61.3k | done: |
25055 | 61.3k | p->level--; |
25056 | 61.3k | return _res; |
25057 | 32.2k | } |
25058 | | |
25059 | | // _tmp_92: ',' kwargs |
25060 | | static void * |
25061 | | _tmp_92_rule(Parser *p) |
25062 | 29.0k | { |
25063 | 29.0k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25064 | 0 | _Pypegen_stack_overflow(p); |
25065 | 0 | } |
25066 | 29.0k | if (p->error_indicator) { |
25067 | 1.03k | p->level--; |
25068 | 1.03k | return NULL; |
25069 | 1.03k | } |
25070 | 28.0k | void * _res = NULL; |
25071 | 28.0k | int _mark = p->mark; |
25072 | 28.0k | { // ',' kwargs |
25073 | 28.0k | if (p->error_indicator) { |
25074 | 0 | p->level--; |
25075 | 0 | return NULL; |
25076 | 0 | } |
25077 | 28.0k | D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs")); |
25078 | 28.0k | Token * _literal; |
25079 | 28.0k | asdl_seq* k; |
25080 | 28.0k | if ( |
25081 | 28.0k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
25082 | 4.40k | && |
25083 | 4.40k | (k = kwargs_rule(p)) // kwargs |
25084 | 28.0k | ) |
25085 | 2.36k | { |
25086 | 2.36k | D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs")); |
25087 | 2.36k | _res = k; |
25088 | 2.36k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
25089 | 201 | p->error_indicator = 1; |
25090 | 201 | p->level--; |
25091 | 201 | return NULL; |
25092 | 201 | } |
25093 | 2.16k | goto done; |
25094 | 2.36k | } |
25095 | 25.6k | p->mark = _mark; |
25096 | 25.6k | D(fprintf(stderr, "%*c%s _tmp_92[%d-%d]: %s failed!\n", p->level, ' ', |
25097 | 25.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs")); |
25098 | 25.6k | } |
25099 | 25.6k | _res = NULL; |
25100 | 27.8k | done: |
25101 | 27.8k | p->level--; |
25102 | 27.8k | return _res; |
25103 | 25.6k | } |
25104 | | |
25105 | | // _loop0_93: ',' kwarg_or_starred |
25106 | | static asdl_seq * |
25107 | | _loop0_93_rule(Parser *p) |
25108 | 9.62k | { |
25109 | 9.62k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25110 | 0 | _Pypegen_stack_overflow(p); |
25111 | 0 | } |
25112 | 9.62k | if (p->error_indicator) { |
25113 | 0 | p->level--; |
25114 | 0 | return NULL; |
25115 | 0 | } |
25116 | 9.62k | void *_res = NULL; |
25117 | 9.62k | int _mark = p->mark; |
25118 | 9.62k | void **_children = NULL; |
25119 | 9.62k | Py_ssize_t _children_capacity = 0; |
25120 | 9.62k | Py_ssize_t _n = 0; |
25121 | 9.62k | { // ',' kwarg_or_starred |
25122 | 9.62k | if (p->error_indicator) { |
25123 | 0 | p->level--; |
25124 | 0 | return NULL; |
25125 | 0 | } |
25126 | 9.62k | D(fprintf(stderr, "%*c> _loop0_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred")); |
25127 | 9.62k | Token * _literal; |
25128 | 9.62k | KeywordOrStarred* elem; |
25129 | 9.62k | while ( |
25130 | 14.4k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
25131 | 8.66k | && |
25132 | 8.66k | (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred |
25133 | 9.62k | ) |
25134 | 4.85k | { |
25135 | 4.85k | _res = elem; |
25136 | 4.85k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
25137 | 0 | p->error_indicator = 1; |
25138 | 0 | PyMem_Free(_children); |
25139 | 0 | p->level--; |
25140 | 0 | return NULL; |
25141 | 0 | } |
25142 | 4.85k | if (_n == _children_capacity) { |
25143 | 3.34k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
25144 | 0 | p->error_indicator = 1; |
25145 | 0 | PyErr_NoMemory(); |
25146 | 0 | PyMem_Free(_children); |
25147 | 0 | p->level--; |
25148 | 0 | return NULL; |
25149 | 0 | } |
25150 | 3.34k | } |
25151 | 4.85k | _children[_n++] = _res; |
25152 | 4.85k | _mark = p->mark; |
25153 | 4.85k | } |
25154 | 9.62k | p->mark = _mark; |
25155 | 9.62k | D(fprintf(stderr, "%*c%s _loop0_93[%d-%d]: %s failed!\n", p->level, ' ', |
25156 | 9.62k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred")); |
25157 | 9.62k | } |
25158 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
25159 | 9.62k | if (!_seq) { |
25160 | 0 | p->error_indicator = 1; |
25161 | 0 | PyErr_NoMemory(); |
25162 | 0 | PyMem_Free(_children); |
25163 | 0 | p->level--; |
25164 | 0 | return NULL; |
25165 | 0 | } |
25166 | 14.4k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
25167 | 9.62k | PyMem_Free(_children); |
25168 | 9.62k | p->level--; |
25169 | 9.62k | return _seq; |
25170 | 9.62k | } |
25171 | | |
25172 | | // _gather_94: kwarg_or_starred _loop0_93 |
25173 | | static asdl_seq * |
25174 | | _gather_94_rule(Parser *p) |
25175 | 45.5k | { |
25176 | 45.5k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25177 | 0 | _Pypegen_stack_overflow(p); |
25178 | 0 | } |
25179 | 45.5k | if (p->error_indicator) { |
25180 | 0 | p->level--; |
25181 | 0 | return NULL; |
25182 | 0 | } |
25183 | 45.5k | asdl_seq * _res = NULL; |
25184 | 45.5k | int _mark = p->mark; |
25185 | 45.5k | { // kwarg_or_starred _loop0_93 |
25186 | 45.5k | if (p->error_indicator) { |
25187 | 0 | p->level--; |
25188 | 0 | return NULL; |
25189 | 0 | } |
25190 | 45.5k | D(fprintf(stderr, "%*c> _gather_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_93")); |
25191 | 45.5k | KeywordOrStarred* elem; |
25192 | 45.5k | asdl_seq * seq; |
25193 | 45.5k | if ( |
25194 | 45.5k | (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred |
25195 | 9.62k | && |
25196 | 9.62k | (seq = _loop0_93_rule(p)) // _loop0_93 |
25197 | 45.5k | ) |
25198 | 9.62k | { |
25199 | 9.62k | D(fprintf(stderr, "%*c+ _gather_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_93")); |
25200 | 9.62k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
25201 | 9.62k | goto done; |
25202 | 9.62k | } |
25203 | 35.9k | p->mark = _mark; |
25204 | 35.9k | D(fprintf(stderr, "%*c%s _gather_94[%d-%d]: %s failed!\n", p->level, ' ', |
25205 | 35.9k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_93")); |
25206 | 35.9k | } |
25207 | 35.9k | _res = NULL; |
25208 | 45.5k | done: |
25209 | 45.5k | p->level--; |
25210 | 45.5k | return _res; |
25211 | 35.9k | } |
25212 | | |
25213 | | // _tmp_95: ',' ','.kwarg_or_double_starred+ |
25214 | | static void * |
25215 | | _tmp_95_rule(Parser *p) |
25216 | 9.62k | { |
25217 | 9.62k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25218 | 0 | _Pypegen_stack_overflow(p); |
25219 | 0 | } |
25220 | 9.62k | if (p->error_indicator) { |
25221 | 249 | p->level--; |
25222 | 249 | return NULL; |
25223 | 249 | } |
25224 | 9.37k | void * _res = NULL; |
25225 | 9.37k | int _mark = p->mark; |
25226 | 9.37k | { // ',' ','.kwarg_or_double_starred+ |
25227 | 9.37k | if (p->error_indicator) { |
25228 | 0 | p->level--; |
25229 | 0 | return NULL; |
25230 | 0 | } |
25231 | 9.37k | D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' ','.kwarg_or_double_starred+")); |
25232 | 9.37k | Token * _literal; |
25233 | 9.37k | asdl_seq * c; |
25234 | 9.37k | if ( |
25235 | 9.37k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
25236 | 3.55k | && |
25237 | 3.55k | (c = _gather_97_rule(p)) // ','.kwarg_or_double_starred+ |
25238 | 9.37k | ) |
25239 | 917 | { |
25240 | 917 | D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' ','.kwarg_or_double_starred+")); |
25241 | 917 | _res = c; |
25242 | 917 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
25243 | 197 | p->error_indicator = 1; |
25244 | 197 | p->level--; |
25245 | 197 | return NULL; |
25246 | 197 | } |
25247 | 720 | goto done; |
25248 | 917 | } |
25249 | 8.46k | p->mark = _mark; |
25250 | 8.46k | D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ', |
25251 | 8.46k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' ','.kwarg_or_double_starred+")); |
25252 | 8.46k | } |
25253 | 8.46k | _res = NULL; |
25254 | 9.18k | done: |
25255 | 9.18k | p->level--; |
25256 | 9.18k | return _res; |
25257 | 8.46k | } |
25258 | | |
25259 | | // _loop0_96: ',' kwarg_or_double_starred |
25260 | | static asdl_seq * |
25261 | | _loop0_96_rule(Parser *p) |
25262 | 4.91k | { |
25263 | 4.91k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25264 | 0 | _Pypegen_stack_overflow(p); |
25265 | 0 | } |
25266 | 4.91k | if (p->error_indicator) { |
25267 | 0 | p->level--; |
25268 | 0 | return NULL; |
25269 | 0 | } |
25270 | 4.91k | void *_res = NULL; |
25271 | 4.91k | int _mark = p->mark; |
25272 | 4.91k | void **_children = NULL; |
25273 | 4.91k | Py_ssize_t _children_capacity = 0; |
25274 | 4.91k | Py_ssize_t _n = 0; |
25275 | 4.91k | { // ',' kwarg_or_double_starred |
25276 | 4.91k | if (p->error_indicator) { |
25277 | 0 | p->level--; |
25278 | 0 | return NULL; |
25279 | 0 | } |
25280 | 4.91k | D(fprintf(stderr, "%*c> _loop0_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred")); |
25281 | 4.91k | Token * _literal; |
25282 | 4.91k | KeywordOrStarred* elem; |
25283 | 4.91k | while ( |
25284 | 13.8k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
25285 | 11.8k | && |
25286 | 11.8k | (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred |
25287 | 4.91k | ) |
25288 | 8.91k | { |
25289 | 8.91k | _res = elem; |
25290 | 8.91k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
25291 | 0 | p->error_indicator = 1; |
25292 | 0 | PyMem_Free(_children); |
25293 | 0 | p->level--; |
25294 | 0 | return NULL; |
25295 | 0 | } |
25296 | 8.91k | if (_n == _children_capacity) { |
25297 | 1.69k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
25298 | 0 | p->error_indicator = 1; |
25299 | 0 | PyErr_NoMemory(); |
25300 | 0 | PyMem_Free(_children); |
25301 | 0 | p->level--; |
25302 | 0 | return NULL; |
25303 | 0 | } |
25304 | 1.69k | } |
25305 | 8.91k | _children[_n++] = _res; |
25306 | 8.91k | _mark = p->mark; |
25307 | 8.91k | } |
25308 | 4.91k | p->mark = _mark; |
25309 | 4.91k | D(fprintf(stderr, "%*c%s _loop0_96[%d-%d]: %s failed!\n", p->level, ' ', |
25310 | 4.91k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred")); |
25311 | 4.91k | } |
25312 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
25313 | 4.91k | if (!_seq) { |
25314 | 0 | p->error_indicator = 1; |
25315 | 0 | PyErr_NoMemory(); |
25316 | 0 | PyMem_Free(_children); |
25317 | 0 | p->level--; |
25318 | 0 | return NULL; |
25319 | 0 | } |
25320 | 13.8k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
25321 | 4.91k | PyMem_Free(_children); |
25322 | 4.91k | p->level--; |
25323 | 4.91k | return _seq; |
25324 | 4.91k | } |
25325 | | |
25326 | | // _gather_97: kwarg_or_double_starred _loop0_96 |
25327 | | static asdl_seq * |
25328 | | _gather_97_rule(Parser *p) |
25329 | 39.0k | { |
25330 | 39.0k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25331 | 0 | _Pypegen_stack_overflow(p); |
25332 | 0 | } |
25333 | 39.0k | if (p->error_indicator) { |
25334 | 0 | p->level--; |
25335 | 0 | return NULL; |
25336 | 0 | } |
25337 | 39.0k | asdl_seq * _res = NULL; |
25338 | 39.0k | int _mark = p->mark; |
25339 | 39.0k | { // kwarg_or_double_starred _loop0_96 |
25340 | 39.0k | if (p->error_indicator) { |
25341 | 0 | p->level--; |
25342 | 0 | return NULL; |
25343 | 0 | } |
25344 | 39.0k | D(fprintf(stderr, "%*c> _gather_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_96")); |
25345 | 39.0k | KeywordOrStarred* elem; |
25346 | 39.0k | asdl_seq * seq; |
25347 | 39.0k | if ( |
25348 | 39.0k | (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred |
25349 | 4.91k | && |
25350 | 4.91k | (seq = _loop0_96_rule(p)) // _loop0_96 |
25351 | 39.0k | ) |
25352 | 4.91k | { |
25353 | 4.91k | D(fprintf(stderr, "%*c+ _gather_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_96")); |
25354 | 4.91k | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
25355 | 4.91k | goto done; |
25356 | 4.91k | } |
25357 | 34.1k | p->mark = _mark; |
25358 | 34.1k | D(fprintf(stderr, "%*c%s _gather_97[%d-%d]: %s failed!\n", p->level, ' ', |
25359 | 34.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_96")); |
25360 | 34.1k | } |
25361 | 34.1k | _res = NULL; |
25362 | 39.0k | done: |
25363 | 39.0k | p->level--; |
25364 | 39.0k | return _res; |
25365 | 34.1k | } |
25366 | | |
25367 | | // _loop0_98: (',' star_target) |
25368 | | static asdl_seq * |
25369 | | _loop0_98_rule(Parser *p) |
25370 | 6.31k | { |
25371 | 6.31k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25372 | 0 | _Pypegen_stack_overflow(p); |
25373 | 0 | } |
25374 | 6.31k | if (p->error_indicator) { |
25375 | 0 | p->level--; |
25376 | 0 | return NULL; |
25377 | 0 | } |
25378 | 6.31k | void *_res = NULL; |
25379 | 6.31k | int _mark = p->mark; |
25380 | 6.31k | void **_children = NULL; |
25381 | 6.31k | Py_ssize_t _children_capacity = 0; |
25382 | 6.31k | Py_ssize_t _n = 0; |
25383 | 6.31k | { // (',' star_target) |
25384 | 6.31k | if (p->error_indicator) { |
25385 | 0 | p->level--; |
25386 | 0 | return NULL; |
25387 | 0 | } |
25388 | 6.31k | D(fprintf(stderr, "%*c> _loop0_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); |
25389 | 6.31k | void *_tmp_188_var; |
25390 | 6.31k | while ( |
25391 | 11.4k | (_tmp_188_var = _tmp_188_rule(p)) // ',' star_target |
25392 | 6.31k | ) |
25393 | 5.09k | { |
25394 | 5.09k | _res = _tmp_188_var; |
25395 | 5.09k | if (_n == _children_capacity) { |
25396 | 3.71k | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
25397 | 0 | p->error_indicator = 1; |
25398 | 0 | PyErr_NoMemory(); |
25399 | 0 | PyMem_Free(_children); |
25400 | 0 | p->level--; |
25401 | 0 | return NULL; |
25402 | 0 | } |
25403 | 3.71k | } |
25404 | 5.09k | _children[_n++] = _res; |
25405 | 5.09k | _mark = p->mark; |
25406 | 5.09k | } |
25407 | 6.31k | p->mark = _mark; |
25408 | 6.31k | D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ', |
25409 | 6.31k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)")); |
25410 | 6.31k | } |
25411 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
25412 | 6.31k | if (!_seq) { |
25413 | 0 | p->error_indicator = 1; |
25414 | 0 | PyErr_NoMemory(); |
25415 | 0 | PyMem_Free(_children); |
25416 | 0 | p->level--; |
25417 | 0 | return NULL; |
25418 | 0 | } |
25419 | 11.4k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
25420 | 6.31k | PyMem_Free(_children); |
25421 | 6.31k | p->level--; |
25422 | 6.31k | return _seq; |
25423 | 6.31k | } |
25424 | | |
25425 | | // _tmp_99: !'*' star_target |
25426 | | static void * |
25427 | | _tmp_99_rule(Parser *p) |
25428 | 1.93k | { |
25429 | 1.93k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25430 | 0 | _Pypegen_stack_overflow(p); |
25431 | 0 | } |
25432 | 1.93k | if (p->error_indicator) { |
25433 | 0 | p->level--; |
25434 | 0 | return NULL; |
25435 | 0 | } |
25436 | 1.93k | void * _res = NULL; |
25437 | 1.93k | int _mark = p->mark; |
25438 | 1.93k | { // !'*' star_target |
25439 | 1.93k | if (p->error_indicator) { |
25440 | 0 | p->level--; |
25441 | 0 | return NULL; |
25442 | 0 | } |
25443 | 1.93k | D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target")); |
25444 | 1.93k | expr_ty star_target_var; |
25445 | 1.93k | if ( |
25446 | 1.93k | _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*' |
25447 | 1.93k | && |
25448 | 1.93k | (star_target_var = star_target_rule(p)) // star_target |
25449 | 1.93k | ) |
25450 | 843 | { |
25451 | 843 | D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target")); |
25452 | 843 | _res = star_target_var; |
25453 | 843 | goto done; |
25454 | 843 | } |
25455 | 1.09k | p->mark = _mark; |
25456 | 1.09k | D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ', |
25457 | 1.09k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target")); |
25458 | 1.09k | } |
25459 | 1.09k | _res = NULL; |
25460 | 1.93k | done: |
25461 | 1.93k | p->level--; |
25462 | 1.93k | return _res; |
25463 | 1.09k | } |
25464 | | |
25465 | | // _tmp_100: '(' | '[' | '.' |
25466 | | static void * |
25467 | | _tmp_100_rule(Parser *p) |
25468 | 372k | { |
25469 | 372k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25470 | 0 | _Pypegen_stack_overflow(p); |
25471 | 0 | } |
25472 | 372k | if (p->error_indicator) { |
25473 | 0 | p->level--; |
25474 | 0 | return NULL; |
25475 | 0 | } |
25476 | 372k | void * _res = NULL; |
25477 | 372k | int _mark = p->mark; |
25478 | 372k | { // '(' |
25479 | 372k | if (p->error_indicator) { |
25480 | 0 | p->level--; |
25481 | 0 | return NULL; |
25482 | 0 | } |
25483 | 372k | D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); |
25484 | 372k | Token * _literal; |
25485 | 372k | if ( |
25486 | 372k | (_literal = _PyPegen_expect_token(p, 7)) // token='(' |
25487 | 372k | ) |
25488 | 3.53k | { |
25489 | 3.53k | D(fprintf(stderr, "%*c+ _tmp_100[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); |
25490 | 3.53k | _res = _literal; |
25491 | 3.53k | goto done; |
25492 | 3.53k | } |
25493 | 369k | p->mark = _mark; |
25494 | 369k | D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ', |
25495 | 369k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('")); |
25496 | 369k | } |
25497 | 0 | { // '[' |
25498 | 369k | if (p->error_indicator) { |
25499 | 0 | p->level--; |
25500 | 0 | return NULL; |
25501 | 0 | } |
25502 | 369k | D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); |
25503 | 369k | Token * _literal; |
25504 | 369k | if ( |
25505 | 369k | (_literal = _PyPegen_expect_token(p, 9)) // token='[' |
25506 | 369k | ) |
25507 | 1.27k | { |
25508 | 1.27k | D(fprintf(stderr, "%*c+ _tmp_100[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); |
25509 | 1.27k | _res = _literal; |
25510 | 1.27k | goto done; |
25511 | 1.27k | } |
25512 | 367k | p->mark = _mark; |
25513 | 367k | D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ', |
25514 | 367k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); |
25515 | 367k | } |
25516 | 0 | { // '.' |
25517 | 367k | if (p->error_indicator) { |
25518 | 0 | p->level--; |
25519 | 0 | return NULL; |
25520 | 0 | } |
25521 | 367k | D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); |
25522 | 367k | Token * _literal; |
25523 | 367k | if ( |
25524 | 367k | (_literal = _PyPegen_expect_token(p, 23)) // token='.' |
25525 | 367k | ) |
25526 | 882 | { |
25527 | 882 | D(fprintf(stderr, "%*c+ _tmp_100[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); |
25528 | 882 | _res = _literal; |
25529 | 882 | goto done; |
25530 | 882 | } |
25531 | 367k | p->mark = _mark; |
25532 | 367k | D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ', |
25533 | 367k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); |
25534 | 367k | } |
25535 | 367k | _res = NULL; |
25536 | 372k | done: |
25537 | 372k | p->level--; |
25538 | 372k | return _res; |
25539 | 367k | } |
25540 | | |
25541 | | // _loop0_101: ',' del_target |
25542 | | static asdl_seq * |
25543 | | _loop0_101_rule(Parser *p) |
25544 | 809 | { |
25545 | 809 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25546 | 0 | _Pypegen_stack_overflow(p); |
25547 | 0 | } |
25548 | 809 | if (p->error_indicator) { |
25549 | 0 | p->level--; |
25550 | 0 | return NULL; |
25551 | 0 | } |
25552 | 809 | void *_res = NULL; |
25553 | 809 | int _mark = p->mark; |
25554 | 809 | void **_children = NULL; |
25555 | 809 | Py_ssize_t _children_capacity = 0; |
25556 | 809 | Py_ssize_t _n = 0; |
25557 | 809 | { // ',' del_target |
25558 | 809 | if (p->error_indicator) { |
25559 | 0 | p->level--; |
25560 | 0 | return NULL; |
25561 | 0 | } |
25562 | 809 | D(fprintf(stderr, "%*c> _loop0_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target")); |
25563 | 809 | Token * _literal; |
25564 | 809 | expr_ty elem; |
25565 | 809 | while ( |
25566 | 1.88k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
25567 | 1.18k | && |
25568 | 1.18k | (elem = del_target_rule(p)) // del_target |
25569 | 809 | ) |
25570 | 1.07k | { |
25571 | 1.07k | _res = elem; |
25572 | 1.07k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
25573 | 0 | p->error_indicator = 1; |
25574 | 0 | PyMem_Free(_children); |
25575 | 0 | p->level--; |
25576 | 0 | return NULL; |
25577 | 0 | } |
25578 | 1.07k | if (_n == _children_capacity) { |
25579 | 505 | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
25580 | 0 | p->error_indicator = 1; |
25581 | 0 | PyErr_NoMemory(); |
25582 | 0 | PyMem_Free(_children); |
25583 | 0 | p->level--; |
25584 | 0 | return NULL; |
25585 | 0 | } |
25586 | 505 | } |
25587 | 1.07k | _children[_n++] = _res; |
25588 | 1.07k | _mark = p->mark; |
25589 | 1.07k | } |
25590 | 809 | p->mark = _mark; |
25591 | 809 | D(fprintf(stderr, "%*c%s _loop0_101[%d-%d]: %s failed!\n", p->level, ' ', |
25592 | 809 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target")); |
25593 | 809 | } |
25594 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
25595 | 809 | if (!_seq) { |
25596 | 0 | p->error_indicator = 1; |
25597 | 0 | PyErr_NoMemory(); |
25598 | 0 | PyMem_Free(_children); |
25599 | 0 | p->level--; |
25600 | 0 | return NULL; |
25601 | 0 | } |
25602 | 1.88k | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
25603 | 809 | PyMem_Free(_children); |
25604 | 809 | p->level--; |
25605 | 809 | return _seq; |
25606 | 809 | } |
25607 | | |
25608 | | // _gather_102: del_target _loop0_101 |
25609 | | static asdl_seq * |
25610 | | _gather_102_rule(Parser *p) |
25611 | 1.00k | { |
25612 | 1.00k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25613 | 0 | _Pypegen_stack_overflow(p); |
25614 | 0 | } |
25615 | 1.00k | if (p->error_indicator) { |
25616 | 0 | p->level--; |
25617 | 0 | return NULL; |
25618 | 0 | } |
25619 | 1.00k | asdl_seq * _res = NULL; |
25620 | 1.00k | int _mark = p->mark; |
25621 | 1.00k | { // del_target _loop0_101 |
25622 | 1.00k | if (p->error_indicator) { |
25623 | 0 | p->level--; |
25624 | 0 | return NULL; |
25625 | 0 | } |
25626 | 1.00k | D(fprintf(stderr, "%*c> _gather_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_101")); |
25627 | 1.00k | expr_ty elem; |
25628 | 1.00k | asdl_seq * seq; |
25629 | 1.00k | if ( |
25630 | 1.00k | (elem = del_target_rule(p)) // del_target |
25631 | 809 | && |
25632 | 809 | (seq = _loop0_101_rule(p)) // _loop0_101 |
25633 | 1.00k | ) |
25634 | 809 | { |
25635 | 809 | D(fprintf(stderr, "%*c+ _gather_102[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_101")); |
25636 | 809 | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
25637 | 809 | goto done; |
25638 | 809 | } |
25639 | 200 | p->mark = _mark; |
25640 | 200 | D(fprintf(stderr, "%*c%s _gather_102[%d-%d]: %s failed!\n", p->level, ' ', |
25641 | 200 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_101")); |
25642 | 200 | } |
25643 | 200 | _res = NULL; |
25644 | 1.00k | done: |
25645 | 1.00k | p->level--; |
25646 | 1.00k | return _res; |
25647 | 200 | } |
25648 | | |
25649 | | // _loop0_103: ',' expression |
25650 | | static asdl_seq * |
25651 | | _loop0_103_rule(Parser *p) |
25652 | 0 | { |
25653 | 0 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25654 | 0 | _Pypegen_stack_overflow(p); |
25655 | 0 | } |
25656 | 0 | if (p->error_indicator) { |
25657 | 0 | p->level--; |
25658 | 0 | return NULL; |
25659 | 0 | } |
25660 | 0 | void *_res = NULL; |
25661 | 0 | int _mark = p->mark; |
25662 | 0 | void **_children = NULL; |
25663 | 0 | Py_ssize_t _children_capacity = 0; |
25664 | 0 | Py_ssize_t _n = 0; |
25665 | 0 | { // ',' expression |
25666 | 0 | if (p->error_indicator) { |
25667 | 0 | p->level--; |
25668 | 0 | return NULL; |
25669 | 0 | } |
25670 | 0 | D(fprintf(stderr, "%*c> _loop0_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); |
25671 | 0 | Token * _literal; |
25672 | 0 | expr_ty elem; |
25673 | 0 | while ( |
25674 | 0 | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
25675 | 0 | && |
25676 | 0 | (elem = expression_rule(p)) // expression |
25677 | 0 | ) |
25678 | 0 | { |
25679 | 0 | _res = elem; |
25680 | 0 | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
25681 | 0 | p->error_indicator = 1; |
25682 | 0 | PyMem_Free(_children); |
25683 | 0 | p->level--; |
25684 | 0 | return NULL; |
25685 | 0 | } |
25686 | 0 | if (_n == _children_capacity) { |
25687 | 0 | if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) { |
25688 | 0 | p->error_indicator = 1; |
25689 | 0 | PyErr_NoMemory(); |
25690 | 0 | PyMem_Free(_children); |
25691 | 0 | p->level--; |
25692 | 0 | return NULL; |
25693 | 0 | } |
25694 | 0 | } |
25695 | 0 | _children[_n++] = _res; |
25696 | 0 | _mark = p->mark; |
25697 | 0 | } |
25698 | 0 | p->mark = _mark; |
25699 | 0 | D(fprintf(stderr, "%*c%s _loop0_103[%d-%d]: %s failed!\n", p->level, ' ', |
25700 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression")); |
25701 | 0 | } |
25702 | 0 | asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); |
25703 | 0 | if (!_seq) { |
25704 | 0 | p->error_indicator = 1; |
25705 | 0 | PyErr_NoMemory(); |
25706 | 0 | PyMem_Free(_children); |
25707 | 0 | p->level--; |
25708 | 0 | return NULL; |
25709 | 0 | } |
25710 | 0 | for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); |
25711 | 0 | PyMem_Free(_children); |
25712 | 0 | p->level--; |
25713 | 0 | return _seq; |
25714 | 0 | } |
25715 | | |
25716 | | // _gather_104: expression _loop0_103 |
25717 | | static asdl_seq * |
25718 | | _gather_104_rule(Parser *p) |
25719 | 0 | { |
25720 | 0 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25721 | 0 | _Pypegen_stack_overflow(p); |
25722 | 0 | } |
25723 | 0 | if (p->error_indicator) { |
25724 | 0 | p->level--; |
25725 | 0 | return NULL; |
25726 | 0 | } |
25727 | 0 | asdl_seq * _res = NULL; |
25728 | 0 | int _mark = p->mark; |
25729 | 0 | { // expression _loop0_103 |
25730 | 0 | if (p->error_indicator) { |
25731 | 0 | p->level--; |
25732 | 0 | return NULL; |
25733 | 0 | } |
25734 | 0 | D(fprintf(stderr, "%*c> _gather_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_103")); |
25735 | 0 | expr_ty elem; |
25736 | 0 | asdl_seq * seq; |
25737 | 0 | if ( |
25738 | 0 | (elem = expression_rule(p)) // expression |
25739 | 0 | && |
25740 | 0 | (seq = _loop0_103_rule(p)) // _loop0_103 |
25741 | 0 | ) |
25742 | 0 | { |
25743 | 0 | D(fprintf(stderr, "%*c+ _gather_104[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_103")); |
25744 | 0 | _res = _PyPegen_seq_insert_in_front(p, elem, seq); |
25745 | 0 | goto done; |
25746 | 0 | } |
25747 | 0 | p->mark = _mark; |
25748 | 0 | D(fprintf(stderr, "%*c%s _gather_104[%d-%d]: %s failed!\n", p->level, ' ', |
25749 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_103")); |
25750 | 0 | } |
25751 | 0 | _res = NULL; |
25752 | 0 | done: |
25753 | 0 | p->level--; |
25754 | 0 | return _res; |
25755 | 0 | } |
25756 | | |
25757 | | // _tmp_105: NEWLINE INDENT |
25758 | | static void * |
25759 | | _tmp_105_rule(Parser *p) |
25760 | 0 | { |
25761 | 0 | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25762 | 0 | _Pypegen_stack_overflow(p); |
25763 | 0 | } |
25764 | 0 | if (p->error_indicator) { |
25765 | 0 | p->level--; |
25766 | 0 | return NULL; |
25767 | 0 | } |
25768 | 0 | void * _res = NULL; |
25769 | 0 | int _mark = p->mark; |
25770 | 0 | { // NEWLINE INDENT |
25771 | 0 | if (p->error_indicator) { |
25772 | 0 | p->level--; |
25773 | 0 | return NULL; |
25774 | 0 | } |
25775 | 0 | D(fprintf(stderr, "%*c> _tmp_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT")); |
25776 | 0 | Token * indent_var; |
25777 | 0 | Token * newline_var; |
25778 | 0 | if ( |
25779 | 0 | (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' |
25780 | 0 | && |
25781 | 0 | (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT' |
25782 | 0 | ) |
25783 | 0 | { |
25784 | 0 | D(fprintf(stderr, "%*c+ _tmp_105[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT")); |
25785 | 0 | _res = _PyPegen_dummy_name(p, newline_var, indent_var); |
25786 | 0 | goto done; |
25787 | 0 | } |
25788 | 0 | p->mark = _mark; |
25789 | 0 | D(fprintf(stderr, "%*c%s _tmp_105[%d-%d]: %s failed!\n", p->level, ' ', |
25790 | 0 | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT")); |
25791 | 0 | } |
25792 | 0 | _res = NULL; |
25793 | 0 | done: |
25794 | 0 | p->level--; |
25795 | 0 | return _res; |
25796 | 0 | } |
25797 | | |
25798 | | // _tmp_178: star_targets '=' |
25799 | | static void * |
25800 | | _tmp_178_rule(Parser *p) |
25801 | 279k | { |
25802 | 279k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25803 | 0 | _Pypegen_stack_overflow(p); |
25804 | 0 | } |
25805 | 279k | if (p->error_indicator) { |
25806 | 0 | p->level--; |
25807 | 0 | return NULL; |
25808 | 0 | } |
25809 | 279k | void * _res = NULL; |
25810 | 279k | int _mark = p->mark; |
25811 | 279k | { // star_targets '=' |
25812 | 279k | if (p->error_indicator) { |
25813 | 0 | p->level--; |
25814 | 0 | return NULL; |
25815 | 0 | } |
25816 | 279k | D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); |
25817 | 279k | Token * _literal; |
25818 | 279k | expr_ty z; |
25819 | 279k | if ( |
25820 | 279k | (z = star_targets_rule(p)) // star_targets |
25821 | 82.7k | && |
25822 | 82.7k | (_literal = _PyPegen_expect_token(p, 22)) // token='=' |
25823 | 279k | ) |
25824 | 5.40k | { |
25825 | 5.40k | D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); |
25826 | 5.40k | _res = z; |
25827 | 5.40k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
25828 | 0 | p->error_indicator = 1; |
25829 | 0 | p->level--; |
25830 | 0 | return NULL; |
25831 | 0 | } |
25832 | 5.40k | goto done; |
25833 | 5.40k | } |
25834 | 274k | p->mark = _mark; |
25835 | 274k | D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ', |
25836 | 274k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); |
25837 | 274k | } |
25838 | 274k | _res = NULL; |
25839 | 279k | done: |
25840 | 279k | p->level--; |
25841 | 279k | return _res; |
25842 | 274k | } |
25843 | | |
25844 | | // _tmp_179: '.' | '...' |
25845 | | static void * |
25846 | | _tmp_179_rule(Parser *p) |
25847 | 26.8k | { |
25848 | 26.8k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25849 | 0 | _Pypegen_stack_overflow(p); |
25850 | 0 | } |
25851 | 26.8k | if (p->error_indicator) { |
25852 | 0 | p->level--; |
25853 | 0 | return NULL; |
25854 | 0 | } |
25855 | 26.8k | void * _res = NULL; |
25856 | 26.8k | int _mark = p->mark; |
25857 | 26.8k | { // '.' |
25858 | 26.8k | if (p->error_indicator) { |
25859 | 0 | p->level--; |
25860 | 0 | return NULL; |
25861 | 0 | } |
25862 | 26.8k | D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); |
25863 | 26.8k | Token * _literal; |
25864 | 26.8k | if ( |
25865 | 26.8k | (_literal = _PyPegen_expect_token(p, 23)) // token='.' |
25866 | 26.8k | ) |
25867 | 12.6k | { |
25868 | 12.6k | D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); |
25869 | 12.6k | _res = _literal; |
25870 | 12.6k | goto done; |
25871 | 12.6k | } |
25872 | 14.1k | p->mark = _mark; |
25873 | 14.1k | D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ', |
25874 | 14.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); |
25875 | 14.1k | } |
25876 | 0 | { // '...' |
25877 | 14.1k | if (p->error_indicator) { |
25878 | 8 | p->level--; |
25879 | 8 | return NULL; |
25880 | 8 | } |
25881 | 14.1k | D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); |
25882 | 14.1k | Token * _literal; |
25883 | 14.1k | if ( |
25884 | 14.1k | (_literal = _PyPegen_expect_token(p, 52)) // token='...' |
25885 | 14.1k | ) |
25886 | 5.69k | { |
25887 | 5.69k | D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); |
25888 | 5.69k | _res = _literal; |
25889 | 5.69k | goto done; |
25890 | 5.69k | } |
25891 | 8.48k | p->mark = _mark; |
25892 | 8.48k | D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ', |
25893 | 8.48k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); |
25894 | 8.48k | } |
25895 | 8.48k | _res = NULL; |
25896 | 26.8k | done: |
25897 | 26.8k | p->level--; |
25898 | 26.8k | return _res; |
25899 | 8.48k | } |
25900 | | |
25901 | | // _tmp_180: '@' named_expression NEWLINE |
25902 | | static void * |
25903 | | _tmp_180_rule(Parser *p) |
25904 | 19.1k | { |
25905 | 19.1k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25906 | 0 | _Pypegen_stack_overflow(p); |
25907 | 0 | } |
25908 | 19.1k | if (p->error_indicator) { |
25909 | 0 | p->level--; |
25910 | 0 | return NULL; |
25911 | 0 | } |
25912 | 19.1k | void * _res = NULL; |
25913 | 19.1k | int _mark = p->mark; |
25914 | 19.1k | { // '@' named_expression NEWLINE |
25915 | 19.1k | if (p->error_indicator) { |
25916 | 0 | p->level--; |
25917 | 0 | return NULL; |
25918 | 0 | } |
25919 | 19.1k | D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); |
25920 | 19.1k | Token * _literal; |
25921 | 19.1k | expr_ty f; |
25922 | 19.1k | Token * newline_var; |
25923 | 19.1k | if ( |
25924 | 19.1k | (_literal = _PyPegen_expect_token(p, 49)) // token='@' |
25925 | 4.37k | && |
25926 | 4.37k | (f = named_expression_rule(p)) // named_expression |
25927 | 4.25k | && |
25928 | 4.25k | (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' |
25929 | 19.1k | ) |
25930 | 4.19k | { |
25931 | 4.19k | D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); |
25932 | 4.19k | _res = f; |
25933 | 4.19k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
25934 | 0 | p->error_indicator = 1; |
25935 | 0 | p->level--; |
25936 | 0 | return NULL; |
25937 | 0 | } |
25938 | 4.19k | goto done; |
25939 | 4.19k | } |
25940 | 14.9k | p->mark = _mark; |
25941 | 14.9k | D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ', |
25942 | 14.9k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE")); |
25943 | 14.9k | } |
25944 | 14.9k | _res = NULL; |
25945 | 19.1k | done: |
25946 | 19.1k | p->level--; |
25947 | 19.1k | return _res; |
25948 | 14.9k | } |
25949 | | |
25950 | | // _tmp_181: ',' star_expression |
25951 | | static void * |
25952 | | _tmp_181_rule(Parser *p) |
25953 | 245k | { |
25954 | 245k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
25955 | 0 | _Pypegen_stack_overflow(p); |
25956 | 0 | } |
25957 | 245k | if (p->error_indicator) { |
25958 | 0 | p->level--; |
25959 | 0 | return NULL; |
25960 | 0 | } |
25961 | 245k | void * _res = NULL; |
25962 | 245k | int _mark = p->mark; |
25963 | 245k | { // ',' star_expression |
25964 | 245k | if (p->error_indicator) { |
25965 | 0 | p->level--; |
25966 | 0 | return NULL; |
25967 | 0 | } |
25968 | 245k | D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); |
25969 | 245k | Token * _literal; |
25970 | 245k | expr_ty c; |
25971 | 245k | if ( |
25972 | 245k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
25973 | 20.6k | && |
25974 | 20.6k | (c = star_expression_rule(p)) // star_expression |
25975 | 245k | ) |
25976 | 16.4k | { |
25977 | 16.4k | D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); |
25978 | 16.4k | _res = c; |
25979 | 16.4k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
25980 | 0 | p->error_indicator = 1; |
25981 | 0 | p->level--; |
25982 | 0 | return NULL; |
25983 | 0 | } |
25984 | 16.4k | goto done; |
25985 | 16.4k | } |
25986 | 229k | p->mark = _mark; |
25987 | 229k | D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ', |
25988 | 229k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression")); |
25989 | 229k | } |
25990 | 229k | _res = NULL; |
25991 | 245k | done: |
25992 | 245k | p->level--; |
25993 | 245k | return _res; |
25994 | 229k | } |
25995 | | |
25996 | | // _tmp_182: 'or' conjunction |
25997 | | static void * |
25998 | | _tmp_182_rule(Parser *p) |
25999 | 143k | { |
26000 | 143k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
26001 | 0 | _Pypegen_stack_overflow(p); |
26002 | 0 | } |
26003 | 143k | if (p->error_indicator) { |
26004 | 0 | p->level--; |
26005 | 0 | return NULL; |
26006 | 0 | } |
26007 | 143k | void * _res = NULL; |
26008 | 143k | int _mark = p->mark; |
26009 | 143k | { // 'or' conjunction |
26010 | 143k | if (p->error_indicator) { |
26011 | 0 | p->level--; |
26012 | 0 | return NULL; |
26013 | 0 | } |
26014 | 143k | D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); |
26015 | 143k | Token * _keyword; |
26016 | 143k | expr_ty c; |
26017 | 143k | if ( |
26018 | 143k | (_keyword = _PyPegen_expect_token(p, 529)) // token='or' |
26019 | 4.64k | && |
26020 | 4.64k | (c = conjunction_rule(p)) // conjunction |
26021 | 143k | ) |
26022 | 4.11k | { |
26023 | 4.11k | D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); |
26024 | 4.11k | _res = c; |
26025 | 4.11k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
26026 | 0 | p->error_indicator = 1; |
26027 | 0 | p->level--; |
26028 | 0 | return NULL; |
26029 | 0 | } |
26030 | 4.11k | goto done; |
26031 | 4.11k | } |
26032 | 139k | p->mark = _mark; |
26033 | 139k | D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ', |
26034 | 139k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction")); |
26035 | 139k | } |
26036 | 139k | _res = NULL; |
26037 | 143k | done: |
26038 | 143k | p->level--; |
26039 | 143k | return _res; |
26040 | 139k | } |
26041 | | |
26042 | | // _tmp_183: 'and' inversion |
26043 | | static void * |
26044 | | _tmp_183_rule(Parser *p) |
26045 | 145k | { |
26046 | 145k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
26047 | 0 | _Pypegen_stack_overflow(p); |
26048 | 0 | } |
26049 | 145k | if (p->error_indicator) { |
26050 | 0 | p->level--; |
26051 | 0 | return NULL; |
26052 | 0 | } |
26053 | 145k | void * _res = NULL; |
26054 | 145k | int _mark = p->mark; |
26055 | 145k | { // 'and' inversion |
26056 | 145k | if (p->error_indicator) { |
26057 | 0 | p->level--; |
26058 | 0 | return NULL; |
26059 | 0 | } |
26060 | 145k | D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); |
26061 | 145k | Token * _keyword; |
26062 | 145k | expr_ty c; |
26063 | 145k | if ( |
26064 | 145k | (_keyword = _PyPegen_expect_token(p, 530)) // token='and' |
26065 | 2.34k | && |
26066 | 2.34k | (c = inversion_rule(p)) // inversion |
26067 | 145k | ) |
26068 | 2.00k | { |
26069 | 2.00k | D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); |
26070 | 2.00k | _res = c; |
26071 | 2.00k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
26072 | 0 | p->error_indicator = 1; |
26073 | 0 | p->level--; |
26074 | 0 | return NULL; |
26075 | 0 | } |
26076 | 2.00k | goto done; |
26077 | 2.00k | } |
26078 | 143k | p->mark = _mark; |
26079 | 143k | D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ', |
26080 | 143k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion")); |
26081 | 143k | } |
26082 | 143k | _res = NULL; |
26083 | 145k | done: |
26084 | 145k | p->level--; |
26085 | 145k | return _res; |
26086 | 143k | } |
26087 | | |
26088 | | // _tmp_184: slice | starred_expression |
26089 | | static void * |
26090 | | _tmp_184_rule(Parser *p) |
26091 | 11.6k | { |
26092 | 11.6k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
26093 | 0 | _Pypegen_stack_overflow(p); |
26094 | 0 | } |
26095 | 11.6k | if (p->error_indicator) { |
26096 | 0 | p->level--; |
26097 | 0 | return NULL; |
26098 | 0 | } |
26099 | 11.6k | void * _res = NULL; |
26100 | 11.6k | int _mark = p->mark; |
26101 | 11.6k | { // slice |
26102 | 11.6k | if (p->error_indicator) { |
26103 | 0 | p->level--; |
26104 | 0 | return NULL; |
26105 | 0 | } |
26106 | 11.6k | D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice")); |
26107 | 11.6k | expr_ty slice_var; |
26108 | 11.6k | if ( |
26109 | 11.6k | (slice_var = slice_rule(p)) // slice |
26110 | 11.6k | ) |
26111 | 8.47k | { |
26112 | 8.47k | D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice")); |
26113 | 8.47k | _res = slice_var; |
26114 | 8.47k | goto done; |
26115 | 8.47k | } |
26116 | 3.20k | p->mark = _mark; |
26117 | 3.20k | D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ', |
26118 | 3.20k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice")); |
26119 | 3.20k | } |
26120 | 0 | { // starred_expression |
26121 | 3.20k | if (p->error_indicator) { |
26122 | 211 | p->level--; |
26123 | 211 | return NULL; |
26124 | 211 | } |
26125 | 2.99k | D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); |
26126 | 2.99k | expr_ty starred_expression_var; |
26127 | 2.99k | if ( |
26128 | 2.99k | (starred_expression_var = starred_expression_rule(p)) // starred_expression |
26129 | 2.99k | ) |
26130 | 1.10k | { |
26131 | 1.10k | D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); |
26132 | 1.10k | _res = starred_expression_var; |
26133 | 1.10k | goto done; |
26134 | 1.10k | } |
26135 | 1.89k | p->mark = _mark; |
26136 | 1.89k | D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ', |
26137 | 1.89k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); |
26138 | 1.89k | } |
26139 | 1.89k | _res = NULL; |
26140 | 11.4k | done: |
26141 | 11.4k | p->level--; |
26142 | 11.4k | return _res; |
26143 | 1.89k | } |
26144 | | |
26145 | | // _tmp_185: fstring | string |
26146 | | static void * |
26147 | | _tmp_185_rule(Parser *p) |
26148 | 140k | { |
26149 | 140k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
26150 | 1 | _Pypegen_stack_overflow(p); |
26151 | 1 | } |
26152 | 140k | if (p->error_indicator) { |
26153 | 1 | p->level--; |
26154 | 1 | return NULL; |
26155 | 1 | } |
26156 | 140k | void * _res = NULL; |
26157 | 140k | int _mark = p->mark; |
26158 | 140k | { // fstring |
26159 | 140k | if (p->error_indicator) { |
26160 | 0 | p->level--; |
26161 | 0 | return NULL; |
26162 | 0 | } |
26163 | 140k | D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring")); |
26164 | 140k | expr_ty fstring_var; |
26165 | 140k | if ( |
26166 | 140k | (fstring_var = fstring_rule(p)) // fstring |
26167 | 140k | ) |
26168 | 13.5k | { |
26169 | 13.5k | D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "fstring")); |
26170 | 13.5k | _res = fstring_var; |
26171 | 13.5k | goto done; |
26172 | 13.5k | } |
26173 | 126k | p->mark = _mark; |
26174 | 126k | D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ', |
26175 | 126k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring")); |
26176 | 126k | } |
26177 | 0 | { // string |
26178 | 126k | if (p->error_indicator) { |
26179 | 839 | p->level--; |
26180 | 839 | return NULL; |
26181 | 839 | } |
26182 | 126k | D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "string")); |
26183 | 126k | expr_ty string_var; |
26184 | 126k | if ( |
26185 | 126k | (string_var = string_rule(p)) // string |
26186 | 126k | ) |
26187 | 45.4k | { |
26188 | 45.4k | D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "string")); |
26189 | 45.4k | _res = string_var; |
26190 | 45.4k | goto done; |
26191 | 45.4k | } |
26192 | 80.6k | p->mark = _mark; |
26193 | 80.6k | D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ', |
26194 | 80.6k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "string")); |
26195 | 80.6k | } |
26196 | 80.6k | _res = NULL; |
26197 | 139k | done: |
26198 | 139k | p->level--; |
26199 | 139k | return _res; |
26200 | 80.6k | } |
26201 | | |
26202 | | // _tmp_186: 'if' disjunction |
26203 | | static void * |
26204 | | _tmp_186_rule(Parser *p) |
26205 | 11.7k | { |
26206 | 11.7k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
26207 | 0 | _Pypegen_stack_overflow(p); |
26208 | 0 | } |
26209 | 11.7k | if (p->error_indicator) { |
26210 | 0 | p->level--; |
26211 | 0 | return NULL; |
26212 | 0 | } |
26213 | 11.7k | void * _res = NULL; |
26214 | 11.7k | int _mark = p->mark; |
26215 | 11.7k | { // 'if' disjunction |
26216 | 11.7k | if (p->error_indicator) { |
26217 | 0 | p->level--; |
26218 | 0 | return NULL; |
26219 | 0 | } |
26220 | 11.7k | D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); |
26221 | 11.7k | Token * _keyword; |
26222 | 11.7k | expr_ty z; |
26223 | 11.7k | if ( |
26224 | 11.7k | (_keyword = _PyPegen_expect_token(p, 514)) // token='if' |
26225 | 4.94k | && |
26226 | 4.94k | (z = disjunction_rule(p)) // disjunction |
26227 | 11.7k | ) |
26228 | 3.85k | { |
26229 | 3.85k | D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); |
26230 | 3.85k | _res = z; |
26231 | 3.85k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
26232 | 0 | p->error_indicator = 1; |
26233 | 0 | p->level--; |
26234 | 0 | return NULL; |
26235 | 0 | } |
26236 | 3.85k | goto done; |
26237 | 3.85k | } |
26238 | 7.90k | p->mark = _mark; |
26239 | 7.90k | D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ', |
26240 | 7.90k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction")); |
26241 | 7.90k | } |
26242 | 7.90k | _res = NULL; |
26243 | 11.7k | done: |
26244 | 11.7k | p->level--; |
26245 | 11.7k | return _res; |
26246 | 7.90k | } |
26247 | | |
26248 | | // _tmp_187: starred_expression | (assignment_expression | expression !':=') !'=' |
26249 | | static void * |
26250 | | _tmp_187_rule(Parser *p) |
26251 | 80.1k | { |
26252 | 80.1k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
26253 | 0 | _Pypegen_stack_overflow(p); |
26254 | 0 | } |
26255 | 80.1k | if (p->error_indicator) { |
26256 | 0 | p->level--; |
26257 | 0 | return NULL; |
26258 | 0 | } |
26259 | 80.1k | void * _res = NULL; |
26260 | 80.1k | int _mark = p->mark; |
26261 | 80.1k | { // starred_expression |
26262 | 80.1k | if (p->error_indicator) { |
26263 | 0 | p->level--; |
26264 | 0 | return NULL; |
26265 | 0 | } |
26266 | 80.1k | D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); |
26267 | 80.1k | expr_ty starred_expression_var; |
26268 | 80.1k | if ( |
26269 | 80.1k | (starred_expression_var = starred_expression_rule(p)) // starred_expression |
26270 | 80.1k | ) |
26271 | 3.74k | { |
26272 | 3.74k | D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); |
26273 | 3.74k | _res = starred_expression_var; |
26274 | 3.74k | goto done; |
26275 | 3.74k | } |
26276 | 76.4k | p->mark = _mark; |
26277 | 76.4k | D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ', |
26278 | 76.4k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); |
26279 | 76.4k | } |
26280 | 0 | { // (assignment_expression | expression !':=') !'=' |
26281 | 76.4k | if (p->error_indicator) { |
26282 | 123 | p->level--; |
26283 | 123 | return NULL; |
26284 | 123 | } |
26285 | 76.2k | D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); |
26286 | 76.2k | void *_tmp_200_var; |
26287 | 76.2k | if ( |
26288 | 76.2k | (_tmp_200_var = _tmp_200_rule(p)) // assignment_expression | expression !':=' |
26289 | 47.9k | && |
26290 | 47.9k | _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='=' |
26291 | 76.2k | ) |
26292 | 38.7k | { |
26293 | 38.7k | D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); |
26294 | 38.7k | _res = _tmp_200_var; |
26295 | 38.7k | goto done; |
26296 | 38.7k | } |
26297 | 37.5k | p->mark = _mark; |
26298 | 37.5k | D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ', |
26299 | 37.5k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='")); |
26300 | 37.5k | } |
26301 | 37.5k | _res = NULL; |
26302 | 80.0k | done: |
26303 | 80.0k | p->level--; |
26304 | 80.0k | return _res; |
26305 | 37.5k | } |
26306 | | |
26307 | | // _tmp_188: ',' star_target |
26308 | | static void * |
26309 | | _tmp_188_rule(Parser *p) |
26310 | 11.4k | { |
26311 | 11.4k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
26312 | 0 | _Pypegen_stack_overflow(p); |
26313 | 0 | } |
26314 | 11.4k | if (p->error_indicator) { |
26315 | 0 | p->level--; |
26316 | 0 | return NULL; |
26317 | 0 | } |
26318 | 11.4k | void * _res = NULL; |
26319 | 11.4k | int _mark = p->mark; |
26320 | 11.4k | { // ',' star_target |
26321 | 11.4k | if (p->error_indicator) { |
26322 | 0 | p->level--; |
26323 | 0 | return NULL; |
26324 | 0 | } |
26325 | 11.4k | D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); |
26326 | 11.4k | Token * _literal; |
26327 | 11.4k | expr_ty c; |
26328 | 11.4k | if ( |
26329 | 11.4k | (_literal = _PyPegen_expect_token(p, 12)) // token=',' |
26330 | 8.97k | && |
26331 | 8.97k | (c = star_target_rule(p)) // star_target |
26332 | 11.4k | ) |
26333 | 5.09k | { |
26334 | 5.09k | D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); |
26335 | 5.09k | _res = c; |
26336 | 5.09k | if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) { |
26337 | 0 | p->error_indicator = 1; |
26338 | 0 | p->level--; |
26339 | 0 | return NULL; |
26340 | 0 | } |
26341 | 5.09k | goto done; |
26342 | 5.09k | } |
26343 | 6.31k | p->mark = _mark; |
26344 | 6.31k | D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ', |
26345 | 6.31k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); |
26346 | 6.31k | } |
26347 | 6.31k | _res = NULL; |
26348 | 11.4k | done: |
26349 | 11.4k | p->level--; |
26350 | 11.4k | return _res; |
26351 | 6.31k | } |
26352 | | |
26353 | | // _tmp_200: assignment_expression | expression !':=' |
26354 | | static void * |
26355 | | _tmp_200_rule(Parser *p) |
26356 | 76.2k | { |
26357 | 76.2k | if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) { |
26358 | 0 | _Pypegen_stack_overflow(p); |
26359 | 0 | } |
26360 | 76.2k | if (p->error_indicator) { |
26361 | 0 | p->level--; |
26362 | 0 | return NULL; |
26363 | 0 | } |
26364 | 76.2k | void * _res = NULL; |
26365 | 76.2k | int _mark = p->mark; |
26366 | 76.2k | { // assignment_expression |
26367 | 76.2k | if (p->error_indicator) { |
26368 | 0 | p->level--; |
26369 | 0 | return NULL; |
26370 | 0 | } |
26371 | 76.2k | D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression")); |
26372 | 76.2k | expr_ty assignment_expression_var; |
26373 | 76.2k | if ( |
26374 | 76.2k | (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression |
26375 | 76.2k | ) |
26376 | 1.46k | { |
26377 | 1.46k | D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression")); |
26378 | 1.46k | _res = assignment_expression_var; |
26379 | 1.46k | goto done; |
26380 | 1.46k | } |
26381 | 74.8k | p->mark = _mark; |
26382 | 74.8k | D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ', |
26383 | 74.8k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); |
26384 | 74.8k | } |
26385 | 0 | { // expression !':=' |
26386 | 74.8k | if (p->error_indicator) { |
26387 | 254 | p->level--; |
26388 | 254 | return NULL; |
26389 | 254 | } |
26390 | 74.5k | D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); |
26391 | 74.5k | expr_ty expression_var; |
26392 | 74.5k | if ( |
26393 | 74.5k | (expression_var = expression_rule(p)) // expression |
26394 | 47.0k | && |
26395 | 47.0k | _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':=' |
26396 | 74.5k | ) |
26397 | 46.4k | { |
26398 | 46.4k | D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); |
26399 | 46.4k | _res = expression_var; |
26400 | 46.4k | goto done; |
26401 | 46.4k | } |
26402 | 28.1k | p->mark = _mark; |
26403 | 28.1k | D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ', |
26404 | 28.1k | p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='")); |
26405 | 28.1k | } |
26406 | 28.1k | _res = NULL; |
26407 | 76.0k | done: |
26408 | 76.0k | p->level--; |
26409 | 76.0k | return _res; |
26410 | 28.1k | } |
26411 | | |
26412 | | void * |
26413 | | _PyPegen_parse(Parser *p) |
26414 | 138k | { |
26415 | | // Initialize keywords |
26416 | 138k | p->keywords = reserved_keywords; |
26417 | 138k | p->n_keyword_lists = n_keyword_lists; |
26418 | 138k | p->soft_keywords = soft_keywords; |
26419 | | |
26420 | | // Run parser |
26421 | 138k | void *result = NULL; |
26422 | 138k | if (p->start_rule == Py_file_input) { |
26423 | 138k | result = file_rule(p); |
26424 | 138k | } else if (p->start_rule == Py_single_input) { |
26425 | 0 | result = interactive_rule(p); |
26426 | 172 | } else if (p->start_rule == Py_eval_input) { |
26427 | 172 | result = eval_rule(p); |
26428 | 172 | } else if (p->start_rule == Py_func_type_input) { |
26429 | 0 | result = func_type_rule(p); |
26430 | 0 | } |
26431 | | |
26432 | 138k | return result; |
26433 | 138k | } |