1 // @generated by pegen from python.gram
2 #include "pegen.h"
3
4 #if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
5 # define D(x) if (Py_DebugFlag) x;
6 #else
7 # define D(x)
8 #endif
9
10 #ifdef __wasi__
11 # define MAXSTACK 4000
12 #else
13 # define MAXSTACK 6000
14 #endif
15 static const int n_keyword_lists = 9;
16 static KeywordToken *reserved_keywords[] = {
17 (KeywordToken[]) {{NULL, -1}},
18 (KeywordToken[]) {{NULL, -1}},
19 (KeywordToken[]) {
20 {"if", 639},
21 {"as", 637},
22 {"in", 648},
23 {"or", 574},
24 {"is", 582},
25 {NULL, -1},
26 },
27 (KeywordToken[]) {
28 {"del", 603},
29 {"def", 649},
30 {"for", 647},
31 {"try", 621},
32 {"and", 575},
33 {"not", 581},
34 {NULL, -1},
35 },
36 (KeywordToken[]) {
37 {"from", 572},
38 {"pass", 504},
39 {"with", 612},
40 {"elif", 641},
41 {"else", 642},
42 {"None", 601},
43 {"True", 600},
44 {NULL, -1},
45 },
46 (KeywordToken[]) {
47 {"raise", 522},
48 {"yield", 573},
49 {"break", 508},
50 {"class", 651},
51 {"while", 644},
52 {"False", 602},
53 {NULL, -1},
54 },
55 (KeywordToken[]) {
56 {"return", 519},
57 {"import", 531},
58 {"assert", 526},
59 {"global", 523},
60 {"except", 634},
61 {"lambda", 586},
62 {NULL, -1},
63 },
64 (KeywordToken[]) {
65 {"finally", 630},
66 {NULL, -1},
67 },
68 (KeywordToken[]) {
69 {"continue", 509},
70 {"nonlocal", 524},
71 {NULL, -1},
72 },
73 };
74 static char *soft_keywords[] = {
75 "_",
76 "case",
77 "match",
78 NULL,
79 };
80 #define file_type 1000
81 #define interactive_type 1001
82 #define eval_type 1002
83 #define func_type_type 1003
84 #define fstring_type 1004
85 #define statements_type 1005
86 #define statement_type 1006
87 #define statement_newline_type 1007
88 #define simple_stmts_type 1008
89 #define simple_stmt_type 1009
90 #define compound_stmt_type 1010
91 #define assignment_type 1011
92 #define annotated_rhs_type 1012
93 #define augassign_type 1013
94 #define return_stmt_type 1014
95 #define raise_stmt_type 1015
96 #define global_stmt_type 1016
97 #define nonlocal_stmt_type 1017
98 #define del_stmt_type 1018
99 #define yield_stmt_type 1019
100 #define assert_stmt_type 1020
101 #define import_stmt_type 1021
102 #define import_name_type 1022
103 #define import_from_type 1023
104 #define import_from_targets_type 1024
105 #define import_from_as_names_type 1025
106 #define import_from_as_name_type 1026
107 #define dotted_as_names_type 1027
108 #define dotted_as_name_type 1028
109 #define dotted_name_type 1029 // Left-recursive
110 #define block_type 1030
111 #define decorators_type 1031
112 #define class_def_type 1032
113 #define class_def_raw_type 1033
114 #define function_def_type 1034
115 #define function_def_raw_type 1035
116 #define params_type 1036
117 #define parameters_type 1037
118 #define slash_no_default_type 1038
119 #define slash_with_default_type 1039
120 #define star_etc_type 1040
121 #define kwds_type 1041
122 #define param_no_default_type 1042
123 #define param_no_default_star_annotation_type 1043
124 #define param_with_default_type 1044
125 #define param_maybe_default_type 1045
126 #define param_type 1046
127 #define param_star_annotation_type 1047
128 #define annotation_type 1048
129 #define star_annotation_type 1049
130 #define default_type 1050
131 #define if_stmt_type 1051
132 #define elif_stmt_type 1052
133 #define else_block_type 1053
134 #define while_stmt_type 1054
135 #define for_stmt_type 1055
136 #define with_stmt_type 1056
137 #define with_item_type 1057
138 #define try_stmt_type 1058
139 #define except_block_type 1059
140 #define except_star_block_type 1060
141 #define finally_block_type 1061
142 #define match_stmt_type 1062
143 #define subject_expr_type 1063
144 #define case_block_type 1064
145 #define guard_type 1065
146 #define patterns_type 1066
147 #define pattern_type 1067
148 #define as_pattern_type 1068
149 #define or_pattern_type 1069
150 #define closed_pattern_type 1070
151 #define literal_pattern_type 1071
152 #define literal_expr_type 1072
153 #define complex_number_type 1073
154 #define signed_number_type 1074
155 #define signed_real_number_type 1075
156 #define real_number_type 1076
157 #define imaginary_number_type 1077
158 #define capture_pattern_type 1078
159 #define pattern_capture_target_type 1079
160 #define wildcard_pattern_type 1080
161 #define value_pattern_type 1081
162 #define attr_type 1082 // Left-recursive
163 #define name_or_attr_type 1083 // Left-recursive
164 #define group_pattern_type 1084
165 #define sequence_pattern_type 1085
166 #define open_sequence_pattern_type 1086
167 #define maybe_sequence_pattern_type 1087
168 #define maybe_star_pattern_type 1088
169 #define star_pattern_type 1089
170 #define mapping_pattern_type 1090
171 #define items_pattern_type 1091
172 #define key_value_pattern_type 1092
173 #define double_star_pattern_type 1093
174 #define class_pattern_type 1094
175 #define positional_patterns_type 1095
176 #define keyword_patterns_type 1096
177 #define keyword_pattern_type 1097
178 #define expressions_type 1098
179 #define expression_type 1099
180 #define yield_expr_type 1100
181 #define star_expressions_type 1101
182 #define star_expression_type 1102
183 #define star_named_expressions_type 1103
184 #define star_named_expression_type 1104
185 #define assignment_expression_type 1105
186 #define named_expression_type 1106
187 #define disjunction_type 1107
188 #define conjunction_type 1108
189 #define inversion_type 1109
190 #define comparison_type 1110
191 #define compare_op_bitwise_or_pair_type 1111
192 #define eq_bitwise_or_type 1112
193 #define noteq_bitwise_or_type 1113
194 #define lte_bitwise_or_type 1114
195 #define lt_bitwise_or_type 1115
196 #define gte_bitwise_or_type 1116
197 #define gt_bitwise_or_type 1117
198 #define notin_bitwise_or_type 1118
199 #define in_bitwise_or_type 1119
200 #define isnot_bitwise_or_type 1120
201 #define is_bitwise_or_type 1121
202 #define bitwise_or_type 1122 // Left-recursive
203 #define bitwise_xor_type 1123 // Left-recursive
204 #define bitwise_and_type 1124 // Left-recursive
205 #define shift_expr_type 1125 // Left-recursive
206 #define sum_type 1126 // Left-recursive
207 #define term_type 1127 // Left-recursive
208 #define factor_type 1128
209 #define power_type 1129
210 #define await_primary_type 1130
211 #define primary_type 1131 // Left-recursive
212 #define slices_type 1132
213 #define slice_type 1133
214 #define atom_type 1134
215 #define group_type 1135
216 #define lambdef_type 1136
217 #define lambda_params_type 1137
218 #define lambda_parameters_type 1138
219 #define lambda_slash_no_default_type 1139
220 #define lambda_slash_with_default_type 1140
221 #define lambda_star_etc_type 1141
222 #define lambda_kwds_type 1142
223 #define lambda_param_no_default_type 1143
224 #define lambda_param_with_default_type 1144
225 #define lambda_param_maybe_default_type 1145
226 #define lambda_param_type 1146
227 #define strings_type 1147
228 #define list_type 1148
229 #define tuple_type 1149
230 #define set_type 1150
231 #define dict_type 1151
232 #define double_starred_kvpairs_type 1152
233 #define double_starred_kvpair_type 1153
234 #define kvpair_type 1154
235 #define for_if_clauses_type 1155
236 #define for_if_clause_type 1156
237 #define listcomp_type 1157
238 #define setcomp_type 1158
239 #define genexp_type 1159
240 #define dictcomp_type 1160
241 #define arguments_type 1161
242 #define args_type 1162
243 #define kwargs_type 1163
244 #define starred_expression_type 1164
245 #define kwarg_or_starred_type 1165
246 #define kwarg_or_double_starred_type 1166
247 #define star_targets_type 1167
248 #define star_targets_list_seq_type 1168
249 #define star_targets_tuple_seq_type 1169
250 #define star_target_type 1170
251 #define target_with_star_atom_type 1171
252 #define star_atom_type 1172
253 #define single_target_type 1173
254 #define single_subscript_attribute_target_type 1174
255 #define t_primary_type 1175 // Left-recursive
256 #define t_lookahead_type 1176
257 #define del_targets_type 1177
258 #define del_target_type 1178
259 #define del_t_atom_type 1179
260 #define type_expressions_type 1180
261 #define func_type_comment_type 1181
262 #define invalid_arguments_type 1182
263 #define invalid_kwarg_type 1183
264 #define expression_without_invalid_type 1184
265 #define invalid_legacy_expression_type 1185
266 #define invalid_expression_type 1186
267 #define invalid_named_expression_type 1187
268 #define invalid_assignment_type 1188
269 #define invalid_ann_assign_target_type 1189
270 #define invalid_del_stmt_type 1190
271 #define invalid_block_type 1191
272 #define invalid_comprehension_type 1192
273 #define invalid_dict_comprehension_type 1193
274 #define invalid_parameters_type 1194
275 #define invalid_default_type 1195
276 #define invalid_star_etc_type 1196
277 #define invalid_kwds_type 1197
278 #define invalid_parameters_helper_type 1198
279 #define invalid_lambda_parameters_type 1199
280 #define invalid_lambda_parameters_helper_type 1200
281 #define invalid_lambda_star_etc_type 1201
282 #define invalid_lambda_kwds_type 1202
283 #define invalid_double_type_comments_type 1203
284 #define invalid_with_item_type 1204
285 #define invalid_for_target_type 1205
286 #define invalid_group_type 1206
287 #define invalid_import_from_targets_type 1207
288 #define invalid_with_stmt_type 1208
289 #define invalid_with_stmt_indent_type 1209
290 #define invalid_try_stmt_type 1210
291 #define invalid_except_stmt_type 1211
292 #define invalid_finally_stmt_type 1212
293 #define invalid_except_stmt_indent_type 1213
294 #define invalid_except_star_stmt_indent_type 1214
295 #define invalid_match_stmt_type 1215
296 #define invalid_case_block_type 1216
297 #define invalid_as_pattern_type 1217
298 #define invalid_class_pattern_type 1218
299 #define invalid_class_argument_pattern_type 1219
300 #define invalid_if_stmt_type 1220
301 #define invalid_elif_stmt_type 1221
302 #define invalid_else_stmt_type 1222
303 #define invalid_while_stmt_type 1223
304 #define invalid_for_stmt_type 1224
305 #define invalid_def_raw_type 1225
306 #define invalid_class_def_raw_type 1226
307 #define invalid_double_starred_kvpairs_type 1227
308 #define invalid_kvpair_type 1228
309 #define _loop0_1_type 1229
310 #define _loop0_2_type 1230
311 #define _loop1_3_type 1231
312 #define _loop0_5_type 1232
313 #define _gather_4_type 1233
314 #define _tmp_6_type 1234
315 #define _tmp_7_type 1235
316 #define _tmp_8_type 1236
317 #define _tmp_9_type 1237
318 #define _tmp_10_type 1238
319 #define _tmp_11_type 1239
320 #define _tmp_12_type 1240
321 #define _tmp_13_type 1241
322 #define _loop1_14_type 1242
323 #define _tmp_15_type 1243
324 #define _tmp_16_type 1244
325 #define _tmp_17_type 1245
326 #define _loop0_19_type 1246
327 #define _gather_18_type 1247
328 #define _loop0_21_type 1248
329 #define _gather_20_type 1249
330 #define _tmp_22_type 1250
331 #define _tmp_23_type 1251
332 #define _loop0_24_type 1252
333 #define _loop1_25_type 1253
334 #define _loop0_27_type 1254
335 #define _gather_26_type 1255
336 #define _tmp_28_type 1256
337 #define _loop0_30_type 1257
338 #define _gather_29_type 1258
339 #define _tmp_31_type 1259
340 #define _loop1_32_type 1260
341 #define _tmp_33_type 1261
342 #define _tmp_34_type 1262
343 #define _tmp_35_type 1263
344 #define _loop0_36_type 1264
345 #define _loop0_37_type 1265
346 #define _loop0_38_type 1266
347 #define _loop1_39_type 1267
348 #define _loop0_40_type 1268
349 #define _loop1_41_type 1269
350 #define _loop1_42_type 1270
351 #define _loop1_43_type 1271
352 #define _loop0_44_type 1272
353 #define _loop1_45_type 1273
354 #define _loop0_46_type 1274
355 #define _loop1_47_type 1275
356 #define _loop0_48_type 1276
357 #define _loop0_49_type 1277
358 #define _loop1_50_type 1278
359 #define _loop0_52_type 1279
360 #define _gather_51_type 1280
361 #define _loop0_54_type 1281
362 #define _gather_53_type 1282
363 #define _loop0_56_type 1283
364 #define _gather_55_type 1284
365 #define _loop0_58_type 1285
366 #define _gather_57_type 1286
367 #define _tmp_59_type 1287
368 #define _loop1_60_type 1288
369 #define _loop1_61_type 1289
370 #define _tmp_62_type 1290
371 #define _tmp_63_type 1291
372 #define _loop1_64_type 1292
373 #define _loop0_66_type 1293
374 #define _gather_65_type 1294
375 #define _tmp_67_type 1295
376 #define _tmp_68_type 1296
377 #define _tmp_69_type 1297
378 #define _tmp_70_type 1298
379 #define _loop0_72_type 1299
380 #define _gather_71_type 1300
381 #define _loop0_74_type 1301
382 #define _gather_73_type 1302
383 #define _tmp_75_type 1303
384 #define _loop0_77_type 1304
385 #define _gather_76_type 1305
386 #define _loop0_79_type 1306
387 #define _gather_78_type 1307
388 #define _loop1_80_type 1308
389 #define _loop1_81_type 1309
390 #define _loop0_83_type 1310
391 #define _gather_82_type 1311
392 #define _loop1_84_type 1312
393 #define _loop1_85_type 1313
394 #define _loop1_86_type 1314
395 #define _tmp_87_type 1315
396 #define _loop0_89_type 1316
397 #define _gather_88_type 1317
398 #define _tmp_90_type 1318
399 #define _tmp_91_type 1319
400 #define _tmp_92_type 1320
401 #define _tmp_93_type 1321
402 #define _tmp_94_type 1322
403 #define _loop0_95_type 1323
404 #define _loop0_96_type 1324
405 #define _loop0_97_type 1325
406 #define _loop1_98_type 1326
407 #define _loop0_99_type 1327
408 #define _loop1_100_type 1328
409 #define _loop1_101_type 1329
410 #define _loop1_102_type 1330
411 #define _loop0_103_type 1331
412 #define _loop1_104_type 1332
413 #define _loop0_105_type 1333
414 #define _loop1_106_type 1334
415 #define _loop0_107_type 1335
416 #define _loop1_108_type 1336
417 #define _loop1_109_type 1337
418 #define _tmp_110_type 1338
419 #define _loop0_112_type 1339
420 #define _gather_111_type 1340
421 #define _loop1_113_type 1341
422 #define _loop0_114_type 1342
423 #define _loop0_115_type 1343
424 #define _tmp_116_type 1344
425 #define _loop0_118_type 1345
426 #define _gather_117_type 1346
427 #define _tmp_119_type 1347
428 #define _loop0_121_type 1348
429 #define _gather_120_type 1349
430 #define _loop0_123_type 1350
431 #define _gather_122_type 1351
432 #define _loop0_125_type 1352
433 #define _gather_124_type 1353
434 #define _loop0_127_type 1354
435 #define _gather_126_type 1355
436 #define _loop0_128_type 1356
437 #define _loop0_130_type 1357
438 #define _gather_129_type 1358
439 #define _loop1_131_type 1359
440 #define _tmp_132_type 1360
441 #define _loop0_134_type 1361
442 #define _gather_133_type 1362
443 #define _loop0_136_type 1363
444 #define _gather_135_type 1364
445 #define _loop0_138_type 1365
446 #define _gather_137_type 1366
447 #define _loop0_140_type 1367
448 #define _gather_139_type 1368
449 #define _loop0_142_type 1369
450 #define _gather_141_type 1370
451 #define _tmp_143_type 1371
452 #define _tmp_144_type 1372
453 #define _tmp_145_type 1373
454 #define _tmp_146_type 1374
455 #define _tmp_147_type 1375
456 #define _tmp_148_type 1376
457 #define _tmp_149_type 1377
458 #define _tmp_150_type 1378
459 #define _tmp_151_type 1379
460 #define _loop0_152_type 1380
461 #define _loop0_153_type 1381
462 #define _loop0_154_type 1382
463 #define _tmp_155_type 1383
464 #define _tmp_156_type 1384
465 #define _tmp_157_type 1385
466 #define _tmp_158_type 1386
467 #define _loop0_159_type 1387
468 #define _loop0_160_type 1388
469 #define _loop1_161_type 1389
470 #define _tmp_162_type 1390
471 #define _loop0_163_type 1391
472 #define _tmp_164_type 1392
473 #define _loop0_165_type 1393
474 #define _tmp_166_type 1394
475 #define _loop0_167_type 1395
476 #define _loop1_168_type 1396
477 #define _tmp_169_type 1397
478 #define _tmp_170_type 1398
479 #define _tmp_171_type 1399
480 #define _loop0_172_type 1400
481 #define _tmp_173_type 1401
482 #define _tmp_174_type 1402
483 #define _loop1_175_type 1403
484 #define _loop0_176_type 1404
485 #define _loop0_177_type 1405
486 #define _loop0_179_type 1406
487 #define _gather_178_type 1407
488 #define _tmp_180_type 1408
489 #define _loop0_181_type 1409
490 #define _tmp_182_type 1410
491 #define _loop0_183_type 1411
492 #define _tmp_184_type 1412
493 #define _loop0_185_type 1413
494 #define _loop1_186_type 1414
495 #define _loop1_187_type 1415
496 #define _tmp_188_type 1416
497 #define _tmp_189_type 1417
498 #define _loop0_190_type 1418
499 #define _tmp_191_type 1419
500 #define _tmp_192_type 1420
501 #define _tmp_193_type 1421
502 #define _loop0_195_type 1422
503 #define _gather_194_type 1423
504 #define _loop0_197_type 1424
505 #define _gather_196_type 1425
506 #define _loop0_199_type 1426
507 #define _gather_198_type 1427
508 #define _loop0_201_type 1428
509 #define _gather_200_type 1429
510 #define _tmp_202_type 1430
511 #define _loop0_203_type 1431
512 #define _loop1_204_type 1432
513 #define _tmp_205_type 1433
514 #define _loop0_206_type 1434
515 #define _loop1_207_type 1435
516 #define _tmp_208_type 1436
517 #define _tmp_209_type 1437
518 #define _tmp_210_type 1438
519 #define _tmp_211_type 1439
520 #define _tmp_212_type 1440
521 #define _tmp_213_type 1441
522 #define _tmp_214_type 1442
523 #define _tmp_215_type 1443
524 #define _tmp_216_type 1444
525 #define _tmp_217_type 1445
526 #define _loop0_219_type 1446
527 #define _gather_218_type 1447
528 #define _tmp_220_type 1448
529 #define _tmp_221_type 1449
530 #define _tmp_222_type 1450
531 #define _tmp_223_type 1451
532 #define _tmp_224_type 1452
533 #define _tmp_225_type 1453
534 #define _tmp_226_type 1454
535 #define _tmp_227_type 1455
536 #define _tmp_228_type 1456
537 #define _tmp_229_type 1457
538 #define _tmp_230_type 1458
539 #define _tmp_231_type 1459
540 #define _tmp_232_type 1460
541 #define _tmp_233_type 1461
542 #define _tmp_234_type 1462
543 #define _tmp_235_type 1463
544 #define _tmp_236_type 1464
545 #define _tmp_237_type 1465
546 #define _tmp_238_type 1466
547 #define _tmp_239_type 1467
548 #define _tmp_240_type 1468
549 #define _tmp_241_type 1469
550 #define _tmp_242_type 1470
551 #define _tmp_243_type 1471
552 #define _tmp_244_type 1472
553 #define _tmp_245_type 1473
554 #define _tmp_246_type 1474
555 #define _tmp_247_type 1475
556 #define _tmp_248_type 1476
557 #define _tmp_249_type 1477
558
559 static mod_ty file_rule(Parser *p);
560 static mod_ty interactive_rule(Parser *p);
561 static mod_ty eval_rule(Parser *p);
562 static mod_ty func_type_rule(Parser *p);
563 static expr_ty fstring_rule(Parser *p);
564 static asdl_stmt_seq* statements_rule(Parser *p);
565 static asdl_stmt_seq* statement_rule(Parser *p);
566 static asdl_stmt_seq* statement_newline_rule(Parser *p);
567 static asdl_stmt_seq* simple_stmts_rule(Parser *p);
568 static stmt_ty simple_stmt_rule(Parser *p);
569 static stmt_ty compound_stmt_rule(Parser *p);
570 static stmt_ty assignment_rule(Parser *p);
571 static expr_ty annotated_rhs_rule(Parser *p);
572 static AugOperator* augassign_rule(Parser *p);
573 static stmt_ty return_stmt_rule(Parser *p);
574 static stmt_ty raise_stmt_rule(Parser *p);
575 static stmt_ty global_stmt_rule(Parser *p);
576 static stmt_ty nonlocal_stmt_rule(Parser *p);
577 static stmt_ty del_stmt_rule(Parser *p);
578 static stmt_ty yield_stmt_rule(Parser *p);
579 static stmt_ty assert_stmt_rule(Parser *p);
580 static stmt_ty import_stmt_rule(Parser *p);
581 static stmt_ty import_name_rule(Parser *p);
582 static stmt_ty import_from_rule(Parser *p);
583 static asdl_alias_seq* import_from_targets_rule(Parser *p);
584 static asdl_alias_seq* import_from_as_names_rule(Parser *p);
585 static alias_ty import_from_as_name_rule(Parser *p);
586 static asdl_alias_seq* dotted_as_names_rule(Parser *p);
587 static alias_ty dotted_as_name_rule(Parser *p);
588 static expr_ty dotted_name_rule(Parser *p);
589 static asdl_stmt_seq* block_rule(Parser *p);
590 static asdl_expr_seq* decorators_rule(Parser *p);
591 static stmt_ty class_def_rule(Parser *p);
592 static stmt_ty class_def_raw_rule(Parser *p);
593 static stmt_ty function_def_rule(Parser *p);
594 static stmt_ty function_def_raw_rule(Parser *p);
595 static arguments_ty params_rule(Parser *p);
596 static arguments_ty parameters_rule(Parser *p);
597 static asdl_arg_seq* slash_no_default_rule(Parser *p);
598 static SlashWithDefault* slash_with_default_rule(Parser *p);
599 static StarEtc* star_etc_rule(Parser *p);
600 static arg_ty kwds_rule(Parser *p);
601 static arg_ty param_no_default_rule(Parser *p);
602 static arg_ty param_no_default_star_annotation_rule(Parser *p);
603 static NameDefaultPair* param_with_default_rule(Parser *p);
604 static NameDefaultPair* param_maybe_default_rule(Parser *p);
605 static arg_ty param_rule(Parser *p);
606 static arg_ty param_star_annotation_rule(Parser *p);
607 static expr_ty annotation_rule(Parser *p);
608 static expr_ty star_annotation_rule(Parser *p);
609 static expr_ty default_rule(Parser *p);
610 static stmt_ty if_stmt_rule(Parser *p);
611 static stmt_ty elif_stmt_rule(Parser *p);
612 static asdl_stmt_seq* else_block_rule(Parser *p);
613 static stmt_ty while_stmt_rule(Parser *p);
614 static stmt_ty for_stmt_rule(Parser *p);
615 static stmt_ty with_stmt_rule(Parser *p);
616 static withitem_ty with_item_rule(Parser *p);
617 static stmt_ty try_stmt_rule(Parser *p);
618 static excepthandler_ty except_block_rule(Parser *p);
619 static excepthandler_ty except_star_block_rule(Parser *p);
620 static asdl_stmt_seq* finally_block_rule(Parser *p);
621 static stmt_ty match_stmt_rule(Parser *p);
622 static expr_ty subject_expr_rule(Parser *p);
623 static match_case_ty case_block_rule(Parser *p);
624 static expr_ty guard_rule(Parser *p);
625 static pattern_ty patterns_rule(Parser *p);
626 static pattern_ty pattern_rule(Parser *p);
627 static pattern_ty as_pattern_rule(Parser *p);
628 static pattern_ty or_pattern_rule(Parser *p);
629 static pattern_ty closed_pattern_rule(Parser *p);
630 static pattern_ty literal_pattern_rule(Parser *p);
631 static expr_ty literal_expr_rule(Parser *p);
632 static expr_ty complex_number_rule(Parser *p);
633 static expr_ty signed_number_rule(Parser *p);
634 static expr_ty signed_real_number_rule(Parser *p);
635 static expr_ty real_number_rule(Parser *p);
636 static expr_ty imaginary_number_rule(Parser *p);
637 static pattern_ty capture_pattern_rule(Parser *p);
638 static expr_ty pattern_capture_target_rule(Parser *p);
639 static pattern_ty wildcard_pattern_rule(Parser *p);
640 static pattern_ty value_pattern_rule(Parser *p);
641 static expr_ty attr_rule(Parser *p);
642 static expr_ty name_or_attr_rule(Parser *p);
643 static pattern_ty group_pattern_rule(Parser *p);
644 static pattern_ty sequence_pattern_rule(Parser *p);
645 static asdl_seq* open_sequence_pattern_rule(Parser *p);
646 static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
647 static pattern_ty maybe_star_pattern_rule(Parser *p);
648 static pattern_ty star_pattern_rule(Parser *p);
649 static pattern_ty mapping_pattern_rule(Parser *p);
650 static asdl_seq* items_pattern_rule(Parser *p);
651 static KeyPatternPair* key_value_pattern_rule(Parser *p);
652 static expr_ty double_star_pattern_rule(Parser *p);
653 static pattern_ty class_pattern_rule(Parser *p);
654 static asdl_pattern_seq* positional_patterns_rule(Parser *p);
655 static asdl_seq* keyword_patterns_rule(Parser *p);
656 static KeyPatternPair* keyword_pattern_rule(Parser *p);
657 static expr_ty expressions_rule(Parser *p);
658 static expr_ty expression_rule(Parser *p);
659 static expr_ty yield_expr_rule(Parser *p);
660 static expr_ty star_expressions_rule(Parser *p);
661 static expr_ty star_expression_rule(Parser *p);
662 static asdl_expr_seq* star_named_expressions_rule(Parser *p);
663 static expr_ty star_named_expression_rule(Parser *p);
664 static expr_ty assignment_expression_rule(Parser *p);
665 static expr_ty named_expression_rule(Parser *p);
666 static expr_ty disjunction_rule(Parser *p);
667 static expr_ty conjunction_rule(Parser *p);
668 static expr_ty inversion_rule(Parser *p);
669 static expr_ty comparison_rule(Parser *p);
670 static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
671 static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
672 static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
673 static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
674 static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
675 static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
676 static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
677 static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
678 static CmpopExprPair* in_bitwise_or_rule(Parser *p);
679 static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
680 static CmpopExprPair* is_bitwise_or_rule(Parser *p);
681 static expr_ty bitwise_or_rule(Parser *p);
682 static expr_ty bitwise_xor_rule(Parser *p);
683 static expr_ty bitwise_and_rule(Parser *p);
684 static expr_ty shift_expr_rule(Parser *p);
685 static expr_ty sum_rule(Parser *p);
686 static expr_ty term_rule(Parser *p);
687 static expr_ty factor_rule(Parser *p);
688 static expr_ty power_rule(Parser *p);
689 static expr_ty await_primary_rule(Parser *p);
690 static expr_ty primary_rule(Parser *p);
691 static expr_ty slices_rule(Parser *p);
692 static expr_ty slice_rule(Parser *p);
693 static expr_ty atom_rule(Parser *p);
694 static expr_ty group_rule(Parser *p);
695 static expr_ty lambdef_rule(Parser *p);
696 static arguments_ty lambda_params_rule(Parser *p);
697 static arguments_ty lambda_parameters_rule(Parser *p);
698 static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
699 static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
700 static StarEtc* lambda_star_etc_rule(Parser *p);
701 static arg_ty lambda_kwds_rule(Parser *p);
702 static arg_ty lambda_param_no_default_rule(Parser *p);
703 static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
704 static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
705 static arg_ty lambda_param_rule(Parser *p);
706 static expr_ty strings_rule(Parser *p);
707 static expr_ty list_rule(Parser *p);
708 static expr_ty tuple_rule(Parser *p);
709 static expr_ty set_rule(Parser *p);
710 static expr_ty dict_rule(Parser *p);
711 static asdl_seq* double_starred_kvpairs_rule(Parser *p);
712 static KeyValuePair* double_starred_kvpair_rule(Parser *p);
713 static KeyValuePair* kvpair_rule(Parser *p);
714 static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
715 static comprehension_ty for_if_clause_rule(Parser *p);
716 static expr_ty listcomp_rule(Parser *p);
717 static expr_ty setcomp_rule(Parser *p);
718 static expr_ty genexp_rule(Parser *p);
719 static expr_ty dictcomp_rule(Parser *p);
720 static expr_ty arguments_rule(Parser *p);
721 static expr_ty args_rule(Parser *p);
722 static asdl_seq* kwargs_rule(Parser *p);
723 static expr_ty starred_expression_rule(Parser *p);
724 static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
725 static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
726 static expr_ty star_targets_rule(Parser *p);
727 static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
728 static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
729 static expr_ty star_target_rule(Parser *p);
730 static expr_ty target_with_star_atom_rule(Parser *p);
731 static expr_ty star_atom_rule(Parser *p);
732 static expr_ty single_target_rule(Parser *p);
733 static expr_ty single_subscript_attribute_target_rule(Parser *p);
734 static expr_ty t_primary_rule(Parser *p);
735 static void *t_lookahead_rule(Parser *p);
736 static asdl_expr_seq* del_targets_rule(Parser *p);
737 static expr_ty del_target_rule(Parser *p);
738 static expr_ty del_t_atom_rule(Parser *p);
739 static asdl_expr_seq* type_expressions_rule(Parser *p);
740 static Token* func_type_comment_rule(Parser *p);
741 static void *invalid_arguments_rule(Parser *p);
742 static void *invalid_kwarg_rule(Parser *p);
743 static expr_ty expression_without_invalid_rule(Parser *p);
744 static void *invalid_legacy_expression_rule(Parser *p);
745 static void *invalid_expression_rule(Parser *p);
746 static void *invalid_named_expression_rule(Parser *p);
747 static void *invalid_assignment_rule(Parser *p);
748 static expr_ty invalid_ann_assign_target_rule(Parser *p);
749 static void *invalid_del_stmt_rule(Parser *p);
750 static void *invalid_block_rule(Parser *p);
751 static void *invalid_comprehension_rule(Parser *p);
752 static void *invalid_dict_comprehension_rule(Parser *p);
753 static void *invalid_parameters_rule(Parser *p);
754 static void *invalid_default_rule(Parser *p);
755 static void *invalid_star_etc_rule(Parser *p);
756 static void *invalid_kwds_rule(Parser *p);
757 static void *invalid_parameters_helper_rule(Parser *p);
758 static void *invalid_lambda_parameters_rule(Parser *p);
759 static void *invalid_lambda_parameters_helper_rule(Parser *p);
760 static void *invalid_lambda_star_etc_rule(Parser *p);
761 static void *invalid_lambda_kwds_rule(Parser *p);
762 static void *invalid_double_type_comments_rule(Parser *p);
763 static void *invalid_with_item_rule(Parser *p);
764 static void *invalid_for_target_rule(Parser *p);
765 static void *invalid_group_rule(Parser *p);
766 static void *invalid_import_from_targets_rule(Parser *p);
767 static void *invalid_with_stmt_rule(Parser *p);
768 static void *invalid_with_stmt_indent_rule(Parser *p);
769 static void *invalid_try_stmt_rule(Parser *p);
770 static void *invalid_except_stmt_rule(Parser *p);
771 static void *invalid_finally_stmt_rule(Parser *p);
772 static void *invalid_except_stmt_indent_rule(Parser *p);
773 static void *invalid_except_star_stmt_indent_rule(Parser *p);
774 static void *invalid_match_stmt_rule(Parser *p);
775 static void *invalid_case_block_rule(Parser *p);
776 static void *invalid_as_pattern_rule(Parser *p);
777 static void *invalid_class_pattern_rule(Parser *p);
778 static asdl_pattern_seq* invalid_class_argument_pattern_rule(Parser *p);
779 static void *invalid_if_stmt_rule(Parser *p);
780 static void *invalid_elif_stmt_rule(Parser *p);
781 static void *invalid_else_stmt_rule(Parser *p);
782 static void *invalid_while_stmt_rule(Parser *p);
783 static void *invalid_for_stmt_rule(Parser *p);
784 static void *invalid_def_raw_rule(Parser *p);
785 static void *invalid_class_def_raw_rule(Parser *p);
786 static void *invalid_double_starred_kvpairs_rule(Parser *p);
787 static void *invalid_kvpair_rule(Parser *p);
788 static asdl_seq *_loop0_1_rule(Parser *p);
789 static asdl_seq *_loop0_2_rule(Parser *p);
790 static asdl_seq *_loop1_3_rule(Parser *p);
791 static asdl_seq *_loop0_5_rule(Parser *p);
792 static asdl_seq *_gather_4_rule(Parser *p);
793 static void *_tmp_6_rule(Parser *p);
794 static void *_tmp_7_rule(Parser *p);
795 static void *_tmp_8_rule(Parser *p);
796 static void *_tmp_9_rule(Parser *p);
797 static void *_tmp_10_rule(Parser *p);
798 static void *_tmp_11_rule(Parser *p);
799 static void *_tmp_12_rule(Parser *p);
800 static void *_tmp_13_rule(Parser *p);
801 static asdl_seq *_loop1_14_rule(Parser *p);
802 static void *_tmp_15_rule(Parser *p);
803 static void *_tmp_16_rule(Parser *p);
804 static void *_tmp_17_rule(Parser *p);
805 static asdl_seq *_loop0_19_rule(Parser *p);
806 static asdl_seq *_gather_18_rule(Parser *p);
807 static asdl_seq *_loop0_21_rule(Parser *p);
808 static asdl_seq *_gather_20_rule(Parser *p);
809 static void *_tmp_22_rule(Parser *p);
810 static void *_tmp_23_rule(Parser *p);
811 static asdl_seq *_loop0_24_rule(Parser *p);
812 static asdl_seq *_loop1_25_rule(Parser *p);
813 static asdl_seq *_loop0_27_rule(Parser *p);
814 static asdl_seq *_gather_26_rule(Parser *p);
815 static void *_tmp_28_rule(Parser *p);
816 static asdl_seq *_loop0_30_rule(Parser *p);
817 static asdl_seq *_gather_29_rule(Parser *p);
818 static void *_tmp_31_rule(Parser *p);
819 static asdl_seq *_loop1_32_rule(Parser *p);
820 static void *_tmp_33_rule(Parser *p);
821 static void *_tmp_34_rule(Parser *p);
822 static void *_tmp_35_rule(Parser *p);
823 static asdl_seq *_loop0_36_rule(Parser *p);
824 static asdl_seq *_loop0_37_rule(Parser *p);
825 static asdl_seq *_loop0_38_rule(Parser *p);
826 static asdl_seq *_loop1_39_rule(Parser *p);
827 static asdl_seq *_loop0_40_rule(Parser *p);
828 static asdl_seq *_loop1_41_rule(Parser *p);
829 static asdl_seq *_loop1_42_rule(Parser *p);
830 static asdl_seq *_loop1_43_rule(Parser *p);
831 static asdl_seq *_loop0_44_rule(Parser *p);
832 static asdl_seq *_loop1_45_rule(Parser *p);
833 static asdl_seq *_loop0_46_rule(Parser *p);
834 static asdl_seq *_loop1_47_rule(Parser *p);
835 static asdl_seq *_loop0_48_rule(Parser *p);
836 static asdl_seq *_loop0_49_rule(Parser *p);
837 static asdl_seq *_loop1_50_rule(Parser *p);
838 static asdl_seq *_loop0_52_rule(Parser *p);
839 static asdl_seq *_gather_51_rule(Parser *p);
840 static asdl_seq *_loop0_54_rule(Parser *p);
841 static asdl_seq *_gather_53_rule(Parser *p);
842 static asdl_seq *_loop0_56_rule(Parser *p);
843 static asdl_seq *_gather_55_rule(Parser *p);
844 static asdl_seq *_loop0_58_rule(Parser *p);
845 static asdl_seq *_gather_57_rule(Parser *p);
846 static void *_tmp_59_rule(Parser *p);
847 static asdl_seq *_loop1_60_rule(Parser *p);
848 static asdl_seq *_loop1_61_rule(Parser *p);
849 static void *_tmp_62_rule(Parser *p);
850 static void *_tmp_63_rule(Parser *p);
851 static asdl_seq *_loop1_64_rule(Parser *p);
852 static asdl_seq *_loop0_66_rule(Parser *p);
853 static asdl_seq *_gather_65_rule(Parser *p);
854 static void *_tmp_67_rule(Parser *p);
855 static void *_tmp_68_rule(Parser *p);
856 static void *_tmp_69_rule(Parser *p);
857 static void *_tmp_70_rule(Parser *p);
858 static asdl_seq *_loop0_72_rule(Parser *p);
859 static asdl_seq *_gather_71_rule(Parser *p);
860 static asdl_seq *_loop0_74_rule(Parser *p);
861 static asdl_seq *_gather_73_rule(Parser *p);
862 static void *_tmp_75_rule(Parser *p);
863 static asdl_seq *_loop0_77_rule(Parser *p);
864 static asdl_seq *_gather_76_rule(Parser *p);
865 static asdl_seq *_loop0_79_rule(Parser *p);
866 static asdl_seq *_gather_78_rule(Parser *p);
867 static asdl_seq *_loop1_80_rule(Parser *p);
868 static asdl_seq *_loop1_81_rule(Parser *p);
869 static asdl_seq *_loop0_83_rule(Parser *p);
870 static asdl_seq *_gather_82_rule(Parser *p);
871 static asdl_seq *_loop1_84_rule(Parser *p);
872 static asdl_seq *_loop1_85_rule(Parser *p);
873 static asdl_seq *_loop1_86_rule(Parser *p);
874 static void *_tmp_87_rule(Parser *p);
875 static asdl_seq *_loop0_89_rule(Parser *p);
876 static asdl_seq *_gather_88_rule(Parser *p);
877 static void *_tmp_90_rule(Parser *p);
878 static void *_tmp_91_rule(Parser *p);
879 static void *_tmp_92_rule(Parser *p);
880 static void *_tmp_93_rule(Parser *p);
881 static void *_tmp_94_rule(Parser *p);
882 static asdl_seq *_loop0_95_rule(Parser *p);
883 static asdl_seq *_loop0_96_rule(Parser *p);
884 static asdl_seq *_loop0_97_rule(Parser *p);
885 static asdl_seq *_loop1_98_rule(Parser *p);
886 static asdl_seq *_loop0_99_rule(Parser *p);
887 static asdl_seq *_loop1_100_rule(Parser *p);
888 static asdl_seq *_loop1_101_rule(Parser *p);
889 static asdl_seq *_loop1_102_rule(Parser *p);
890 static asdl_seq *_loop0_103_rule(Parser *p);
891 static asdl_seq *_loop1_104_rule(Parser *p);
892 static asdl_seq *_loop0_105_rule(Parser *p);
893 static asdl_seq *_loop1_106_rule(Parser *p);
894 static asdl_seq *_loop0_107_rule(Parser *p);
895 static asdl_seq *_loop1_108_rule(Parser *p);
896 static asdl_seq *_loop1_109_rule(Parser *p);
897 static void *_tmp_110_rule(Parser *p);
898 static asdl_seq *_loop0_112_rule(Parser *p);
899 static asdl_seq *_gather_111_rule(Parser *p);
900 static asdl_seq *_loop1_113_rule(Parser *p);
901 static asdl_seq *_loop0_114_rule(Parser *p);
902 static asdl_seq *_loop0_115_rule(Parser *p);
903 static void *_tmp_116_rule(Parser *p);
904 static asdl_seq *_loop0_118_rule(Parser *p);
905 static asdl_seq *_gather_117_rule(Parser *p);
906 static void *_tmp_119_rule(Parser *p);
907 static asdl_seq *_loop0_121_rule(Parser *p);
908 static asdl_seq *_gather_120_rule(Parser *p);
909 static asdl_seq *_loop0_123_rule(Parser *p);
910 static asdl_seq *_gather_122_rule(Parser *p);
911 static asdl_seq *_loop0_125_rule(Parser *p);
912 static asdl_seq *_gather_124_rule(Parser *p);
913 static asdl_seq *_loop0_127_rule(Parser *p);
914 static asdl_seq *_gather_126_rule(Parser *p);
915 static asdl_seq *_loop0_128_rule(Parser *p);
916 static asdl_seq *_loop0_130_rule(Parser *p);
917 static asdl_seq *_gather_129_rule(Parser *p);
918 static asdl_seq *_loop1_131_rule(Parser *p);
919 static void *_tmp_132_rule(Parser *p);
920 static asdl_seq *_loop0_134_rule(Parser *p);
921 static asdl_seq *_gather_133_rule(Parser *p);
922 static asdl_seq *_loop0_136_rule(Parser *p);
923 static asdl_seq *_gather_135_rule(Parser *p);
924 static asdl_seq *_loop0_138_rule(Parser *p);
925 static asdl_seq *_gather_137_rule(Parser *p);
926 static asdl_seq *_loop0_140_rule(Parser *p);
927 static asdl_seq *_gather_139_rule(Parser *p);
928 static asdl_seq *_loop0_142_rule(Parser *p);
929 static asdl_seq *_gather_141_rule(Parser *p);
930 static void *_tmp_143_rule(Parser *p);
931 static void *_tmp_144_rule(Parser *p);
932 static void *_tmp_145_rule(Parser *p);
933 static void *_tmp_146_rule(Parser *p);
934 static void *_tmp_147_rule(Parser *p);
935 static void *_tmp_148_rule(Parser *p);
936 static void *_tmp_149_rule(Parser *p);
937 static void *_tmp_150_rule(Parser *p);
938 static void *_tmp_151_rule(Parser *p);
939 static asdl_seq *_loop0_152_rule(Parser *p);
940 static asdl_seq *_loop0_153_rule(Parser *p);
941 static asdl_seq *_loop0_154_rule(Parser *p);
942 static void *_tmp_155_rule(Parser *p);
943 static void *_tmp_156_rule(Parser *p);
944 static void *_tmp_157_rule(Parser *p);
945 static void *_tmp_158_rule(Parser *p);
946 static asdl_seq *_loop0_159_rule(Parser *p);
947 static asdl_seq *_loop0_160_rule(Parser *p);
948 static asdl_seq *_loop1_161_rule(Parser *p);
949 static void *_tmp_162_rule(Parser *p);
950 static asdl_seq *_loop0_163_rule(Parser *p);
951 static void *_tmp_164_rule(Parser *p);
952 static asdl_seq *_loop0_165_rule(Parser *p);
953 static void *_tmp_166_rule(Parser *p);
954 static asdl_seq *_loop0_167_rule(Parser *p);
955 static asdl_seq *_loop1_168_rule(Parser *p);
956 static void *_tmp_169_rule(Parser *p);
957 static void *_tmp_170_rule(Parser *p);
958 static void *_tmp_171_rule(Parser *p);
959 static asdl_seq *_loop0_172_rule(Parser *p);
960 static void *_tmp_173_rule(Parser *p);
961 static void *_tmp_174_rule(Parser *p);
962 static asdl_seq *_loop1_175_rule(Parser *p);
963 static asdl_seq *_loop0_176_rule(Parser *p);
964 static asdl_seq *_loop0_177_rule(Parser *p);
965 static asdl_seq *_loop0_179_rule(Parser *p);
966 static asdl_seq *_gather_178_rule(Parser *p);
967 static void *_tmp_180_rule(Parser *p);
968 static asdl_seq *_loop0_181_rule(Parser *p);
969 static void *_tmp_182_rule(Parser *p);
970 static asdl_seq *_loop0_183_rule(Parser *p);
971 static void *_tmp_184_rule(Parser *p);
972 static asdl_seq *_loop0_185_rule(Parser *p);
973 static asdl_seq *_loop1_186_rule(Parser *p);
974 static asdl_seq *_loop1_187_rule(Parser *p);
975 static void *_tmp_188_rule(Parser *p);
976 static void *_tmp_189_rule(Parser *p);
977 static asdl_seq *_loop0_190_rule(Parser *p);
978 static void *_tmp_191_rule(Parser *p);
979 static void *_tmp_192_rule(Parser *p);
980 static void *_tmp_193_rule(Parser *p);
981 static asdl_seq *_loop0_195_rule(Parser *p);
982 static asdl_seq *_gather_194_rule(Parser *p);
983 static asdl_seq *_loop0_197_rule(Parser *p);
984 static asdl_seq *_gather_196_rule(Parser *p);
985 static asdl_seq *_loop0_199_rule(Parser *p);
986 static asdl_seq *_gather_198_rule(Parser *p);
987 static asdl_seq *_loop0_201_rule(Parser *p);
988 static asdl_seq *_gather_200_rule(Parser *p);
989 static void *_tmp_202_rule(Parser *p);
990 static asdl_seq *_loop0_203_rule(Parser *p);
991 static asdl_seq *_loop1_204_rule(Parser *p);
992 static void *_tmp_205_rule(Parser *p);
993 static asdl_seq *_loop0_206_rule(Parser *p);
994 static asdl_seq *_loop1_207_rule(Parser *p);
995 static void *_tmp_208_rule(Parser *p);
996 static void *_tmp_209_rule(Parser *p);
997 static void *_tmp_210_rule(Parser *p);
998 static void *_tmp_211_rule(Parser *p);
999 static void *_tmp_212_rule(Parser *p);
1000 static void *_tmp_213_rule(Parser *p);
1001 static void *_tmp_214_rule(Parser *p);
1002 static void *_tmp_215_rule(Parser *p);
1003 static void *_tmp_216_rule(Parser *p);
1004 static void *_tmp_217_rule(Parser *p);
1005 static asdl_seq *_loop0_219_rule(Parser *p);
1006 static asdl_seq *_gather_218_rule(Parser *p);
1007 static void *_tmp_220_rule(Parser *p);
1008 static void *_tmp_221_rule(Parser *p);
1009 static void *_tmp_222_rule(Parser *p);
1010 static void *_tmp_223_rule(Parser *p);
1011 static void *_tmp_224_rule(Parser *p);
1012 static void *_tmp_225_rule(Parser *p);
1013 static void *_tmp_226_rule(Parser *p);
1014 static void *_tmp_227_rule(Parser *p);
1015 static void *_tmp_228_rule(Parser *p);
1016 static void *_tmp_229_rule(Parser *p);
1017 static void *_tmp_230_rule(Parser *p);
1018 static void *_tmp_231_rule(Parser *p);
1019 static void *_tmp_232_rule(Parser *p);
1020 static void *_tmp_233_rule(Parser *p);
1021 static void *_tmp_234_rule(Parser *p);
1022 static void *_tmp_235_rule(Parser *p);
1023 static void *_tmp_236_rule(Parser *p);
1024 static void *_tmp_237_rule(Parser *p);
1025 static void *_tmp_238_rule(Parser *p);
1026 static void *_tmp_239_rule(Parser *p);
1027 static void *_tmp_240_rule(Parser *p);
1028 static void *_tmp_241_rule(Parser *p);
1029 static void *_tmp_242_rule(Parser *p);
1030 static void *_tmp_243_rule(Parser *p);
1031 static void *_tmp_244_rule(Parser *p);
1032 static void *_tmp_245_rule(Parser *p);
1033 static void *_tmp_246_rule(Parser *p);
1034 static void *_tmp_247_rule(Parser *p);
1035 static void *_tmp_248_rule(Parser *p);
1036 static void *_tmp_249_rule(Parser *p);
1037
1038
1039 // file: statements? $
1040 static mod_ty
file_rule(Parser * p)1041 file_rule(Parser *p)
1042 {
1043 if (p->level++ == MAXSTACK) {
1044 p->error_indicator = 1;
1045 PyErr_NoMemory();
1046 }
1047 if (p->error_indicator) {
1048 p->level--;
1049 return NULL;
1050 }
1051 mod_ty _res = NULL;
1052 int _mark = p->mark;
1053 { // statements? $
1054 if (p->error_indicator) {
1055 p->level--;
1056 return NULL;
1057 }
1058 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
1059 void *a;
1060 Token * endmarker_var;
1061 if (
1062 (a = statements_rule(p), !p->error_indicator) // statements?
1063 &&
1064 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1065 )
1066 {
1067 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
1068 _res = _PyPegen_make_module ( p , a );
1069 if (_res == NULL && PyErr_Occurred()) {
1070 p->error_indicator = 1;
1071 p->level--;
1072 return NULL;
1073 }
1074 goto done;
1075 }
1076 p->mark = _mark;
1077 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
1078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
1079 }
1080 _res = NULL;
1081 done:
1082 p->level--;
1083 return _res;
1084 }
1085
1086 // interactive: statement_newline
1087 static mod_ty
interactive_rule(Parser * p)1088 interactive_rule(Parser *p)
1089 {
1090 if (p->level++ == MAXSTACK) {
1091 p->error_indicator = 1;
1092 PyErr_NoMemory();
1093 }
1094 if (p->error_indicator) {
1095 p->level--;
1096 return NULL;
1097 }
1098 mod_ty _res = NULL;
1099 int _mark = p->mark;
1100 { // statement_newline
1101 if (p->error_indicator) {
1102 p->level--;
1103 return NULL;
1104 }
1105 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
1106 asdl_stmt_seq* a;
1107 if (
1108 (a = statement_newline_rule(p)) // statement_newline
1109 )
1110 {
1111 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
1112 _res = _PyAST_Interactive ( a , p -> arena );
1113 if (_res == NULL && PyErr_Occurred()) {
1114 p->error_indicator = 1;
1115 p->level--;
1116 return NULL;
1117 }
1118 goto done;
1119 }
1120 p->mark = _mark;
1121 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
1122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
1123 }
1124 _res = NULL;
1125 done:
1126 p->level--;
1127 return _res;
1128 }
1129
1130 // eval: expressions NEWLINE* $
1131 static mod_ty
eval_rule(Parser * p)1132 eval_rule(Parser *p)
1133 {
1134 if (p->level++ == MAXSTACK) {
1135 p->error_indicator = 1;
1136 PyErr_NoMemory();
1137 }
1138 if (p->error_indicator) {
1139 p->level--;
1140 return NULL;
1141 }
1142 mod_ty _res = NULL;
1143 int _mark = p->mark;
1144 { // expressions NEWLINE* $
1145 if (p->error_indicator) {
1146 p->level--;
1147 return NULL;
1148 }
1149 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1150 asdl_seq * _loop0_1_var;
1151 expr_ty a;
1152 Token * endmarker_var;
1153 if (
1154 (a = expressions_rule(p)) // expressions
1155 &&
1156 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1157 &&
1158 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1159 )
1160 {
1161 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1162 _res = _PyAST_Expression ( a , p -> arena );
1163 if (_res == NULL && PyErr_Occurred()) {
1164 p->error_indicator = 1;
1165 p->level--;
1166 return NULL;
1167 }
1168 goto done;
1169 }
1170 p->mark = _mark;
1171 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1173 }
1174 _res = NULL;
1175 done:
1176 p->level--;
1177 return _res;
1178 }
1179
1180 // func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1181 static mod_ty
func_type_rule(Parser * p)1182 func_type_rule(Parser *p)
1183 {
1184 if (p->level++ == MAXSTACK) {
1185 p->error_indicator = 1;
1186 PyErr_NoMemory();
1187 }
1188 if (p->error_indicator) {
1189 p->level--;
1190 return NULL;
1191 }
1192 mod_ty _res = NULL;
1193 int _mark = p->mark;
1194 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1195 if (p->error_indicator) {
1196 p->level--;
1197 return NULL;
1198 }
1199 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1200 Token * _literal;
1201 Token * _literal_1;
1202 Token * _literal_2;
1203 asdl_seq * _loop0_2_var;
1204 void *a;
1205 expr_ty b;
1206 Token * endmarker_var;
1207 if (
1208 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1209 &&
1210 (a = type_expressions_rule(p), !p->error_indicator) // type_expressions?
1211 &&
1212 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1213 &&
1214 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1215 &&
1216 (b = expression_rule(p)) // expression
1217 &&
1218 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1219 &&
1220 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1221 )
1222 {
1223 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1224 _res = _PyAST_FunctionType ( a , b , p -> arena );
1225 if (_res == NULL && PyErr_Occurred()) {
1226 p->error_indicator = 1;
1227 p->level--;
1228 return NULL;
1229 }
1230 goto done;
1231 }
1232 p->mark = _mark;
1233 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1235 }
1236 _res = NULL;
1237 done:
1238 p->level--;
1239 return _res;
1240 }
1241
1242 // fstring: star_expressions
1243 static expr_ty
fstring_rule(Parser * p)1244 fstring_rule(Parser *p)
1245 {
1246 if (p->level++ == MAXSTACK) {
1247 p->error_indicator = 1;
1248 PyErr_NoMemory();
1249 }
1250 if (p->error_indicator) {
1251 p->level--;
1252 return NULL;
1253 }
1254 expr_ty _res = NULL;
1255 int _mark = p->mark;
1256 { // star_expressions
1257 if (p->error_indicator) {
1258 p->level--;
1259 return NULL;
1260 }
1261 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1262 expr_ty star_expressions_var;
1263 if (
1264 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1265 )
1266 {
1267 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1268 _res = star_expressions_var;
1269 goto done;
1270 }
1271 p->mark = _mark;
1272 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1274 }
1275 _res = NULL;
1276 done:
1277 p->level--;
1278 return _res;
1279 }
1280
1281 // statements: statement+
1282 static asdl_stmt_seq*
statements_rule(Parser * p)1283 statements_rule(Parser *p)
1284 {
1285 if (p->level++ == MAXSTACK) {
1286 p->error_indicator = 1;
1287 PyErr_NoMemory();
1288 }
1289 if (p->error_indicator) {
1290 p->level--;
1291 return NULL;
1292 }
1293 asdl_stmt_seq* _res = NULL;
1294 int _mark = p->mark;
1295 { // statement+
1296 if (p->error_indicator) {
1297 p->level--;
1298 return NULL;
1299 }
1300 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1301 asdl_seq * a;
1302 if (
1303 (a = _loop1_3_rule(p)) // statement+
1304 )
1305 {
1306 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
1307 _res = ( asdl_stmt_seq* ) _PyPegen_seq_flatten ( p , a );
1308 if (_res == NULL && PyErr_Occurred()) {
1309 p->error_indicator = 1;
1310 p->level--;
1311 return NULL;
1312 }
1313 goto done;
1314 }
1315 p->mark = _mark;
1316 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1318 }
1319 _res = NULL;
1320 done:
1321 p->level--;
1322 return _res;
1323 }
1324
1325 // statement: compound_stmt | simple_stmts
1326 static asdl_stmt_seq*
statement_rule(Parser * p)1327 statement_rule(Parser *p)
1328 {
1329 if (p->level++ == MAXSTACK) {
1330 p->error_indicator = 1;
1331 PyErr_NoMemory();
1332 }
1333 if (p->error_indicator) {
1334 p->level--;
1335 return NULL;
1336 }
1337 asdl_stmt_seq* _res = NULL;
1338 int _mark = p->mark;
1339 { // compound_stmt
1340 if (p->error_indicator) {
1341 p->level--;
1342 return NULL;
1343 }
1344 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1345 stmt_ty a;
1346 if (
1347 (a = compound_stmt_rule(p)) // compound_stmt
1348 )
1349 {
1350 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1351 _res = ( asdl_stmt_seq* ) _PyPegen_singleton_seq ( p , a );
1352 if (_res == NULL && PyErr_Occurred()) {
1353 p->error_indicator = 1;
1354 p->level--;
1355 return NULL;
1356 }
1357 goto done;
1358 }
1359 p->mark = _mark;
1360 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1362 }
1363 { // simple_stmts
1364 if (p->error_indicator) {
1365 p->level--;
1366 return NULL;
1367 }
1368 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1369 asdl_stmt_seq* a;
1370 if (
1371 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
1372 )
1373 {
1374 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1375 _res = a;
1376 if (_res == NULL && PyErr_Occurred()) {
1377 p->error_indicator = 1;
1378 p->level--;
1379 return NULL;
1380 }
1381 goto done;
1382 }
1383 p->mark = _mark;
1384 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
1386 }
1387 _res = NULL;
1388 done:
1389 p->level--;
1390 return _res;
1391 }
1392
1393 // statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
1394 static asdl_stmt_seq*
statement_newline_rule(Parser * p)1395 statement_newline_rule(Parser *p)
1396 {
1397 if (p->level++ == MAXSTACK) {
1398 p->error_indicator = 1;
1399 PyErr_NoMemory();
1400 }
1401 if (p->error_indicator) {
1402 p->level--;
1403 return NULL;
1404 }
1405 asdl_stmt_seq* _res = NULL;
1406 int _mark = p->mark;
1407 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1408 p->error_indicator = 1;
1409 p->level--;
1410 return NULL;
1411 }
1412 int _start_lineno = p->tokens[_mark]->lineno;
1413 UNUSED(_start_lineno); // Only used by EXTRA macro
1414 int _start_col_offset = p->tokens[_mark]->col_offset;
1415 UNUSED(_start_col_offset); // Only used by EXTRA macro
1416 { // compound_stmt NEWLINE
1417 if (p->error_indicator) {
1418 p->level--;
1419 return NULL;
1420 }
1421 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1422 stmt_ty a;
1423 Token * newline_var;
1424 if (
1425 (a = compound_stmt_rule(p)) // compound_stmt
1426 &&
1427 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1428 )
1429 {
1430 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1431 _res = ( asdl_stmt_seq* ) _PyPegen_singleton_seq ( p , a );
1432 if (_res == NULL && PyErr_Occurred()) {
1433 p->error_indicator = 1;
1434 p->level--;
1435 return NULL;
1436 }
1437 goto done;
1438 }
1439 p->mark = _mark;
1440 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1442 }
1443 { // simple_stmts
1444 if (p->error_indicator) {
1445 p->level--;
1446 return NULL;
1447 }
1448 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1449 asdl_stmt_seq* simple_stmts_var;
1450 if (
1451 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
1452 )
1453 {
1454 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1455 _res = simple_stmts_var;
1456 goto done;
1457 }
1458 p->mark = _mark;
1459 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
1461 }
1462 { // NEWLINE
1463 if (p->error_indicator) {
1464 p->level--;
1465 return NULL;
1466 }
1467 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1468 Token * newline_var;
1469 if (
1470 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1471 )
1472 {
1473 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1474 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1475 if (_token == NULL) {
1476 p->level--;
1477 return NULL;
1478 }
1479 int _end_lineno = _token->end_lineno;
1480 UNUSED(_end_lineno); // Only used by EXTRA macro
1481 int _end_col_offset = _token->end_col_offset;
1482 UNUSED(_end_col_offset); // Only used by EXTRA macro
1483 _res = ( asdl_stmt_seq* ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
1484 if (_res == NULL && PyErr_Occurred()) {
1485 p->error_indicator = 1;
1486 p->level--;
1487 return NULL;
1488 }
1489 goto done;
1490 }
1491 p->mark = _mark;
1492 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1494 }
1495 { // $
1496 if (p->error_indicator) {
1497 p->level--;
1498 return NULL;
1499 }
1500 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1501 Token * endmarker_var;
1502 if (
1503 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1504 )
1505 {
1506 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1507 _res = _PyPegen_interactive_exit ( p );
1508 if (_res == NULL && PyErr_Occurred()) {
1509 p->error_indicator = 1;
1510 p->level--;
1511 return NULL;
1512 }
1513 goto done;
1514 }
1515 p->mark = _mark;
1516 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1518 }
1519 _res = NULL;
1520 done:
1521 p->level--;
1522 return _res;
1523 }
1524
1525 // simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
1526 static asdl_stmt_seq*
simple_stmts_rule(Parser * p)1527 simple_stmts_rule(Parser *p)
1528 {
1529 if (p->level++ == MAXSTACK) {
1530 p->error_indicator = 1;
1531 PyErr_NoMemory();
1532 }
1533 if (p->error_indicator) {
1534 p->level--;
1535 return NULL;
1536 }
1537 asdl_stmt_seq* _res = NULL;
1538 int _mark = p->mark;
1539 { // simple_stmt !';' NEWLINE
1540 if (p->error_indicator) {
1541 p->level--;
1542 return NULL;
1543 }
1544 D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE"));
1545 stmt_ty a;
1546 Token * newline_var;
1547 if (
1548 (a = simple_stmt_rule(p)) // simple_stmt
1549 &&
1550 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1551 &&
1552 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1553 )
1554 {
1555 D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE"));
1556 _res = ( asdl_stmt_seq* ) _PyPegen_singleton_seq ( p , a );
1557 if (_res == NULL && PyErr_Occurred()) {
1558 p->error_indicator = 1;
1559 p->level--;
1560 return NULL;
1561 }
1562 goto done;
1563 }
1564 p->mark = _mark;
1565 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
1567 }
1568 { // ';'.simple_stmt+ ';'? NEWLINE
1569 if (p->error_indicator) {
1570 p->level--;
1571 return NULL;
1572 }
1573 D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
1574 void *_opt_var;
1575 UNUSED(_opt_var); // Silence compiler warnings
1576 asdl_stmt_seq* a;
1577 Token * newline_var;
1578 if (
1579 (a = (asdl_stmt_seq*)_gather_4_rule(p)) // ';'.simple_stmt+
1580 &&
1581 (_opt_var = _PyPegen_expect_token(p, 13), !p->error_indicator) // ';'?
1582 &&
1583 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1584 )
1585 {
1586 D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
1587 _res = a;
1588 if (_res == NULL && PyErr_Occurred()) {
1589 p->error_indicator = 1;
1590 p->level--;
1591 return NULL;
1592 }
1593 goto done;
1594 }
1595 p->mark = _mark;
1596 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
1598 }
1599 _res = NULL;
1600 done:
1601 p->level--;
1602 return _res;
1603 }
1604
1605 // simple_stmt:
1606 // | assignment
1607 // | star_expressions
1608 // | &'return' return_stmt
1609 // | &('import' | 'from') import_stmt
1610 // | &'raise' raise_stmt
1611 // | 'pass'
1612 // | &'del' del_stmt
1613 // | &'yield' yield_stmt
1614 // | &'assert' assert_stmt
1615 // | 'break'
1616 // | 'continue'
1617 // | &'global' global_stmt
1618 // | &'nonlocal' nonlocal_stmt
1619 static stmt_ty
simple_stmt_rule(Parser * p)1620 simple_stmt_rule(Parser *p)
1621 {
1622 if (p->level++ == MAXSTACK) {
1623 p->error_indicator = 1;
1624 PyErr_NoMemory();
1625 }
1626 if (p->error_indicator) {
1627 p->level--;
1628 return NULL;
1629 }
1630 stmt_ty _res = NULL;
1631 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
1632 p->level--;
1633 return _res;
1634 }
1635 int _mark = p->mark;
1636 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1637 p->error_indicator = 1;
1638 p->level--;
1639 return NULL;
1640 }
1641 int _start_lineno = p->tokens[_mark]->lineno;
1642 UNUSED(_start_lineno); // Only used by EXTRA macro
1643 int _start_col_offset = p->tokens[_mark]->col_offset;
1644 UNUSED(_start_col_offset); // Only used by EXTRA macro
1645 { // assignment
1646 if (p->error_indicator) {
1647 p->level--;
1648 return NULL;
1649 }
1650 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
1651 stmt_ty assignment_var;
1652 if (
1653 (assignment_var = assignment_rule(p)) // assignment
1654 )
1655 {
1656 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
1657 _res = assignment_var;
1658 goto done;
1659 }
1660 p->mark = _mark;
1661 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1663 }
1664 { // star_expressions
1665 if (p->error_indicator) {
1666 p->level--;
1667 return NULL;
1668 }
1669 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1670 expr_ty e;
1671 if (
1672 (e = star_expressions_rule(p)) // star_expressions
1673 )
1674 {
1675 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1676 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1677 if (_token == NULL) {
1678 p->level--;
1679 return NULL;
1680 }
1681 int _end_lineno = _token->end_lineno;
1682 UNUSED(_end_lineno); // Only used by EXTRA macro
1683 int _end_col_offset = _token->end_col_offset;
1684 UNUSED(_end_col_offset); // Only used by EXTRA macro
1685 _res = _PyAST_Expr ( e , EXTRA );
1686 if (_res == NULL && PyErr_Occurred()) {
1687 p->error_indicator = 1;
1688 p->level--;
1689 return NULL;
1690 }
1691 goto done;
1692 }
1693 p->mark = _mark;
1694 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1696 }
1697 { // &'return' return_stmt
1698 if (p->error_indicator) {
1699 p->level--;
1700 return NULL;
1701 }
1702 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
1703 stmt_ty return_stmt_var;
1704 if (
1705 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 519) // token='return'
1706 &&
1707 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1708 )
1709 {
1710 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
1711 _res = return_stmt_var;
1712 goto done;
1713 }
1714 p->mark = _mark;
1715 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1717 }
1718 { // &('import' | 'from') import_stmt
1719 if (p->error_indicator) {
1720 p->level--;
1721 return NULL;
1722 }
1723 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
1724 stmt_ty import_stmt_var;
1725 if (
1726 _PyPegen_lookahead(1, _tmp_6_rule, p)
1727 &&
1728 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1729 )
1730 {
1731 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
1732 _res = import_stmt_var;
1733 goto done;
1734 }
1735 p->mark = _mark;
1736 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1738 }
1739 { // &'raise' raise_stmt
1740 if (p->error_indicator) {
1741 p->level--;
1742 return NULL;
1743 }
1744 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
1745 stmt_ty raise_stmt_var;
1746 if (
1747 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 522) // token='raise'
1748 &&
1749 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1750 )
1751 {
1752 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
1753 _res = raise_stmt_var;
1754 goto done;
1755 }
1756 p->mark = _mark;
1757 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1759 }
1760 { // 'pass'
1761 if (p->error_indicator) {
1762 p->level--;
1763 return NULL;
1764 }
1765 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
1766 Token * _keyword;
1767 if (
1768 (_keyword = _PyPegen_expect_token(p, 504)) // token='pass'
1769 )
1770 {
1771 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
1772 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1773 if (_token == NULL) {
1774 p->level--;
1775 return NULL;
1776 }
1777 int _end_lineno = _token->end_lineno;
1778 UNUSED(_end_lineno); // Only used by EXTRA macro
1779 int _end_col_offset = _token->end_col_offset;
1780 UNUSED(_end_col_offset); // Only used by EXTRA macro
1781 _res = _PyAST_Pass ( EXTRA );
1782 if (_res == NULL && PyErr_Occurred()) {
1783 p->error_indicator = 1;
1784 p->level--;
1785 return NULL;
1786 }
1787 goto done;
1788 }
1789 p->mark = _mark;
1790 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1792 }
1793 { // &'del' del_stmt
1794 if (p->error_indicator) {
1795 p->level--;
1796 return NULL;
1797 }
1798 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
1799 stmt_ty del_stmt_var;
1800 if (
1801 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 603) // token='del'
1802 &&
1803 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1804 )
1805 {
1806 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
1807 _res = del_stmt_var;
1808 goto done;
1809 }
1810 p->mark = _mark;
1811 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1813 }
1814 { // &'yield' yield_stmt
1815 if (p->error_indicator) {
1816 p->level--;
1817 return NULL;
1818 }
1819 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
1820 stmt_ty yield_stmt_var;
1821 if (
1822 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 573) // token='yield'
1823 &&
1824 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1825 )
1826 {
1827 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
1828 _res = yield_stmt_var;
1829 goto done;
1830 }
1831 p->mark = _mark;
1832 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1834 }
1835 { // &'assert' assert_stmt
1836 if (p->error_indicator) {
1837 p->level--;
1838 return NULL;
1839 }
1840 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
1841 stmt_ty assert_stmt_var;
1842 if (
1843 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 526) // token='assert'
1844 &&
1845 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1846 )
1847 {
1848 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
1849 _res = assert_stmt_var;
1850 goto done;
1851 }
1852 p->mark = _mark;
1853 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1855 }
1856 { // 'break'
1857 if (p->error_indicator) {
1858 p->level--;
1859 return NULL;
1860 }
1861 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
1862 Token * _keyword;
1863 if (
1864 (_keyword = _PyPegen_expect_token(p, 508)) // token='break'
1865 )
1866 {
1867 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
1868 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1869 if (_token == NULL) {
1870 p->level--;
1871 return NULL;
1872 }
1873 int _end_lineno = _token->end_lineno;
1874 UNUSED(_end_lineno); // Only used by EXTRA macro
1875 int _end_col_offset = _token->end_col_offset;
1876 UNUSED(_end_col_offset); // Only used by EXTRA macro
1877 _res = _PyAST_Break ( EXTRA );
1878 if (_res == NULL && PyErr_Occurred()) {
1879 p->error_indicator = 1;
1880 p->level--;
1881 return NULL;
1882 }
1883 goto done;
1884 }
1885 p->mark = _mark;
1886 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1888 }
1889 { // 'continue'
1890 if (p->error_indicator) {
1891 p->level--;
1892 return NULL;
1893 }
1894 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
1895 Token * _keyword;
1896 if (
1897 (_keyword = _PyPegen_expect_token(p, 509)) // token='continue'
1898 )
1899 {
1900 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
1901 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1902 if (_token == NULL) {
1903 p->level--;
1904 return NULL;
1905 }
1906 int _end_lineno = _token->end_lineno;
1907 UNUSED(_end_lineno); // Only used by EXTRA macro
1908 int _end_col_offset = _token->end_col_offset;
1909 UNUSED(_end_col_offset); // Only used by EXTRA macro
1910 _res = _PyAST_Continue ( EXTRA );
1911 if (_res == NULL && PyErr_Occurred()) {
1912 p->error_indicator = 1;
1913 p->level--;
1914 return NULL;
1915 }
1916 goto done;
1917 }
1918 p->mark = _mark;
1919 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
1921 }
1922 { // &'global' global_stmt
1923 if (p->error_indicator) {
1924 p->level--;
1925 return NULL;
1926 }
1927 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
1928 stmt_ty global_stmt_var;
1929 if (
1930 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 523) // token='global'
1931 &&
1932 (global_stmt_var = global_stmt_rule(p)) // global_stmt
1933 )
1934 {
1935 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
1936 _res = global_stmt_var;
1937 goto done;
1938 }
1939 p->mark = _mark;
1940 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
1942 }
1943 { // &'nonlocal' nonlocal_stmt
1944 if (p->error_indicator) {
1945 p->level--;
1946 return NULL;
1947 }
1948 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
1949 stmt_ty nonlocal_stmt_var;
1950 if (
1951 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 524) // token='nonlocal'
1952 &&
1953 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
1954 )
1955 {
1956 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
1957 _res = nonlocal_stmt_var;
1958 goto done;
1959 }
1960 p->mark = _mark;
1961 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
1963 }
1964 _res = NULL;
1965 done:
1966 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
1967 p->level--;
1968 return _res;
1969 }
1970
1971 // compound_stmt:
1972 // | &('def' | '@' | ASYNC) function_def
1973 // | &'if' if_stmt
1974 // | &('class' | '@') class_def
1975 // | &('with' | ASYNC) with_stmt
1976 // | &('for' | ASYNC) for_stmt
1977 // | &'try' try_stmt
1978 // | &'while' while_stmt
1979 // | match_stmt
1980 static stmt_ty
compound_stmt_rule(Parser * p)1981 compound_stmt_rule(Parser *p)
1982 {
1983 if (p->level++ == MAXSTACK) {
1984 p->error_indicator = 1;
1985 PyErr_NoMemory();
1986 }
1987 if (p->error_indicator) {
1988 p->level--;
1989 return NULL;
1990 }
1991 stmt_ty _res = NULL;
1992 int _mark = p->mark;
1993 { // &('def' | '@' | ASYNC) function_def
1994 if (p->error_indicator) {
1995 p->level--;
1996 return NULL;
1997 }
1998 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1999 stmt_ty function_def_var;
2000 if (
2001 _PyPegen_lookahead(1, _tmp_7_rule, p)
2002 &&
2003 (function_def_var = function_def_rule(p)) // function_def
2004 )
2005 {
2006 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2007 _res = function_def_var;
2008 goto done;
2009 }
2010 p->mark = _mark;
2011 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2013 }
2014 { // &'if' if_stmt
2015 if (p->error_indicator) {
2016 p->level--;
2017 return NULL;
2018 }
2019 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2020 stmt_ty if_stmt_var;
2021 if (
2022 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 639) // token='if'
2023 &&
2024 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2025 )
2026 {
2027 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2028 _res = if_stmt_var;
2029 goto done;
2030 }
2031 p->mark = _mark;
2032 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2034 }
2035 { // &('class' | '@') class_def
2036 if (p->error_indicator) {
2037 p->level--;
2038 return NULL;
2039 }
2040 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2041 stmt_ty class_def_var;
2042 if (
2043 _PyPegen_lookahead(1, _tmp_8_rule, p)
2044 &&
2045 (class_def_var = class_def_rule(p)) // class_def
2046 )
2047 {
2048 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2049 _res = class_def_var;
2050 goto done;
2051 }
2052 p->mark = _mark;
2053 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2055 }
2056 { // &('with' | ASYNC) with_stmt
2057 if (p->error_indicator) {
2058 p->level--;
2059 return NULL;
2060 }
2061 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2062 stmt_ty with_stmt_var;
2063 if (
2064 _PyPegen_lookahead(1, _tmp_9_rule, p)
2065 &&
2066 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2067 )
2068 {
2069 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2070 _res = with_stmt_var;
2071 goto done;
2072 }
2073 p->mark = _mark;
2074 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2076 }
2077 { // &('for' | ASYNC) for_stmt
2078 if (p->error_indicator) {
2079 p->level--;
2080 return NULL;
2081 }
2082 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2083 stmt_ty for_stmt_var;
2084 if (
2085 _PyPegen_lookahead(1, _tmp_10_rule, p)
2086 &&
2087 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2088 )
2089 {
2090 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2091 _res = for_stmt_var;
2092 goto done;
2093 }
2094 p->mark = _mark;
2095 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2097 }
2098 { // &'try' try_stmt
2099 if (p->error_indicator) {
2100 p->level--;
2101 return NULL;
2102 }
2103 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2104 stmt_ty try_stmt_var;
2105 if (
2106 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 621) // token='try'
2107 &&
2108 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2109 )
2110 {
2111 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2112 _res = try_stmt_var;
2113 goto done;
2114 }
2115 p->mark = _mark;
2116 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2118 }
2119 { // &'while' while_stmt
2120 if (p->error_indicator) {
2121 p->level--;
2122 return NULL;
2123 }
2124 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2125 stmt_ty while_stmt_var;
2126 if (
2127 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 644) // token='while'
2128 &&
2129 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2130 )
2131 {
2132 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2133 _res = while_stmt_var;
2134 goto done;
2135 }
2136 p->mark = _mark;
2137 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2139 }
2140 { // match_stmt
2141 if (p->error_indicator) {
2142 p->level--;
2143 return NULL;
2144 }
2145 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2146 stmt_ty match_stmt_var;
2147 if (
2148 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2149 )
2150 {
2151 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2152 _res = match_stmt_var;
2153 goto done;
2154 }
2155 p->mark = _mark;
2156 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2158 }
2159 _res = NULL;
2160 done:
2161 p->level--;
2162 return _res;
2163 }
2164
2165 // assignment:
2166 // | NAME ':' expression ['=' annotated_rhs]
2167 // | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2168 // | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2169 // | single_target augassign ~ (yield_expr | star_expressions)
2170 // | invalid_assignment
2171 static stmt_ty
assignment_rule(Parser * p)2172 assignment_rule(Parser *p)
2173 {
2174 if (p->level++ == MAXSTACK) {
2175 p->error_indicator = 1;
2176 PyErr_NoMemory();
2177 }
2178 if (p->error_indicator) {
2179 p->level--;
2180 return NULL;
2181 }
2182 stmt_ty _res = NULL;
2183 int _mark = p->mark;
2184 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2185 p->error_indicator = 1;
2186 p->level--;
2187 return NULL;
2188 }
2189 int _start_lineno = p->tokens[_mark]->lineno;
2190 UNUSED(_start_lineno); // Only used by EXTRA macro
2191 int _start_col_offset = p->tokens[_mark]->col_offset;
2192 UNUSED(_start_col_offset); // Only used by EXTRA macro
2193 { // NAME ':' expression ['=' annotated_rhs]
2194 if (p->error_indicator) {
2195 p->level--;
2196 return NULL;
2197 }
2198 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2199 Token * _literal;
2200 expr_ty a;
2201 expr_ty b;
2202 void *c;
2203 if (
2204 (a = _PyPegen_name_token(p)) // NAME
2205 &&
2206 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2207 &&
2208 (b = expression_rule(p)) // expression
2209 &&
2210 (c = _tmp_11_rule(p), !p->error_indicator) // ['=' annotated_rhs]
2211 )
2212 {
2213 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2214 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2215 if (_token == NULL) {
2216 p->level--;
2217 return NULL;
2218 }
2219 int _end_lineno = _token->end_lineno;
2220 UNUSED(_end_lineno); // Only used by EXTRA macro
2221 int _end_col_offset = _token->end_col_offset;
2222 UNUSED(_end_col_offset); // Only used by EXTRA macro
2223 _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 ) );
2224 if (_res == NULL && PyErr_Occurred()) {
2225 p->error_indicator = 1;
2226 p->level--;
2227 return NULL;
2228 }
2229 goto done;
2230 }
2231 p->mark = _mark;
2232 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2234 }
2235 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2236 if (p->error_indicator) {
2237 p->level--;
2238 return NULL;
2239 }
2240 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2241 Token * _literal;
2242 void *a;
2243 expr_ty b;
2244 void *c;
2245 if (
2246 (a = _tmp_12_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2247 &&
2248 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2249 &&
2250 (b = expression_rule(p)) // expression
2251 &&
2252 (c = _tmp_13_rule(p), !p->error_indicator) // ['=' annotated_rhs]
2253 )
2254 {
2255 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2256 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2257 if (_token == NULL) {
2258 p->level--;
2259 return NULL;
2260 }
2261 int _end_lineno = _token->end_lineno;
2262 UNUSED(_end_lineno); // Only used by EXTRA macro
2263 int _end_col_offset = _token->end_col_offset;
2264 UNUSED(_end_col_offset); // Only used by EXTRA macro
2265 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
2266 if (_res == NULL && PyErr_Occurred()) {
2267 p->error_indicator = 1;
2268 p->level--;
2269 return NULL;
2270 }
2271 goto done;
2272 }
2273 p->mark = _mark;
2274 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2276 }
2277 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2278 if (p->error_indicator) {
2279 p->level--;
2280 return NULL;
2281 }
2282 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2283 asdl_expr_seq* a;
2284 void *b;
2285 void *tc;
2286 if (
2287 (a = (asdl_expr_seq*)_loop1_14_rule(p)) // ((star_targets '='))+
2288 &&
2289 (b = _tmp_15_rule(p)) // yield_expr | star_expressions
2290 &&
2291 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2292 &&
2293 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
2294 )
2295 {
2296 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2297 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2298 if (_token == NULL) {
2299 p->level--;
2300 return NULL;
2301 }
2302 int _end_lineno = _token->end_lineno;
2303 UNUSED(_end_lineno); // Only used by EXTRA macro
2304 int _end_col_offset = _token->end_col_offset;
2305 UNUSED(_end_col_offset); // Only used by EXTRA macro
2306 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2307 if (_res == NULL && PyErr_Occurred()) {
2308 p->error_indicator = 1;
2309 p->level--;
2310 return NULL;
2311 }
2312 goto done;
2313 }
2314 p->mark = _mark;
2315 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2317 }
2318 { // single_target augassign ~ (yield_expr | star_expressions)
2319 if (p->error_indicator) {
2320 p->level--;
2321 return NULL;
2322 }
2323 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2324 int _cut_var = 0;
2325 expr_ty a;
2326 AugOperator* b;
2327 void *c;
2328 if (
2329 (a = single_target_rule(p)) // single_target
2330 &&
2331 (b = augassign_rule(p)) // augassign
2332 &&
2333 (_cut_var = 1)
2334 &&
2335 (c = _tmp_16_rule(p)) // yield_expr | star_expressions
2336 )
2337 {
2338 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2339 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2340 if (_token == NULL) {
2341 p->level--;
2342 return NULL;
2343 }
2344 int _end_lineno = _token->end_lineno;
2345 UNUSED(_end_lineno); // Only used by EXTRA macro
2346 int _end_col_offset = _token->end_col_offset;
2347 UNUSED(_end_col_offset); // Only used by EXTRA macro
2348 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
2349 if (_res == NULL && PyErr_Occurred()) {
2350 p->error_indicator = 1;
2351 p->level--;
2352 return NULL;
2353 }
2354 goto done;
2355 }
2356 p->mark = _mark;
2357 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2359 if (_cut_var) {
2360 p->level--;
2361 return NULL;
2362 }
2363 }
2364 if (p->call_invalid_rules) { // invalid_assignment
2365 if (p->error_indicator) {
2366 p->level--;
2367 return NULL;
2368 }
2369 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2370 void *invalid_assignment_var;
2371 if (
2372 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2373 )
2374 {
2375 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2376 _res = invalid_assignment_var;
2377 goto done;
2378 }
2379 p->mark = _mark;
2380 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2382 }
2383 _res = NULL;
2384 done:
2385 p->level--;
2386 return _res;
2387 }
2388
2389 // annotated_rhs: yield_expr | star_expressions
2390 static expr_ty
annotated_rhs_rule(Parser * p)2391 annotated_rhs_rule(Parser *p)
2392 {
2393 if (p->level++ == MAXSTACK) {
2394 p->error_indicator = 1;
2395 PyErr_NoMemory();
2396 }
2397 if (p->error_indicator) {
2398 p->level--;
2399 return NULL;
2400 }
2401 expr_ty _res = NULL;
2402 int _mark = p->mark;
2403 { // yield_expr
2404 if (p->error_indicator) {
2405 p->level--;
2406 return NULL;
2407 }
2408 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2409 expr_ty yield_expr_var;
2410 if (
2411 (yield_expr_var = yield_expr_rule(p)) // yield_expr
2412 )
2413 {
2414 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2415 _res = yield_expr_var;
2416 goto done;
2417 }
2418 p->mark = _mark;
2419 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
2420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2421 }
2422 { // star_expressions
2423 if (p->error_indicator) {
2424 p->level--;
2425 return NULL;
2426 }
2427 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
2428 expr_ty star_expressions_var;
2429 if (
2430 (star_expressions_var = star_expressions_rule(p)) // star_expressions
2431 )
2432 {
2433 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
2434 _res = star_expressions_var;
2435 goto done;
2436 }
2437 p->mark = _mark;
2438 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
2439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
2440 }
2441 _res = NULL;
2442 done:
2443 p->level--;
2444 return _res;
2445 }
2446
2447 // augassign:
2448 // | '+='
2449 // | '-='
2450 // | '*='
2451 // | '@='
2452 // | '/='
2453 // | '%='
2454 // | '&='
2455 // | '|='
2456 // | '^='
2457 // | '<<='
2458 // | '>>='
2459 // | '**='
2460 // | '//='
2461 static AugOperator*
augassign_rule(Parser * p)2462 augassign_rule(Parser *p)
2463 {
2464 if (p->level++ == MAXSTACK) {
2465 p->error_indicator = 1;
2466 PyErr_NoMemory();
2467 }
2468 if (p->error_indicator) {
2469 p->level--;
2470 return NULL;
2471 }
2472 AugOperator* _res = NULL;
2473 int _mark = p->mark;
2474 { // '+='
2475 if (p->error_indicator) {
2476 p->level--;
2477 return NULL;
2478 }
2479 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2480 Token * _literal;
2481 if (
2482 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2483 )
2484 {
2485 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2486 _res = _PyPegen_augoperator ( p , Add );
2487 if (_res == NULL && PyErr_Occurred()) {
2488 p->error_indicator = 1;
2489 p->level--;
2490 return NULL;
2491 }
2492 goto done;
2493 }
2494 p->mark = _mark;
2495 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2497 }
2498 { // '-='
2499 if (p->error_indicator) {
2500 p->level--;
2501 return NULL;
2502 }
2503 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2504 Token * _literal;
2505 if (
2506 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2507 )
2508 {
2509 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2510 _res = _PyPegen_augoperator ( p , Sub );
2511 if (_res == NULL && PyErr_Occurred()) {
2512 p->error_indicator = 1;
2513 p->level--;
2514 return NULL;
2515 }
2516 goto done;
2517 }
2518 p->mark = _mark;
2519 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2521 }
2522 { // '*='
2523 if (p->error_indicator) {
2524 p->level--;
2525 return NULL;
2526 }
2527 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2528 Token * _literal;
2529 if (
2530 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2531 )
2532 {
2533 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2534 _res = _PyPegen_augoperator ( p , Mult );
2535 if (_res == NULL && PyErr_Occurred()) {
2536 p->error_indicator = 1;
2537 p->level--;
2538 return NULL;
2539 }
2540 goto done;
2541 }
2542 p->mark = _mark;
2543 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2545 }
2546 { // '@='
2547 if (p->error_indicator) {
2548 p->level--;
2549 return NULL;
2550 }
2551 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2552 Token * _literal;
2553 if (
2554 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2555 )
2556 {
2557 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
2558 _res = CHECK_VERSION ( AugOperator* , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
2559 if (_res == NULL && PyErr_Occurred()) {
2560 p->error_indicator = 1;
2561 p->level--;
2562 return NULL;
2563 }
2564 goto done;
2565 }
2566 p->mark = _mark;
2567 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2569 }
2570 { // '/='
2571 if (p->error_indicator) {
2572 p->level--;
2573 return NULL;
2574 }
2575 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2576 Token * _literal;
2577 if (
2578 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2579 )
2580 {
2581 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2582 _res = _PyPegen_augoperator ( p , Div );
2583 if (_res == NULL && PyErr_Occurred()) {
2584 p->error_indicator = 1;
2585 p->level--;
2586 return NULL;
2587 }
2588 goto done;
2589 }
2590 p->mark = _mark;
2591 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2593 }
2594 { // '%='
2595 if (p->error_indicator) {
2596 p->level--;
2597 return NULL;
2598 }
2599 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2600 Token * _literal;
2601 if (
2602 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2603 )
2604 {
2605 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2606 _res = _PyPegen_augoperator ( p , Mod );
2607 if (_res == NULL && PyErr_Occurred()) {
2608 p->error_indicator = 1;
2609 p->level--;
2610 return NULL;
2611 }
2612 goto done;
2613 }
2614 p->mark = _mark;
2615 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2617 }
2618 { // '&='
2619 if (p->error_indicator) {
2620 p->level--;
2621 return NULL;
2622 }
2623 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2624 Token * _literal;
2625 if (
2626 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2627 )
2628 {
2629 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2630 _res = _PyPegen_augoperator ( p , BitAnd );
2631 if (_res == NULL && PyErr_Occurred()) {
2632 p->error_indicator = 1;
2633 p->level--;
2634 return NULL;
2635 }
2636 goto done;
2637 }
2638 p->mark = _mark;
2639 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2641 }
2642 { // '|='
2643 if (p->error_indicator) {
2644 p->level--;
2645 return NULL;
2646 }
2647 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2648 Token * _literal;
2649 if (
2650 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2651 )
2652 {
2653 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2654 _res = _PyPegen_augoperator ( p , BitOr );
2655 if (_res == NULL && PyErr_Occurred()) {
2656 p->error_indicator = 1;
2657 p->level--;
2658 return NULL;
2659 }
2660 goto done;
2661 }
2662 p->mark = _mark;
2663 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2664 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2665 }
2666 { // '^='
2667 if (p->error_indicator) {
2668 p->level--;
2669 return NULL;
2670 }
2671 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2672 Token * _literal;
2673 if (
2674 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2675 )
2676 {
2677 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2678 _res = _PyPegen_augoperator ( p , BitXor );
2679 if (_res == NULL && PyErr_Occurred()) {
2680 p->error_indicator = 1;
2681 p->level--;
2682 return NULL;
2683 }
2684 goto done;
2685 }
2686 p->mark = _mark;
2687 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2689 }
2690 { // '<<='
2691 if (p->error_indicator) {
2692 p->level--;
2693 return NULL;
2694 }
2695 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2696 Token * _literal;
2697 if (
2698 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2699 )
2700 {
2701 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2702 _res = _PyPegen_augoperator ( p , LShift );
2703 if (_res == NULL && PyErr_Occurred()) {
2704 p->error_indicator = 1;
2705 p->level--;
2706 return NULL;
2707 }
2708 goto done;
2709 }
2710 p->mark = _mark;
2711 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2713 }
2714 { // '>>='
2715 if (p->error_indicator) {
2716 p->level--;
2717 return NULL;
2718 }
2719 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2720 Token * _literal;
2721 if (
2722 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2723 )
2724 {
2725 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2726 _res = _PyPegen_augoperator ( p , RShift );
2727 if (_res == NULL && PyErr_Occurred()) {
2728 p->error_indicator = 1;
2729 p->level--;
2730 return NULL;
2731 }
2732 goto done;
2733 }
2734 p->mark = _mark;
2735 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2737 }
2738 { // '**='
2739 if (p->error_indicator) {
2740 p->level--;
2741 return NULL;
2742 }
2743 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2744 Token * _literal;
2745 if (
2746 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2747 )
2748 {
2749 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2750 _res = _PyPegen_augoperator ( p , Pow );
2751 if (_res == NULL && PyErr_Occurred()) {
2752 p->error_indicator = 1;
2753 p->level--;
2754 return NULL;
2755 }
2756 goto done;
2757 }
2758 p->mark = _mark;
2759 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2761 }
2762 { // '//='
2763 if (p->error_indicator) {
2764 p->level--;
2765 return NULL;
2766 }
2767 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2768 Token * _literal;
2769 if (
2770 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2771 )
2772 {
2773 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2774 _res = _PyPegen_augoperator ( p , FloorDiv );
2775 if (_res == NULL && PyErr_Occurred()) {
2776 p->error_indicator = 1;
2777 p->level--;
2778 return NULL;
2779 }
2780 goto done;
2781 }
2782 p->mark = _mark;
2783 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2785 }
2786 _res = NULL;
2787 done:
2788 p->level--;
2789 return _res;
2790 }
2791
2792 // return_stmt: 'return' star_expressions?
2793 static stmt_ty
return_stmt_rule(Parser * p)2794 return_stmt_rule(Parser *p)
2795 {
2796 if (p->level++ == MAXSTACK) {
2797 p->error_indicator = 1;
2798 PyErr_NoMemory();
2799 }
2800 if (p->error_indicator) {
2801 p->level--;
2802 return NULL;
2803 }
2804 stmt_ty _res = NULL;
2805 int _mark = p->mark;
2806 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2807 p->error_indicator = 1;
2808 p->level--;
2809 return NULL;
2810 }
2811 int _start_lineno = p->tokens[_mark]->lineno;
2812 UNUSED(_start_lineno); // Only used by EXTRA macro
2813 int _start_col_offset = p->tokens[_mark]->col_offset;
2814 UNUSED(_start_col_offset); // Only used by EXTRA macro
2815 { // 'return' star_expressions?
2816 if (p->error_indicator) {
2817 p->level--;
2818 return NULL;
2819 }
2820 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
2821 Token * _keyword;
2822 void *a;
2823 if (
2824 (_keyword = _PyPegen_expect_token(p, 519)) // token='return'
2825 &&
2826 (a = star_expressions_rule(p), !p->error_indicator) // star_expressions?
2827 )
2828 {
2829 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
2830 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2831 if (_token == NULL) {
2832 p->level--;
2833 return NULL;
2834 }
2835 int _end_lineno = _token->end_lineno;
2836 UNUSED(_end_lineno); // Only used by EXTRA macro
2837 int _end_col_offset = _token->end_col_offset;
2838 UNUSED(_end_col_offset); // Only used by EXTRA macro
2839 _res = _PyAST_Return ( a , EXTRA );
2840 if (_res == NULL && PyErr_Occurred()) {
2841 p->error_indicator = 1;
2842 p->level--;
2843 return NULL;
2844 }
2845 goto done;
2846 }
2847 p->mark = _mark;
2848 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
2850 }
2851 _res = NULL;
2852 done:
2853 p->level--;
2854 return _res;
2855 }
2856
2857 // raise_stmt: 'raise' expression ['from' expression] | 'raise'
2858 static stmt_ty
raise_stmt_rule(Parser * p)2859 raise_stmt_rule(Parser *p)
2860 {
2861 if (p->level++ == MAXSTACK) {
2862 p->error_indicator = 1;
2863 PyErr_NoMemory();
2864 }
2865 if (p->error_indicator) {
2866 p->level--;
2867 return NULL;
2868 }
2869 stmt_ty _res = NULL;
2870 int _mark = p->mark;
2871 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2872 p->error_indicator = 1;
2873 p->level--;
2874 return NULL;
2875 }
2876 int _start_lineno = p->tokens[_mark]->lineno;
2877 UNUSED(_start_lineno); // Only used by EXTRA macro
2878 int _start_col_offset = p->tokens[_mark]->col_offset;
2879 UNUSED(_start_col_offset); // Only used by EXTRA macro
2880 { // 'raise' expression ['from' expression]
2881 if (p->error_indicator) {
2882 p->level--;
2883 return NULL;
2884 }
2885 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
2886 Token * _keyword;
2887 expr_ty a;
2888 void *b;
2889 if (
2890 (_keyword = _PyPegen_expect_token(p, 522)) // token='raise'
2891 &&
2892 (a = expression_rule(p)) // expression
2893 &&
2894 (b = _tmp_17_rule(p), !p->error_indicator) // ['from' expression]
2895 )
2896 {
2897 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
2898 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2899 if (_token == NULL) {
2900 p->level--;
2901 return NULL;
2902 }
2903 int _end_lineno = _token->end_lineno;
2904 UNUSED(_end_lineno); // Only used by EXTRA macro
2905 int _end_col_offset = _token->end_col_offset;
2906 UNUSED(_end_col_offset); // Only used by EXTRA macro
2907 _res = _PyAST_Raise ( a , b , EXTRA );
2908 if (_res == NULL && PyErr_Occurred()) {
2909 p->error_indicator = 1;
2910 p->level--;
2911 return NULL;
2912 }
2913 goto done;
2914 }
2915 p->mark = _mark;
2916 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
2918 }
2919 { // 'raise'
2920 if (p->error_indicator) {
2921 p->level--;
2922 return NULL;
2923 }
2924 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
2925 Token * _keyword;
2926 if (
2927 (_keyword = _PyPegen_expect_token(p, 522)) // token='raise'
2928 )
2929 {
2930 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
2931 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2932 if (_token == NULL) {
2933 p->level--;
2934 return NULL;
2935 }
2936 int _end_lineno = _token->end_lineno;
2937 UNUSED(_end_lineno); // Only used by EXTRA macro
2938 int _end_col_offset = _token->end_col_offset;
2939 UNUSED(_end_col_offset); // Only used by EXTRA macro
2940 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
2941 if (_res == NULL && PyErr_Occurred()) {
2942 p->error_indicator = 1;
2943 p->level--;
2944 return NULL;
2945 }
2946 goto done;
2947 }
2948 p->mark = _mark;
2949 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
2951 }
2952 _res = NULL;
2953 done:
2954 p->level--;
2955 return _res;
2956 }
2957
2958 // global_stmt: 'global' ','.NAME+
2959 static stmt_ty
global_stmt_rule(Parser * p)2960 global_stmt_rule(Parser *p)
2961 {
2962 if (p->level++ == MAXSTACK) {
2963 p->error_indicator = 1;
2964 PyErr_NoMemory();
2965 }
2966 if (p->error_indicator) {
2967 p->level--;
2968 return NULL;
2969 }
2970 stmt_ty _res = NULL;
2971 int _mark = p->mark;
2972 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2973 p->error_indicator = 1;
2974 p->level--;
2975 return NULL;
2976 }
2977 int _start_lineno = p->tokens[_mark]->lineno;
2978 UNUSED(_start_lineno); // Only used by EXTRA macro
2979 int _start_col_offset = p->tokens[_mark]->col_offset;
2980 UNUSED(_start_col_offset); // Only used by EXTRA macro
2981 { // 'global' ','.NAME+
2982 if (p->error_indicator) {
2983 p->level--;
2984 return NULL;
2985 }
2986 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2987 Token * _keyword;
2988 asdl_expr_seq* a;
2989 if (
2990 (_keyword = _PyPegen_expect_token(p, 523)) // token='global'
2991 &&
2992 (a = (asdl_expr_seq*)_gather_18_rule(p)) // ','.NAME+
2993 )
2994 {
2995 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2996 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2997 if (_token == NULL) {
2998 p->level--;
2999 return NULL;
3000 }
3001 int _end_lineno = _token->end_lineno;
3002 UNUSED(_end_lineno); // Only used by EXTRA macro
3003 int _end_col_offset = _token->end_col_offset;
3004 UNUSED(_end_col_offset); // Only used by EXTRA macro
3005 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq* , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
3006 if (_res == NULL && PyErr_Occurred()) {
3007 p->error_indicator = 1;
3008 p->level--;
3009 return NULL;
3010 }
3011 goto done;
3012 }
3013 p->mark = _mark;
3014 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
3016 }
3017 _res = NULL;
3018 done:
3019 p->level--;
3020 return _res;
3021 }
3022
3023 // nonlocal_stmt: 'nonlocal' ','.NAME+
3024 static stmt_ty
nonlocal_stmt_rule(Parser * p)3025 nonlocal_stmt_rule(Parser *p)
3026 {
3027 if (p->level++ == MAXSTACK) {
3028 p->error_indicator = 1;
3029 PyErr_NoMemory();
3030 }
3031 if (p->error_indicator) {
3032 p->level--;
3033 return NULL;
3034 }
3035 stmt_ty _res = NULL;
3036 int _mark = p->mark;
3037 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3038 p->error_indicator = 1;
3039 p->level--;
3040 return NULL;
3041 }
3042 int _start_lineno = p->tokens[_mark]->lineno;
3043 UNUSED(_start_lineno); // Only used by EXTRA macro
3044 int _start_col_offset = p->tokens[_mark]->col_offset;
3045 UNUSED(_start_col_offset); // Only used by EXTRA macro
3046 { // 'nonlocal' ','.NAME+
3047 if (p->error_indicator) {
3048 p->level--;
3049 return NULL;
3050 }
3051 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
3052 Token * _keyword;
3053 asdl_expr_seq* a;
3054 if (
3055 (_keyword = _PyPegen_expect_token(p, 524)) // token='nonlocal'
3056 &&
3057 (a = (asdl_expr_seq*)_gather_20_rule(p)) // ','.NAME+
3058 )
3059 {
3060 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
3061 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3062 if (_token == NULL) {
3063 p->level--;
3064 return NULL;
3065 }
3066 int _end_lineno = _token->end_lineno;
3067 UNUSED(_end_lineno); // Only used by EXTRA macro
3068 int _end_col_offset = _token->end_col_offset;
3069 UNUSED(_end_col_offset); // Only used by EXTRA macro
3070 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq* , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
3071 if (_res == NULL && PyErr_Occurred()) {
3072 p->error_indicator = 1;
3073 p->level--;
3074 return NULL;
3075 }
3076 goto done;
3077 }
3078 p->mark = _mark;
3079 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
3081 }
3082 _res = NULL;
3083 done:
3084 p->level--;
3085 return _res;
3086 }
3087
3088 // del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
3089 static stmt_ty
del_stmt_rule(Parser * p)3090 del_stmt_rule(Parser *p)
3091 {
3092 if (p->level++ == MAXSTACK) {
3093 p->error_indicator = 1;
3094 PyErr_NoMemory();
3095 }
3096 if (p->error_indicator) {
3097 p->level--;
3098 return NULL;
3099 }
3100 stmt_ty _res = NULL;
3101 int _mark = p->mark;
3102 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3103 p->error_indicator = 1;
3104 p->level--;
3105 return NULL;
3106 }
3107 int _start_lineno = p->tokens[_mark]->lineno;
3108 UNUSED(_start_lineno); // Only used by EXTRA macro
3109 int _start_col_offset = p->tokens[_mark]->col_offset;
3110 UNUSED(_start_col_offset); // Only used by EXTRA macro
3111 { // 'del' del_targets &(';' | NEWLINE)
3112 if (p->error_indicator) {
3113 p->level--;
3114 return NULL;
3115 }
3116 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3117 Token * _keyword;
3118 asdl_expr_seq* a;
3119 if (
3120 (_keyword = _PyPegen_expect_token(p, 603)) // token='del'
3121 &&
3122 (a = del_targets_rule(p)) // del_targets
3123 &&
3124 _PyPegen_lookahead(1, _tmp_22_rule, p)
3125 )
3126 {
3127 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3128 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3129 if (_token == NULL) {
3130 p->level--;
3131 return NULL;
3132 }
3133 int _end_lineno = _token->end_lineno;
3134 UNUSED(_end_lineno); // Only used by EXTRA macro
3135 int _end_col_offset = _token->end_col_offset;
3136 UNUSED(_end_col_offset); // Only used by EXTRA macro
3137 _res = _PyAST_Delete ( a , EXTRA );
3138 if (_res == NULL && PyErr_Occurred()) {
3139 p->error_indicator = 1;
3140 p->level--;
3141 return NULL;
3142 }
3143 goto done;
3144 }
3145 p->mark = _mark;
3146 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3148 }
3149 if (p->call_invalid_rules) { // invalid_del_stmt
3150 if (p->error_indicator) {
3151 p->level--;
3152 return NULL;
3153 }
3154 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3155 void *invalid_del_stmt_var;
3156 if (
3157 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3158 )
3159 {
3160 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3161 _res = invalid_del_stmt_var;
3162 goto done;
3163 }
3164 p->mark = _mark;
3165 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
3167 }
3168 _res = NULL;
3169 done:
3170 p->level--;
3171 return _res;
3172 }
3173
3174 // yield_stmt: yield_expr
3175 static stmt_ty
yield_stmt_rule(Parser * p)3176 yield_stmt_rule(Parser *p)
3177 {
3178 if (p->level++ == MAXSTACK) {
3179 p->error_indicator = 1;
3180 PyErr_NoMemory();
3181 }
3182 if (p->error_indicator) {
3183 p->level--;
3184 return NULL;
3185 }
3186 stmt_ty _res = NULL;
3187 int _mark = p->mark;
3188 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3189 p->error_indicator = 1;
3190 p->level--;
3191 return NULL;
3192 }
3193 int _start_lineno = p->tokens[_mark]->lineno;
3194 UNUSED(_start_lineno); // Only used by EXTRA macro
3195 int _start_col_offset = p->tokens[_mark]->col_offset;
3196 UNUSED(_start_col_offset); // Only used by EXTRA macro
3197 { // yield_expr
3198 if (p->error_indicator) {
3199 p->level--;
3200 return NULL;
3201 }
3202 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
3203 expr_ty y;
3204 if (
3205 (y = yield_expr_rule(p)) // yield_expr
3206 )
3207 {
3208 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
3209 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3210 if (_token == NULL) {
3211 p->level--;
3212 return NULL;
3213 }
3214 int _end_lineno = _token->end_lineno;
3215 UNUSED(_end_lineno); // Only used by EXTRA macro
3216 int _end_col_offset = _token->end_col_offset;
3217 UNUSED(_end_col_offset); // Only used by EXTRA macro
3218 _res = _PyAST_Expr ( y , EXTRA );
3219 if (_res == NULL && PyErr_Occurred()) {
3220 p->error_indicator = 1;
3221 p->level--;
3222 return NULL;
3223 }
3224 goto done;
3225 }
3226 p->mark = _mark;
3227 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
3229 }
3230 _res = NULL;
3231 done:
3232 p->level--;
3233 return _res;
3234 }
3235
3236 // assert_stmt: 'assert' expression [',' expression]
3237 static stmt_ty
assert_stmt_rule(Parser * p)3238 assert_stmt_rule(Parser *p)
3239 {
3240 if (p->level++ == MAXSTACK) {
3241 p->error_indicator = 1;
3242 PyErr_NoMemory();
3243 }
3244 if (p->error_indicator) {
3245 p->level--;
3246 return NULL;
3247 }
3248 stmt_ty _res = NULL;
3249 int _mark = p->mark;
3250 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3251 p->error_indicator = 1;
3252 p->level--;
3253 return NULL;
3254 }
3255 int _start_lineno = p->tokens[_mark]->lineno;
3256 UNUSED(_start_lineno); // Only used by EXTRA macro
3257 int _start_col_offset = p->tokens[_mark]->col_offset;
3258 UNUSED(_start_col_offset); // Only used by EXTRA macro
3259 { // 'assert' expression [',' expression]
3260 if (p->error_indicator) {
3261 p->level--;
3262 return NULL;
3263 }
3264 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3265 Token * _keyword;
3266 expr_ty a;
3267 void *b;
3268 if (
3269 (_keyword = _PyPegen_expect_token(p, 526)) // token='assert'
3270 &&
3271 (a = expression_rule(p)) // expression
3272 &&
3273 (b = _tmp_23_rule(p), !p->error_indicator) // [',' expression]
3274 )
3275 {
3276 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3277 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3278 if (_token == NULL) {
3279 p->level--;
3280 return NULL;
3281 }
3282 int _end_lineno = _token->end_lineno;
3283 UNUSED(_end_lineno); // Only used by EXTRA macro
3284 int _end_col_offset = _token->end_col_offset;
3285 UNUSED(_end_col_offset); // Only used by EXTRA macro
3286 _res = _PyAST_Assert ( a , b , EXTRA );
3287 if (_res == NULL && PyErr_Occurred()) {
3288 p->error_indicator = 1;
3289 p->level--;
3290 return NULL;
3291 }
3292 goto done;
3293 }
3294 p->mark = _mark;
3295 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3297 }
3298 _res = NULL;
3299 done:
3300 p->level--;
3301 return _res;
3302 }
3303
3304 // import_stmt: import_name | import_from
3305 static stmt_ty
import_stmt_rule(Parser * p)3306 import_stmt_rule(Parser *p)
3307 {
3308 if (p->level++ == MAXSTACK) {
3309 p->error_indicator = 1;
3310 PyErr_NoMemory();
3311 }
3312 if (p->error_indicator) {
3313 p->level--;
3314 return NULL;
3315 }
3316 stmt_ty _res = NULL;
3317 int _mark = p->mark;
3318 { // import_name
3319 if (p->error_indicator) {
3320 p->level--;
3321 return NULL;
3322 }
3323 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3324 stmt_ty import_name_var;
3325 if (
3326 (import_name_var = import_name_rule(p)) // import_name
3327 )
3328 {
3329 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3330 _res = import_name_var;
3331 goto done;
3332 }
3333 p->mark = _mark;
3334 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3336 }
3337 { // import_from
3338 if (p->error_indicator) {
3339 p->level--;
3340 return NULL;
3341 }
3342 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3343 stmt_ty import_from_var;
3344 if (
3345 (import_from_var = import_from_rule(p)) // import_from
3346 )
3347 {
3348 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3349 _res = import_from_var;
3350 goto done;
3351 }
3352 p->mark = _mark;
3353 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3355 }
3356 _res = NULL;
3357 done:
3358 p->level--;
3359 return _res;
3360 }
3361
3362 // import_name: 'import' dotted_as_names
3363 static stmt_ty
import_name_rule(Parser * p)3364 import_name_rule(Parser *p)
3365 {
3366 if (p->level++ == MAXSTACK) {
3367 p->error_indicator = 1;
3368 PyErr_NoMemory();
3369 }
3370 if (p->error_indicator) {
3371 p->level--;
3372 return NULL;
3373 }
3374 stmt_ty _res = NULL;
3375 int _mark = p->mark;
3376 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3377 p->error_indicator = 1;
3378 p->level--;
3379 return NULL;
3380 }
3381 int _start_lineno = p->tokens[_mark]->lineno;
3382 UNUSED(_start_lineno); // Only used by EXTRA macro
3383 int _start_col_offset = p->tokens[_mark]->col_offset;
3384 UNUSED(_start_col_offset); // Only used by EXTRA macro
3385 { // 'import' dotted_as_names
3386 if (p->error_indicator) {
3387 p->level--;
3388 return NULL;
3389 }
3390 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3391 Token * _keyword;
3392 asdl_alias_seq* a;
3393 if (
3394 (_keyword = _PyPegen_expect_token(p, 531)) // token='import'
3395 &&
3396 (a = dotted_as_names_rule(p)) // dotted_as_names
3397 )
3398 {
3399 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3400 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3401 if (_token == NULL) {
3402 p->level--;
3403 return NULL;
3404 }
3405 int _end_lineno = _token->end_lineno;
3406 UNUSED(_end_lineno); // Only used by EXTRA macro
3407 int _end_col_offset = _token->end_col_offset;
3408 UNUSED(_end_col_offset); // Only used by EXTRA macro
3409 _res = _PyAST_Import ( a , EXTRA );
3410 if (_res == NULL && PyErr_Occurred()) {
3411 p->error_indicator = 1;
3412 p->level--;
3413 return NULL;
3414 }
3415 goto done;
3416 }
3417 p->mark = _mark;
3418 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3420 }
3421 _res = NULL;
3422 done:
3423 p->level--;
3424 return _res;
3425 }
3426
3427 // import_from:
3428 // | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3429 // | 'from' (('.' | '...'))+ 'import' import_from_targets
3430 static stmt_ty
import_from_rule(Parser * p)3431 import_from_rule(Parser *p)
3432 {
3433 if (p->level++ == MAXSTACK) {
3434 p->error_indicator = 1;
3435 PyErr_NoMemory();
3436 }
3437 if (p->error_indicator) {
3438 p->level--;
3439 return NULL;
3440 }
3441 stmt_ty _res = NULL;
3442 int _mark = p->mark;
3443 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3444 p->error_indicator = 1;
3445 p->level--;
3446 return NULL;
3447 }
3448 int _start_lineno = p->tokens[_mark]->lineno;
3449 UNUSED(_start_lineno); // Only used by EXTRA macro
3450 int _start_col_offset = p->tokens[_mark]->col_offset;
3451 UNUSED(_start_col_offset); // Only used by EXTRA macro
3452 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3453 if (p->error_indicator) {
3454 p->level--;
3455 return NULL;
3456 }
3457 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3458 Token * _keyword;
3459 Token * _keyword_1;
3460 asdl_seq * a;
3461 expr_ty b;
3462 asdl_alias_seq* c;
3463 if (
3464 (_keyword = _PyPegen_expect_token(p, 572)) // token='from'
3465 &&
3466 (a = _loop0_24_rule(p)) // (('.' | '...'))*
3467 &&
3468 (b = dotted_name_rule(p)) // dotted_name
3469 &&
3470 (_keyword_1 = _PyPegen_expect_token(p, 531)) // token='import'
3471 &&
3472 (c = import_from_targets_rule(p)) // import_from_targets
3473 )
3474 {
3475 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3476 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3477 if (_token == NULL) {
3478 p->level--;
3479 return NULL;
3480 }
3481 int _end_lineno = _token->end_lineno;
3482 UNUSED(_end_lineno); // Only used by EXTRA macro
3483 int _end_col_offset = _token->end_col_offset;
3484 UNUSED(_end_col_offset); // Only used by EXTRA macro
3485 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3486 if (_res == NULL && PyErr_Occurred()) {
3487 p->error_indicator = 1;
3488 p->level--;
3489 return NULL;
3490 }
3491 goto done;
3492 }
3493 p->mark = _mark;
3494 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3496 }
3497 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3498 if (p->error_indicator) {
3499 p->level--;
3500 return NULL;
3501 }
3502 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3503 Token * _keyword;
3504 Token * _keyword_1;
3505 asdl_seq * a;
3506 asdl_alias_seq* b;
3507 if (
3508 (_keyword = _PyPegen_expect_token(p, 572)) // token='from'
3509 &&
3510 (a = _loop1_25_rule(p)) // (('.' | '...'))+
3511 &&
3512 (_keyword_1 = _PyPegen_expect_token(p, 531)) // token='import'
3513 &&
3514 (b = import_from_targets_rule(p)) // import_from_targets
3515 )
3516 {
3517 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3518 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3519 if (_token == NULL) {
3520 p->level--;
3521 return NULL;
3522 }
3523 int _end_lineno = _token->end_lineno;
3524 UNUSED(_end_lineno); // Only used by EXTRA macro
3525 int _end_col_offset = _token->end_col_offset;
3526 UNUSED(_end_col_offset); // Only used by EXTRA macro
3527 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3528 if (_res == NULL && PyErr_Occurred()) {
3529 p->error_indicator = 1;
3530 p->level--;
3531 return NULL;
3532 }
3533 goto done;
3534 }
3535 p->mark = _mark;
3536 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3538 }
3539 _res = NULL;
3540 done:
3541 p->level--;
3542 return _res;
3543 }
3544
3545 // import_from_targets:
3546 // | '(' import_from_as_names ','? ')'
3547 // | import_from_as_names !','
3548 // | '*'
3549 // | invalid_import_from_targets
3550 static asdl_alias_seq*
import_from_targets_rule(Parser * p)3551 import_from_targets_rule(Parser *p)
3552 {
3553 if (p->level++ == MAXSTACK) {
3554 p->error_indicator = 1;
3555 PyErr_NoMemory();
3556 }
3557 if (p->error_indicator) {
3558 p->level--;
3559 return NULL;
3560 }
3561 asdl_alias_seq* _res = NULL;
3562 int _mark = p->mark;
3563 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3564 p->error_indicator = 1;
3565 p->level--;
3566 return NULL;
3567 }
3568 int _start_lineno = p->tokens[_mark]->lineno;
3569 UNUSED(_start_lineno); // Only used by EXTRA macro
3570 int _start_col_offset = p->tokens[_mark]->col_offset;
3571 UNUSED(_start_col_offset); // Only used by EXTRA macro
3572 { // '(' import_from_as_names ','? ')'
3573 if (p->error_indicator) {
3574 p->level--;
3575 return NULL;
3576 }
3577 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3578 Token * _literal;
3579 Token * _literal_1;
3580 void *_opt_var;
3581 UNUSED(_opt_var); // Silence compiler warnings
3582 asdl_alias_seq* a;
3583 if (
3584 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3585 &&
3586 (a = import_from_as_names_rule(p)) // import_from_as_names
3587 &&
3588 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
3589 &&
3590 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3591 )
3592 {
3593 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3594 _res = a;
3595 if (_res == NULL && PyErr_Occurred()) {
3596 p->error_indicator = 1;
3597 p->level--;
3598 return NULL;
3599 }
3600 goto done;
3601 }
3602 p->mark = _mark;
3603 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3605 }
3606 { // import_from_as_names !','
3607 if (p->error_indicator) {
3608 p->level--;
3609 return NULL;
3610 }
3611 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3612 asdl_alias_seq* import_from_as_names_var;
3613 if (
3614 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3615 &&
3616 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3617 )
3618 {
3619 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3620 _res = import_from_as_names_var;
3621 goto done;
3622 }
3623 p->mark = _mark;
3624 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3626 }
3627 { // '*'
3628 if (p->error_indicator) {
3629 p->level--;
3630 return NULL;
3631 }
3632 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3633 Token * _literal;
3634 if (
3635 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3636 )
3637 {
3638 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
3639 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3640 if (_token == NULL) {
3641 p->level--;
3642 return NULL;
3643 }
3644 int _end_lineno = _token->end_lineno;
3645 UNUSED(_end_lineno); // Only used by EXTRA macro
3646 int _end_col_offset = _token->end_col_offset;
3647 UNUSED(_end_col_offset); // Only used by EXTRA macro
3648 _res = ( asdl_alias_seq* ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
3649 if (_res == NULL && PyErr_Occurred()) {
3650 p->error_indicator = 1;
3651 p->level--;
3652 return NULL;
3653 }
3654 goto done;
3655 }
3656 p->mark = _mark;
3657 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3659 }
3660 if (p->call_invalid_rules) { // invalid_import_from_targets
3661 if (p->error_indicator) {
3662 p->level--;
3663 return NULL;
3664 }
3665 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3666 void *invalid_import_from_targets_var;
3667 if (
3668 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3669 )
3670 {
3671 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3672 _res = invalid_import_from_targets_var;
3673 goto done;
3674 }
3675 p->mark = _mark;
3676 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3678 }
3679 _res = NULL;
3680 done:
3681 p->level--;
3682 return _res;
3683 }
3684
3685 // import_from_as_names: ','.import_from_as_name+
3686 static asdl_alias_seq*
import_from_as_names_rule(Parser * p)3687 import_from_as_names_rule(Parser *p)
3688 {
3689 if (p->level++ == MAXSTACK) {
3690 p->error_indicator = 1;
3691 PyErr_NoMemory();
3692 }
3693 if (p->error_indicator) {
3694 p->level--;
3695 return NULL;
3696 }
3697 asdl_alias_seq* _res = NULL;
3698 int _mark = p->mark;
3699 { // ','.import_from_as_name+
3700 if (p->error_indicator) {
3701 p->level--;
3702 return NULL;
3703 }
3704 D(fprintf(stderr, "%*c> import_from_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3705 asdl_alias_seq* a;
3706 if (
3707 (a = (asdl_alias_seq*)_gather_26_rule(p)) // ','.import_from_as_name+
3708 )
3709 {
3710 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3711 _res = a;
3712 if (_res == NULL && PyErr_Occurred()) {
3713 p->error_indicator = 1;
3714 p->level--;
3715 return NULL;
3716 }
3717 goto done;
3718 }
3719 p->mark = _mark;
3720 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3722 }
3723 _res = NULL;
3724 done:
3725 p->level--;
3726 return _res;
3727 }
3728
3729 // import_from_as_name: NAME ['as' NAME]
3730 static alias_ty
import_from_as_name_rule(Parser * p)3731 import_from_as_name_rule(Parser *p)
3732 {
3733 if (p->level++ == MAXSTACK) {
3734 p->error_indicator = 1;
3735 PyErr_NoMemory();
3736 }
3737 if (p->error_indicator) {
3738 p->level--;
3739 return NULL;
3740 }
3741 alias_ty _res = NULL;
3742 int _mark = p->mark;
3743 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3744 p->error_indicator = 1;
3745 p->level--;
3746 return NULL;
3747 }
3748 int _start_lineno = p->tokens[_mark]->lineno;
3749 UNUSED(_start_lineno); // Only used by EXTRA macro
3750 int _start_col_offset = p->tokens[_mark]->col_offset;
3751 UNUSED(_start_col_offset); // Only used by EXTRA macro
3752 { // NAME ['as' NAME]
3753 if (p->error_indicator) {
3754 p->level--;
3755 return NULL;
3756 }
3757 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3758 expr_ty a;
3759 void *b;
3760 if (
3761 (a = _PyPegen_name_token(p)) // NAME
3762 &&
3763 (b = _tmp_28_rule(p), !p->error_indicator) // ['as' NAME]
3764 )
3765 {
3766 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3767 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3768 if (_token == NULL) {
3769 p->level--;
3770 return NULL;
3771 }
3772 int _end_lineno = _token->end_lineno;
3773 UNUSED(_end_lineno); // Only used by EXTRA macro
3774 int _end_col_offset = _token->end_col_offset;
3775 UNUSED(_end_col_offset); // Only used by EXTRA macro
3776 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
3777 if (_res == NULL && PyErr_Occurred()) {
3778 p->error_indicator = 1;
3779 p->level--;
3780 return NULL;
3781 }
3782 goto done;
3783 }
3784 p->mark = _mark;
3785 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3787 }
3788 _res = NULL;
3789 done:
3790 p->level--;
3791 return _res;
3792 }
3793
3794 // dotted_as_names: ','.dotted_as_name+
3795 static asdl_alias_seq*
dotted_as_names_rule(Parser * p)3796 dotted_as_names_rule(Parser *p)
3797 {
3798 if (p->level++ == MAXSTACK) {
3799 p->error_indicator = 1;
3800 PyErr_NoMemory();
3801 }
3802 if (p->error_indicator) {
3803 p->level--;
3804 return NULL;
3805 }
3806 asdl_alias_seq* _res = NULL;
3807 int _mark = p->mark;
3808 { // ','.dotted_as_name+
3809 if (p->error_indicator) {
3810 p->level--;
3811 return NULL;
3812 }
3813 D(fprintf(stderr, "%*c> dotted_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3814 asdl_alias_seq* a;
3815 if (
3816 (a = (asdl_alias_seq*)_gather_29_rule(p)) // ','.dotted_as_name+
3817 )
3818 {
3819 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3820 _res = a;
3821 if (_res == NULL && PyErr_Occurred()) {
3822 p->error_indicator = 1;
3823 p->level--;
3824 return NULL;
3825 }
3826 goto done;
3827 }
3828 p->mark = _mark;
3829 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3831 }
3832 _res = NULL;
3833 done:
3834 p->level--;
3835 return _res;
3836 }
3837
3838 // dotted_as_name: dotted_name ['as' NAME]
3839 static alias_ty
dotted_as_name_rule(Parser * p)3840 dotted_as_name_rule(Parser *p)
3841 {
3842 if (p->level++ == MAXSTACK) {
3843 p->error_indicator = 1;
3844 PyErr_NoMemory();
3845 }
3846 if (p->error_indicator) {
3847 p->level--;
3848 return NULL;
3849 }
3850 alias_ty _res = NULL;
3851 int _mark = p->mark;
3852 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3853 p->error_indicator = 1;
3854 p->level--;
3855 return NULL;
3856 }
3857 int _start_lineno = p->tokens[_mark]->lineno;
3858 UNUSED(_start_lineno); // Only used by EXTRA macro
3859 int _start_col_offset = p->tokens[_mark]->col_offset;
3860 UNUSED(_start_col_offset); // Only used by EXTRA macro
3861 { // dotted_name ['as' NAME]
3862 if (p->error_indicator) {
3863 p->level--;
3864 return NULL;
3865 }
3866 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3867 expr_ty a;
3868 void *b;
3869 if (
3870 (a = dotted_name_rule(p)) // dotted_name
3871 &&
3872 (b = _tmp_31_rule(p), !p->error_indicator) // ['as' NAME]
3873 )
3874 {
3875 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3876 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3877 if (_token == NULL) {
3878 p->level--;
3879 return NULL;
3880 }
3881 int _end_lineno = _token->end_lineno;
3882 UNUSED(_end_lineno); // Only used by EXTRA macro
3883 int _end_col_offset = _token->end_col_offset;
3884 UNUSED(_end_col_offset); // Only used by EXTRA macro
3885 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
3886 if (_res == NULL && PyErr_Occurred()) {
3887 p->error_indicator = 1;
3888 p->level--;
3889 return NULL;
3890 }
3891 goto done;
3892 }
3893 p->mark = _mark;
3894 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3896 }
3897 _res = NULL;
3898 done:
3899 p->level--;
3900 return _res;
3901 }
3902
3903 // Left-recursive
3904 // dotted_name: dotted_name '.' NAME | NAME
3905 static expr_ty dotted_name_raw(Parser *);
3906 static expr_ty
dotted_name_rule(Parser * p)3907 dotted_name_rule(Parser *p)
3908 {
3909 if (p->level++ == MAXSTACK) {
3910 p->error_indicator = 1;
3911 PyErr_NoMemory();
3912 }
3913 expr_ty _res = NULL;
3914 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3915 p->level--;
3916 return _res;
3917 }
3918 int _mark = p->mark;
3919 int _resmark = p->mark;
3920 while (1) {
3921 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3922 if (tmpvar_0) {
3923 p->level--;
3924 return _res;
3925 }
3926 p->mark = _mark;
3927 void *_raw = dotted_name_raw(p);
3928 if (p->error_indicator) {
3929 p->level--;
3930 return NULL;
3931 }
3932 if (_raw == NULL || p->mark <= _resmark)
3933 break;
3934 _resmark = p->mark;
3935 _res = _raw;
3936 }
3937 p->mark = _resmark;
3938 p->level--;
3939 return _res;
3940 }
3941 static expr_ty
dotted_name_raw(Parser * p)3942 dotted_name_raw(Parser *p)
3943 {
3944 if (p->level++ == MAXSTACK) {
3945 p->error_indicator = 1;
3946 PyErr_NoMemory();
3947 }
3948 if (p->error_indicator) {
3949 p->level--;
3950 return NULL;
3951 }
3952 expr_ty _res = NULL;
3953 int _mark = p->mark;
3954 { // dotted_name '.' NAME
3955 if (p->error_indicator) {
3956 p->level--;
3957 return NULL;
3958 }
3959 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3960 Token * _literal;
3961 expr_ty a;
3962 expr_ty b;
3963 if (
3964 (a = dotted_name_rule(p)) // dotted_name
3965 &&
3966 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3967 &&
3968 (b = _PyPegen_name_token(p)) // NAME
3969 )
3970 {
3971 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3972 _res = _PyPegen_join_names_with_dot ( p , a , b );
3973 if (_res == NULL && PyErr_Occurred()) {
3974 p->error_indicator = 1;
3975 p->level--;
3976 return NULL;
3977 }
3978 goto done;
3979 }
3980 p->mark = _mark;
3981 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3983 }
3984 { // NAME
3985 if (p->error_indicator) {
3986 p->level--;
3987 return NULL;
3988 }
3989 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3990 expr_ty name_var;
3991 if (
3992 (name_var = _PyPegen_name_token(p)) // NAME
3993 )
3994 {
3995 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3996 _res = name_var;
3997 goto done;
3998 }
3999 p->mark = _mark;
4000 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
4001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
4002 }
4003 _res = NULL;
4004 done:
4005 p->level--;
4006 return _res;
4007 }
4008
4009 // block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
4010 static asdl_stmt_seq*
block_rule(Parser * p)4011 block_rule(Parser *p)
4012 {
4013 if (p->level++ == MAXSTACK) {
4014 p->error_indicator = 1;
4015 PyErr_NoMemory();
4016 }
4017 if (p->error_indicator) {
4018 p->level--;
4019 return NULL;
4020 }
4021 asdl_stmt_seq* _res = NULL;
4022 if (_PyPegen_is_memoized(p, block_type, &_res)) {
4023 p->level--;
4024 return _res;
4025 }
4026 int _mark = p->mark;
4027 { // NEWLINE INDENT statements DEDENT
4028 if (p->error_indicator) {
4029 p->level--;
4030 return NULL;
4031 }
4032 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
4033 asdl_stmt_seq* a;
4034 Token * dedent_var;
4035 Token * indent_var;
4036 Token * newline_var;
4037 if (
4038 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
4039 &&
4040 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
4041 &&
4042 (a = statements_rule(p)) // statements
4043 &&
4044 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
4045 )
4046 {
4047 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
4048 _res = a;
4049 if (_res == NULL && PyErr_Occurred()) {
4050 p->error_indicator = 1;
4051 p->level--;
4052 return NULL;
4053 }
4054 goto done;
4055 }
4056 p->mark = _mark;
4057 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
4058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
4059 }
4060 { // simple_stmts
4061 if (p->error_indicator) {
4062 p->level--;
4063 return NULL;
4064 }
4065 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
4066 asdl_stmt_seq* simple_stmts_var;
4067 if (
4068 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
4069 )
4070 {
4071 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
4072 _res = simple_stmts_var;
4073 goto done;
4074 }
4075 p->mark = _mark;
4076 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
4077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
4078 }
4079 if (p->call_invalid_rules) { // invalid_block
4080 if (p->error_indicator) {
4081 p->level--;
4082 return NULL;
4083 }
4084 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
4085 void *invalid_block_var;
4086 if (
4087 (invalid_block_var = invalid_block_rule(p)) // invalid_block
4088 )
4089 {
4090 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
4091 _res = invalid_block_var;
4092 goto done;
4093 }
4094 p->mark = _mark;
4095 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
4096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
4097 }
4098 _res = NULL;
4099 done:
4100 _PyPegen_insert_memo(p, _mark, block_type, _res);
4101 p->level--;
4102 return _res;
4103 }
4104
4105 // decorators: (('@' named_expression NEWLINE))+
4106 static asdl_expr_seq*
decorators_rule(Parser * p)4107 decorators_rule(Parser *p)
4108 {
4109 if (p->level++ == MAXSTACK) {
4110 p->error_indicator = 1;
4111 PyErr_NoMemory();
4112 }
4113 if (p->error_indicator) {
4114 p->level--;
4115 return NULL;
4116 }
4117 asdl_expr_seq* _res = NULL;
4118 int _mark = p->mark;
4119 { // (('@' named_expression NEWLINE))+
4120 if (p->error_indicator) {
4121 p->level--;
4122 return NULL;
4123 }
4124 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
4125 asdl_expr_seq* a;
4126 if (
4127 (a = (asdl_expr_seq*)_loop1_32_rule(p)) // (('@' named_expression NEWLINE))+
4128 )
4129 {
4130 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
4131 _res = a;
4132 if (_res == NULL && PyErr_Occurred()) {
4133 p->error_indicator = 1;
4134 p->level--;
4135 return NULL;
4136 }
4137 goto done;
4138 }
4139 p->mark = _mark;
4140 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
4141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
4142 }
4143 _res = NULL;
4144 done:
4145 p->level--;
4146 return _res;
4147 }
4148
4149 // class_def: decorators class_def_raw | class_def_raw
4150 static stmt_ty
class_def_rule(Parser * p)4151 class_def_rule(Parser *p)
4152 {
4153 if (p->level++ == MAXSTACK) {
4154 p->error_indicator = 1;
4155 PyErr_NoMemory();
4156 }
4157 if (p->error_indicator) {
4158 p->level--;
4159 return NULL;
4160 }
4161 stmt_ty _res = NULL;
4162 int _mark = p->mark;
4163 { // decorators class_def_raw
4164 if (p->error_indicator) {
4165 p->level--;
4166 return NULL;
4167 }
4168 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
4169 asdl_expr_seq* a;
4170 stmt_ty b;
4171 if (
4172 (a = decorators_rule(p)) // decorators
4173 &&
4174 (b = class_def_raw_rule(p)) // class_def_raw
4175 )
4176 {
4177 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
4178 _res = _PyPegen_class_def_decorators ( p , a , b );
4179 if (_res == NULL && PyErr_Occurred()) {
4180 p->error_indicator = 1;
4181 p->level--;
4182 return NULL;
4183 }
4184 goto done;
4185 }
4186 p->mark = _mark;
4187 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
4188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
4189 }
4190 { // class_def_raw
4191 if (p->error_indicator) {
4192 p->level--;
4193 return NULL;
4194 }
4195 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
4196 stmt_ty class_def_raw_var;
4197 if (
4198 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
4199 )
4200 {
4201 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
4202 _res = class_def_raw_var;
4203 goto done;
4204 }
4205 p->mark = _mark;
4206 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
4207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
4208 }
4209 _res = NULL;
4210 done:
4211 p->level--;
4212 return _res;
4213 }
4214
4215 // class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] ':' block
4216 static stmt_ty
class_def_raw_rule(Parser * p)4217 class_def_raw_rule(Parser *p)
4218 {
4219 if (p->level++ == MAXSTACK) {
4220 p->error_indicator = 1;
4221 PyErr_NoMemory();
4222 }
4223 if (p->error_indicator) {
4224 p->level--;
4225 return NULL;
4226 }
4227 stmt_ty _res = NULL;
4228 int _mark = p->mark;
4229 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4230 p->error_indicator = 1;
4231 p->level--;
4232 return NULL;
4233 }
4234 int _start_lineno = p->tokens[_mark]->lineno;
4235 UNUSED(_start_lineno); // Only used by EXTRA macro
4236 int _start_col_offset = p->tokens[_mark]->col_offset;
4237 UNUSED(_start_col_offset); // Only used by EXTRA macro
4238 if (p->call_invalid_rules) { // invalid_class_def_raw
4239 if (p->error_indicator) {
4240 p->level--;
4241 return NULL;
4242 }
4243 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
4244 void *invalid_class_def_raw_var;
4245 if (
4246 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
4247 )
4248 {
4249 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
4250 _res = invalid_class_def_raw_var;
4251 goto done;
4252 }
4253 p->mark = _mark;
4254 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
4256 }
4257 { // 'class' NAME ['(' arguments? ')'] ':' block
4258 if (p->error_indicator) {
4259 p->level--;
4260 return NULL;
4261 }
4262 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
4263 Token * _keyword;
4264 Token * _literal;
4265 expr_ty a;
4266 void *b;
4267 asdl_stmt_seq* c;
4268 if (
4269 (_keyword = _PyPegen_expect_token(p, 651)) // token='class'
4270 &&
4271 (a = _PyPegen_name_token(p)) // NAME
4272 &&
4273 (b = _tmp_33_rule(p), !p->error_indicator) // ['(' arguments? ')']
4274 &&
4275 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4276 &&
4277 (c = block_rule(p)) // block
4278 )
4279 {
4280 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
4281 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4282 if (_token == NULL) {
4283 p->level--;
4284 return NULL;
4285 }
4286 int _end_lineno = _token->end_lineno;
4287 UNUSED(_end_lineno); // Only used by EXTRA macro
4288 int _end_col_offset = _token->end_col_offset;
4289 UNUSED(_end_col_offset); // Only used by EXTRA macro
4290 _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 , EXTRA );
4291 if (_res == NULL && PyErr_Occurred()) {
4292 p->error_indicator = 1;
4293 p->level--;
4294 return NULL;
4295 }
4296 goto done;
4297 }
4298 p->mark = _mark;
4299 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
4301 }
4302 _res = NULL;
4303 done:
4304 p->level--;
4305 return _res;
4306 }
4307
4308 // function_def: decorators function_def_raw | function_def_raw
4309 static stmt_ty
function_def_rule(Parser * p)4310 function_def_rule(Parser *p)
4311 {
4312 if (p->level++ == MAXSTACK) {
4313 p->error_indicator = 1;
4314 PyErr_NoMemory();
4315 }
4316 if (p->error_indicator) {
4317 p->level--;
4318 return NULL;
4319 }
4320 stmt_ty _res = NULL;
4321 int _mark = p->mark;
4322 { // decorators function_def_raw
4323 if (p->error_indicator) {
4324 p->level--;
4325 return NULL;
4326 }
4327 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
4328 asdl_expr_seq* d;
4329 stmt_ty f;
4330 if (
4331 (d = decorators_rule(p)) // decorators
4332 &&
4333 (f = function_def_raw_rule(p)) // function_def_raw
4334 )
4335 {
4336 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
4337 _res = _PyPegen_function_def_decorators ( p , d , f );
4338 if (_res == NULL && PyErr_Occurred()) {
4339 p->error_indicator = 1;
4340 p->level--;
4341 return NULL;
4342 }
4343 goto done;
4344 }
4345 p->mark = _mark;
4346 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
4348 }
4349 { // function_def_raw
4350 if (p->error_indicator) {
4351 p->level--;
4352 return NULL;
4353 }
4354 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
4355 stmt_ty function_def_raw_var;
4356 if (
4357 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
4358 )
4359 {
4360 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
4361 _res = function_def_raw_var;
4362 goto done;
4363 }
4364 p->mark = _mark;
4365 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
4367 }
4368 _res = NULL;
4369 done:
4370 p->level--;
4371 return _res;
4372 }
4373
4374 // function_def_raw:
4375 // | invalid_def_raw
4376 // | 'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block
4377 // | ASYNC 'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block
4378 static stmt_ty
function_def_raw_rule(Parser * p)4379 function_def_raw_rule(Parser *p)
4380 {
4381 if (p->level++ == MAXSTACK) {
4382 p->error_indicator = 1;
4383 PyErr_NoMemory();
4384 }
4385 if (p->error_indicator) {
4386 p->level--;
4387 return NULL;
4388 }
4389 stmt_ty _res = NULL;
4390 int _mark = p->mark;
4391 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4392 p->error_indicator = 1;
4393 p->level--;
4394 return NULL;
4395 }
4396 int _start_lineno = p->tokens[_mark]->lineno;
4397 UNUSED(_start_lineno); // Only used by EXTRA macro
4398 int _start_col_offset = p->tokens[_mark]->col_offset;
4399 UNUSED(_start_col_offset); // Only used by EXTRA macro
4400 if (p->call_invalid_rules) { // invalid_def_raw
4401 if (p->error_indicator) {
4402 p->level--;
4403 return NULL;
4404 }
4405 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
4406 void *invalid_def_raw_var;
4407 if (
4408 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
4409 )
4410 {
4411 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
4412 _res = invalid_def_raw_var;
4413 goto done;
4414 }
4415 p->mark = _mark;
4416 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
4418 }
4419 { // 'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block
4420 if (p->error_indicator) {
4421 p->level--;
4422 return NULL;
4423 }
4424 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block"));
4425 Token * _keyword;
4426 Token * _literal;
4427 Token * _literal_1;
4428 Token * _literal_2;
4429 void *a;
4430 asdl_stmt_seq* b;
4431 expr_ty n;
4432 void *params;
4433 void *tc;
4434 if (
4435 (_keyword = _PyPegen_expect_token(p, 649)) // token='def'
4436 &&
4437 (n = _PyPegen_name_token(p)) // NAME
4438 &&
4439 (_literal = _PyPegen_expect_forced_token(p, 7, "(")) // forced_token='('
4440 &&
4441 (params = params_rule(p), !p->error_indicator) // params?
4442 &&
4443 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4444 &&
4445 (a = _tmp_34_rule(p), !p->error_indicator) // ['->' expression]
4446 &&
4447 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
4448 &&
4449 (tc = func_type_comment_rule(p), !p->error_indicator) // func_type_comment?
4450 &&
4451 (b = block_rule(p)) // block
4452 )
4453 {
4454 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block"));
4455 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4456 if (_token == NULL) {
4457 p->level--;
4458 return NULL;
4459 }
4460 int _end_lineno = _token->end_lineno;
4461 UNUSED(_end_lineno); // Only used by EXTRA macro
4462 int _end_col_offset = _token->end_col_offset;
4463 UNUSED(_end_col_offset); // Only used by EXTRA macro
4464 _res = _PyAST_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4465 if (_res == NULL && PyErr_Occurred()) {
4466 p->error_indicator = 1;
4467 p->level--;
4468 return NULL;
4469 }
4470 goto done;
4471 }
4472 p->mark = _mark;
4473 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block"));
4475 }
4476 { // ASYNC 'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block
4477 if (p->error_indicator) {
4478 p->level--;
4479 return NULL;
4480 }
4481 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block"));
4482 Token * _keyword;
4483 Token * _literal;
4484 Token * _literal_1;
4485 Token * _literal_2;
4486 void *a;
4487 Token * async_var;
4488 asdl_stmt_seq* b;
4489 expr_ty n;
4490 void *params;
4491 void *tc;
4492 if (
4493 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4494 &&
4495 (_keyword = _PyPegen_expect_token(p, 649)) // token='def'
4496 &&
4497 (n = _PyPegen_name_token(p)) // NAME
4498 &&
4499 (_literal = _PyPegen_expect_forced_token(p, 7, "(")) // forced_token='('
4500 &&
4501 (params = params_rule(p), !p->error_indicator) // params?
4502 &&
4503 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4504 &&
4505 (a = _tmp_35_rule(p), !p->error_indicator) // ['->' expression]
4506 &&
4507 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
4508 &&
4509 (tc = func_type_comment_rule(p), !p->error_indicator) // func_type_comment?
4510 &&
4511 (b = block_rule(p)) // block
4512 )
4513 {
4514 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block"));
4515 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4516 if (_token == NULL) {
4517 p->level--;
4518 return NULL;
4519 }
4520 int _end_lineno = _token->end_lineno;
4521 UNUSED(_end_lineno); // Only used by EXTRA macro
4522 int _end_col_offset = _token->end_col_offset;
4523 UNUSED(_end_col_offset); // Only used by EXTRA macro
4524 _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 ) , EXTRA ) );
4525 if (_res == NULL && PyErr_Occurred()) {
4526 p->error_indicator = 1;
4527 p->level--;
4528 return NULL;
4529 }
4530 goto done;
4531 }
4532 p->mark = _mark;
4533 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block"));
4535 }
4536 _res = NULL;
4537 done:
4538 p->level--;
4539 return _res;
4540 }
4541
4542 // params: invalid_parameters | parameters
4543 static arguments_ty
params_rule(Parser * p)4544 params_rule(Parser *p)
4545 {
4546 if (p->level++ == MAXSTACK) {
4547 p->error_indicator = 1;
4548 PyErr_NoMemory();
4549 }
4550 if (p->error_indicator) {
4551 p->level--;
4552 return NULL;
4553 }
4554 arguments_ty _res = NULL;
4555 int _mark = p->mark;
4556 if (p->call_invalid_rules) { // invalid_parameters
4557 if (p->error_indicator) {
4558 p->level--;
4559 return NULL;
4560 }
4561 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
4562 void *invalid_parameters_var;
4563 if (
4564 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
4565 )
4566 {
4567 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
4568 _res = invalid_parameters_var;
4569 goto done;
4570 }
4571 p->mark = _mark;
4572 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
4573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
4574 }
4575 { // parameters
4576 if (p->error_indicator) {
4577 p->level--;
4578 return NULL;
4579 }
4580 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
4581 arguments_ty parameters_var;
4582 if (
4583 (parameters_var = parameters_rule(p)) // parameters
4584 )
4585 {
4586 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
4587 _res = parameters_var;
4588 goto done;
4589 }
4590 p->mark = _mark;
4591 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
4592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
4593 }
4594 _res = NULL;
4595 done:
4596 p->level--;
4597 return _res;
4598 }
4599
4600 // parameters:
4601 // | slash_no_default param_no_default* param_with_default* star_etc?
4602 // | slash_with_default param_with_default* star_etc?
4603 // | param_no_default+ param_with_default* star_etc?
4604 // | param_with_default+ star_etc?
4605 // | star_etc
4606 static arguments_ty
parameters_rule(Parser * p)4607 parameters_rule(Parser *p)
4608 {
4609 if (p->level++ == MAXSTACK) {
4610 p->error_indicator = 1;
4611 PyErr_NoMemory();
4612 }
4613 if (p->error_indicator) {
4614 p->level--;
4615 return NULL;
4616 }
4617 arguments_ty _res = NULL;
4618 int _mark = p->mark;
4619 { // slash_no_default param_no_default* param_with_default* star_etc?
4620 if (p->error_indicator) {
4621 p->level--;
4622 return NULL;
4623 }
4624 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?"));
4625 asdl_arg_seq* a;
4626 asdl_arg_seq* b;
4627 asdl_seq * c;
4628 void *d;
4629 if (
4630 (a = slash_no_default_rule(p)) // slash_no_default
4631 &&
4632 (b = (asdl_arg_seq*)_loop0_36_rule(p)) // param_no_default*
4633 &&
4634 (c = _loop0_37_rule(p)) // param_with_default*
4635 &&
4636 (d = star_etc_rule(p), !p->error_indicator) // star_etc?
4637 )
4638 {
4639 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?"));
4640 _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , a , NULL , b , c , d ) );
4641 if (_res == NULL && PyErr_Occurred()) {
4642 p->error_indicator = 1;
4643 p->level--;
4644 return NULL;
4645 }
4646 goto done;
4647 }
4648 p->mark = _mark;
4649 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
4650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
4651 }
4652 { // slash_with_default param_with_default* star_etc?
4653 if (p->error_indicator) {
4654 p->level--;
4655 return NULL;
4656 }
4657 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
4658 SlashWithDefault* a;
4659 asdl_seq * b;
4660 void *c;
4661 if (
4662 (a = slash_with_default_rule(p)) // slash_with_default
4663 &&
4664 (b = _loop0_38_rule(p)) // param_with_default*
4665 &&
4666 (c = star_etc_rule(p), !p->error_indicator) // star_etc?
4667 )
4668 {
4669 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
4670 _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , NULL , a , NULL , b , c ) );
4671 if (_res == NULL && PyErr_Occurred()) {
4672 p->error_indicator = 1;
4673 p->level--;
4674 return NULL;
4675 }
4676 goto done;
4677 }
4678 p->mark = _mark;
4679 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
4680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
4681 }
4682 { // param_no_default+ param_with_default* star_etc?
4683 if (p->error_indicator) {
4684 p->level--;
4685 return NULL;
4686 }
4687 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
4688 asdl_arg_seq* a;
4689 asdl_seq * b;
4690 void *c;
4691 if (
4692 (a = (asdl_arg_seq*)_loop1_39_rule(p)) // param_no_default+
4693 &&
4694 (b = _loop0_40_rule(p)) // param_with_default*
4695 &&
4696 (c = star_etc_rule(p), !p->error_indicator) // star_etc?
4697 )
4698 {
4699 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
4700 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
4701 if (_res == NULL && PyErr_Occurred()) {
4702 p->error_indicator = 1;
4703 p->level--;
4704 return NULL;
4705 }
4706 goto done;
4707 }
4708 p->mark = _mark;
4709 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
4710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
4711 }
4712 { // param_with_default+ star_etc?
4713 if (p->error_indicator) {
4714 p->level--;
4715 return NULL;
4716 }
4717 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
4718 asdl_seq * a;
4719 void *b;
4720 if (
4721 (a = _loop1_41_rule(p)) // param_with_default+
4722 &&
4723 (b = star_etc_rule(p), !p->error_indicator) // star_etc?
4724 )
4725 {
4726 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
4727 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
4728 if (_res == NULL && PyErr_Occurred()) {
4729 p->error_indicator = 1;
4730 p->level--;
4731 return NULL;
4732 }
4733 goto done;
4734 }
4735 p->mark = _mark;
4736 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
4737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
4738 }
4739 { // star_etc
4740 if (p->error_indicator) {
4741 p->level--;
4742 return NULL;
4743 }
4744 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
4745 StarEtc* a;
4746 if (
4747 (a = star_etc_rule(p)) // star_etc
4748 )
4749 {
4750 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
4751 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
4752 if (_res == NULL && PyErr_Occurred()) {
4753 p->error_indicator = 1;
4754 p->level--;
4755 return NULL;
4756 }
4757 goto done;
4758 }
4759 p->mark = _mark;
4760 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
4761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
4762 }
4763 _res = NULL;
4764 done:
4765 p->level--;
4766 return _res;
4767 }
4768
4769 // slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
4770 static asdl_arg_seq*
slash_no_default_rule(Parser * p)4771 slash_no_default_rule(Parser *p)
4772 {
4773 if (p->level++ == MAXSTACK) {
4774 p->error_indicator = 1;
4775 PyErr_NoMemory();
4776 }
4777 if (p->error_indicator) {
4778 p->level--;
4779 return NULL;
4780 }
4781 asdl_arg_seq* _res = NULL;
4782 int _mark = p->mark;
4783 { // param_no_default+ '/' ','
4784 if (p->error_indicator) {
4785 p->level--;
4786 return NULL;
4787 }
4788 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
4789 Token * _literal;
4790 Token * _literal_1;
4791 asdl_arg_seq* a;
4792 if (
4793 (a = (asdl_arg_seq*)_loop1_42_rule(p)) // param_no_default+
4794 &&
4795 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
4796 &&
4797 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
4798 )
4799 {
4800 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
4801 _res = a;
4802 if (_res == NULL && PyErr_Occurred()) {
4803 p->error_indicator = 1;
4804 p->level--;
4805 return NULL;
4806 }
4807 goto done;
4808 }
4809 p->mark = _mark;
4810 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
4811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
4812 }
4813 { // param_no_default+ '/' &')'
4814 if (p->error_indicator) {
4815 p->level--;
4816 return NULL;
4817 }
4818 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
4819 Token * _literal;
4820 asdl_arg_seq* a;
4821 if (
4822 (a = (asdl_arg_seq*)_loop1_43_rule(p)) // param_no_default+
4823 &&
4824 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
4825 &&
4826 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
4827 )
4828 {
4829 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
4830 _res = a;
4831 if (_res == NULL && PyErr_Occurred()) {
4832 p->error_indicator = 1;
4833 p->level--;
4834 return NULL;
4835 }
4836 goto done;
4837 }
4838 p->mark = _mark;
4839 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
4840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
4841 }
4842 _res = NULL;
4843 done:
4844 p->level--;
4845 return _res;
4846 }
4847
4848 // slash_with_default:
4849 // | param_no_default* param_with_default+ '/' ','
4850 // | param_no_default* param_with_default+ '/' &')'
4851 static SlashWithDefault*
slash_with_default_rule(Parser * p)4852 slash_with_default_rule(Parser *p)
4853 {
4854 if (p->level++ == MAXSTACK) {
4855 p->error_indicator = 1;
4856 PyErr_NoMemory();
4857 }
4858 if (p->error_indicator) {
4859 p->level--;
4860 return NULL;
4861 }
4862 SlashWithDefault* _res = NULL;
4863 int _mark = p->mark;
4864 { // param_no_default* param_with_default+ '/' ','
4865 if (p->error_indicator) {
4866 p->level--;
4867 return NULL;
4868 }
4869 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
4870 Token * _literal;
4871 Token * _literal_1;
4872 asdl_seq * a;
4873 asdl_seq * b;
4874 if (
4875 (a = _loop0_44_rule(p)) // param_no_default*
4876 &&
4877 (b = _loop1_45_rule(p)) // param_with_default+
4878 &&
4879 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
4880 &&
4881 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
4882 )
4883 {
4884 D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
4885 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq* ) a , b );
4886 if (_res == NULL && PyErr_Occurred()) {
4887 p->error_indicator = 1;
4888 p->level--;
4889 return NULL;
4890 }
4891 goto done;
4892 }
4893 p->mark = _mark;
4894 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
4895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
4896 }
4897 { // param_no_default* param_with_default+ '/' &')'
4898 if (p->error_indicator) {
4899 p->level--;
4900 return NULL;
4901 }
4902 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
4903 Token * _literal;
4904 asdl_seq * a;
4905 asdl_seq * b;
4906 if (
4907 (a = _loop0_46_rule(p)) // param_no_default*
4908 &&
4909 (b = _loop1_47_rule(p)) // param_with_default+
4910 &&
4911 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
4912 &&
4913 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
4914 )
4915 {
4916 D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
4917 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq* ) a , b );
4918 if (_res == NULL && PyErr_Occurred()) {
4919 p->error_indicator = 1;
4920 p->level--;
4921 return NULL;
4922 }
4923 goto done;
4924 }
4925 p->mark = _mark;
4926 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
4927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
4928 }
4929 _res = NULL;
4930 done:
4931 p->level--;
4932 return _res;
4933 }
4934
4935 // star_etc:
4936 // | invalid_star_etc
4937 // | '*' param_no_default param_maybe_default* kwds?
4938 // | '*' param_no_default_star_annotation param_maybe_default* kwds?
4939 // | '*' ',' param_maybe_default+ kwds?
4940 // | kwds
4941 static StarEtc*
star_etc_rule(Parser * p)4942 star_etc_rule(Parser *p)
4943 {
4944 if (p->level++ == MAXSTACK) {
4945 p->error_indicator = 1;
4946 PyErr_NoMemory();
4947 }
4948 if (p->error_indicator) {
4949 p->level--;
4950 return NULL;
4951 }
4952 StarEtc* _res = NULL;
4953 int _mark = p->mark;
4954 if (p->call_invalid_rules) { // invalid_star_etc
4955 if (p->error_indicator) {
4956 p->level--;
4957 return NULL;
4958 }
4959 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
4960 void *invalid_star_etc_var;
4961 if (
4962 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
4963 )
4964 {
4965 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
4966 _res = invalid_star_etc_var;
4967 goto done;
4968 }
4969 p->mark = _mark;
4970 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
4971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
4972 }
4973 { // '*' param_no_default param_maybe_default* kwds?
4974 if (p->error_indicator) {
4975 p->level--;
4976 return NULL;
4977 }
4978 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
4979 Token * _literal;
4980 arg_ty a;
4981 asdl_seq * b;
4982 void *c;
4983 if (
4984 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
4985 &&
4986 (a = param_no_default_rule(p)) // param_no_default
4987 &&
4988 (b = _loop0_48_rule(p)) // param_maybe_default*
4989 &&
4990 (c = kwds_rule(p), !p->error_indicator) // kwds?
4991 )
4992 {
4993 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
4994 _res = _PyPegen_star_etc ( p , a , b , c );
4995 if (_res == NULL && PyErr_Occurred()) {
4996 p->error_indicator = 1;
4997 p->level--;
4998 return NULL;
4999 }
5000 goto done;
5001 }
5002 p->mark = _mark;
5003 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5005 }
5006 { // '*' param_no_default_star_annotation param_maybe_default* kwds?
5007 if (p->error_indicator) {
5008 p->level--;
5009 return NULL;
5010 }
5011 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default_star_annotation param_maybe_default* kwds?"));
5012 Token * _literal;
5013 arg_ty a;
5014 asdl_seq * b;
5015 void *c;
5016 if (
5017 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
5018 &&
5019 (a = param_no_default_star_annotation_rule(p)) // param_no_default_star_annotation
5020 &&
5021 (b = _loop0_49_rule(p)) // param_maybe_default*
5022 &&
5023 (c = kwds_rule(p), !p->error_indicator) // kwds?
5024 )
5025 {
5026 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?"));
5027 _res = _PyPegen_star_etc ( p , a , b , c );
5028 if (_res == NULL && PyErr_Occurred()) {
5029 p->error_indicator = 1;
5030 p->level--;
5031 return NULL;
5032 }
5033 goto done;
5034 }
5035 p->mark = _mark;
5036 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default_star_annotation param_maybe_default* kwds?"));
5038 }
5039 { // '*' ',' param_maybe_default+ kwds?
5040 if (p->error_indicator) {
5041 p->level--;
5042 return NULL;
5043 }
5044 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5045 Token * _literal;
5046 Token * _literal_1;
5047 asdl_seq * b;
5048 void *c;
5049 if (
5050 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
5051 &&
5052 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5053 &&
5054 (b = _loop1_50_rule(p)) // param_maybe_default+
5055 &&
5056 (c = kwds_rule(p), !p->error_indicator) // kwds?
5057 )
5058 {
5059 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5060 _res = _PyPegen_star_etc ( p , NULL , b , c );
5061 if (_res == NULL && PyErr_Occurred()) {
5062 p->error_indicator = 1;
5063 p->level--;
5064 return NULL;
5065 }
5066 goto done;
5067 }
5068 p->mark = _mark;
5069 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5071 }
5072 { // kwds
5073 if (p->error_indicator) {
5074 p->level--;
5075 return NULL;
5076 }
5077 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
5078 arg_ty a;
5079 if (
5080 (a = kwds_rule(p)) // kwds
5081 )
5082 {
5083 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
5084 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5085 if (_res == NULL && PyErr_Occurred()) {
5086 p->error_indicator = 1;
5087 p->level--;
5088 return NULL;
5089 }
5090 goto done;
5091 }
5092 p->mark = _mark;
5093 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
5095 }
5096 _res = NULL;
5097 done:
5098 p->level--;
5099 return _res;
5100 }
5101
5102 // kwds: invalid_kwds | '**' param_no_default
5103 static arg_ty
kwds_rule(Parser * p)5104 kwds_rule(Parser *p)
5105 {
5106 if (p->level++ == MAXSTACK) {
5107 p->error_indicator = 1;
5108 PyErr_NoMemory();
5109 }
5110 if (p->error_indicator) {
5111 p->level--;
5112 return NULL;
5113 }
5114 arg_ty _res = NULL;
5115 int _mark = p->mark;
5116 if (p->call_invalid_rules) { // invalid_kwds
5117 if (p->error_indicator) {
5118 p->level--;
5119 return NULL;
5120 }
5121 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwds"));
5122 void *invalid_kwds_var;
5123 if (
5124 (invalid_kwds_var = invalid_kwds_rule(p)) // invalid_kwds
5125 )
5126 {
5127 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwds"));
5128 _res = invalid_kwds_var;
5129 goto done;
5130 }
5131 p->mark = _mark;
5132 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwds"));
5134 }
5135 { // '**' param_no_default
5136 if (p->error_indicator) {
5137 p->level--;
5138 return NULL;
5139 }
5140 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
5141 Token * _literal;
5142 arg_ty a;
5143 if (
5144 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
5145 &&
5146 (a = param_no_default_rule(p)) // param_no_default
5147 )
5148 {
5149 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
5150 _res = a;
5151 if (_res == NULL && PyErr_Occurred()) {
5152 p->error_indicator = 1;
5153 p->level--;
5154 return NULL;
5155 }
5156 goto done;
5157 }
5158 p->mark = _mark;
5159 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
5161 }
5162 _res = NULL;
5163 done:
5164 p->level--;
5165 return _res;
5166 }
5167
5168 // param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5169 static arg_ty
param_no_default_rule(Parser * p)5170 param_no_default_rule(Parser *p)
5171 {
5172 if (p->level++ == MAXSTACK) {
5173 p->error_indicator = 1;
5174 PyErr_NoMemory();
5175 }
5176 if (p->error_indicator) {
5177 p->level--;
5178 return NULL;
5179 }
5180 arg_ty _res = NULL;
5181 int _mark = p->mark;
5182 { // param ',' TYPE_COMMENT?
5183 if (p->error_indicator) {
5184 p->level--;
5185 return NULL;
5186 }
5187 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
5188 Token * _literal;
5189 arg_ty a;
5190 void *tc;
5191 if (
5192 (a = param_rule(p)) // param
5193 &&
5194 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5195 &&
5196 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
5197 )
5198 {
5199 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
5200 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5201 if (_res == NULL && PyErr_Occurred()) {
5202 p->error_indicator = 1;
5203 p->level--;
5204 return NULL;
5205 }
5206 goto done;
5207 }
5208 p->mark = _mark;
5209 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
5211 }
5212 { // param TYPE_COMMENT? &')'
5213 if (p->error_indicator) {
5214 p->level--;
5215 return NULL;
5216 }
5217 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
5218 arg_ty a;
5219 void *tc;
5220 if (
5221 (a = param_rule(p)) // param
5222 &&
5223 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
5224 &&
5225 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5226 )
5227 {
5228 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
5229 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5230 if (_res == NULL && PyErr_Occurred()) {
5231 p->error_indicator = 1;
5232 p->level--;
5233 return NULL;
5234 }
5235 goto done;
5236 }
5237 p->mark = _mark;
5238 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
5240 }
5241 _res = NULL;
5242 done:
5243 p->level--;
5244 return _res;
5245 }
5246
5247 // param_no_default_star_annotation:
5248 // | param_star_annotation ',' TYPE_COMMENT?
5249 // | param_star_annotation TYPE_COMMENT? &')'
5250 static arg_ty
param_no_default_star_annotation_rule(Parser * p)5251 param_no_default_star_annotation_rule(Parser *p)
5252 {
5253 if (p->level++ == MAXSTACK) {
5254 p->error_indicator = 1;
5255 PyErr_NoMemory();
5256 }
5257 if (p->error_indicator) {
5258 p->level--;
5259 return NULL;
5260 }
5261 arg_ty _res = NULL;
5262 int _mark = p->mark;
5263 { // param_star_annotation ',' TYPE_COMMENT?
5264 if (p->error_indicator) {
5265 p->level--;
5266 return NULL;
5267 }
5268 D(fprintf(stderr, "%*c> param_no_default_star_annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_star_annotation ',' TYPE_COMMENT?"));
5269 Token * _literal;
5270 arg_ty a;
5271 void *tc;
5272 if (
5273 (a = param_star_annotation_rule(p)) // param_star_annotation
5274 &&
5275 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5276 &&
5277 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
5278 )
5279 {
5280 D(fprintf(stderr, "%*c+ param_no_default_star_annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_star_annotation ',' TYPE_COMMENT?"));
5281 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5282 if (_res == NULL && PyErr_Occurred()) {
5283 p->error_indicator = 1;
5284 p->level--;
5285 return NULL;
5286 }
5287 goto done;
5288 }
5289 p->mark = _mark;
5290 D(fprintf(stderr, "%*c%s param_no_default_star_annotation[%d-%d]: %s failed!\n", p->level, ' ',
5291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_star_annotation ',' TYPE_COMMENT?"));
5292 }
5293 { // param_star_annotation TYPE_COMMENT? &')'
5294 if (p->error_indicator) {
5295 p->level--;
5296 return NULL;
5297 }
5298 D(fprintf(stderr, "%*c> param_no_default_star_annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_star_annotation TYPE_COMMENT? &')'"));
5299 arg_ty a;
5300 void *tc;
5301 if (
5302 (a = param_star_annotation_rule(p)) // param_star_annotation
5303 &&
5304 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
5305 &&
5306 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5307 )
5308 {
5309 D(fprintf(stderr, "%*c+ param_no_default_star_annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_star_annotation TYPE_COMMENT? &')'"));
5310 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5311 if (_res == NULL && PyErr_Occurred()) {
5312 p->error_indicator = 1;
5313 p->level--;
5314 return NULL;
5315 }
5316 goto done;
5317 }
5318 p->mark = _mark;
5319 D(fprintf(stderr, "%*c%s param_no_default_star_annotation[%d-%d]: %s failed!\n", p->level, ' ',
5320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_star_annotation TYPE_COMMENT? &')'"));
5321 }
5322 _res = NULL;
5323 done:
5324 p->level--;
5325 return _res;
5326 }
5327
5328 // param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
5329 static NameDefaultPair*
param_with_default_rule(Parser * p)5330 param_with_default_rule(Parser *p)
5331 {
5332 if (p->level++ == MAXSTACK) {
5333 p->error_indicator = 1;
5334 PyErr_NoMemory();
5335 }
5336 if (p->error_indicator) {
5337 p->level--;
5338 return NULL;
5339 }
5340 NameDefaultPair* _res = NULL;
5341 int _mark = p->mark;
5342 { // param default ',' TYPE_COMMENT?
5343 if (p->error_indicator) {
5344 p->level--;
5345 return NULL;
5346 }
5347 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5348 Token * _literal;
5349 arg_ty a;
5350 expr_ty c;
5351 void *tc;
5352 if (
5353 (a = param_rule(p)) // param
5354 &&
5355 (c = default_rule(p)) // default
5356 &&
5357 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5358 &&
5359 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
5360 )
5361 {
5362 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5363 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5364 if (_res == NULL && PyErr_Occurred()) {
5365 p->error_indicator = 1;
5366 p->level--;
5367 return NULL;
5368 }
5369 goto done;
5370 }
5371 p->mark = _mark;
5372 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5374 }
5375 { // param default TYPE_COMMENT? &')'
5376 if (p->error_indicator) {
5377 p->level--;
5378 return NULL;
5379 }
5380 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5381 arg_ty a;
5382 expr_ty c;
5383 void *tc;
5384 if (
5385 (a = param_rule(p)) // param
5386 &&
5387 (c = default_rule(p)) // default
5388 &&
5389 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
5390 &&
5391 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5392 )
5393 {
5394 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5395 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5396 if (_res == NULL && PyErr_Occurred()) {
5397 p->error_indicator = 1;
5398 p->level--;
5399 return NULL;
5400 }
5401 goto done;
5402 }
5403 p->mark = _mark;
5404 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5406 }
5407 _res = NULL;
5408 done:
5409 p->level--;
5410 return _res;
5411 }
5412
5413 // param_maybe_default:
5414 // | param default? ',' TYPE_COMMENT?
5415 // | param default? TYPE_COMMENT? &')'
5416 static NameDefaultPair*
param_maybe_default_rule(Parser * p)5417 param_maybe_default_rule(Parser *p)
5418 {
5419 if (p->level++ == MAXSTACK) {
5420 p->error_indicator = 1;
5421 PyErr_NoMemory();
5422 }
5423 if (p->error_indicator) {
5424 p->level--;
5425 return NULL;
5426 }
5427 NameDefaultPair* _res = NULL;
5428 int _mark = p->mark;
5429 { // param default? ',' TYPE_COMMENT?
5430 if (p->error_indicator) {
5431 p->level--;
5432 return NULL;
5433 }
5434 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5435 Token * _literal;
5436 arg_ty a;
5437 void *c;
5438 void *tc;
5439 if (
5440 (a = param_rule(p)) // param
5441 &&
5442 (c = default_rule(p), !p->error_indicator) // default?
5443 &&
5444 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5445 &&
5446 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
5447 )
5448 {
5449 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5450 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5451 if (_res == NULL && PyErr_Occurred()) {
5452 p->error_indicator = 1;
5453 p->level--;
5454 return NULL;
5455 }
5456 goto done;
5457 }
5458 p->mark = _mark;
5459 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5461 }
5462 { // param default? TYPE_COMMENT? &')'
5463 if (p->error_indicator) {
5464 p->level--;
5465 return NULL;
5466 }
5467 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5468 arg_ty a;
5469 void *c;
5470 void *tc;
5471 if (
5472 (a = param_rule(p)) // param
5473 &&
5474 (c = default_rule(p), !p->error_indicator) // default?
5475 &&
5476 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
5477 &&
5478 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5479 )
5480 {
5481 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5482 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5483 if (_res == NULL && PyErr_Occurred()) {
5484 p->error_indicator = 1;
5485 p->level--;
5486 return NULL;
5487 }
5488 goto done;
5489 }
5490 p->mark = _mark;
5491 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5493 }
5494 _res = NULL;
5495 done:
5496 p->level--;
5497 return _res;
5498 }
5499
5500 // param: NAME annotation?
5501 static arg_ty
param_rule(Parser * p)5502 param_rule(Parser *p)
5503 {
5504 if (p->level++ == MAXSTACK) {
5505 p->error_indicator = 1;
5506 PyErr_NoMemory();
5507 }
5508 if (p->error_indicator) {
5509 p->level--;
5510 return NULL;
5511 }
5512 arg_ty _res = NULL;
5513 int _mark = p->mark;
5514 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5515 p->error_indicator = 1;
5516 p->level--;
5517 return NULL;
5518 }
5519 int _start_lineno = p->tokens[_mark]->lineno;
5520 UNUSED(_start_lineno); // Only used by EXTRA macro
5521 int _start_col_offset = p->tokens[_mark]->col_offset;
5522 UNUSED(_start_col_offset); // Only used by EXTRA macro
5523 { // NAME annotation?
5524 if (p->error_indicator) {
5525 p->level--;
5526 return NULL;
5527 }
5528 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
5529 expr_ty a;
5530 void *b;
5531 if (
5532 (a = _PyPegen_name_token(p)) // NAME
5533 &&
5534 (b = annotation_rule(p), !p->error_indicator) // annotation?
5535 )
5536 {
5537 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
5538 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5539 if (_token == NULL) {
5540 p->level--;
5541 return NULL;
5542 }
5543 int _end_lineno = _token->end_lineno;
5544 UNUSED(_end_lineno); // Only used by EXTRA macro
5545 int _end_col_offset = _token->end_col_offset;
5546 UNUSED(_end_col_offset); // Only used by EXTRA macro
5547 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
5548 if (_res == NULL && PyErr_Occurred()) {
5549 p->error_indicator = 1;
5550 p->level--;
5551 return NULL;
5552 }
5553 goto done;
5554 }
5555 p->mark = _mark;
5556 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
5557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
5558 }
5559 _res = NULL;
5560 done:
5561 p->level--;
5562 return _res;
5563 }
5564
5565 // param_star_annotation: NAME star_annotation
5566 static arg_ty
param_star_annotation_rule(Parser * p)5567 param_star_annotation_rule(Parser *p)
5568 {
5569 if (p->level++ == MAXSTACK) {
5570 p->error_indicator = 1;
5571 PyErr_NoMemory();
5572 }
5573 if (p->error_indicator) {
5574 p->level--;
5575 return NULL;
5576 }
5577 arg_ty _res = NULL;
5578 int _mark = p->mark;
5579 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5580 p->error_indicator = 1;
5581 p->level--;
5582 return NULL;
5583 }
5584 int _start_lineno = p->tokens[_mark]->lineno;
5585 UNUSED(_start_lineno); // Only used by EXTRA macro
5586 int _start_col_offset = p->tokens[_mark]->col_offset;
5587 UNUSED(_start_col_offset); // Only used by EXTRA macro
5588 { // NAME star_annotation
5589 if (p->error_indicator) {
5590 p->level--;
5591 return NULL;
5592 }
5593 D(fprintf(stderr, "%*c> param_star_annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME star_annotation"));
5594 expr_ty a;
5595 expr_ty b;
5596 if (
5597 (a = _PyPegen_name_token(p)) // NAME
5598 &&
5599 (b = star_annotation_rule(p)) // star_annotation
5600 )
5601 {
5602 D(fprintf(stderr, "%*c+ param_star_annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME star_annotation"));
5603 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5604 if (_token == NULL) {
5605 p->level--;
5606 return NULL;
5607 }
5608 int _end_lineno = _token->end_lineno;
5609 UNUSED(_end_lineno); // Only used by EXTRA macro
5610 int _end_col_offset = _token->end_col_offset;
5611 UNUSED(_end_col_offset); // Only used by EXTRA macro
5612 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
5613 if (_res == NULL && PyErr_Occurred()) {
5614 p->error_indicator = 1;
5615 p->level--;
5616 return NULL;
5617 }
5618 goto done;
5619 }
5620 p->mark = _mark;
5621 D(fprintf(stderr, "%*c%s param_star_annotation[%d-%d]: %s failed!\n", p->level, ' ',
5622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME star_annotation"));
5623 }
5624 _res = NULL;
5625 done:
5626 p->level--;
5627 return _res;
5628 }
5629
5630 // annotation: ':' expression
5631 static expr_ty
annotation_rule(Parser * p)5632 annotation_rule(Parser *p)
5633 {
5634 if (p->level++ == MAXSTACK) {
5635 p->error_indicator = 1;
5636 PyErr_NoMemory();
5637 }
5638 if (p->error_indicator) {
5639 p->level--;
5640 return NULL;
5641 }
5642 expr_ty _res = NULL;
5643 int _mark = p->mark;
5644 { // ':' expression
5645 if (p->error_indicator) {
5646 p->level--;
5647 return NULL;
5648 }
5649 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
5650 Token * _literal;
5651 expr_ty a;
5652 if (
5653 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5654 &&
5655 (a = expression_rule(p)) // expression
5656 )
5657 {
5658 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
5659 _res = a;
5660 if (_res == NULL && PyErr_Occurred()) {
5661 p->error_indicator = 1;
5662 p->level--;
5663 return NULL;
5664 }
5665 goto done;
5666 }
5667 p->mark = _mark;
5668 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
5669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
5670 }
5671 _res = NULL;
5672 done:
5673 p->level--;
5674 return _res;
5675 }
5676
5677 // star_annotation: ':' star_expression
5678 static expr_ty
star_annotation_rule(Parser * p)5679 star_annotation_rule(Parser *p)
5680 {
5681 if (p->level++ == MAXSTACK) {
5682 p->error_indicator = 1;
5683 PyErr_NoMemory();
5684 }
5685 if (p->error_indicator) {
5686 p->level--;
5687 return NULL;
5688 }
5689 expr_ty _res = NULL;
5690 int _mark = p->mark;
5691 { // ':' star_expression
5692 if (p->error_indicator) {
5693 p->level--;
5694 return NULL;
5695 }
5696 D(fprintf(stderr, "%*c> star_annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' star_expression"));
5697 Token * _literal;
5698 expr_ty a;
5699 if (
5700 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5701 &&
5702 (a = star_expression_rule(p)) // star_expression
5703 )
5704 {
5705 D(fprintf(stderr, "%*c+ star_annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' star_expression"));
5706 _res = a;
5707 if (_res == NULL && PyErr_Occurred()) {
5708 p->error_indicator = 1;
5709 p->level--;
5710 return NULL;
5711 }
5712 goto done;
5713 }
5714 p->mark = _mark;
5715 D(fprintf(stderr, "%*c%s star_annotation[%d-%d]: %s failed!\n", p->level, ' ',
5716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' star_expression"));
5717 }
5718 _res = NULL;
5719 done:
5720 p->level--;
5721 return _res;
5722 }
5723
5724 // default: '=' expression | invalid_default
5725 static expr_ty
default_rule(Parser * p)5726 default_rule(Parser *p)
5727 {
5728 if (p->level++ == MAXSTACK) {
5729 p->error_indicator = 1;
5730 PyErr_NoMemory();
5731 }
5732 if (p->error_indicator) {
5733 p->level--;
5734 return NULL;
5735 }
5736 expr_ty _res = NULL;
5737 int _mark = p->mark;
5738 { // '=' expression
5739 if (p->error_indicator) {
5740 p->level--;
5741 return NULL;
5742 }
5743 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
5744 Token * _literal;
5745 expr_ty a;
5746 if (
5747 (_literal = _PyPegen_expect_token(p, 22)) // token='='
5748 &&
5749 (a = expression_rule(p)) // expression
5750 )
5751 {
5752 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
5753 _res = a;
5754 if (_res == NULL && PyErr_Occurred()) {
5755 p->error_indicator = 1;
5756 p->level--;
5757 return NULL;
5758 }
5759 goto done;
5760 }
5761 p->mark = _mark;
5762 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
5763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
5764 }
5765 if (p->call_invalid_rules) { // invalid_default
5766 if (p->error_indicator) {
5767 p->level--;
5768 return NULL;
5769 }
5770 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_default"));
5771 void *invalid_default_var;
5772 if (
5773 (invalid_default_var = invalid_default_rule(p)) // invalid_default
5774 )
5775 {
5776 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_default"));
5777 _res = invalid_default_var;
5778 goto done;
5779 }
5780 p->mark = _mark;
5781 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
5782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_default"));
5783 }
5784 _res = NULL;
5785 done:
5786 p->level--;
5787 return _res;
5788 }
5789
5790 // if_stmt:
5791 // | invalid_if_stmt
5792 // | 'if' named_expression ':' block elif_stmt
5793 // | 'if' named_expression ':' block else_block?
5794 static stmt_ty
if_stmt_rule(Parser * p)5795 if_stmt_rule(Parser *p)
5796 {
5797 if (p->level++ == MAXSTACK) {
5798 p->error_indicator = 1;
5799 PyErr_NoMemory();
5800 }
5801 if (p->error_indicator) {
5802 p->level--;
5803 return NULL;
5804 }
5805 stmt_ty _res = NULL;
5806 int _mark = p->mark;
5807 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5808 p->error_indicator = 1;
5809 p->level--;
5810 return NULL;
5811 }
5812 int _start_lineno = p->tokens[_mark]->lineno;
5813 UNUSED(_start_lineno); // Only used by EXTRA macro
5814 int _start_col_offset = p->tokens[_mark]->col_offset;
5815 UNUSED(_start_col_offset); // Only used by EXTRA macro
5816 if (p->call_invalid_rules) { // invalid_if_stmt
5817 if (p->error_indicator) {
5818 p->level--;
5819 return NULL;
5820 }
5821 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
5822 void *invalid_if_stmt_var;
5823 if (
5824 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
5825 )
5826 {
5827 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
5828 _res = invalid_if_stmt_var;
5829 goto done;
5830 }
5831 p->mark = _mark;
5832 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
5834 }
5835 { // 'if' named_expression ':' block elif_stmt
5836 if (p->error_indicator) {
5837 p->level--;
5838 return NULL;
5839 }
5840 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
5841 Token * _keyword;
5842 Token * _literal;
5843 expr_ty a;
5844 asdl_stmt_seq* b;
5845 stmt_ty c;
5846 if (
5847 (_keyword = _PyPegen_expect_token(p, 639)) // token='if'
5848 &&
5849 (a = named_expression_rule(p)) // named_expression
5850 &&
5851 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5852 &&
5853 (b = block_rule(p)) // block
5854 &&
5855 (c = elif_stmt_rule(p)) // elif_stmt
5856 )
5857 {
5858 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
5859 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5860 if (_token == NULL) {
5861 p->level--;
5862 return NULL;
5863 }
5864 int _end_lineno = _token->end_lineno;
5865 UNUSED(_end_lineno); // Only used by EXTRA macro
5866 int _end_col_offset = _token->end_col_offset;
5867 UNUSED(_end_col_offset); // Only used by EXTRA macro
5868 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq* , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
5869 if (_res == NULL && PyErr_Occurred()) {
5870 p->error_indicator = 1;
5871 p->level--;
5872 return NULL;
5873 }
5874 goto done;
5875 }
5876 p->mark = _mark;
5877 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
5879 }
5880 { // 'if' named_expression ':' block else_block?
5881 if (p->error_indicator) {
5882 p->level--;
5883 return NULL;
5884 }
5885 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
5886 Token * _keyword;
5887 Token * _literal;
5888 expr_ty a;
5889 asdl_stmt_seq* b;
5890 void *c;
5891 if (
5892 (_keyword = _PyPegen_expect_token(p, 639)) // token='if'
5893 &&
5894 (a = named_expression_rule(p)) // named_expression
5895 &&
5896 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5897 &&
5898 (b = block_rule(p)) // block
5899 &&
5900 (c = else_block_rule(p), !p->error_indicator) // else_block?
5901 )
5902 {
5903 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
5904 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5905 if (_token == NULL) {
5906 p->level--;
5907 return NULL;
5908 }
5909 int _end_lineno = _token->end_lineno;
5910 UNUSED(_end_lineno); // Only used by EXTRA macro
5911 int _end_col_offset = _token->end_col_offset;
5912 UNUSED(_end_col_offset); // Only used by EXTRA macro
5913 _res = _PyAST_If ( a , b , c , EXTRA );
5914 if (_res == NULL && PyErr_Occurred()) {
5915 p->error_indicator = 1;
5916 p->level--;
5917 return NULL;
5918 }
5919 goto done;
5920 }
5921 p->mark = _mark;
5922 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
5924 }
5925 _res = NULL;
5926 done:
5927 p->level--;
5928 return _res;
5929 }
5930
5931 // elif_stmt:
5932 // | invalid_elif_stmt
5933 // | 'elif' named_expression ':' block elif_stmt
5934 // | 'elif' named_expression ':' block else_block?
5935 static stmt_ty
elif_stmt_rule(Parser * p)5936 elif_stmt_rule(Parser *p)
5937 {
5938 if (p->level++ == MAXSTACK) {
5939 p->error_indicator = 1;
5940 PyErr_NoMemory();
5941 }
5942 if (p->error_indicator) {
5943 p->level--;
5944 return NULL;
5945 }
5946 stmt_ty _res = NULL;
5947 int _mark = p->mark;
5948 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5949 p->error_indicator = 1;
5950 p->level--;
5951 return NULL;
5952 }
5953 int _start_lineno = p->tokens[_mark]->lineno;
5954 UNUSED(_start_lineno); // Only used by EXTRA macro
5955 int _start_col_offset = p->tokens[_mark]->col_offset;
5956 UNUSED(_start_col_offset); // Only used by EXTRA macro
5957 if (p->call_invalid_rules) { // invalid_elif_stmt
5958 if (p->error_indicator) {
5959 p->level--;
5960 return NULL;
5961 }
5962 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
5963 void *invalid_elif_stmt_var;
5964 if (
5965 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
5966 )
5967 {
5968 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
5969 _res = invalid_elif_stmt_var;
5970 goto done;
5971 }
5972 p->mark = _mark;
5973 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
5975 }
5976 { // 'elif' named_expression ':' block elif_stmt
5977 if (p->error_indicator) {
5978 p->level--;
5979 return NULL;
5980 }
5981 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
5982 Token * _keyword;
5983 Token * _literal;
5984 expr_ty a;
5985 asdl_stmt_seq* b;
5986 stmt_ty c;
5987 if (
5988 (_keyword = _PyPegen_expect_token(p, 641)) // token='elif'
5989 &&
5990 (a = named_expression_rule(p)) // named_expression
5991 &&
5992 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5993 &&
5994 (b = block_rule(p)) // block
5995 &&
5996 (c = elif_stmt_rule(p)) // elif_stmt
5997 )
5998 {
5999 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
6000 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6001 if (_token == NULL) {
6002 p->level--;
6003 return NULL;
6004 }
6005 int _end_lineno = _token->end_lineno;
6006 UNUSED(_end_lineno); // Only used by EXTRA macro
6007 int _end_col_offset = _token->end_col_offset;
6008 UNUSED(_end_col_offset); // Only used by EXTRA macro
6009 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq* , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
6010 if (_res == NULL && PyErr_Occurred()) {
6011 p->error_indicator = 1;
6012 p->level--;
6013 return NULL;
6014 }
6015 goto done;
6016 }
6017 p->mark = _mark;
6018 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
6020 }
6021 { // 'elif' named_expression ':' block else_block?
6022 if (p->error_indicator) {
6023 p->level--;
6024 return NULL;
6025 }
6026 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
6027 Token * _keyword;
6028 Token * _literal;
6029 expr_ty a;
6030 asdl_stmt_seq* b;
6031 void *c;
6032 if (
6033 (_keyword = _PyPegen_expect_token(p, 641)) // token='elif'
6034 &&
6035 (a = named_expression_rule(p)) // named_expression
6036 &&
6037 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6038 &&
6039 (b = block_rule(p)) // block
6040 &&
6041 (c = else_block_rule(p), !p->error_indicator) // else_block?
6042 )
6043 {
6044 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
6045 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6046 if (_token == NULL) {
6047 p->level--;
6048 return NULL;
6049 }
6050 int _end_lineno = _token->end_lineno;
6051 UNUSED(_end_lineno); // Only used by EXTRA macro
6052 int _end_col_offset = _token->end_col_offset;
6053 UNUSED(_end_col_offset); // Only used by EXTRA macro
6054 _res = _PyAST_If ( a , b , c , EXTRA );
6055 if (_res == NULL && PyErr_Occurred()) {
6056 p->error_indicator = 1;
6057 p->level--;
6058 return NULL;
6059 }
6060 goto done;
6061 }
6062 p->mark = _mark;
6063 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
6065 }
6066 _res = NULL;
6067 done:
6068 p->level--;
6069 return _res;
6070 }
6071
6072 // else_block: invalid_else_stmt | 'else' &&':' block
6073 static asdl_stmt_seq*
else_block_rule(Parser * p)6074 else_block_rule(Parser *p)
6075 {
6076 if (p->level++ == MAXSTACK) {
6077 p->error_indicator = 1;
6078 PyErr_NoMemory();
6079 }
6080 if (p->error_indicator) {
6081 p->level--;
6082 return NULL;
6083 }
6084 asdl_stmt_seq* _res = NULL;
6085 int _mark = p->mark;
6086 if (p->call_invalid_rules) { // invalid_else_stmt
6087 if (p->error_indicator) {
6088 p->level--;
6089 return NULL;
6090 }
6091 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
6092 void *invalid_else_stmt_var;
6093 if (
6094 (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt
6095 )
6096 {
6097 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
6098 _res = invalid_else_stmt_var;
6099 goto done;
6100 }
6101 p->mark = _mark;
6102 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
6103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
6104 }
6105 { // 'else' &&':' block
6106 if (p->error_indicator) {
6107 p->level--;
6108 return NULL;
6109 }
6110 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
6111 Token * _keyword;
6112 Token * _literal;
6113 asdl_stmt_seq* b;
6114 if (
6115 (_keyword = _PyPegen_expect_token(p, 642)) // token='else'
6116 &&
6117 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
6118 &&
6119 (b = block_rule(p)) // block
6120 )
6121 {
6122 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
6123 _res = b;
6124 if (_res == NULL && PyErr_Occurred()) {
6125 p->error_indicator = 1;
6126 p->level--;
6127 return NULL;
6128 }
6129 goto done;
6130 }
6131 p->mark = _mark;
6132 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
6133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
6134 }
6135 _res = NULL;
6136 done:
6137 p->level--;
6138 return _res;
6139 }
6140
6141 // while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
6142 static stmt_ty
while_stmt_rule(Parser * p)6143 while_stmt_rule(Parser *p)
6144 {
6145 if (p->level++ == MAXSTACK) {
6146 p->error_indicator = 1;
6147 PyErr_NoMemory();
6148 }
6149 if (p->error_indicator) {
6150 p->level--;
6151 return NULL;
6152 }
6153 stmt_ty _res = NULL;
6154 int _mark = p->mark;
6155 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6156 p->error_indicator = 1;
6157 p->level--;
6158 return NULL;
6159 }
6160 int _start_lineno = p->tokens[_mark]->lineno;
6161 UNUSED(_start_lineno); // Only used by EXTRA macro
6162 int _start_col_offset = p->tokens[_mark]->col_offset;
6163 UNUSED(_start_col_offset); // Only used by EXTRA macro
6164 if (p->call_invalid_rules) { // invalid_while_stmt
6165 if (p->error_indicator) {
6166 p->level--;
6167 return NULL;
6168 }
6169 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
6170 void *invalid_while_stmt_var;
6171 if (
6172 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
6173 )
6174 {
6175 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
6176 _res = invalid_while_stmt_var;
6177 goto done;
6178 }
6179 p->mark = _mark;
6180 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
6182 }
6183 { // 'while' named_expression ':' block else_block?
6184 if (p->error_indicator) {
6185 p->level--;
6186 return NULL;
6187 }
6188 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
6189 Token * _keyword;
6190 Token * _literal;
6191 expr_ty a;
6192 asdl_stmt_seq* b;
6193 void *c;
6194 if (
6195 (_keyword = _PyPegen_expect_token(p, 644)) // token='while'
6196 &&
6197 (a = named_expression_rule(p)) // named_expression
6198 &&
6199 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6200 &&
6201 (b = block_rule(p)) // block
6202 &&
6203 (c = else_block_rule(p), !p->error_indicator) // else_block?
6204 )
6205 {
6206 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
6207 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6208 if (_token == NULL) {
6209 p->level--;
6210 return NULL;
6211 }
6212 int _end_lineno = _token->end_lineno;
6213 UNUSED(_end_lineno); // Only used by EXTRA macro
6214 int _end_col_offset = _token->end_col_offset;
6215 UNUSED(_end_col_offset); // Only used by EXTRA macro
6216 _res = _PyAST_While ( a , b , c , EXTRA );
6217 if (_res == NULL && PyErr_Occurred()) {
6218 p->error_indicator = 1;
6219 p->level--;
6220 return NULL;
6221 }
6222 goto done;
6223 }
6224 p->mark = _mark;
6225 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
6227 }
6228 _res = NULL;
6229 done:
6230 p->level--;
6231 return _res;
6232 }
6233
6234 // for_stmt:
6235 // | invalid_for_stmt
6236 // | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
6237 // | ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
6238 // | invalid_for_target
6239 static stmt_ty
for_stmt_rule(Parser * p)6240 for_stmt_rule(Parser *p)
6241 {
6242 if (p->level++ == MAXSTACK) {
6243 p->error_indicator = 1;
6244 PyErr_NoMemory();
6245 }
6246 if (p->error_indicator) {
6247 p->level--;
6248 return NULL;
6249 }
6250 stmt_ty _res = NULL;
6251 int _mark = p->mark;
6252 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6253 p->error_indicator = 1;
6254 p->level--;
6255 return NULL;
6256 }
6257 int _start_lineno = p->tokens[_mark]->lineno;
6258 UNUSED(_start_lineno); // Only used by EXTRA macro
6259 int _start_col_offset = p->tokens[_mark]->col_offset;
6260 UNUSED(_start_col_offset); // Only used by EXTRA macro
6261 if (p->call_invalid_rules) { // invalid_for_stmt
6262 if (p->error_indicator) {
6263 p->level--;
6264 return NULL;
6265 }
6266 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
6267 void *invalid_for_stmt_var;
6268 if (
6269 (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt
6270 )
6271 {
6272 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
6273 _res = invalid_for_stmt_var;
6274 goto done;
6275 }
6276 p->mark = _mark;
6277 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
6279 }
6280 { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
6281 if (p->error_indicator) {
6282 p->level--;
6283 return NULL;
6284 }
6285 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?"));
6286 int _cut_var = 0;
6287 Token * _keyword;
6288 Token * _keyword_1;
6289 Token * _literal;
6290 asdl_stmt_seq* b;
6291 void *el;
6292 expr_ty ex;
6293 expr_ty t;
6294 void *tc;
6295 if (
6296 (_keyword = _PyPegen_expect_token(p, 647)) // token='for'
6297 &&
6298 (t = star_targets_rule(p)) // star_targets
6299 &&
6300 (_keyword_1 = _PyPegen_expect_token(p, 648)) // token='in'
6301 &&
6302 (_cut_var = 1)
6303 &&
6304 (ex = star_expressions_rule(p)) // star_expressions
6305 &&
6306 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6307 &&
6308 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
6309 &&
6310 (b = block_rule(p)) // block
6311 &&
6312 (el = else_block_rule(p), !p->error_indicator) // else_block?
6313 )
6314 {
6315 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?"));
6316 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6317 if (_token == NULL) {
6318 p->level--;
6319 return NULL;
6320 }
6321 int _end_lineno = _token->end_lineno;
6322 UNUSED(_end_lineno); // Only used by EXTRA macro
6323 int _end_col_offset = _token->end_col_offset;
6324 UNUSED(_end_col_offset); // Only used by EXTRA macro
6325 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
6326 if (_res == NULL && PyErr_Occurred()) {
6327 p->error_indicator = 1;
6328 p->level--;
6329 return NULL;
6330 }
6331 goto done;
6332 }
6333 p->mark = _mark;
6334 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
6336 if (_cut_var) {
6337 p->level--;
6338 return NULL;
6339 }
6340 }
6341 { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
6342 if (p->error_indicator) {
6343 p->level--;
6344 return NULL;
6345 }
6346 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?"));
6347 int _cut_var = 0;
6348 Token * _keyword;
6349 Token * _keyword_1;
6350 Token * _literal;
6351 Token * async_var;
6352 asdl_stmt_seq* b;
6353 void *el;
6354 expr_ty ex;
6355 expr_ty t;
6356 void *tc;
6357 if (
6358 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
6359 &&
6360 (_keyword = _PyPegen_expect_token(p, 647)) // token='for'
6361 &&
6362 (t = star_targets_rule(p)) // star_targets
6363 &&
6364 (_keyword_1 = _PyPegen_expect_token(p, 648)) // token='in'
6365 &&
6366 (_cut_var = 1)
6367 &&
6368 (ex = star_expressions_rule(p)) // star_expressions
6369 &&
6370 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6371 &&
6372 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
6373 &&
6374 (b = block_rule(p)) // block
6375 &&
6376 (el = else_block_rule(p), !p->error_indicator) // else_block?
6377 )
6378 {
6379 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?"));
6380 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6381 if (_token == NULL) {
6382 p->level--;
6383 return NULL;
6384 }
6385 int _end_lineno = _token->end_lineno;
6386 UNUSED(_end_lineno); // Only used by EXTRA macro
6387 int _end_col_offset = _token->end_col_offset;
6388 UNUSED(_end_col_offset); // Only used by EXTRA macro
6389 _res = CHECK_VERSION ( stmt_ty , 5 , "Async for loops are" , _PyAST_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
6390 if (_res == NULL && PyErr_Occurred()) {
6391 p->error_indicator = 1;
6392 p->level--;
6393 return NULL;
6394 }
6395 goto done;
6396 }
6397 p->mark = _mark;
6398 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
6400 if (_cut_var) {
6401 p->level--;
6402 return NULL;
6403 }
6404 }
6405 if (p->call_invalid_rules) { // invalid_for_target
6406 if (p->error_indicator) {
6407 p->level--;
6408 return NULL;
6409 }
6410 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
6411 void *invalid_for_target_var;
6412 if (
6413 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
6414 )
6415 {
6416 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
6417 _res = invalid_for_target_var;
6418 goto done;
6419 }
6420 p->mark = _mark;
6421 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
6423 }
6424 _res = NULL;
6425 done:
6426 p->level--;
6427 return _res;
6428 }
6429
6430 // with_stmt:
6431 // | invalid_with_stmt_indent
6432 // | 'with' '(' ','.with_item+ ','? ')' ':' block
6433 // | 'with' ','.with_item+ ':' TYPE_COMMENT? block
6434 // | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
6435 // | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
6436 // | invalid_with_stmt
6437 static stmt_ty
with_stmt_rule(Parser * p)6438 with_stmt_rule(Parser *p)
6439 {
6440 if (p->level++ == MAXSTACK) {
6441 p->error_indicator = 1;
6442 PyErr_NoMemory();
6443 }
6444 if (p->error_indicator) {
6445 p->level--;
6446 return NULL;
6447 }
6448 stmt_ty _res = NULL;
6449 int _mark = p->mark;
6450 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6451 p->error_indicator = 1;
6452 p->level--;
6453 return NULL;
6454 }
6455 int _start_lineno = p->tokens[_mark]->lineno;
6456 UNUSED(_start_lineno); // Only used by EXTRA macro
6457 int _start_col_offset = p->tokens[_mark]->col_offset;
6458 UNUSED(_start_col_offset); // Only used by EXTRA macro
6459 if (p->call_invalid_rules) { // invalid_with_stmt_indent
6460 if (p->error_indicator) {
6461 p->level--;
6462 return NULL;
6463 }
6464 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
6465 void *invalid_with_stmt_indent_var;
6466 if (
6467 (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent
6468 )
6469 {
6470 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
6471 _res = invalid_with_stmt_indent_var;
6472 goto done;
6473 }
6474 p->mark = _mark;
6475 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent"));
6477 }
6478 { // 'with' '(' ','.with_item+ ','? ')' ':' block
6479 if (p->error_indicator) {
6480 p->level--;
6481 return NULL;
6482 }
6483 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
6484 Token * _keyword;
6485 Token * _literal;
6486 Token * _literal_1;
6487 Token * _literal_2;
6488 void *_opt_var;
6489 UNUSED(_opt_var); // Silence compiler warnings
6490 asdl_withitem_seq* a;
6491 asdl_stmt_seq* b;
6492 if (
6493 (_keyword = _PyPegen_expect_token(p, 612)) // token='with'
6494 &&
6495 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6496 &&
6497 (a = (asdl_withitem_seq*)_gather_51_rule(p)) // ','.with_item+
6498 &&
6499 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
6500 &&
6501 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6502 &&
6503 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
6504 &&
6505 (b = block_rule(p)) // block
6506 )
6507 {
6508 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
6509 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6510 if (_token == NULL) {
6511 p->level--;
6512 return NULL;
6513 }
6514 int _end_lineno = _token->end_lineno;
6515 UNUSED(_end_lineno); // Only used by EXTRA macro
6516 int _end_col_offset = _token->end_col_offset;
6517 UNUSED(_end_col_offset); // Only used by EXTRA macro
6518 _res = CHECK_VERSION ( stmt_ty , 9 , "Parenthesized context managers are" , _PyAST_With ( a , b , NULL , EXTRA ) );
6519 if (_res == NULL && PyErr_Occurred()) {
6520 p->error_indicator = 1;
6521 p->level--;
6522 return NULL;
6523 }
6524 goto done;
6525 }
6526 p->mark = _mark;
6527 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
6529 }
6530 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
6531 if (p->error_indicator) {
6532 p->level--;
6533 return NULL;
6534 }
6535 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
6536 Token * _keyword;
6537 Token * _literal;
6538 asdl_withitem_seq* a;
6539 asdl_stmt_seq* b;
6540 void *tc;
6541 if (
6542 (_keyword = _PyPegen_expect_token(p, 612)) // token='with'
6543 &&
6544 (a = (asdl_withitem_seq*)_gather_53_rule(p)) // ','.with_item+
6545 &&
6546 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6547 &&
6548 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
6549 &&
6550 (b = block_rule(p)) // block
6551 )
6552 {
6553 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
6554 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6555 if (_token == NULL) {
6556 p->level--;
6557 return NULL;
6558 }
6559 int _end_lineno = _token->end_lineno;
6560 UNUSED(_end_lineno); // Only used by EXTRA macro
6561 int _end_col_offset = _token->end_col_offset;
6562 UNUSED(_end_col_offset); // Only used by EXTRA macro
6563 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
6564 if (_res == NULL && PyErr_Occurred()) {
6565 p->error_indicator = 1;
6566 p->level--;
6567 return NULL;
6568 }
6569 goto done;
6570 }
6571 p->mark = _mark;
6572 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
6574 }
6575 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
6576 if (p->error_indicator) {
6577 p->level--;
6578 return NULL;
6579 }
6580 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
6581 Token * _keyword;
6582 Token * _literal;
6583 Token * _literal_1;
6584 Token * _literal_2;
6585 void *_opt_var;
6586 UNUSED(_opt_var); // Silence compiler warnings
6587 asdl_withitem_seq* a;
6588 Token * async_var;
6589 asdl_stmt_seq* b;
6590 if (
6591 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
6592 &&
6593 (_keyword = _PyPegen_expect_token(p, 612)) // token='with'
6594 &&
6595 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6596 &&
6597 (a = (asdl_withitem_seq*)_gather_55_rule(p)) // ','.with_item+
6598 &&
6599 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
6600 &&
6601 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6602 &&
6603 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
6604 &&
6605 (b = block_rule(p)) // block
6606 )
6607 {
6608 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
6609 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6610 if (_token == NULL) {
6611 p->level--;
6612 return NULL;
6613 }
6614 int _end_lineno = _token->end_lineno;
6615 UNUSED(_end_lineno); // Only used by EXTRA macro
6616 int _end_col_offset = _token->end_col_offset;
6617 UNUSED(_end_col_offset); // Only used by EXTRA macro
6618 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
6619 if (_res == NULL && PyErr_Occurred()) {
6620 p->error_indicator = 1;
6621 p->level--;
6622 return NULL;
6623 }
6624 goto done;
6625 }
6626 p->mark = _mark;
6627 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
6629 }
6630 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
6631 if (p->error_indicator) {
6632 p->level--;
6633 return NULL;
6634 }
6635 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
6636 Token * _keyword;
6637 Token * _literal;
6638 asdl_withitem_seq* a;
6639 Token * async_var;
6640 asdl_stmt_seq* b;
6641 void *tc;
6642 if (
6643 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
6644 &&
6645 (_keyword = _PyPegen_expect_token(p, 612)) // token='with'
6646 &&
6647 (a = (asdl_withitem_seq*)_gather_57_rule(p)) // ','.with_item+
6648 &&
6649 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6650 &&
6651 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
6652 &&
6653 (b = block_rule(p)) // block
6654 )
6655 {
6656 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
6657 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6658 if (_token == NULL) {
6659 p->level--;
6660 return NULL;
6661 }
6662 int _end_lineno = _token->end_lineno;
6663 UNUSED(_end_lineno); // Only used by EXTRA macro
6664 int _end_col_offset = _token->end_col_offset;
6665 UNUSED(_end_col_offset); // Only used by EXTRA macro
6666 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
6667 if (_res == NULL && PyErr_Occurred()) {
6668 p->error_indicator = 1;
6669 p->level--;
6670 return NULL;
6671 }
6672 goto done;
6673 }
6674 p->mark = _mark;
6675 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
6677 }
6678 if (p->call_invalid_rules) { // invalid_with_stmt
6679 if (p->error_indicator) {
6680 p->level--;
6681 return NULL;
6682 }
6683 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
6684 void *invalid_with_stmt_var;
6685 if (
6686 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
6687 )
6688 {
6689 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
6690 _res = invalid_with_stmt_var;
6691 goto done;
6692 }
6693 p->mark = _mark;
6694 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
6696 }
6697 _res = NULL;
6698 done:
6699 p->level--;
6700 return _res;
6701 }
6702
6703 // with_item:
6704 // | expression 'as' star_target &(',' | ')' | ':')
6705 // | invalid_with_item
6706 // | expression
6707 static withitem_ty
with_item_rule(Parser * p)6708 with_item_rule(Parser *p)
6709 {
6710 if (p->level++ == MAXSTACK) {
6711 p->error_indicator = 1;
6712 PyErr_NoMemory();
6713 }
6714 if (p->error_indicator) {
6715 p->level--;
6716 return NULL;
6717 }
6718 withitem_ty _res = NULL;
6719 int _mark = p->mark;
6720 { // expression 'as' star_target &(',' | ')' | ':')
6721 if (p->error_indicator) {
6722 p->level--;
6723 return NULL;
6724 }
6725 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
6726 Token * _keyword;
6727 expr_ty e;
6728 expr_ty t;
6729 if (
6730 (e = expression_rule(p)) // expression
6731 &&
6732 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
6733 &&
6734 (t = star_target_rule(p)) // star_target
6735 &&
6736 _PyPegen_lookahead(1, _tmp_59_rule, p)
6737 )
6738 {
6739 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
6740 _res = _PyAST_withitem ( e , t , p -> arena );
6741 if (_res == NULL && PyErr_Occurred()) {
6742 p->error_indicator = 1;
6743 p->level--;
6744 return NULL;
6745 }
6746 goto done;
6747 }
6748 p->mark = _mark;
6749 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
6750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
6751 }
6752 if (p->call_invalid_rules) { // invalid_with_item
6753 if (p->error_indicator) {
6754 p->level--;
6755 return NULL;
6756 }
6757 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
6758 void *invalid_with_item_var;
6759 if (
6760 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
6761 )
6762 {
6763 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
6764 _res = invalid_with_item_var;
6765 goto done;
6766 }
6767 p->mark = _mark;
6768 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
6769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
6770 }
6771 { // expression
6772 if (p->error_indicator) {
6773 p->level--;
6774 return NULL;
6775 }
6776 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
6777 expr_ty e;
6778 if (
6779 (e = expression_rule(p)) // expression
6780 )
6781 {
6782 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
6783 _res = _PyAST_withitem ( e , NULL , p -> arena );
6784 if (_res == NULL && PyErr_Occurred()) {
6785 p->error_indicator = 1;
6786 p->level--;
6787 return NULL;
6788 }
6789 goto done;
6790 }
6791 p->mark = _mark;
6792 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
6793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
6794 }
6795 _res = NULL;
6796 done:
6797 p->level--;
6798 return _res;
6799 }
6800
6801 // try_stmt:
6802 // | invalid_try_stmt
6803 // | 'try' &&':' block finally_block
6804 // | 'try' &&':' block except_block+ else_block? finally_block?
6805 // | 'try' &&':' block except_star_block+ else_block? finally_block?
6806 static stmt_ty
try_stmt_rule(Parser * p)6807 try_stmt_rule(Parser *p)
6808 {
6809 if (p->level++ == MAXSTACK) {
6810 p->error_indicator = 1;
6811 PyErr_NoMemory();
6812 }
6813 if (p->error_indicator) {
6814 p->level--;
6815 return NULL;
6816 }
6817 stmt_ty _res = NULL;
6818 int _mark = p->mark;
6819 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6820 p->error_indicator = 1;
6821 p->level--;
6822 return NULL;
6823 }
6824 int _start_lineno = p->tokens[_mark]->lineno;
6825 UNUSED(_start_lineno); // Only used by EXTRA macro
6826 int _start_col_offset = p->tokens[_mark]->col_offset;
6827 UNUSED(_start_col_offset); // Only used by EXTRA macro
6828 if (p->call_invalid_rules) { // invalid_try_stmt
6829 if (p->error_indicator) {
6830 p->level--;
6831 return NULL;
6832 }
6833 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
6834 void *invalid_try_stmt_var;
6835 if (
6836 (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt
6837 )
6838 {
6839 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
6840 _res = invalid_try_stmt_var;
6841 goto done;
6842 }
6843 p->mark = _mark;
6844 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
6846 }
6847 { // 'try' &&':' block finally_block
6848 if (p->error_indicator) {
6849 p->level--;
6850 return NULL;
6851 }
6852 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block finally_block"));
6853 Token * _keyword;
6854 Token * _literal;
6855 asdl_stmt_seq* b;
6856 asdl_stmt_seq* f;
6857 if (
6858 (_keyword = _PyPegen_expect_token(p, 621)) // token='try'
6859 &&
6860 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
6861 &&
6862 (b = block_rule(p)) // block
6863 &&
6864 (f = finally_block_rule(p)) // finally_block
6865 )
6866 {
6867 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' &&':' block finally_block"));
6868 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6869 if (_token == NULL) {
6870 p->level--;
6871 return NULL;
6872 }
6873 int _end_lineno = _token->end_lineno;
6874 UNUSED(_end_lineno); // Only used by EXTRA macro
6875 int _end_col_offset = _token->end_col_offset;
6876 UNUSED(_end_col_offset); // Only used by EXTRA macro
6877 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
6878 if (_res == NULL && PyErr_Occurred()) {
6879 p->error_indicator = 1;
6880 p->level--;
6881 return NULL;
6882 }
6883 goto done;
6884 }
6885 p->mark = _mark;
6886 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
6888 }
6889 { // 'try' &&':' block except_block+ else_block? finally_block?
6890 if (p->error_indicator) {
6891 p->level--;
6892 return NULL;
6893 }
6894 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
6895 Token * _keyword;
6896 Token * _literal;
6897 asdl_stmt_seq* b;
6898 void *el;
6899 asdl_excepthandler_seq* ex;
6900 void *f;
6901 if (
6902 (_keyword = _PyPegen_expect_token(p, 621)) // token='try'
6903 &&
6904 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
6905 &&
6906 (b = block_rule(p)) // block
6907 &&
6908 (ex = (asdl_excepthandler_seq*)_loop1_60_rule(p)) // except_block+
6909 &&
6910 (el = else_block_rule(p), !p->error_indicator) // else_block?
6911 &&
6912 (f = finally_block_rule(p), !p->error_indicator) // finally_block?
6913 )
6914 {
6915 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
6916 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6917 if (_token == NULL) {
6918 p->level--;
6919 return NULL;
6920 }
6921 int _end_lineno = _token->end_lineno;
6922 UNUSED(_end_lineno); // Only used by EXTRA macro
6923 int _end_col_offset = _token->end_col_offset;
6924 UNUSED(_end_col_offset); // Only used by EXTRA macro
6925 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
6926 if (_res == NULL && PyErr_Occurred()) {
6927 p->error_indicator = 1;
6928 p->level--;
6929 return NULL;
6930 }
6931 goto done;
6932 }
6933 p->mark = _mark;
6934 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
6936 }
6937 { // 'try' &&':' block except_star_block+ else_block? finally_block?
6938 if (p->error_indicator) {
6939 p->level--;
6940 return NULL;
6941 }
6942 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_star_block+ else_block? finally_block?"));
6943 Token * _keyword;
6944 Token * _literal;
6945 asdl_stmt_seq* b;
6946 void *el;
6947 asdl_excepthandler_seq* ex;
6948 void *f;
6949 if (
6950 (_keyword = _PyPegen_expect_token(p, 621)) // token='try'
6951 &&
6952 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
6953 &&
6954 (b = block_rule(p)) // block
6955 &&
6956 (ex = (asdl_excepthandler_seq*)_loop1_61_rule(p)) // except_star_block+
6957 &&
6958 (el = else_block_rule(p), !p->error_indicator) // else_block?
6959 &&
6960 (f = finally_block_rule(p), !p->error_indicator) // finally_block?
6961 )
6962 {
6963 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?"));
6964 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6965 if (_token == NULL) {
6966 p->level--;
6967 return NULL;
6968 }
6969 int _end_lineno = _token->end_lineno;
6970 UNUSED(_end_lineno); // Only used by EXTRA macro
6971 int _end_col_offset = _token->end_col_offset;
6972 UNUSED(_end_col_offset); // Only used by EXTRA macro
6973 _res = CHECK_VERSION ( stmt_ty , 11 , "Exception groups are" , _PyAST_TryStar ( b , ex , el , f , EXTRA ) );
6974 if (_res == NULL && PyErr_Occurred()) {
6975 p->error_indicator = 1;
6976 p->level--;
6977 return NULL;
6978 }
6979 goto done;
6980 }
6981 p->mark = _mark;
6982 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_star_block+ else_block? finally_block?"));
6984 }
6985 _res = NULL;
6986 done:
6987 p->level--;
6988 return _res;
6989 }
6990
6991 // except_block:
6992 // | invalid_except_stmt_indent
6993 // | 'except' expression ['as' NAME] ':' block
6994 // | 'except' ':' block
6995 // | invalid_except_stmt
6996 static excepthandler_ty
except_block_rule(Parser * p)6997 except_block_rule(Parser *p)
6998 {
6999 if (p->level++ == MAXSTACK) {
7000 p->error_indicator = 1;
7001 PyErr_NoMemory();
7002 }
7003 if (p->error_indicator) {
7004 p->level--;
7005 return NULL;
7006 }
7007 excepthandler_ty _res = NULL;
7008 int _mark = p->mark;
7009 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7010 p->error_indicator = 1;
7011 p->level--;
7012 return NULL;
7013 }
7014 int _start_lineno = p->tokens[_mark]->lineno;
7015 UNUSED(_start_lineno); // Only used by EXTRA macro
7016 int _start_col_offset = p->tokens[_mark]->col_offset;
7017 UNUSED(_start_col_offset); // Only used by EXTRA macro
7018 if (p->call_invalid_rules) { // invalid_except_stmt_indent
7019 if (p->error_indicator) {
7020 p->level--;
7021 return NULL;
7022 }
7023 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
7024 void *invalid_except_stmt_indent_var;
7025 if (
7026 (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent
7027 )
7028 {
7029 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
7030 _res = invalid_except_stmt_indent_var;
7031 goto done;
7032 }
7033 p->mark = _mark;
7034 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
7035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent"));
7036 }
7037 { // 'except' expression ['as' NAME] ':' block
7038 if (p->error_indicator) {
7039 p->level--;
7040 return NULL;
7041 }
7042 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
7043 Token * _keyword;
7044 Token * _literal;
7045 asdl_stmt_seq* b;
7046 expr_ty e;
7047 void *t;
7048 if (
7049 (_keyword = _PyPegen_expect_token(p, 634)) // token='except'
7050 &&
7051 (e = expression_rule(p)) // expression
7052 &&
7053 (t = _tmp_62_rule(p), !p->error_indicator) // ['as' NAME]
7054 &&
7055 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7056 &&
7057 (b = block_rule(p)) // block
7058 )
7059 {
7060 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
7061 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7062 if (_token == NULL) {
7063 p->level--;
7064 return NULL;
7065 }
7066 int _end_lineno = _token->end_lineno;
7067 UNUSED(_end_lineno); // Only used by EXTRA macro
7068 int _end_col_offset = _token->end_col_offset;
7069 UNUSED(_end_col_offset); // Only used by EXTRA macro
7070 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
7071 if (_res == NULL && PyErr_Occurred()) {
7072 p->error_indicator = 1;
7073 p->level--;
7074 return NULL;
7075 }
7076 goto done;
7077 }
7078 p->mark = _mark;
7079 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
7080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
7081 }
7082 { // 'except' ':' block
7083 if (p->error_indicator) {
7084 p->level--;
7085 return NULL;
7086 }
7087 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
7088 Token * _keyword;
7089 Token * _literal;
7090 asdl_stmt_seq* b;
7091 if (
7092 (_keyword = _PyPegen_expect_token(p, 634)) // token='except'
7093 &&
7094 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7095 &&
7096 (b = block_rule(p)) // block
7097 )
7098 {
7099 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
7100 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7101 if (_token == NULL) {
7102 p->level--;
7103 return NULL;
7104 }
7105 int _end_lineno = _token->end_lineno;
7106 UNUSED(_end_lineno); // Only used by EXTRA macro
7107 int _end_col_offset = _token->end_col_offset;
7108 UNUSED(_end_col_offset); // Only used by EXTRA macro
7109 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
7110 if (_res == NULL && PyErr_Occurred()) {
7111 p->error_indicator = 1;
7112 p->level--;
7113 return NULL;
7114 }
7115 goto done;
7116 }
7117 p->mark = _mark;
7118 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
7119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
7120 }
7121 if (p->call_invalid_rules) { // invalid_except_stmt
7122 if (p->error_indicator) {
7123 p->level--;
7124 return NULL;
7125 }
7126 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
7127 void *invalid_except_stmt_var;
7128 if (
7129 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
7130 )
7131 {
7132 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
7133 _res = invalid_except_stmt_var;
7134 goto done;
7135 }
7136 p->mark = _mark;
7137 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
7138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
7139 }
7140 _res = NULL;
7141 done:
7142 p->level--;
7143 return _res;
7144 }
7145
7146 // except_star_block:
7147 // | invalid_except_star_stmt_indent
7148 // | 'except' '*' expression ['as' NAME] ':' block
7149 // | invalid_except_stmt
7150 static excepthandler_ty
except_star_block_rule(Parser * p)7151 except_star_block_rule(Parser *p)
7152 {
7153 if (p->level++ == MAXSTACK) {
7154 p->error_indicator = 1;
7155 PyErr_NoMemory();
7156 }
7157 if (p->error_indicator) {
7158 p->level--;
7159 return NULL;
7160 }
7161 excepthandler_ty _res = NULL;
7162 int _mark = p->mark;
7163 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7164 p->error_indicator = 1;
7165 p->level--;
7166 return NULL;
7167 }
7168 int _start_lineno = p->tokens[_mark]->lineno;
7169 UNUSED(_start_lineno); // Only used by EXTRA macro
7170 int _start_col_offset = p->tokens[_mark]->col_offset;
7171 UNUSED(_start_col_offset); // Only used by EXTRA macro
7172 if (p->call_invalid_rules) { // invalid_except_star_stmt_indent
7173 if (p->error_indicator) {
7174 p->level--;
7175 return NULL;
7176 }
7177 D(fprintf(stderr, "%*c> except_star_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_star_stmt_indent"));
7178 void *invalid_except_star_stmt_indent_var;
7179 if (
7180 (invalid_except_star_stmt_indent_var = invalid_except_star_stmt_indent_rule(p)) // invalid_except_star_stmt_indent
7181 )
7182 {
7183 D(fprintf(stderr, "%*c+ except_star_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_star_stmt_indent"));
7184 _res = invalid_except_star_stmt_indent_var;
7185 goto done;
7186 }
7187 p->mark = _mark;
7188 D(fprintf(stderr, "%*c%s except_star_block[%d-%d]: %s failed!\n", p->level, ' ',
7189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_star_stmt_indent"));
7190 }
7191 { // 'except' '*' expression ['as' NAME] ':' block
7192 if (p->error_indicator) {
7193 p->level--;
7194 return NULL;
7195 }
7196 D(fprintf(stderr, "%*c> except_star_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ['as' NAME] ':' block"));
7197 Token * _keyword;
7198 Token * _literal;
7199 Token * _literal_1;
7200 asdl_stmt_seq* b;
7201 expr_ty e;
7202 void *t;
7203 if (
7204 (_keyword = _PyPegen_expect_token(p, 634)) // token='except'
7205 &&
7206 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7207 &&
7208 (e = expression_rule(p)) // expression
7209 &&
7210 (t = _tmp_63_rule(p), !p->error_indicator) // ['as' NAME]
7211 &&
7212 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
7213 &&
7214 (b = block_rule(p)) // block
7215 )
7216 {
7217 D(fprintf(stderr, "%*c+ except_star_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ['as' NAME] ':' block"));
7218 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7219 if (_token == NULL) {
7220 p->level--;
7221 return NULL;
7222 }
7223 int _end_lineno = _token->end_lineno;
7224 UNUSED(_end_lineno); // Only used by EXTRA macro
7225 int _end_col_offset = _token->end_col_offset;
7226 UNUSED(_end_col_offset); // Only used by EXTRA macro
7227 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
7228 if (_res == NULL && PyErr_Occurred()) {
7229 p->error_indicator = 1;
7230 p->level--;
7231 return NULL;
7232 }
7233 goto done;
7234 }
7235 p->mark = _mark;
7236 D(fprintf(stderr, "%*c%s except_star_block[%d-%d]: %s failed!\n", p->level, ' ',
7237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expression ['as' NAME] ':' block"));
7238 }
7239 if (p->call_invalid_rules) { // invalid_except_stmt
7240 if (p->error_indicator) {
7241 p->level--;
7242 return NULL;
7243 }
7244 D(fprintf(stderr, "%*c> except_star_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
7245 void *invalid_except_stmt_var;
7246 if (
7247 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
7248 )
7249 {
7250 D(fprintf(stderr, "%*c+ except_star_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
7251 _res = invalid_except_stmt_var;
7252 goto done;
7253 }
7254 p->mark = _mark;
7255 D(fprintf(stderr, "%*c%s except_star_block[%d-%d]: %s failed!\n", p->level, ' ',
7256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
7257 }
7258 _res = NULL;
7259 done:
7260 p->level--;
7261 return _res;
7262 }
7263
7264 // finally_block: invalid_finally_stmt | 'finally' &&':' block
7265 static asdl_stmt_seq*
finally_block_rule(Parser * p)7266 finally_block_rule(Parser *p)
7267 {
7268 if (p->level++ == MAXSTACK) {
7269 p->error_indicator = 1;
7270 PyErr_NoMemory();
7271 }
7272 if (p->error_indicator) {
7273 p->level--;
7274 return NULL;
7275 }
7276 asdl_stmt_seq* _res = NULL;
7277 int _mark = p->mark;
7278 if (p->call_invalid_rules) { // invalid_finally_stmt
7279 if (p->error_indicator) {
7280 p->level--;
7281 return NULL;
7282 }
7283 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
7284 void *invalid_finally_stmt_var;
7285 if (
7286 (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt
7287 )
7288 {
7289 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
7290 _res = invalid_finally_stmt_var;
7291 goto done;
7292 }
7293 p->mark = _mark;
7294 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
7295 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
7296 }
7297 { // 'finally' &&':' block
7298 if (p->error_indicator) {
7299 p->level--;
7300 return NULL;
7301 }
7302 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
7303 Token * _keyword;
7304 Token * _literal;
7305 asdl_stmt_seq* a;
7306 if (
7307 (_keyword = _PyPegen_expect_token(p, 630)) // token='finally'
7308 &&
7309 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
7310 &&
7311 (a = block_rule(p)) // block
7312 )
7313 {
7314 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
7315 _res = a;
7316 if (_res == NULL && PyErr_Occurred()) {
7317 p->error_indicator = 1;
7318 p->level--;
7319 return NULL;
7320 }
7321 goto done;
7322 }
7323 p->mark = _mark;
7324 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
7325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
7326 }
7327 _res = NULL;
7328 done:
7329 p->level--;
7330 return _res;
7331 }
7332
7333 // match_stmt:
7334 // | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
7335 // | invalid_match_stmt
7336 static stmt_ty
match_stmt_rule(Parser * p)7337 match_stmt_rule(Parser *p)
7338 {
7339 if (p->level++ == MAXSTACK) {
7340 p->error_indicator = 1;
7341 PyErr_NoMemory();
7342 }
7343 if (p->error_indicator) {
7344 p->level--;
7345 return NULL;
7346 }
7347 stmt_ty _res = NULL;
7348 int _mark = p->mark;
7349 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7350 p->error_indicator = 1;
7351 p->level--;
7352 return NULL;
7353 }
7354 int _start_lineno = p->tokens[_mark]->lineno;
7355 UNUSED(_start_lineno); // Only used by EXTRA macro
7356 int _start_col_offset = p->tokens[_mark]->col_offset;
7357 UNUSED(_start_col_offset); // Only used by EXTRA macro
7358 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
7359 if (p->error_indicator) {
7360 p->level--;
7361 return NULL;
7362 }
7363 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
7364 expr_ty _keyword;
7365 Token * _literal;
7366 asdl_match_case_seq* cases;
7367 Token * dedent_var;
7368 Token * indent_var;
7369 Token * newline_var;
7370 expr_ty subject;
7371 if (
7372 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
7373 &&
7374 (subject = subject_expr_rule(p)) // subject_expr
7375 &&
7376 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7377 &&
7378 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
7379 &&
7380 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
7381 &&
7382 (cases = (asdl_match_case_seq*)_loop1_64_rule(p)) // case_block+
7383 &&
7384 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
7385 )
7386 {
7387 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
7388 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7389 if (_token == NULL) {
7390 p->level--;
7391 return NULL;
7392 }
7393 int _end_lineno = _token->end_lineno;
7394 UNUSED(_end_lineno); // Only used by EXTRA macro
7395 int _end_col_offset = _token->end_col_offset;
7396 UNUSED(_end_col_offset); // Only used by EXTRA macro
7397 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
7398 if (_res == NULL && PyErr_Occurred()) {
7399 p->error_indicator = 1;
7400 p->level--;
7401 return NULL;
7402 }
7403 goto done;
7404 }
7405 p->mark = _mark;
7406 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
7408 }
7409 if (p->call_invalid_rules) { // invalid_match_stmt
7410 if (p->error_indicator) {
7411 p->level--;
7412 return NULL;
7413 }
7414 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
7415 void *invalid_match_stmt_var;
7416 if (
7417 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
7418 )
7419 {
7420 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
7421 _res = invalid_match_stmt_var;
7422 goto done;
7423 }
7424 p->mark = _mark;
7425 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
7427 }
7428 _res = NULL;
7429 done:
7430 p->level--;
7431 return _res;
7432 }
7433
7434 // subject_expr: star_named_expression ',' star_named_expressions? | named_expression
7435 static expr_ty
subject_expr_rule(Parser * p)7436 subject_expr_rule(Parser *p)
7437 {
7438 if (p->level++ == MAXSTACK) {
7439 p->error_indicator = 1;
7440 PyErr_NoMemory();
7441 }
7442 if (p->error_indicator) {
7443 p->level--;
7444 return NULL;
7445 }
7446 expr_ty _res = NULL;
7447 int _mark = p->mark;
7448 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7449 p->error_indicator = 1;
7450 p->level--;
7451 return NULL;
7452 }
7453 int _start_lineno = p->tokens[_mark]->lineno;
7454 UNUSED(_start_lineno); // Only used by EXTRA macro
7455 int _start_col_offset = p->tokens[_mark]->col_offset;
7456 UNUSED(_start_col_offset); // Only used by EXTRA macro
7457 { // star_named_expression ',' star_named_expressions?
7458 if (p->error_indicator) {
7459 p->level--;
7460 return NULL;
7461 }
7462 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
7463 Token * _literal;
7464 expr_ty value;
7465 void *values;
7466 if (
7467 (value = star_named_expression_rule(p)) // star_named_expression
7468 &&
7469 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7470 &&
7471 (values = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
7472 )
7473 {
7474 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
7475 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7476 if (_token == NULL) {
7477 p->level--;
7478 return NULL;
7479 }
7480 int _end_lineno = _token->end_lineno;
7481 UNUSED(_end_lineno); // Only used by EXTRA macro
7482 int _end_col_offset = _token->end_col_offset;
7483 UNUSED(_end_col_offset); // Only used by EXTRA macro
7484 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
7485 if (_res == NULL && PyErr_Occurred()) {
7486 p->error_indicator = 1;
7487 p->level--;
7488 return NULL;
7489 }
7490 goto done;
7491 }
7492 p->mark = _mark;
7493 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
7494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
7495 }
7496 { // named_expression
7497 if (p->error_indicator) {
7498 p->level--;
7499 return NULL;
7500 }
7501 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
7502 expr_ty named_expression_var;
7503 if (
7504 (named_expression_var = named_expression_rule(p)) // named_expression
7505 )
7506 {
7507 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
7508 _res = named_expression_var;
7509 goto done;
7510 }
7511 p->mark = _mark;
7512 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
7513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
7514 }
7515 _res = NULL;
7516 done:
7517 p->level--;
7518 return _res;
7519 }
7520
7521 // case_block: invalid_case_block | "case" patterns guard? ':' block
7522 static match_case_ty
case_block_rule(Parser * p)7523 case_block_rule(Parser *p)
7524 {
7525 if (p->level++ == MAXSTACK) {
7526 p->error_indicator = 1;
7527 PyErr_NoMemory();
7528 }
7529 if (p->error_indicator) {
7530 p->level--;
7531 return NULL;
7532 }
7533 match_case_ty _res = NULL;
7534 int _mark = p->mark;
7535 if (p->call_invalid_rules) { // invalid_case_block
7536 if (p->error_indicator) {
7537 p->level--;
7538 return NULL;
7539 }
7540 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
7541 void *invalid_case_block_var;
7542 if (
7543 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
7544 )
7545 {
7546 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
7547 _res = invalid_case_block_var;
7548 goto done;
7549 }
7550 p->mark = _mark;
7551 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
7552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
7553 }
7554 { // "case" patterns guard? ':' block
7555 if (p->error_indicator) {
7556 p->level--;
7557 return NULL;
7558 }
7559 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
7560 expr_ty _keyword;
7561 Token * _literal;
7562 asdl_stmt_seq* body;
7563 void *guard;
7564 pattern_ty pattern;
7565 if (
7566 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
7567 &&
7568 (pattern = patterns_rule(p)) // patterns
7569 &&
7570 (guard = guard_rule(p), !p->error_indicator) // guard?
7571 &&
7572 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7573 &&
7574 (body = block_rule(p)) // block
7575 )
7576 {
7577 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
7578 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
7579 if (_res == NULL && PyErr_Occurred()) {
7580 p->error_indicator = 1;
7581 p->level--;
7582 return NULL;
7583 }
7584 goto done;
7585 }
7586 p->mark = _mark;
7587 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
7588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
7589 }
7590 _res = NULL;
7591 done:
7592 p->level--;
7593 return _res;
7594 }
7595
7596 // guard: 'if' named_expression
7597 static expr_ty
guard_rule(Parser * p)7598 guard_rule(Parser *p)
7599 {
7600 if (p->level++ == MAXSTACK) {
7601 p->error_indicator = 1;
7602 PyErr_NoMemory();
7603 }
7604 if (p->error_indicator) {
7605 p->level--;
7606 return NULL;
7607 }
7608 expr_ty _res = NULL;
7609 int _mark = p->mark;
7610 { // 'if' named_expression
7611 if (p->error_indicator) {
7612 p->level--;
7613 return NULL;
7614 }
7615 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
7616 Token * _keyword;
7617 expr_ty guard;
7618 if (
7619 (_keyword = _PyPegen_expect_token(p, 639)) // token='if'
7620 &&
7621 (guard = named_expression_rule(p)) // named_expression
7622 )
7623 {
7624 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
7625 _res = guard;
7626 if (_res == NULL && PyErr_Occurred()) {
7627 p->error_indicator = 1;
7628 p->level--;
7629 return NULL;
7630 }
7631 goto done;
7632 }
7633 p->mark = _mark;
7634 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
7635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
7636 }
7637 _res = NULL;
7638 done:
7639 p->level--;
7640 return _res;
7641 }
7642
7643 // patterns: open_sequence_pattern | pattern
7644 static pattern_ty
patterns_rule(Parser * p)7645 patterns_rule(Parser *p)
7646 {
7647 if (p->level++ == MAXSTACK) {
7648 p->error_indicator = 1;
7649 PyErr_NoMemory();
7650 }
7651 if (p->error_indicator) {
7652 p->level--;
7653 return NULL;
7654 }
7655 pattern_ty _res = NULL;
7656 int _mark = p->mark;
7657 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7658 p->error_indicator = 1;
7659 p->level--;
7660 return NULL;
7661 }
7662 int _start_lineno = p->tokens[_mark]->lineno;
7663 UNUSED(_start_lineno); // Only used by EXTRA macro
7664 int _start_col_offset = p->tokens[_mark]->col_offset;
7665 UNUSED(_start_col_offset); // Only used by EXTRA macro
7666 { // open_sequence_pattern
7667 if (p->error_indicator) {
7668 p->level--;
7669 return NULL;
7670 }
7671 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
7672 asdl_pattern_seq* patterns;
7673 if (
7674 (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
7675 )
7676 {
7677 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
7678 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7679 if (_token == NULL) {
7680 p->level--;
7681 return NULL;
7682 }
7683 int _end_lineno = _token->end_lineno;
7684 UNUSED(_end_lineno); // Only used by EXTRA macro
7685 int _end_col_offset = _token->end_col_offset;
7686 UNUSED(_end_col_offset); // Only used by EXTRA macro
7687 _res = _PyAST_MatchSequence ( patterns , EXTRA );
7688 if (_res == NULL && PyErr_Occurred()) {
7689 p->error_indicator = 1;
7690 p->level--;
7691 return NULL;
7692 }
7693 goto done;
7694 }
7695 p->mark = _mark;
7696 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
7697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
7698 }
7699 { // pattern
7700 if (p->error_indicator) {
7701 p->level--;
7702 return NULL;
7703 }
7704 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
7705 pattern_ty pattern_var;
7706 if (
7707 (pattern_var = pattern_rule(p)) // pattern
7708 )
7709 {
7710 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
7711 _res = pattern_var;
7712 goto done;
7713 }
7714 p->mark = _mark;
7715 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
7716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
7717 }
7718 _res = NULL;
7719 done:
7720 p->level--;
7721 return _res;
7722 }
7723
7724 // pattern: as_pattern | or_pattern
7725 static pattern_ty
pattern_rule(Parser * p)7726 pattern_rule(Parser *p)
7727 {
7728 if (p->level++ == MAXSTACK) {
7729 p->error_indicator = 1;
7730 PyErr_NoMemory();
7731 }
7732 if (p->error_indicator) {
7733 p->level--;
7734 return NULL;
7735 }
7736 pattern_ty _res = NULL;
7737 int _mark = p->mark;
7738 { // as_pattern
7739 if (p->error_indicator) {
7740 p->level--;
7741 return NULL;
7742 }
7743 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
7744 pattern_ty as_pattern_var;
7745 if (
7746 (as_pattern_var = as_pattern_rule(p)) // as_pattern
7747 )
7748 {
7749 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
7750 _res = as_pattern_var;
7751 goto done;
7752 }
7753 p->mark = _mark;
7754 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
7755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
7756 }
7757 { // or_pattern
7758 if (p->error_indicator) {
7759 p->level--;
7760 return NULL;
7761 }
7762 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
7763 pattern_ty or_pattern_var;
7764 if (
7765 (or_pattern_var = or_pattern_rule(p)) // or_pattern
7766 )
7767 {
7768 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
7769 _res = or_pattern_var;
7770 goto done;
7771 }
7772 p->mark = _mark;
7773 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
7774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
7775 }
7776 _res = NULL;
7777 done:
7778 p->level--;
7779 return _res;
7780 }
7781
7782 // as_pattern: or_pattern 'as' pattern_capture_target | invalid_as_pattern
7783 static pattern_ty
as_pattern_rule(Parser * p)7784 as_pattern_rule(Parser *p)
7785 {
7786 if (p->level++ == MAXSTACK) {
7787 p->error_indicator = 1;
7788 PyErr_NoMemory();
7789 }
7790 if (p->error_indicator) {
7791 p->level--;
7792 return NULL;
7793 }
7794 pattern_ty _res = NULL;
7795 int _mark = p->mark;
7796 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7797 p->error_indicator = 1;
7798 p->level--;
7799 return NULL;
7800 }
7801 int _start_lineno = p->tokens[_mark]->lineno;
7802 UNUSED(_start_lineno); // Only used by EXTRA macro
7803 int _start_col_offset = p->tokens[_mark]->col_offset;
7804 UNUSED(_start_col_offset); // Only used by EXTRA macro
7805 { // or_pattern 'as' pattern_capture_target
7806 if (p->error_indicator) {
7807 p->level--;
7808 return NULL;
7809 }
7810 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
7811 Token * _keyword;
7812 pattern_ty pattern;
7813 expr_ty target;
7814 if (
7815 (pattern = or_pattern_rule(p)) // or_pattern
7816 &&
7817 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
7818 &&
7819 (target = pattern_capture_target_rule(p)) // pattern_capture_target
7820 )
7821 {
7822 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
7823 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7824 if (_token == NULL) {
7825 p->level--;
7826 return NULL;
7827 }
7828 int _end_lineno = _token->end_lineno;
7829 UNUSED(_end_lineno); // Only used by EXTRA macro
7830 int _end_col_offset = _token->end_col_offset;
7831 UNUSED(_end_col_offset); // Only used by EXTRA macro
7832 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
7833 if (_res == NULL && PyErr_Occurred()) {
7834 p->error_indicator = 1;
7835 p->level--;
7836 return NULL;
7837 }
7838 goto done;
7839 }
7840 p->mark = _mark;
7841 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
7843 }
7844 if (p->call_invalid_rules) { // invalid_as_pattern
7845 if (p->error_indicator) {
7846 p->level--;
7847 return NULL;
7848 }
7849 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
7850 void *invalid_as_pattern_var;
7851 if (
7852 (invalid_as_pattern_var = invalid_as_pattern_rule(p)) // invalid_as_pattern
7853 )
7854 {
7855 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
7856 _res = invalid_as_pattern_var;
7857 goto done;
7858 }
7859 p->mark = _mark;
7860 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_as_pattern"));
7862 }
7863 _res = NULL;
7864 done:
7865 p->level--;
7866 return _res;
7867 }
7868
7869 // or_pattern: '|'.closed_pattern+
7870 static pattern_ty
or_pattern_rule(Parser * p)7871 or_pattern_rule(Parser *p)
7872 {
7873 if (p->level++ == MAXSTACK) {
7874 p->error_indicator = 1;
7875 PyErr_NoMemory();
7876 }
7877 if (p->error_indicator) {
7878 p->level--;
7879 return NULL;
7880 }
7881 pattern_ty _res = NULL;
7882 int _mark = p->mark;
7883 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7884 p->error_indicator = 1;
7885 p->level--;
7886 return NULL;
7887 }
7888 int _start_lineno = p->tokens[_mark]->lineno;
7889 UNUSED(_start_lineno); // Only used by EXTRA macro
7890 int _start_col_offset = p->tokens[_mark]->col_offset;
7891 UNUSED(_start_col_offset); // Only used by EXTRA macro
7892 { // '|'.closed_pattern+
7893 if (p->error_indicator) {
7894 p->level--;
7895 return NULL;
7896 }
7897 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
7898 asdl_pattern_seq* patterns;
7899 if (
7900 (patterns = (asdl_pattern_seq*)_gather_65_rule(p)) // '|'.closed_pattern+
7901 )
7902 {
7903 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
7904 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7905 if (_token == NULL) {
7906 p->level--;
7907 return NULL;
7908 }
7909 int _end_lineno = _token->end_lineno;
7910 UNUSED(_end_lineno); // Only used by EXTRA macro
7911 int _end_col_offset = _token->end_col_offset;
7912 UNUSED(_end_col_offset); // Only used by EXTRA macro
7913 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
7914 if (_res == NULL && PyErr_Occurred()) {
7915 p->error_indicator = 1;
7916 p->level--;
7917 return NULL;
7918 }
7919 goto done;
7920 }
7921 p->mark = _mark;
7922 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
7924 }
7925 _res = NULL;
7926 done:
7927 p->level--;
7928 return _res;
7929 }
7930
7931 // closed_pattern:
7932 // | literal_pattern
7933 // | capture_pattern
7934 // | wildcard_pattern
7935 // | value_pattern
7936 // | group_pattern
7937 // | sequence_pattern
7938 // | mapping_pattern
7939 // | class_pattern
7940 static pattern_ty
closed_pattern_rule(Parser * p)7941 closed_pattern_rule(Parser *p)
7942 {
7943 if (p->level++ == MAXSTACK) {
7944 p->error_indicator = 1;
7945 PyErr_NoMemory();
7946 }
7947 if (p->error_indicator) {
7948 p->level--;
7949 return NULL;
7950 }
7951 pattern_ty _res = NULL;
7952 if (_PyPegen_is_memoized(p, closed_pattern_type, &_res)) {
7953 p->level--;
7954 return _res;
7955 }
7956 int _mark = p->mark;
7957 { // literal_pattern
7958 if (p->error_indicator) {
7959 p->level--;
7960 return NULL;
7961 }
7962 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
7963 pattern_ty literal_pattern_var;
7964 if (
7965 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
7966 )
7967 {
7968 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
7969 _res = literal_pattern_var;
7970 goto done;
7971 }
7972 p->mark = _mark;
7973 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
7975 }
7976 { // capture_pattern
7977 if (p->error_indicator) {
7978 p->level--;
7979 return NULL;
7980 }
7981 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
7982 pattern_ty capture_pattern_var;
7983 if (
7984 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
7985 )
7986 {
7987 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
7988 _res = capture_pattern_var;
7989 goto done;
7990 }
7991 p->mark = _mark;
7992 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
7994 }
7995 { // wildcard_pattern
7996 if (p->error_indicator) {
7997 p->level--;
7998 return NULL;
7999 }
8000 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
8001 pattern_ty wildcard_pattern_var;
8002 if (
8003 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
8004 )
8005 {
8006 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
8007 _res = wildcard_pattern_var;
8008 goto done;
8009 }
8010 p->mark = _mark;
8011 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
8013 }
8014 { // value_pattern
8015 if (p->error_indicator) {
8016 p->level--;
8017 return NULL;
8018 }
8019 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
8020 pattern_ty value_pattern_var;
8021 if (
8022 (value_pattern_var = value_pattern_rule(p)) // value_pattern
8023 )
8024 {
8025 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
8026 _res = value_pattern_var;
8027 goto done;
8028 }
8029 p->mark = _mark;
8030 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
8032 }
8033 { // group_pattern
8034 if (p->error_indicator) {
8035 p->level--;
8036 return NULL;
8037 }
8038 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
8039 pattern_ty group_pattern_var;
8040 if (
8041 (group_pattern_var = group_pattern_rule(p)) // group_pattern
8042 )
8043 {
8044 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
8045 _res = group_pattern_var;
8046 goto done;
8047 }
8048 p->mark = _mark;
8049 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
8051 }
8052 { // sequence_pattern
8053 if (p->error_indicator) {
8054 p->level--;
8055 return NULL;
8056 }
8057 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
8058 pattern_ty sequence_pattern_var;
8059 if (
8060 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
8061 )
8062 {
8063 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
8064 _res = sequence_pattern_var;
8065 goto done;
8066 }
8067 p->mark = _mark;
8068 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
8070 }
8071 { // mapping_pattern
8072 if (p->error_indicator) {
8073 p->level--;
8074 return NULL;
8075 }
8076 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
8077 pattern_ty mapping_pattern_var;
8078 if (
8079 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
8080 )
8081 {
8082 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
8083 _res = mapping_pattern_var;
8084 goto done;
8085 }
8086 p->mark = _mark;
8087 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
8089 }
8090 { // class_pattern
8091 if (p->error_indicator) {
8092 p->level--;
8093 return NULL;
8094 }
8095 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
8096 pattern_ty class_pattern_var;
8097 if (
8098 (class_pattern_var = class_pattern_rule(p)) // class_pattern
8099 )
8100 {
8101 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
8102 _res = class_pattern_var;
8103 goto done;
8104 }
8105 p->mark = _mark;
8106 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
8108 }
8109 _res = NULL;
8110 done:
8111 _PyPegen_insert_memo(p, _mark, closed_pattern_type, _res);
8112 p->level--;
8113 return _res;
8114 }
8115
8116 // literal_pattern:
8117 // | signed_number !('+' | '-')
8118 // | complex_number
8119 // | strings
8120 // | 'None'
8121 // | 'True'
8122 // | 'False'
8123 static pattern_ty
literal_pattern_rule(Parser * p)8124 literal_pattern_rule(Parser *p)
8125 {
8126 if (p->level++ == MAXSTACK) {
8127 p->error_indicator = 1;
8128 PyErr_NoMemory();
8129 }
8130 if (p->error_indicator) {
8131 p->level--;
8132 return NULL;
8133 }
8134 pattern_ty _res = NULL;
8135 int _mark = p->mark;
8136 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8137 p->error_indicator = 1;
8138 p->level--;
8139 return NULL;
8140 }
8141 int _start_lineno = p->tokens[_mark]->lineno;
8142 UNUSED(_start_lineno); // Only used by EXTRA macro
8143 int _start_col_offset = p->tokens[_mark]->col_offset;
8144 UNUSED(_start_col_offset); // Only used by EXTRA macro
8145 { // signed_number !('+' | '-')
8146 if (p->error_indicator) {
8147 p->level--;
8148 return NULL;
8149 }
8150 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
8151 expr_ty value;
8152 if (
8153 (value = signed_number_rule(p)) // signed_number
8154 &&
8155 _PyPegen_lookahead(0, _tmp_67_rule, p)
8156 )
8157 {
8158 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
8159 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8160 if (_token == NULL) {
8161 p->level--;
8162 return NULL;
8163 }
8164 int _end_lineno = _token->end_lineno;
8165 UNUSED(_end_lineno); // Only used by EXTRA macro
8166 int _end_col_offset = _token->end_col_offset;
8167 UNUSED(_end_col_offset); // Only used by EXTRA macro
8168 _res = _PyAST_MatchValue ( value , EXTRA );
8169 if (_res == NULL && PyErr_Occurred()) {
8170 p->error_indicator = 1;
8171 p->level--;
8172 return NULL;
8173 }
8174 goto done;
8175 }
8176 p->mark = _mark;
8177 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
8179 }
8180 { // complex_number
8181 if (p->error_indicator) {
8182 p->level--;
8183 return NULL;
8184 }
8185 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
8186 expr_ty value;
8187 if (
8188 (value = complex_number_rule(p)) // complex_number
8189 )
8190 {
8191 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
8192 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8193 if (_token == NULL) {
8194 p->level--;
8195 return NULL;
8196 }
8197 int _end_lineno = _token->end_lineno;
8198 UNUSED(_end_lineno); // Only used by EXTRA macro
8199 int _end_col_offset = _token->end_col_offset;
8200 UNUSED(_end_col_offset); // Only used by EXTRA macro
8201 _res = _PyAST_MatchValue ( value , EXTRA );
8202 if (_res == NULL && PyErr_Occurred()) {
8203 p->error_indicator = 1;
8204 p->level--;
8205 return NULL;
8206 }
8207 goto done;
8208 }
8209 p->mark = _mark;
8210 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
8212 }
8213 { // strings
8214 if (p->error_indicator) {
8215 p->level--;
8216 return NULL;
8217 }
8218 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
8219 expr_ty value;
8220 if (
8221 (value = strings_rule(p)) // strings
8222 )
8223 {
8224 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
8225 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8226 if (_token == NULL) {
8227 p->level--;
8228 return NULL;
8229 }
8230 int _end_lineno = _token->end_lineno;
8231 UNUSED(_end_lineno); // Only used by EXTRA macro
8232 int _end_col_offset = _token->end_col_offset;
8233 UNUSED(_end_col_offset); // Only used by EXTRA macro
8234 _res = _PyAST_MatchValue ( value , EXTRA );
8235 if (_res == NULL && PyErr_Occurred()) {
8236 p->error_indicator = 1;
8237 p->level--;
8238 return NULL;
8239 }
8240 goto done;
8241 }
8242 p->mark = _mark;
8243 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
8245 }
8246 { // 'None'
8247 if (p->error_indicator) {
8248 p->level--;
8249 return NULL;
8250 }
8251 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
8252 Token * _keyword;
8253 if (
8254 (_keyword = _PyPegen_expect_token(p, 601)) // token='None'
8255 )
8256 {
8257 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
8258 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8259 if (_token == NULL) {
8260 p->level--;
8261 return NULL;
8262 }
8263 int _end_lineno = _token->end_lineno;
8264 UNUSED(_end_lineno); // Only used by EXTRA macro
8265 int _end_col_offset = _token->end_col_offset;
8266 UNUSED(_end_col_offset); // Only used by EXTRA macro
8267 _res = _PyAST_MatchSingleton ( Py_None , EXTRA );
8268 if (_res == NULL && PyErr_Occurred()) {
8269 p->error_indicator = 1;
8270 p->level--;
8271 return NULL;
8272 }
8273 goto done;
8274 }
8275 p->mark = _mark;
8276 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
8278 }
8279 { // 'True'
8280 if (p->error_indicator) {
8281 p->level--;
8282 return NULL;
8283 }
8284 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
8285 Token * _keyword;
8286 if (
8287 (_keyword = _PyPegen_expect_token(p, 600)) // token='True'
8288 )
8289 {
8290 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
8291 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8292 if (_token == NULL) {
8293 p->level--;
8294 return NULL;
8295 }
8296 int _end_lineno = _token->end_lineno;
8297 UNUSED(_end_lineno); // Only used by EXTRA macro
8298 int _end_col_offset = _token->end_col_offset;
8299 UNUSED(_end_col_offset); // Only used by EXTRA macro
8300 _res = _PyAST_MatchSingleton ( Py_True , EXTRA );
8301 if (_res == NULL && PyErr_Occurred()) {
8302 p->error_indicator = 1;
8303 p->level--;
8304 return NULL;
8305 }
8306 goto done;
8307 }
8308 p->mark = _mark;
8309 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
8311 }
8312 { // 'False'
8313 if (p->error_indicator) {
8314 p->level--;
8315 return NULL;
8316 }
8317 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
8318 Token * _keyword;
8319 if (
8320 (_keyword = _PyPegen_expect_token(p, 602)) // token='False'
8321 )
8322 {
8323 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
8324 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8325 if (_token == NULL) {
8326 p->level--;
8327 return NULL;
8328 }
8329 int _end_lineno = _token->end_lineno;
8330 UNUSED(_end_lineno); // Only used by EXTRA macro
8331 int _end_col_offset = _token->end_col_offset;
8332 UNUSED(_end_col_offset); // Only used by EXTRA macro
8333 _res = _PyAST_MatchSingleton ( Py_False , EXTRA );
8334 if (_res == NULL && PyErr_Occurred()) {
8335 p->error_indicator = 1;
8336 p->level--;
8337 return NULL;
8338 }
8339 goto done;
8340 }
8341 p->mark = _mark;
8342 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
8344 }
8345 _res = NULL;
8346 done:
8347 p->level--;
8348 return _res;
8349 }
8350
8351 // literal_expr:
8352 // | signed_number !('+' | '-')
8353 // | complex_number
8354 // | strings
8355 // | 'None'
8356 // | 'True'
8357 // | 'False'
8358 static expr_ty
literal_expr_rule(Parser * p)8359 literal_expr_rule(Parser *p)
8360 {
8361 if (p->level++ == MAXSTACK) {
8362 p->error_indicator = 1;
8363 PyErr_NoMemory();
8364 }
8365 if (p->error_indicator) {
8366 p->level--;
8367 return NULL;
8368 }
8369 expr_ty _res = NULL;
8370 int _mark = p->mark;
8371 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8372 p->error_indicator = 1;
8373 p->level--;
8374 return NULL;
8375 }
8376 int _start_lineno = p->tokens[_mark]->lineno;
8377 UNUSED(_start_lineno); // Only used by EXTRA macro
8378 int _start_col_offset = p->tokens[_mark]->col_offset;
8379 UNUSED(_start_col_offset); // Only used by EXTRA macro
8380 { // signed_number !('+' | '-')
8381 if (p->error_indicator) {
8382 p->level--;
8383 return NULL;
8384 }
8385 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
8386 expr_ty signed_number_var;
8387 if (
8388 (signed_number_var = signed_number_rule(p)) // signed_number
8389 &&
8390 _PyPegen_lookahead(0, _tmp_68_rule, p)
8391 )
8392 {
8393 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
8394 _res = signed_number_var;
8395 goto done;
8396 }
8397 p->mark = _mark;
8398 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
8399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
8400 }
8401 { // complex_number
8402 if (p->error_indicator) {
8403 p->level--;
8404 return NULL;
8405 }
8406 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
8407 expr_ty complex_number_var;
8408 if (
8409 (complex_number_var = complex_number_rule(p)) // complex_number
8410 )
8411 {
8412 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
8413 _res = complex_number_var;
8414 goto done;
8415 }
8416 p->mark = _mark;
8417 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
8418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
8419 }
8420 { // strings
8421 if (p->error_indicator) {
8422 p->level--;
8423 return NULL;
8424 }
8425 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
8426 expr_ty strings_var;
8427 if (
8428 (strings_var = strings_rule(p)) // strings
8429 )
8430 {
8431 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
8432 _res = strings_var;
8433 goto done;
8434 }
8435 p->mark = _mark;
8436 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
8437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
8438 }
8439 { // 'None'
8440 if (p->error_indicator) {
8441 p->level--;
8442 return NULL;
8443 }
8444 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
8445 Token * _keyword;
8446 if (
8447 (_keyword = _PyPegen_expect_token(p, 601)) // token='None'
8448 )
8449 {
8450 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
8451 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8452 if (_token == NULL) {
8453 p->level--;
8454 return NULL;
8455 }
8456 int _end_lineno = _token->end_lineno;
8457 UNUSED(_end_lineno); // Only used by EXTRA macro
8458 int _end_col_offset = _token->end_col_offset;
8459 UNUSED(_end_col_offset); // Only used by EXTRA macro
8460 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
8461 if (_res == NULL && PyErr_Occurred()) {
8462 p->error_indicator = 1;
8463 p->level--;
8464 return NULL;
8465 }
8466 goto done;
8467 }
8468 p->mark = _mark;
8469 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
8470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
8471 }
8472 { // 'True'
8473 if (p->error_indicator) {
8474 p->level--;
8475 return NULL;
8476 }
8477 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
8478 Token * _keyword;
8479 if (
8480 (_keyword = _PyPegen_expect_token(p, 600)) // token='True'
8481 )
8482 {
8483 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
8484 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8485 if (_token == NULL) {
8486 p->level--;
8487 return NULL;
8488 }
8489 int _end_lineno = _token->end_lineno;
8490 UNUSED(_end_lineno); // Only used by EXTRA macro
8491 int _end_col_offset = _token->end_col_offset;
8492 UNUSED(_end_col_offset); // Only used by EXTRA macro
8493 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
8494 if (_res == NULL && PyErr_Occurred()) {
8495 p->error_indicator = 1;
8496 p->level--;
8497 return NULL;
8498 }
8499 goto done;
8500 }
8501 p->mark = _mark;
8502 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
8503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
8504 }
8505 { // 'False'
8506 if (p->error_indicator) {
8507 p->level--;
8508 return NULL;
8509 }
8510 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
8511 Token * _keyword;
8512 if (
8513 (_keyword = _PyPegen_expect_token(p, 602)) // token='False'
8514 )
8515 {
8516 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
8517 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8518 if (_token == NULL) {
8519 p->level--;
8520 return NULL;
8521 }
8522 int _end_lineno = _token->end_lineno;
8523 UNUSED(_end_lineno); // Only used by EXTRA macro
8524 int _end_col_offset = _token->end_col_offset;
8525 UNUSED(_end_col_offset); // Only used by EXTRA macro
8526 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
8527 if (_res == NULL && PyErr_Occurred()) {
8528 p->error_indicator = 1;
8529 p->level--;
8530 return NULL;
8531 }
8532 goto done;
8533 }
8534 p->mark = _mark;
8535 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
8536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
8537 }
8538 _res = NULL;
8539 done:
8540 p->level--;
8541 return _res;
8542 }
8543
8544 // complex_number:
8545 // | signed_real_number '+' imaginary_number
8546 // | signed_real_number '-' imaginary_number
8547 static expr_ty
complex_number_rule(Parser * p)8548 complex_number_rule(Parser *p)
8549 {
8550 if (p->level++ == MAXSTACK) {
8551 p->error_indicator = 1;
8552 PyErr_NoMemory();
8553 }
8554 if (p->error_indicator) {
8555 p->level--;
8556 return NULL;
8557 }
8558 expr_ty _res = NULL;
8559 int _mark = p->mark;
8560 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8561 p->error_indicator = 1;
8562 p->level--;
8563 return NULL;
8564 }
8565 int _start_lineno = p->tokens[_mark]->lineno;
8566 UNUSED(_start_lineno); // Only used by EXTRA macro
8567 int _start_col_offset = p->tokens[_mark]->col_offset;
8568 UNUSED(_start_col_offset); // Only used by EXTRA macro
8569 { // signed_real_number '+' imaginary_number
8570 if (p->error_indicator) {
8571 p->level--;
8572 return NULL;
8573 }
8574 D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_real_number '+' imaginary_number"));
8575 Token * _literal;
8576 expr_ty imag;
8577 expr_ty real;
8578 if (
8579 (real = signed_real_number_rule(p)) // signed_real_number
8580 &&
8581 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
8582 &&
8583 (imag = imaginary_number_rule(p)) // imaginary_number
8584 )
8585 {
8586 D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_real_number '+' imaginary_number"));
8587 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8588 if (_token == NULL) {
8589 p->level--;
8590 return NULL;
8591 }
8592 int _end_lineno = _token->end_lineno;
8593 UNUSED(_end_lineno); // Only used by EXTRA macro
8594 int _end_col_offset = _token->end_col_offset;
8595 UNUSED(_end_col_offset); // Only used by EXTRA macro
8596 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
8597 if (_res == NULL && PyErr_Occurred()) {
8598 p->error_indicator = 1;
8599 p->level--;
8600 return NULL;
8601 }
8602 goto done;
8603 }
8604 p->mark = _mark;
8605 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
8606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '+' imaginary_number"));
8607 }
8608 { // signed_real_number '-' imaginary_number
8609 if (p->error_indicator) {
8610 p->level--;
8611 return NULL;
8612 }
8613 D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_real_number '-' imaginary_number"));
8614 Token * _literal;
8615 expr_ty imag;
8616 expr_ty real;
8617 if (
8618 (real = signed_real_number_rule(p)) // signed_real_number
8619 &&
8620 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
8621 &&
8622 (imag = imaginary_number_rule(p)) // imaginary_number
8623 )
8624 {
8625 D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_real_number '-' imaginary_number"));
8626 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8627 if (_token == NULL) {
8628 p->level--;
8629 return NULL;
8630 }
8631 int _end_lineno = _token->end_lineno;
8632 UNUSED(_end_lineno); // Only used by EXTRA macro
8633 int _end_col_offset = _token->end_col_offset;
8634 UNUSED(_end_col_offset); // Only used by EXTRA macro
8635 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
8636 if (_res == NULL && PyErr_Occurred()) {
8637 p->error_indicator = 1;
8638 p->level--;
8639 return NULL;
8640 }
8641 goto done;
8642 }
8643 p->mark = _mark;
8644 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
8645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '-' imaginary_number"));
8646 }
8647 _res = NULL;
8648 done:
8649 p->level--;
8650 return _res;
8651 }
8652
8653 // signed_number: NUMBER | '-' NUMBER
8654 static expr_ty
signed_number_rule(Parser * p)8655 signed_number_rule(Parser *p)
8656 {
8657 if (p->level++ == MAXSTACK) {
8658 p->error_indicator = 1;
8659 PyErr_NoMemory();
8660 }
8661 if (p->error_indicator) {
8662 p->level--;
8663 return NULL;
8664 }
8665 expr_ty _res = NULL;
8666 int _mark = p->mark;
8667 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8668 p->error_indicator = 1;
8669 p->level--;
8670 return NULL;
8671 }
8672 int _start_lineno = p->tokens[_mark]->lineno;
8673 UNUSED(_start_lineno); // Only used by EXTRA macro
8674 int _start_col_offset = p->tokens[_mark]->col_offset;
8675 UNUSED(_start_col_offset); // Only used by EXTRA macro
8676 { // NUMBER
8677 if (p->error_indicator) {
8678 p->level--;
8679 return NULL;
8680 }
8681 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
8682 expr_ty number_var;
8683 if (
8684 (number_var = _PyPegen_number_token(p)) // NUMBER
8685 )
8686 {
8687 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
8688 _res = number_var;
8689 goto done;
8690 }
8691 p->mark = _mark;
8692 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
8693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
8694 }
8695 { // '-' NUMBER
8696 if (p->error_indicator) {
8697 p->level--;
8698 return NULL;
8699 }
8700 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
8701 Token * _literal;
8702 expr_ty number;
8703 if (
8704 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
8705 &&
8706 (number = _PyPegen_number_token(p)) // NUMBER
8707 )
8708 {
8709 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
8710 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8711 if (_token == NULL) {
8712 p->level--;
8713 return NULL;
8714 }
8715 int _end_lineno = _token->end_lineno;
8716 UNUSED(_end_lineno); // Only used by EXTRA macro
8717 int _end_col_offset = _token->end_col_offset;
8718 UNUSED(_end_col_offset); // Only used by EXTRA macro
8719 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
8720 if (_res == NULL && PyErr_Occurred()) {
8721 p->error_indicator = 1;
8722 p->level--;
8723 return NULL;
8724 }
8725 goto done;
8726 }
8727 p->mark = _mark;
8728 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
8729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
8730 }
8731 _res = NULL;
8732 done:
8733 p->level--;
8734 return _res;
8735 }
8736
8737 // signed_real_number: real_number | '-' real_number
8738 static expr_ty
signed_real_number_rule(Parser * p)8739 signed_real_number_rule(Parser *p)
8740 {
8741 if (p->level++ == MAXSTACK) {
8742 p->error_indicator = 1;
8743 PyErr_NoMemory();
8744 }
8745 if (p->error_indicator) {
8746 p->level--;
8747 return NULL;
8748 }
8749 expr_ty _res = NULL;
8750 int _mark = p->mark;
8751 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8752 p->error_indicator = 1;
8753 p->level--;
8754 return NULL;
8755 }
8756 int _start_lineno = p->tokens[_mark]->lineno;
8757 UNUSED(_start_lineno); // Only used by EXTRA macro
8758 int _start_col_offset = p->tokens[_mark]->col_offset;
8759 UNUSED(_start_col_offset); // Only used by EXTRA macro
8760 { // real_number
8761 if (p->error_indicator) {
8762 p->level--;
8763 return NULL;
8764 }
8765 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "real_number"));
8766 expr_ty real_number_var;
8767 if (
8768 (real_number_var = real_number_rule(p)) // real_number
8769 )
8770 {
8771 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "real_number"));
8772 _res = real_number_var;
8773 goto done;
8774 }
8775 p->mark = _mark;
8776 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
8777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number"));
8778 }
8779 { // '-' real_number
8780 if (p->error_indicator) {
8781 p->level--;
8782 return NULL;
8783 }
8784 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
8785 Token * _literal;
8786 expr_ty real;
8787 if (
8788 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
8789 &&
8790 (real = real_number_rule(p)) // real_number
8791 )
8792 {
8793 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
8794 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8795 if (_token == NULL) {
8796 p->level--;
8797 return NULL;
8798 }
8799 int _end_lineno = _token->end_lineno;
8800 UNUSED(_end_lineno); // Only used by EXTRA macro
8801 int _end_col_offset = _token->end_col_offset;
8802 UNUSED(_end_col_offset); // Only used by EXTRA macro
8803 _res = _PyAST_UnaryOp ( USub , real , EXTRA );
8804 if (_res == NULL && PyErr_Occurred()) {
8805 p->error_indicator = 1;
8806 p->level--;
8807 return NULL;
8808 }
8809 goto done;
8810 }
8811 p->mark = _mark;
8812 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
8813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number"));
8814 }
8815 _res = NULL;
8816 done:
8817 p->level--;
8818 return _res;
8819 }
8820
8821 // real_number: NUMBER
8822 static expr_ty
real_number_rule(Parser * p)8823 real_number_rule(Parser *p)
8824 {
8825 if (p->level++ == MAXSTACK) {
8826 p->error_indicator = 1;
8827 PyErr_NoMemory();
8828 }
8829 if (p->error_indicator) {
8830 p->level--;
8831 return NULL;
8832 }
8833 expr_ty _res = NULL;
8834 int _mark = p->mark;
8835 { // NUMBER
8836 if (p->error_indicator) {
8837 p->level--;
8838 return NULL;
8839 }
8840 D(fprintf(stderr, "%*c> real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
8841 expr_ty real;
8842 if (
8843 (real = _PyPegen_number_token(p)) // NUMBER
8844 )
8845 {
8846 D(fprintf(stderr, "%*c+ real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
8847 _res = _PyPegen_ensure_real ( p , real );
8848 if (_res == NULL && PyErr_Occurred()) {
8849 p->error_indicator = 1;
8850 p->level--;
8851 return NULL;
8852 }
8853 goto done;
8854 }
8855 p->mark = _mark;
8856 D(fprintf(stderr, "%*c%s real_number[%d-%d]: %s failed!\n", p->level, ' ',
8857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
8858 }
8859 _res = NULL;
8860 done:
8861 p->level--;
8862 return _res;
8863 }
8864
8865 // imaginary_number: NUMBER
8866 static expr_ty
imaginary_number_rule(Parser * p)8867 imaginary_number_rule(Parser *p)
8868 {
8869 if (p->level++ == MAXSTACK) {
8870 p->error_indicator = 1;
8871 PyErr_NoMemory();
8872 }
8873 if (p->error_indicator) {
8874 p->level--;
8875 return NULL;
8876 }
8877 expr_ty _res = NULL;
8878 int _mark = p->mark;
8879 { // NUMBER
8880 if (p->error_indicator) {
8881 p->level--;
8882 return NULL;
8883 }
8884 D(fprintf(stderr, "%*c> imaginary_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
8885 expr_ty imag;
8886 if (
8887 (imag = _PyPegen_number_token(p)) // NUMBER
8888 )
8889 {
8890 D(fprintf(stderr, "%*c+ imaginary_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
8891 _res = _PyPegen_ensure_imaginary ( p , imag );
8892 if (_res == NULL && PyErr_Occurred()) {
8893 p->error_indicator = 1;
8894 p->level--;
8895 return NULL;
8896 }
8897 goto done;
8898 }
8899 p->mark = _mark;
8900 D(fprintf(stderr, "%*c%s imaginary_number[%d-%d]: %s failed!\n", p->level, ' ',
8901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
8902 }
8903 _res = NULL;
8904 done:
8905 p->level--;
8906 return _res;
8907 }
8908
8909 // capture_pattern: pattern_capture_target
8910 static pattern_ty
capture_pattern_rule(Parser * p)8911 capture_pattern_rule(Parser *p)
8912 {
8913 if (p->level++ == MAXSTACK) {
8914 p->error_indicator = 1;
8915 PyErr_NoMemory();
8916 }
8917 if (p->error_indicator) {
8918 p->level--;
8919 return NULL;
8920 }
8921 pattern_ty _res = NULL;
8922 int _mark = p->mark;
8923 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8924 p->error_indicator = 1;
8925 p->level--;
8926 return NULL;
8927 }
8928 int _start_lineno = p->tokens[_mark]->lineno;
8929 UNUSED(_start_lineno); // Only used by EXTRA macro
8930 int _start_col_offset = p->tokens[_mark]->col_offset;
8931 UNUSED(_start_col_offset); // Only used by EXTRA macro
8932 { // pattern_capture_target
8933 if (p->error_indicator) {
8934 p->level--;
8935 return NULL;
8936 }
8937 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
8938 expr_ty target;
8939 if (
8940 (target = pattern_capture_target_rule(p)) // pattern_capture_target
8941 )
8942 {
8943 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
8944 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8945 if (_token == NULL) {
8946 p->level--;
8947 return NULL;
8948 }
8949 int _end_lineno = _token->end_lineno;
8950 UNUSED(_end_lineno); // Only used by EXTRA macro
8951 int _end_col_offset = _token->end_col_offset;
8952 UNUSED(_end_col_offset); // Only used by EXTRA macro
8953 _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA );
8954 if (_res == NULL && PyErr_Occurred()) {
8955 p->error_indicator = 1;
8956 p->level--;
8957 return NULL;
8958 }
8959 goto done;
8960 }
8961 p->mark = _mark;
8962 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern_capture_target"));
8964 }
8965 _res = NULL;
8966 done:
8967 p->level--;
8968 return _res;
8969 }
8970
8971 // pattern_capture_target: !"_" NAME !('.' | '(' | '=')
8972 static expr_ty
pattern_capture_target_rule(Parser * p)8973 pattern_capture_target_rule(Parser *p)
8974 {
8975 if (p->level++ == MAXSTACK) {
8976 p->error_indicator = 1;
8977 PyErr_NoMemory();
8978 }
8979 if (p->error_indicator) {
8980 p->level--;
8981 return NULL;
8982 }
8983 expr_ty _res = NULL;
8984 int _mark = p->mark;
8985 { // !"_" NAME !('.' | '(' | '=')
8986 if (p->error_indicator) {
8987 p->level--;
8988 return NULL;
8989 }
8990 D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
8991 expr_ty name;
8992 if (
8993 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
8994 &&
8995 (name = _PyPegen_name_token(p)) // NAME
8996 &&
8997 _PyPegen_lookahead(0, _tmp_69_rule, p)
8998 )
8999 {
9000 D(fprintf(stderr, "%*c+ pattern_capture_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
9001 _res = _PyPegen_set_expr_context ( p , name , Store );
9002 if (_res == NULL && PyErr_Occurred()) {
9003 p->error_indicator = 1;
9004 p->level--;
9005 return NULL;
9006 }
9007 goto done;
9008 }
9009 p->mark = _mark;
9010 D(fprintf(stderr, "%*c%s pattern_capture_target[%d-%d]: %s failed!\n", p->level, ' ',
9011 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
9012 }
9013 _res = NULL;
9014 done:
9015 p->level--;
9016 return _res;
9017 }
9018
9019 // wildcard_pattern: "_"
9020 static pattern_ty
wildcard_pattern_rule(Parser * p)9021 wildcard_pattern_rule(Parser *p)
9022 {
9023 if (p->level++ == MAXSTACK) {
9024 p->error_indicator = 1;
9025 PyErr_NoMemory();
9026 }
9027 if (p->error_indicator) {
9028 p->level--;
9029 return NULL;
9030 }
9031 pattern_ty _res = NULL;
9032 int _mark = p->mark;
9033 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9034 p->error_indicator = 1;
9035 p->level--;
9036 return NULL;
9037 }
9038 int _start_lineno = p->tokens[_mark]->lineno;
9039 UNUSED(_start_lineno); // Only used by EXTRA macro
9040 int _start_col_offset = p->tokens[_mark]->col_offset;
9041 UNUSED(_start_col_offset); // Only used by EXTRA macro
9042 { // "_"
9043 if (p->error_indicator) {
9044 p->level--;
9045 return NULL;
9046 }
9047 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
9048 expr_ty _keyword;
9049 if (
9050 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
9051 )
9052 {
9053 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
9054 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9055 if (_token == NULL) {
9056 p->level--;
9057 return NULL;
9058 }
9059 int _end_lineno = _token->end_lineno;
9060 UNUSED(_end_lineno); // Only used by EXTRA macro
9061 int _end_col_offset = _token->end_col_offset;
9062 UNUSED(_end_col_offset); // Only used by EXTRA macro
9063 _res = _PyAST_MatchAs ( NULL , NULL , EXTRA );
9064 if (_res == NULL && PyErr_Occurred()) {
9065 p->error_indicator = 1;
9066 p->level--;
9067 return NULL;
9068 }
9069 goto done;
9070 }
9071 p->mark = _mark;
9072 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
9074 }
9075 _res = NULL;
9076 done:
9077 p->level--;
9078 return _res;
9079 }
9080
9081 // value_pattern: attr !('.' | '(' | '=')
9082 static pattern_ty
value_pattern_rule(Parser * p)9083 value_pattern_rule(Parser *p)
9084 {
9085 if (p->level++ == MAXSTACK) {
9086 p->error_indicator = 1;
9087 PyErr_NoMemory();
9088 }
9089 if (p->error_indicator) {
9090 p->level--;
9091 return NULL;
9092 }
9093 pattern_ty _res = NULL;
9094 int _mark = p->mark;
9095 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9096 p->error_indicator = 1;
9097 p->level--;
9098 return NULL;
9099 }
9100 int _start_lineno = p->tokens[_mark]->lineno;
9101 UNUSED(_start_lineno); // Only used by EXTRA macro
9102 int _start_col_offset = p->tokens[_mark]->col_offset;
9103 UNUSED(_start_col_offset); // Only used by EXTRA macro
9104 { // attr !('.' | '(' | '=')
9105 if (p->error_indicator) {
9106 p->level--;
9107 return NULL;
9108 }
9109 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
9110 expr_ty attr;
9111 if (
9112 (attr = attr_rule(p)) // attr
9113 &&
9114 _PyPegen_lookahead(0, _tmp_70_rule, p)
9115 )
9116 {
9117 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
9118 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9119 if (_token == NULL) {
9120 p->level--;
9121 return NULL;
9122 }
9123 int _end_lineno = _token->end_lineno;
9124 UNUSED(_end_lineno); // Only used by EXTRA macro
9125 int _end_col_offset = _token->end_col_offset;
9126 UNUSED(_end_col_offset); // Only used by EXTRA macro
9127 _res = _PyAST_MatchValue ( attr , EXTRA );
9128 if (_res == NULL && PyErr_Occurred()) {
9129 p->error_indicator = 1;
9130 p->level--;
9131 return NULL;
9132 }
9133 goto done;
9134 }
9135 p->mark = _mark;
9136 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
9138 }
9139 _res = NULL;
9140 done:
9141 p->level--;
9142 return _res;
9143 }
9144
9145 // Left-recursive
9146 // attr: name_or_attr '.' NAME
9147 static expr_ty attr_raw(Parser *);
9148 static expr_ty
attr_rule(Parser * p)9149 attr_rule(Parser *p)
9150 {
9151 if (p->level++ == MAXSTACK) {
9152 p->error_indicator = 1;
9153 PyErr_NoMemory();
9154 }
9155 expr_ty _res = NULL;
9156 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
9157 p->level--;
9158 return _res;
9159 }
9160 int _mark = p->mark;
9161 int _resmark = p->mark;
9162 while (1) {
9163 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
9164 if (tmpvar_1) {
9165 p->level--;
9166 return _res;
9167 }
9168 p->mark = _mark;
9169 void *_raw = attr_raw(p);
9170 if (p->error_indicator) {
9171 p->level--;
9172 return NULL;
9173 }
9174 if (_raw == NULL || p->mark <= _resmark)
9175 break;
9176 _resmark = p->mark;
9177 _res = _raw;
9178 }
9179 p->mark = _resmark;
9180 p->level--;
9181 return _res;
9182 }
9183 static expr_ty
attr_raw(Parser * p)9184 attr_raw(Parser *p)
9185 {
9186 if (p->level++ == MAXSTACK) {
9187 p->error_indicator = 1;
9188 PyErr_NoMemory();
9189 }
9190 if (p->error_indicator) {
9191 p->level--;
9192 return NULL;
9193 }
9194 expr_ty _res = NULL;
9195 int _mark = p->mark;
9196 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9197 p->error_indicator = 1;
9198 p->level--;
9199 return NULL;
9200 }
9201 int _start_lineno = p->tokens[_mark]->lineno;
9202 UNUSED(_start_lineno); // Only used by EXTRA macro
9203 int _start_col_offset = p->tokens[_mark]->col_offset;
9204 UNUSED(_start_col_offset); // Only used by EXTRA macro
9205 { // name_or_attr '.' NAME
9206 if (p->error_indicator) {
9207 p->level--;
9208 return NULL;
9209 }
9210 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
9211 Token * _literal;
9212 expr_ty attr;
9213 expr_ty value;
9214 if (
9215 (value = name_or_attr_rule(p)) // name_or_attr
9216 &&
9217 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
9218 &&
9219 (attr = _PyPegen_name_token(p)) // NAME
9220 )
9221 {
9222 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
9223 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9224 if (_token == NULL) {
9225 p->level--;
9226 return NULL;
9227 }
9228 int _end_lineno = _token->end_lineno;
9229 UNUSED(_end_lineno); // Only used by EXTRA macro
9230 int _end_col_offset = _token->end_col_offset;
9231 UNUSED(_end_col_offset); // Only used by EXTRA macro
9232 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
9233 if (_res == NULL && PyErr_Occurred()) {
9234 p->error_indicator = 1;
9235 p->level--;
9236 return NULL;
9237 }
9238 goto done;
9239 }
9240 p->mark = _mark;
9241 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
9242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
9243 }
9244 _res = NULL;
9245 done:
9246 p->level--;
9247 return _res;
9248 }
9249
9250 // Left-recursive
9251 // name_or_attr: attr | NAME
9252 static expr_ty
name_or_attr_rule(Parser * p)9253 name_or_attr_rule(Parser *p)
9254 {
9255 if (p->level++ == MAXSTACK) {
9256 p->error_indicator = 1;
9257 PyErr_NoMemory();
9258 }
9259 if (p->error_indicator) {
9260 p->level--;
9261 return NULL;
9262 }
9263 expr_ty _res = NULL;
9264 int _mark = p->mark;
9265 { // attr
9266 if (p->error_indicator) {
9267 p->level--;
9268 return NULL;
9269 }
9270 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
9271 expr_ty attr_var;
9272 if (
9273 (attr_var = attr_rule(p)) // attr
9274 )
9275 {
9276 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
9277 _res = attr_var;
9278 goto done;
9279 }
9280 p->mark = _mark;
9281 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
9282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
9283 }
9284 { // NAME
9285 if (p->error_indicator) {
9286 p->level--;
9287 return NULL;
9288 }
9289 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
9290 expr_ty name_var;
9291 if (
9292 (name_var = _PyPegen_name_token(p)) // NAME
9293 )
9294 {
9295 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
9296 _res = name_var;
9297 goto done;
9298 }
9299 p->mark = _mark;
9300 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
9301 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
9302 }
9303 _res = NULL;
9304 done:
9305 p->level--;
9306 return _res;
9307 }
9308
9309 // group_pattern: '(' pattern ')'
9310 static pattern_ty
group_pattern_rule(Parser * p)9311 group_pattern_rule(Parser *p)
9312 {
9313 if (p->level++ == MAXSTACK) {
9314 p->error_indicator = 1;
9315 PyErr_NoMemory();
9316 }
9317 if (p->error_indicator) {
9318 p->level--;
9319 return NULL;
9320 }
9321 pattern_ty _res = NULL;
9322 int _mark = p->mark;
9323 { // '(' pattern ')'
9324 if (p->error_indicator) {
9325 p->level--;
9326 return NULL;
9327 }
9328 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
9329 Token * _literal;
9330 Token * _literal_1;
9331 pattern_ty pattern;
9332 if (
9333 (_literal = _PyPegen_expect_token(p, 7)) // token='('
9334 &&
9335 (pattern = pattern_rule(p)) // pattern
9336 &&
9337 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
9338 )
9339 {
9340 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
9341 _res = pattern;
9342 if (_res == NULL && PyErr_Occurred()) {
9343 p->error_indicator = 1;
9344 p->level--;
9345 return NULL;
9346 }
9347 goto done;
9348 }
9349 p->mark = _mark;
9350 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
9352 }
9353 _res = NULL;
9354 done:
9355 p->level--;
9356 return _res;
9357 }
9358
9359 // sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
9360 static pattern_ty
sequence_pattern_rule(Parser * p)9361 sequence_pattern_rule(Parser *p)
9362 {
9363 if (p->level++ == MAXSTACK) {
9364 p->error_indicator = 1;
9365 PyErr_NoMemory();
9366 }
9367 if (p->error_indicator) {
9368 p->level--;
9369 return NULL;
9370 }
9371 pattern_ty _res = NULL;
9372 int _mark = p->mark;
9373 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9374 p->error_indicator = 1;
9375 p->level--;
9376 return NULL;
9377 }
9378 int _start_lineno = p->tokens[_mark]->lineno;
9379 UNUSED(_start_lineno); // Only used by EXTRA macro
9380 int _start_col_offset = p->tokens[_mark]->col_offset;
9381 UNUSED(_start_col_offset); // Only used by EXTRA macro
9382 { // '[' maybe_sequence_pattern? ']'
9383 if (p->error_indicator) {
9384 p->level--;
9385 return NULL;
9386 }
9387 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
9388 Token * _literal;
9389 Token * _literal_1;
9390 void *patterns;
9391 if (
9392 (_literal = _PyPegen_expect_token(p, 9)) // token='['
9393 &&
9394 (patterns = maybe_sequence_pattern_rule(p), !p->error_indicator) // maybe_sequence_pattern?
9395 &&
9396 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
9397 )
9398 {
9399 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
9400 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9401 if (_token == NULL) {
9402 p->level--;
9403 return NULL;
9404 }
9405 int _end_lineno = _token->end_lineno;
9406 UNUSED(_end_lineno); // Only used by EXTRA macro
9407 int _end_col_offset = _token->end_col_offset;
9408 UNUSED(_end_col_offset); // Only used by EXTRA macro
9409 _res = _PyAST_MatchSequence ( patterns , EXTRA );
9410 if (_res == NULL && PyErr_Occurred()) {
9411 p->error_indicator = 1;
9412 p->level--;
9413 return NULL;
9414 }
9415 goto done;
9416 }
9417 p->mark = _mark;
9418 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
9420 }
9421 { // '(' open_sequence_pattern? ')'
9422 if (p->error_indicator) {
9423 p->level--;
9424 return NULL;
9425 }
9426 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
9427 Token * _literal;
9428 Token * _literal_1;
9429 void *patterns;
9430 if (
9431 (_literal = _PyPegen_expect_token(p, 7)) // token='('
9432 &&
9433 (patterns = open_sequence_pattern_rule(p), !p->error_indicator) // open_sequence_pattern?
9434 &&
9435 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
9436 )
9437 {
9438 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
9439 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9440 if (_token == NULL) {
9441 p->level--;
9442 return NULL;
9443 }
9444 int _end_lineno = _token->end_lineno;
9445 UNUSED(_end_lineno); // Only used by EXTRA macro
9446 int _end_col_offset = _token->end_col_offset;
9447 UNUSED(_end_col_offset); // Only used by EXTRA macro
9448 _res = _PyAST_MatchSequence ( patterns , EXTRA );
9449 if (_res == NULL && PyErr_Occurred()) {
9450 p->error_indicator = 1;
9451 p->level--;
9452 return NULL;
9453 }
9454 goto done;
9455 }
9456 p->mark = _mark;
9457 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
9459 }
9460 _res = NULL;
9461 done:
9462 p->level--;
9463 return _res;
9464 }
9465
9466 // open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
9467 static asdl_seq*
open_sequence_pattern_rule(Parser * p)9468 open_sequence_pattern_rule(Parser *p)
9469 {
9470 if (p->level++ == MAXSTACK) {
9471 p->error_indicator = 1;
9472 PyErr_NoMemory();
9473 }
9474 if (p->error_indicator) {
9475 p->level--;
9476 return NULL;
9477 }
9478 asdl_seq* _res = NULL;
9479 int _mark = p->mark;
9480 { // maybe_star_pattern ',' maybe_sequence_pattern?
9481 if (p->error_indicator) {
9482 p->level--;
9483 return NULL;
9484 }
9485 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
9486 Token * _literal;
9487 pattern_ty pattern;
9488 void *patterns;
9489 if (
9490 (pattern = maybe_star_pattern_rule(p)) // maybe_star_pattern
9491 &&
9492 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9493 &&
9494 (patterns = maybe_sequence_pattern_rule(p), !p->error_indicator) // maybe_sequence_pattern?
9495 )
9496 {
9497 D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
9498 _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns );
9499 if (_res == NULL && PyErr_Occurred()) {
9500 p->error_indicator = 1;
9501 p->level--;
9502 return NULL;
9503 }
9504 goto done;
9505 }
9506 p->mark = _mark;
9507 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
9509 }
9510 _res = NULL;
9511 done:
9512 p->level--;
9513 return _res;
9514 }
9515
9516 // maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
9517 static asdl_seq*
maybe_sequence_pattern_rule(Parser * p)9518 maybe_sequence_pattern_rule(Parser *p)
9519 {
9520 if (p->level++ == MAXSTACK) {
9521 p->error_indicator = 1;
9522 PyErr_NoMemory();
9523 }
9524 if (p->error_indicator) {
9525 p->level--;
9526 return NULL;
9527 }
9528 asdl_seq* _res = NULL;
9529 int _mark = p->mark;
9530 { // ','.maybe_star_pattern+ ','?
9531 if (p->error_indicator) {
9532 p->level--;
9533 return NULL;
9534 }
9535 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
9536 void *_opt_var;
9537 UNUSED(_opt_var); // Silence compiler warnings
9538 asdl_seq * patterns;
9539 if (
9540 (patterns = _gather_71_rule(p)) // ','.maybe_star_pattern+
9541 &&
9542 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
9543 )
9544 {
9545 D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
9546 _res = patterns;
9547 if (_res == NULL && PyErr_Occurred()) {
9548 p->error_indicator = 1;
9549 p->level--;
9550 return NULL;
9551 }
9552 goto done;
9553 }
9554 p->mark = _mark;
9555 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
9557 }
9558 _res = NULL;
9559 done:
9560 p->level--;
9561 return _res;
9562 }
9563
9564 // maybe_star_pattern: star_pattern | pattern
9565 static pattern_ty
maybe_star_pattern_rule(Parser * p)9566 maybe_star_pattern_rule(Parser *p)
9567 {
9568 if (p->level++ == MAXSTACK) {
9569 p->error_indicator = 1;
9570 PyErr_NoMemory();
9571 }
9572 if (p->error_indicator) {
9573 p->level--;
9574 return NULL;
9575 }
9576 pattern_ty _res = NULL;
9577 int _mark = p->mark;
9578 { // star_pattern
9579 if (p->error_indicator) {
9580 p->level--;
9581 return NULL;
9582 }
9583 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_pattern"));
9584 pattern_ty star_pattern_var;
9585 if (
9586 (star_pattern_var = star_pattern_rule(p)) // star_pattern
9587 )
9588 {
9589 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
9590 _res = star_pattern_var;
9591 goto done;
9592 }
9593 p->mark = _mark;
9594 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
9596 }
9597 { // pattern
9598 if (p->error_indicator) {
9599 p->level--;
9600 return NULL;
9601 }
9602 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
9603 pattern_ty pattern_var;
9604 if (
9605 (pattern_var = pattern_rule(p)) // pattern
9606 )
9607 {
9608 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
9609 _res = pattern_var;
9610 goto done;
9611 }
9612 p->mark = _mark;
9613 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
9615 }
9616 _res = NULL;
9617 done:
9618 p->level--;
9619 return _res;
9620 }
9621
9622 // star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
9623 static pattern_ty
star_pattern_rule(Parser * p)9624 star_pattern_rule(Parser *p)
9625 {
9626 if (p->level++ == MAXSTACK) {
9627 p->error_indicator = 1;
9628 PyErr_NoMemory();
9629 }
9630 if (p->error_indicator) {
9631 p->level--;
9632 return NULL;
9633 }
9634 pattern_ty _res = NULL;
9635 if (_PyPegen_is_memoized(p, star_pattern_type, &_res)) {
9636 p->level--;
9637 return _res;
9638 }
9639 int _mark = p->mark;
9640 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9641 p->error_indicator = 1;
9642 p->level--;
9643 return NULL;
9644 }
9645 int _start_lineno = p->tokens[_mark]->lineno;
9646 UNUSED(_start_lineno); // Only used by EXTRA macro
9647 int _start_col_offset = p->tokens[_mark]->col_offset;
9648 UNUSED(_start_col_offset); // Only used by EXTRA macro
9649 { // '*' pattern_capture_target
9650 if (p->error_indicator) {
9651 p->level--;
9652 return NULL;
9653 }
9654 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' pattern_capture_target"));
9655 Token * _literal;
9656 expr_ty target;
9657 if (
9658 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9659 &&
9660 (target = pattern_capture_target_rule(p)) // pattern_capture_target
9661 )
9662 {
9663 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' pattern_capture_target"));
9664 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9665 if (_token == NULL) {
9666 p->level--;
9667 return NULL;
9668 }
9669 int _end_lineno = _token->end_lineno;
9670 UNUSED(_end_lineno); // Only used by EXTRA macro
9671 int _end_col_offset = _token->end_col_offset;
9672 UNUSED(_end_col_offset); // Only used by EXTRA macro
9673 _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
9674 if (_res == NULL && PyErr_Occurred()) {
9675 p->error_indicator = 1;
9676 p->level--;
9677 return NULL;
9678 }
9679 goto done;
9680 }
9681 p->mark = _mark;
9682 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target"));
9684 }
9685 { // '*' wildcard_pattern
9686 if (p->error_indicator) {
9687 p->level--;
9688 return NULL;
9689 }
9690 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
9691 Token * _literal;
9692 pattern_ty wildcard_pattern_var;
9693 if (
9694 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9695 &&
9696 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
9697 )
9698 {
9699 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
9700 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9701 if (_token == NULL) {
9702 p->level--;
9703 return NULL;
9704 }
9705 int _end_lineno = _token->end_lineno;
9706 UNUSED(_end_lineno); // Only used by EXTRA macro
9707 int _end_col_offset = _token->end_col_offset;
9708 UNUSED(_end_col_offset); // Only used by EXTRA macro
9709 _res = _PyAST_MatchStar ( NULL , EXTRA );
9710 if (_res == NULL && PyErr_Occurred()) {
9711 p->error_indicator = 1;
9712 p->level--;
9713 return NULL;
9714 }
9715 goto done;
9716 }
9717 p->mark = _mark;
9718 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern"));
9720 }
9721 _res = NULL;
9722 done:
9723 _PyPegen_insert_memo(p, _mark, star_pattern_type, _res);
9724 p->level--;
9725 return _res;
9726 }
9727
9728 // mapping_pattern:
9729 // | '{' '}'
9730 // | '{' double_star_pattern ','? '}'
9731 // | '{' items_pattern ',' double_star_pattern ','? '}'
9732 // | '{' items_pattern ','? '}'
9733 static pattern_ty
mapping_pattern_rule(Parser * p)9734 mapping_pattern_rule(Parser *p)
9735 {
9736 if (p->level++ == MAXSTACK) {
9737 p->error_indicator = 1;
9738 PyErr_NoMemory();
9739 }
9740 if (p->error_indicator) {
9741 p->level--;
9742 return NULL;
9743 }
9744 pattern_ty _res = NULL;
9745 int _mark = p->mark;
9746 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9747 p->error_indicator = 1;
9748 p->level--;
9749 return NULL;
9750 }
9751 int _start_lineno = p->tokens[_mark]->lineno;
9752 UNUSED(_start_lineno); // Only used by EXTRA macro
9753 int _start_col_offset = p->tokens[_mark]->col_offset;
9754 UNUSED(_start_col_offset); // Only used by EXTRA macro
9755 { // '{' '}'
9756 if (p->error_indicator) {
9757 p->level--;
9758 return NULL;
9759 }
9760 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
9761 Token * _literal;
9762 Token * _literal_1;
9763 if (
9764 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
9765 &&
9766 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
9767 )
9768 {
9769 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
9770 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9771 if (_token == NULL) {
9772 p->level--;
9773 return NULL;
9774 }
9775 int _end_lineno = _token->end_lineno;
9776 UNUSED(_end_lineno); // Only used by EXTRA macro
9777 int _end_col_offset = _token->end_col_offset;
9778 UNUSED(_end_col_offset); // Only used by EXTRA macro
9779 _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA );
9780 if (_res == NULL && PyErr_Occurred()) {
9781 p->error_indicator = 1;
9782 p->level--;
9783 return NULL;
9784 }
9785 goto done;
9786 }
9787 p->mark = _mark;
9788 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
9790 }
9791 { // '{' double_star_pattern ','? '}'
9792 if (p->error_indicator) {
9793 p->level--;
9794 return NULL;
9795 }
9796 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
9797 Token * _literal;
9798 Token * _literal_1;
9799 void *_opt_var;
9800 UNUSED(_opt_var); // Silence compiler warnings
9801 expr_ty rest;
9802 if (
9803 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
9804 &&
9805 (rest = double_star_pattern_rule(p)) // double_star_pattern
9806 &&
9807 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
9808 &&
9809 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
9810 )
9811 {
9812 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
9813 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9814 if (_token == NULL) {
9815 p->level--;
9816 return NULL;
9817 }
9818 int _end_lineno = _token->end_lineno;
9819 UNUSED(_end_lineno); // Only used by EXTRA macro
9820 int _end_col_offset = _token->end_col_offset;
9821 UNUSED(_end_col_offset); // Only used by EXTRA macro
9822 _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA );
9823 if (_res == NULL && PyErr_Occurred()) {
9824 p->error_indicator = 1;
9825 p->level--;
9826 return NULL;
9827 }
9828 goto done;
9829 }
9830 p->mark = _mark;
9831 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'"));
9833 }
9834 { // '{' items_pattern ',' double_star_pattern ','? '}'
9835 if (p->error_indicator) {
9836 p->level--;
9837 return NULL;
9838 }
9839 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
9840 Token * _literal;
9841 Token * _literal_1;
9842 Token * _literal_2;
9843 void *_opt_var;
9844 UNUSED(_opt_var); // Silence compiler warnings
9845 asdl_seq* items;
9846 expr_ty rest;
9847 if (
9848 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
9849 &&
9850 (items = items_pattern_rule(p)) // items_pattern
9851 &&
9852 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9853 &&
9854 (rest = double_star_pattern_rule(p)) // double_star_pattern
9855 &&
9856 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
9857 &&
9858 (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}'
9859 )
9860 {
9861 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
9862 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9863 if (_token == NULL) {
9864 p->level--;
9865 return NULL;
9866 }
9867 int _end_lineno = _token->end_lineno;
9868 UNUSED(_end_lineno); // Only used by EXTRA macro
9869 int _end_col_offset = _token->end_col_offset;
9870 UNUSED(_end_col_offset); // Only used by EXTRA macro
9871 _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 );
9872 if (_res == NULL && PyErr_Occurred()) {
9873 p->error_indicator = 1;
9874 p->level--;
9875 return NULL;
9876 }
9877 goto done;
9878 }
9879 p->mark = _mark;
9880 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
9882 }
9883 { // '{' items_pattern ','? '}'
9884 if (p->error_indicator) {
9885 p->level--;
9886 return NULL;
9887 }
9888 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
9889 Token * _literal;
9890 Token * _literal_1;
9891 void *_opt_var;
9892 UNUSED(_opt_var); // Silence compiler warnings
9893 asdl_seq* items;
9894 if (
9895 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
9896 &&
9897 (items = items_pattern_rule(p)) // items_pattern
9898 &&
9899 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
9900 &&
9901 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
9902 )
9903 {
9904 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
9905 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9906 if (_token == NULL) {
9907 p->level--;
9908 return NULL;
9909 }
9910 int _end_lineno = _token->end_lineno;
9911 UNUSED(_end_lineno); // Only used by EXTRA macro
9912 int _end_col_offset = _token->end_col_offset;
9913 UNUSED(_end_col_offset); // Only used by EXTRA macro
9914 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq* , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq* , _PyPegen_get_patterns ( p , items ) ) , NULL , EXTRA );
9915 if (_res == NULL && PyErr_Occurred()) {
9916 p->error_indicator = 1;
9917 p->level--;
9918 return NULL;
9919 }
9920 goto done;
9921 }
9922 p->mark = _mark;
9923 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'"));
9925 }
9926 _res = NULL;
9927 done:
9928 p->level--;
9929 return _res;
9930 }
9931
9932 // items_pattern: ','.key_value_pattern+
9933 static asdl_seq*
items_pattern_rule(Parser * p)9934 items_pattern_rule(Parser *p)
9935 {
9936 if (p->level++ == MAXSTACK) {
9937 p->error_indicator = 1;
9938 PyErr_NoMemory();
9939 }
9940 if (p->error_indicator) {
9941 p->level--;
9942 return NULL;
9943 }
9944 asdl_seq* _res = NULL;
9945 int _mark = p->mark;
9946 { // ','.key_value_pattern+
9947 if (p->error_indicator) {
9948 p->level--;
9949 return NULL;
9950 }
9951 D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+"));
9952 asdl_seq * _gather_73_var;
9953 if (
9954 (_gather_73_var = _gather_73_rule(p)) // ','.key_value_pattern+
9955 )
9956 {
9957 D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+"));
9958 _res = _gather_73_var;
9959 goto done;
9960 }
9961 p->mark = _mark;
9962 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
9963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+"));
9964 }
9965 _res = NULL;
9966 done:
9967 p->level--;
9968 return _res;
9969 }
9970
9971 // key_value_pattern: (literal_expr | attr) ':' pattern
9972 static KeyPatternPair*
key_value_pattern_rule(Parser * p)9973 key_value_pattern_rule(Parser *p)
9974 {
9975 if (p->level++ == MAXSTACK) {
9976 p->error_indicator = 1;
9977 PyErr_NoMemory();
9978 }
9979 if (p->error_indicator) {
9980 p->level--;
9981 return NULL;
9982 }
9983 KeyPatternPair* _res = NULL;
9984 int _mark = p->mark;
9985 { // (literal_expr | attr) ':' pattern
9986 if (p->error_indicator) {
9987 p->level--;
9988 return NULL;
9989 }
9990 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
9991 Token * _literal;
9992 void *key;
9993 pattern_ty pattern;
9994 if (
9995 (key = _tmp_75_rule(p)) // literal_expr | attr
9996 &&
9997 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9998 &&
9999 (pattern = pattern_rule(p)) // pattern
10000 )
10001 {
10002 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
10003 _res = _PyPegen_key_pattern_pair ( p , key , pattern );
10004 if (_res == NULL && PyErr_Occurred()) {
10005 p->error_indicator = 1;
10006 p->level--;
10007 return NULL;
10008 }
10009 goto done;
10010 }
10011 p->mark = _mark;
10012 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
10013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_expr | attr) ':' pattern"));
10014 }
10015 _res = NULL;
10016 done:
10017 p->level--;
10018 return _res;
10019 }
10020
10021 // double_star_pattern: '**' pattern_capture_target
10022 static expr_ty
double_star_pattern_rule(Parser * p)10023 double_star_pattern_rule(Parser *p)
10024 {
10025 if (p->level++ == MAXSTACK) {
10026 p->error_indicator = 1;
10027 PyErr_NoMemory();
10028 }
10029 if (p->error_indicator) {
10030 p->level--;
10031 return NULL;
10032 }
10033 expr_ty _res = NULL;
10034 int _mark = p->mark;
10035 { // '**' pattern_capture_target
10036 if (p->error_indicator) {
10037 p->level--;
10038 return NULL;
10039 }
10040 D(fprintf(stderr, "%*c> double_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
10041 Token * _literal;
10042 expr_ty target;
10043 if (
10044 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
10045 &&
10046 (target = pattern_capture_target_rule(p)) // pattern_capture_target
10047 )
10048 {
10049 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
10050 _res = target;
10051 if (_res == NULL && PyErr_Occurred()) {
10052 p->error_indicator = 1;
10053 p->level--;
10054 return NULL;
10055 }
10056 goto done;
10057 }
10058 p->mark = _mark;
10059 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
10060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' pattern_capture_target"));
10061 }
10062 _res = NULL;
10063 done:
10064 p->level--;
10065 return _res;
10066 }
10067
10068 // class_pattern:
10069 // | name_or_attr '(' ')'
10070 // | name_or_attr '(' positional_patterns ','? ')'
10071 // | name_or_attr '(' keyword_patterns ','? ')'
10072 // | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
10073 // | invalid_class_pattern
10074 static pattern_ty
class_pattern_rule(Parser * p)10075 class_pattern_rule(Parser *p)
10076 {
10077 if (p->level++ == MAXSTACK) {
10078 p->error_indicator = 1;
10079 PyErr_NoMemory();
10080 }
10081 if (p->error_indicator) {
10082 p->level--;
10083 return NULL;
10084 }
10085 pattern_ty _res = NULL;
10086 int _mark = p->mark;
10087 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10088 p->error_indicator = 1;
10089 p->level--;
10090 return NULL;
10091 }
10092 int _start_lineno = p->tokens[_mark]->lineno;
10093 UNUSED(_start_lineno); // Only used by EXTRA macro
10094 int _start_col_offset = p->tokens[_mark]->col_offset;
10095 UNUSED(_start_col_offset); // Only used by EXTRA macro
10096 { // name_or_attr '(' ')'
10097 if (p->error_indicator) {
10098 p->level--;
10099 return NULL;
10100 }
10101 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
10102 Token * _literal;
10103 Token * _literal_1;
10104 expr_ty cls;
10105 if (
10106 (cls = name_or_attr_rule(p)) // name_or_attr
10107 &&
10108 (_literal = _PyPegen_expect_token(p, 7)) // token='('
10109 &&
10110 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
10111 )
10112 {
10113 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
10114 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10115 if (_token == NULL) {
10116 p->level--;
10117 return NULL;
10118 }
10119 int _end_lineno = _token->end_lineno;
10120 UNUSED(_end_lineno); // Only used by EXTRA macro
10121 int _end_col_offset = _token->end_col_offset;
10122 UNUSED(_end_col_offset); // Only used by EXTRA macro
10123 _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA );
10124 if (_res == NULL && PyErr_Occurred()) {
10125 p->error_indicator = 1;
10126 p->level--;
10127 return NULL;
10128 }
10129 goto done;
10130 }
10131 p->mark = _mark;
10132 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
10133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
10134 }
10135 { // name_or_attr '(' positional_patterns ','? ')'
10136 if (p->error_indicator) {
10137 p->level--;
10138 return NULL;
10139 }
10140 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
10141 Token * _literal;
10142 Token * _literal_1;
10143 void *_opt_var;
10144 UNUSED(_opt_var); // Silence compiler warnings
10145 expr_ty cls;
10146 asdl_pattern_seq* patterns;
10147 if (
10148 (cls = name_or_attr_rule(p)) // name_or_attr
10149 &&
10150 (_literal = _PyPegen_expect_token(p, 7)) // token='('
10151 &&
10152 (patterns = positional_patterns_rule(p)) // positional_patterns
10153 &&
10154 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
10155 &&
10156 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
10157 )
10158 {
10159 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
10160 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10161 if (_token == NULL) {
10162 p->level--;
10163 return NULL;
10164 }
10165 int _end_lineno = _token->end_lineno;
10166 UNUSED(_end_lineno); // Only used by EXTRA macro
10167 int _end_col_offset = _token->end_col_offset;
10168 UNUSED(_end_col_offset); // Only used by EXTRA macro
10169 _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA );
10170 if (_res == NULL && PyErr_Occurred()) {
10171 p->error_indicator = 1;
10172 p->level--;
10173 return NULL;
10174 }
10175 goto done;
10176 }
10177 p->mark = _mark;
10178 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
10179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
10180 }
10181 { // name_or_attr '(' keyword_patterns ','? ')'
10182 if (p->error_indicator) {
10183 p->level--;
10184 return NULL;
10185 }
10186 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
10187 Token * _literal;
10188 Token * _literal_1;
10189 void *_opt_var;
10190 UNUSED(_opt_var); // Silence compiler warnings
10191 expr_ty cls;
10192 asdl_seq* keywords;
10193 if (
10194 (cls = name_or_attr_rule(p)) // name_or_attr
10195 &&
10196 (_literal = _PyPegen_expect_token(p, 7)) // token='('
10197 &&
10198 (keywords = keyword_patterns_rule(p)) // keyword_patterns
10199 &&
10200 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
10201 &&
10202 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
10203 )
10204 {
10205 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
10206 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10207 if (_token == NULL) {
10208 p->level--;
10209 return NULL;
10210 }
10211 int _end_lineno = _token->end_lineno;
10212 UNUSED(_end_lineno); // Only used by EXTRA macro
10213 int _end_col_offset = _token->end_col_offset;
10214 UNUSED(_end_col_offset); // Only used by EXTRA macro
10215 _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 );
10216 if (_res == NULL && PyErr_Occurred()) {
10217 p->error_indicator = 1;
10218 p->level--;
10219 return NULL;
10220 }
10221 goto done;
10222 }
10223 p->mark = _mark;
10224 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
10225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
10226 }
10227 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
10228 if (p->error_indicator) {
10229 p->level--;
10230 return NULL;
10231 }
10232 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
10233 Token * _literal;
10234 Token * _literal_1;
10235 Token * _literal_2;
10236 void *_opt_var;
10237 UNUSED(_opt_var); // Silence compiler warnings
10238 expr_ty cls;
10239 asdl_seq* keywords;
10240 asdl_pattern_seq* patterns;
10241 if (
10242 (cls = name_or_attr_rule(p)) // name_or_attr
10243 &&
10244 (_literal = _PyPegen_expect_token(p, 7)) // token='('
10245 &&
10246 (patterns = positional_patterns_rule(p)) // positional_patterns
10247 &&
10248 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10249 &&
10250 (keywords = keyword_patterns_rule(p)) // keyword_patterns
10251 &&
10252 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
10253 &&
10254 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
10255 )
10256 {
10257 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
10258 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10259 if (_token == NULL) {
10260 p->level--;
10261 return NULL;
10262 }
10263 int _end_lineno = _token->end_lineno;
10264 UNUSED(_end_lineno); // Only used by EXTRA macro
10265 int _end_col_offset = _token->end_col_offset;
10266 UNUSED(_end_col_offset); // Only used by EXTRA macro
10267 _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 );
10268 if (_res == NULL && PyErr_Occurred()) {
10269 p->error_indicator = 1;
10270 p->level--;
10271 return NULL;
10272 }
10273 goto done;
10274 }
10275 p->mark = _mark;
10276 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
10277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
10278 }
10279 if (p->call_invalid_rules) { // invalid_class_pattern
10280 if (p->error_indicator) {
10281 p->level--;
10282 return NULL;
10283 }
10284 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
10285 void *invalid_class_pattern_var;
10286 if (
10287 (invalid_class_pattern_var = invalid_class_pattern_rule(p)) // invalid_class_pattern
10288 )
10289 {
10290 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
10291 _res = invalid_class_pattern_var;
10292 goto done;
10293 }
10294 p->mark = _mark;
10295 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
10296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_pattern"));
10297 }
10298 _res = NULL;
10299 done:
10300 p->level--;
10301 return _res;
10302 }
10303
10304 // positional_patterns: ','.pattern+
10305 static asdl_pattern_seq*
positional_patterns_rule(Parser * p)10306 positional_patterns_rule(Parser *p)
10307 {
10308 if (p->level++ == MAXSTACK) {
10309 p->error_indicator = 1;
10310 PyErr_NoMemory();
10311 }
10312 if (p->error_indicator) {
10313 p->level--;
10314 return NULL;
10315 }
10316 asdl_pattern_seq* _res = NULL;
10317 int _mark = p->mark;
10318 { // ','.pattern+
10319 if (p->error_indicator) {
10320 p->level--;
10321 return NULL;
10322 }
10323 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
10324 asdl_pattern_seq* args;
10325 if (
10326 (args = (asdl_pattern_seq*)_gather_76_rule(p)) // ','.pattern+
10327 )
10328 {
10329 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
10330 _res = args;
10331 if (_res == NULL && PyErr_Occurred()) {
10332 p->error_indicator = 1;
10333 p->level--;
10334 return NULL;
10335 }
10336 goto done;
10337 }
10338 p->mark = _mark;
10339 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
10340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
10341 }
10342 _res = NULL;
10343 done:
10344 p->level--;
10345 return _res;
10346 }
10347
10348 // keyword_patterns: ','.keyword_pattern+
10349 static asdl_seq*
keyword_patterns_rule(Parser * p)10350 keyword_patterns_rule(Parser *p)
10351 {
10352 if (p->level++ == MAXSTACK) {
10353 p->error_indicator = 1;
10354 PyErr_NoMemory();
10355 }
10356 if (p->error_indicator) {
10357 p->level--;
10358 return NULL;
10359 }
10360 asdl_seq* _res = NULL;
10361 int _mark = p->mark;
10362 { // ','.keyword_pattern+
10363 if (p->error_indicator) {
10364 p->level--;
10365 return NULL;
10366 }
10367 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
10368 asdl_seq * _gather_78_var;
10369 if (
10370 (_gather_78_var = _gather_78_rule(p)) // ','.keyword_pattern+
10371 )
10372 {
10373 D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
10374 _res = _gather_78_var;
10375 goto done;
10376 }
10377 p->mark = _mark;
10378 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
10379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
10380 }
10381 _res = NULL;
10382 done:
10383 p->level--;
10384 return _res;
10385 }
10386
10387 // keyword_pattern: NAME '=' pattern
10388 static KeyPatternPair*
keyword_pattern_rule(Parser * p)10389 keyword_pattern_rule(Parser *p)
10390 {
10391 if (p->level++ == MAXSTACK) {
10392 p->error_indicator = 1;
10393 PyErr_NoMemory();
10394 }
10395 if (p->error_indicator) {
10396 p->level--;
10397 return NULL;
10398 }
10399 KeyPatternPair* _res = NULL;
10400 int _mark = p->mark;
10401 { // NAME '=' pattern
10402 if (p->error_indicator) {
10403 p->level--;
10404 return NULL;
10405 }
10406 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
10407 Token * _literal;
10408 expr_ty arg;
10409 pattern_ty value;
10410 if (
10411 (arg = _PyPegen_name_token(p)) // NAME
10412 &&
10413 (_literal = _PyPegen_expect_token(p, 22)) // token='='
10414 &&
10415 (value = pattern_rule(p)) // pattern
10416 )
10417 {
10418 D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
10419 _res = _PyPegen_key_pattern_pair ( p , arg , value );
10420 if (_res == NULL && PyErr_Occurred()) {
10421 p->error_indicator = 1;
10422 p->level--;
10423 return NULL;
10424 }
10425 goto done;
10426 }
10427 p->mark = _mark;
10428 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
10429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
10430 }
10431 _res = NULL;
10432 done:
10433 p->level--;
10434 return _res;
10435 }
10436
10437 // expressions: expression ((',' expression))+ ','? | expression ',' | expression
10438 static expr_ty
expressions_rule(Parser * p)10439 expressions_rule(Parser *p)
10440 {
10441 if (p->level++ == MAXSTACK) {
10442 p->error_indicator = 1;
10443 PyErr_NoMemory();
10444 }
10445 if (p->error_indicator) {
10446 p->level--;
10447 return NULL;
10448 }
10449 expr_ty _res = NULL;
10450 int _mark = p->mark;
10451 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10452 p->error_indicator = 1;
10453 p->level--;
10454 return NULL;
10455 }
10456 int _start_lineno = p->tokens[_mark]->lineno;
10457 UNUSED(_start_lineno); // Only used by EXTRA macro
10458 int _start_col_offset = p->tokens[_mark]->col_offset;
10459 UNUSED(_start_col_offset); // Only used by EXTRA macro
10460 { // expression ((',' expression))+ ','?
10461 if (p->error_indicator) {
10462 p->level--;
10463 return NULL;
10464 }
10465 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10466 void *_opt_var;
10467 UNUSED(_opt_var); // Silence compiler warnings
10468 expr_ty a;
10469 asdl_seq * b;
10470 if (
10471 (a = expression_rule(p)) // expression
10472 &&
10473 (b = _loop1_80_rule(p)) // ((',' expression))+
10474 &&
10475 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
10476 )
10477 {
10478 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10479 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10480 if (_token == NULL) {
10481 p->level--;
10482 return NULL;
10483 }
10484 int _end_lineno = _token->end_lineno;
10485 UNUSED(_end_lineno); // Only used by EXTRA macro
10486 int _end_col_offset = _token->end_col_offset;
10487 UNUSED(_end_col_offset); // Only used by EXTRA macro
10488 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
10489 if (_res == NULL && PyErr_Occurred()) {
10490 p->error_indicator = 1;
10491 p->level--;
10492 return NULL;
10493 }
10494 goto done;
10495 }
10496 p->mark = _mark;
10497 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
10499 }
10500 { // expression ','
10501 if (p->error_indicator) {
10502 p->level--;
10503 return NULL;
10504 }
10505 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
10506 Token * _literal;
10507 expr_ty a;
10508 if (
10509 (a = expression_rule(p)) // expression
10510 &&
10511 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10512 )
10513 {
10514 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
10515 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10516 if (_token == NULL) {
10517 p->level--;
10518 return NULL;
10519 }
10520 int _end_lineno = _token->end_lineno;
10521 UNUSED(_end_lineno); // Only used by EXTRA macro
10522 int _end_col_offset = _token->end_col_offset;
10523 UNUSED(_end_col_offset); // Only used by EXTRA macro
10524 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
10525 if (_res == NULL && PyErr_Occurred()) {
10526 p->error_indicator = 1;
10527 p->level--;
10528 return NULL;
10529 }
10530 goto done;
10531 }
10532 p->mark = _mark;
10533 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
10535 }
10536 { // expression
10537 if (p->error_indicator) {
10538 p->level--;
10539 return NULL;
10540 }
10541 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10542 expr_ty expression_var;
10543 if (
10544 (expression_var = expression_rule(p)) // expression
10545 )
10546 {
10547 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10548 _res = expression_var;
10549 goto done;
10550 }
10551 p->mark = _mark;
10552 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10554 }
10555 _res = NULL;
10556 done:
10557 p->level--;
10558 return _res;
10559 }
10560
10561 // expression:
10562 // | invalid_expression
10563 // | invalid_legacy_expression
10564 // | disjunction 'if' disjunction 'else' expression
10565 // | disjunction
10566 // | lambdef
10567 static expr_ty
expression_rule(Parser * p)10568 expression_rule(Parser *p)
10569 {
10570 if (p->level++ == MAXSTACK) {
10571 p->error_indicator = 1;
10572 PyErr_NoMemory();
10573 }
10574 if (p->error_indicator) {
10575 p->level--;
10576 return NULL;
10577 }
10578 expr_ty _res = NULL;
10579 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
10580 p->level--;
10581 return _res;
10582 }
10583 int _mark = p->mark;
10584 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10585 p->error_indicator = 1;
10586 p->level--;
10587 return NULL;
10588 }
10589 int _start_lineno = p->tokens[_mark]->lineno;
10590 UNUSED(_start_lineno); // Only used by EXTRA macro
10591 int _start_col_offset = p->tokens[_mark]->col_offset;
10592 UNUSED(_start_col_offset); // Only used by EXTRA macro
10593 if (p->call_invalid_rules) { // invalid_expression
10594 if (p->error_indicator) {
10595 p->level--;
10596 return NULL;
10597 }
10598 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10599 void *invalid_expression_var;
10600 if (
10601 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
10602 )
10603 {
10604 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10605 _res = invalid_expression_var;
10606 goto done;
10607 }
10608 p->mark = _mark;
10609 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
10611 }
10612 if (p->call_invalid_rules) { // invalid_legacy_expression
10613 if (p->error_indicator) {
10614 p->level--;
10615 return NULL;
10616 }
10617 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
10618 void *invalid_legacy_expression_var;
10619 if (
10620 (invalid_legacy_expression_var = invalid_legacy_expression_rule(p)) // invalid_legacy_expression
10621 )
10622 {
10623 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
10624 _res = invalid_legacy_expression_var;
10625 goto done;
10626 }
10627 p->mark = _mark;
10628 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression"));
10630 }
10631 { // disjunction 'if' disjunction 'else' expression
10632 if (p->error_indicator) {
10633 p->level--;
10634 return NULL;
10635 }
10636 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10637 Token * _keyword;
10638 Token * _keyword_1;
10639 expr_ty a;
10640 expr_ty b;
10641 expr_ty c;
10642 if (
10643 (a = disjunction_rule(p)) // disjunction
10644 &&
10645 (_keyword = _PyPegen_expect_token(p, 639)) // token='if'
10646 &&
10647 (b = disjunction_rule(p)) // disjunction
10648 &&
10649 (_keyword_1 = _PyPegen_expect_token(p, 642)) // token='else'
10650 &&
10651 (c = expression_rule(p)) // expression
10652 )
10653 {
10654 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10655 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10656 if (_token == NULL) {
10657 p->level--;
10658 return NULL;
10659 }
10660 int _end_lineno = _token->end_lineno;
10661 UNUSED(_end_lineno); // Only used by EXTRA macro
10662 int _end_col_offset = _token->end_col_offset;
10663 UNUSED(_end_col_offset); // Only used by EXTRA macro
10664 _res = _PyAST_IfExp ( b , a , c , EXTRA );
10665 if (_res == NULL && PyErr_Occurred()) {
10666 p->error_indicator = 1;
10667 p->level--;
10668 return NULL;
10669 }
10670 goto done;
10671 }
10672 p->mark = _mark;
10673 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10675 }
10676 { // disjunction
10677 if (p->error_indicator) {
10678 p->level--;
10679 return NULL;
10680 }
10681 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
10682 expr_ty disjunction_var;
10683 if (
10684 (disjunction_var = disjunction_rule(p)) // disjunction
10685 )
10686 {
10687 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
10688 _res = disjunction_var;
10689 goto done;
10690 }
10691 p->mark = _mark;
10692 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
10694 }
10695 { // lambdef
10696 if (p->error_indicator) {
10697 p->level--;
10698 return NULL;
10699 }
10700 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10701 expr_ty lambdef_var;
10702 if (
10703 (lambdef_var = lambdef_rule(p)) // lambdef
10704 )
10705 {
10706 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
10707 _res = lambdef_var;
10708 goto done;
10709 }
10710 p->mark = _mark;
10711 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
10713 }
10714 _res = NULL;
10715 done:
10716 _PyPegen_insert_memo(p, _mark, expression_type, _res);
10717 p->level--;
10718 return _res;
10719 }
10720
10721 // yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
10722 static expr_ty
yield_expr_rule(Parser * p)10723 yield_expr_rule(Parser *p)
10724 {
10725 if (p->level++ == MAXSTACK) {
10726 p->error_indicator = 1;
10727 PyErr_NoMemory();
10728 }
10729 if (p->error_indicator) {
10730 p->level--;
10731 return NULL;
10732 }
10733 expr_ty _res = NULL;
10734 int _mark = p->mark;
10735 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10736 p->error_indicator = 1;
10737 p->level--;
10738 return NULL;
10739 }
10740 int _start_lineno = p->tokens[_mark]->lineno;
10741 UNUSED(_start_lineno); // Only used by EXTRA macro
10742 int _start_col_offset = p->tokens[_mark]->col_offset;
10743 UNUSED(_start_col_offset); // Only used by EXTRA macro
10744 { // 'yield' 'from' expression
10745 if (p->error_indicator) {
10746 p->level--;
10747 return NULL;
10748 }
10749 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
10750 Token * _keyword;
10751 Token * _keyword_1;
10752 expr_ty a;
10753 if (
10754 (_keyword = _PyPegen_expect_token(p, 573)) // token='yield'
10755 &&
10756 (_keyword_1 = _PyPegen_expect_token(p, 572)) // token='from'
10757 &&
10758 (a = expression_rule(p)) // expression
10759 )
10760 {
10761 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
10762 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10763 if (_token == NULL) {
10764 p->level--;
10765 return NULL;
10766 }
10767 int _end_lineno = _token->end_lineno;
10768 UNUSED(_end_lineno); // Only used by EXTRA macro
10769 int _end_col_offset = _token->end_col_offset;
10770 UNUSED(_end_col_offset); // Only used by EXTRA macro
10771 _res = _PyAST_YieldFrom ( a , EXTRA );
10772 if (_res == NULL && PyErr_Occurred()) {
10773 p->error_indicator = 1;
10774 p->level--;
10775 return NULL;
10776 }
10777 goto done;
10778 }
10779 p->mark = _mark;
10780 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
10781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
10782 }
10783 { // 'yield' star_expressions?
10784 if (p->error_indicator) {
10785 p->level--;
10786 return NULL;
10787 }
10788 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
10789 Token * _keyword;
10790 void *a;
10791 if (
10792 (_keyword = _PyPegen_expect_token(p, 573)) // token='yield'
10793 &&
10794 (a = star_expressions_rule(p), !p->error_indicator) // star_expressions?
10795 )
10796 {
10797 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
10798 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10799 if (_token == NULL) {
10800 p->level--;
10801 return NULL;
10802 }
10803 int _end_lineno = _token->end_lineno;
10804 UNUSED(_end_lineno); // Only used by EXTRA macro
10805 int _end_col_offset = _token->end_col_offset;
10806 UNUSED(_end_col_offset); // Only used by EXTRA macro
10807 _res = _PyAST_Yield ( a , EXTRA );
10808 if (_res == NULL && PyErr_Occurred()) {
10809 p->error_indicator = 1;
10810 p->level--;
10811 return NULL;
10812 }
10813 goto done;
10814 }
10815 p->mark = _mark;
10816 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
10817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
10818 }
10819 _res = NULL;
10820 done:
10821 p->level--;
10822 return _res;
10823 }
10824
10825 // star_expressions:
10826 // | star_expression ((',' star_expression))+ ','?
10827 // | star_expression ','
10828 // | star_expression
10829 static expr_ty
star_expressions_rule(Parser * p)10830 star_expressions_rule(Parser *p)
10831 {
10832 if (p->level++ == MAXSTACK) {
10833 p->error_indicator = 1;
10834 PyErr_NoMemory();
10835 }
10836 if (p->error_indicator) {
10837 p->level--;
10838 return NULL;
10839 }
10840 expr_ty _res = NULL;
10841 int _mark = p->mark;
10842 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10843 p->error_indicator = 1;
10844 p->level--;
10845 return NULL;
10846 }
10847 int _start_lineno = p->tokens[_mark]->lineno;
10848 UNUSED(_start_lineno); // Only used by EXTRA macro
10849 int _start_col_offset = p->tokens[_mark]->col_offset;
10850 UNUSED(_start_col_offset); // Only used by EXTRA macro
10851 { // star_expression ((',' star_expression))+ ','?
10852 if (p->error_indicator) {
10853 p->level--;
10854 return NULL;
10855 }
10856 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
10857 void *_opt_var;
10858 UNUSED(_opt_var); // Silence compiler warnings
10859 expr_ty a;
10860 asdl_seq * b;
10861 if (
10862 (a = star_expression_rule(p)) // star_expression
10863 &&
10864 (b = _loop1_81_rule(p)) // ((',' star_expression))+
10865 &&
10866 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
10867 )
10868 {
10869 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
10870 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10871 if (_token == NULL) {
10872 p->level--;
10873 return NULL;
10874 }
10875 int _end_lineno = _token->end_lineno;
10876 UNUSED(_end_lineno); // Only used by EXTRA macro
10877 int _end_col_offset = _token->end_col_offset;
10878 UNUSED(_end_col_offset); // Only used by EXTRA macro
10879 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
10880 if (_res == NULL && PyErr_Occurred()) {
10881 p->error_indicator = 1;
10882 p->level--;
10883 return NULL;
10884 }
10885 goto done;
10886 }
10887 p->mark = _mark;
10888 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
10890 }
10891 { // star_expression ','
10892 if (p->error_indicator) {
10893 p->level--;
10894 return NULL;
10895 }
10896 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
10897 Token * _literal;
10898 expr_ty a;
10899 if (
10900 (a = star_expression_rule(p)) // star_expression
10901 &&
10902 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10903 )
10904 {
10905 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
10906 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10907 if (_token == NULL) {
10908 p->level--;
10909 return NULL;
10910 }
10911 int _end_lineno = _token->end_lineno;
10912 UNUSED(_end_lineno); // Only used by EXTRA macro
10913 int _end_col_offset = _token->end_col_offset;
10914 UNUSED(_end_col_offset); // Only used by EXTRA macro
10915 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
10916 if (_res == NULL && PyErr_Occurred()) {
10917 p->error_indicator = 1;
10918 p->level--;
10919 return NULL;
10920 }
10921 goto done;
10922 }
10923 p->mark = _mark;
10924 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
10926 }
10927 { // star_expression
10928 if (p->error_indicator) {
10929 p->level--;
10930 return NULL;
10931 }
10932 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
10933 expr_ty star_expression_var;
10934 if (
10935 (star_expression_var = star_expression_rule(p)) // star_expression
10936 )
10937 {
10938 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
10939 _res = star_expression_var;
10940 goto done;
10941 }
10942 p->mark = _mark;
10943 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
10945 }
10946 _res = NULL;
10947 done:
10948 p->level--;
10949 return _res;
10950 }
10951
10952 // star_expression: '*' bitwise_or | expression
10953 static expr_ty
star_expression_rule(Parser * p)10954 star_expression_rule(Parser *p)
10955 {
10956 if (p->level++ == MAXSTACK) {
10957 p->error_indicator = 1;
10958 PyErr_NoMemory();
10959 }
10960 if (p->error_indicator) {
10961 p->level--;
10962 return NULL;
10963 }
10964 expr_ty _res = NULL;
10965 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
10966 p->level--;
10967 return _res;
10968 }
10969 int _mark = p->mark;
10970 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10971 p->error_indicator = 1;
10972 p->level--;
10973 return NULL;
10974 }
10975 int _start_lineno = p->tokens[_mark]->lineno;
10976 UNUSED(_start_lineno); // Only used by EXTRA macro
10977 int _start_col_offset = p->tokens[_mark]->col_offset;
10978 UNUSED(_start_col_offset); // Only used by EXTRA macro
10979 { // '*' bitwise_or
10980 if (p->error_indicator) {
10981 p->level--;
10982 return NULL;
10983 }
10984 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10985 Token * _literal;
10986 expr_ty a;
10987 if (
10988 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10989 &&
10990 (a = bitwise_or_rule(p)) // bitwise_or
10991 )
10992 {
10993 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10994 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10995 if (_token == NULL) {
10996 p->level--;
10997 return NULL;
10998 }
10999 int _end_lineno = _token->end_lineno;
11000 UNUSED(_end_lineno); // Only used by EXTRA macro
11001 int _end_col_offset = _token->end_col_offset;
11002 UNUSED(_end_col_offset); // Only used by EXTRA macro
11003 _res = _PyAST_Starred ( a , Load , EXTRA );
11004 if (_res == NULL && PyErr_Occurred()) {
11005 p->error_indicator = 1;
11006 p->level--;
11007 return NULL;
11008 }
11009 goto done;
11010 }
11011 p->mark = _mark;
11012 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
11013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
11014 }
11015 { // expression
11016 if (p->error_indicator) {
11017 p->level--;
11018 return NULL;
11019 }
11020 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
11021 expr_ty expression_var;
11022 if (
11023 (expression_var = expression_rule(p)) // expression
11024 )
11025 {
11026 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
11027 _res = expression_var;
11028 goto done;
11029 }
11030 p->mark = _mark;
11031 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
11032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
11033 }
11034 _res = NULL;
11035 done:
11036 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
11037 p->level--;
11038 return _res;
11039 }
11040
11041 // star_named_expressions: ','.star_named_expression+ ','?
11042 static asdl_expr_seq*
star_named_expressions_rule(Parser * p)11043 star_named_expressions_rule(Parser *p)
11044 {
11045 if (p->level++ == MAXSTACK) {
11046 p->error_indicator = 1;
11047 PyErr_NoMemory();
11048 }
11049 if (p->error_indicator) {
11050 p->level--;
11051 return NULL;
11052 }
11053 asdl_expr_seq* _res = NULL;
11054 int _mark = p->mark;
11055 { // ','.star_named_expression+ ','?
11056 if (p->error_indicator) {
11057 p->level--;
11058 return NULL;
11059 }
11060 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
11061 void *_opt_var;
11062 UNUSED(_opt_var); // Silence compiler warnings
11063 asdl_expr_seq* a;
11064 if (
11065 (a = (asdl_expr_seq*)_gather_82_rule(p)) // ','.star_named_expression+
11066 &&
11067 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
11068 )
11069 {
11070 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
11071 _res = a;
11072 if (_res == NULL && PyErr_Occurred()) {
11073 p->error_indicator = 1;
11074 p->level--;
11075 return NULL;
11076 }
11077 goto done;
11078 }
11079 p->mark = _mark;
11080 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
11081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
11082 }
11083 _res = NULL;
11084 done:
11085 p->level--;
11086 return _res;
11087 }
11088
11089 // star_named_expression: '*' bitwise_or | named_expression
11090 static expr_ty
star_named_expression_rule(Parser * p)11091 star_named_expression_rule(Parser *p)
11092 {
11093 if (p->level++ == MAXSTACK) {
11094 p->error_indicator = 1;
11095 PyErr_NoMemory();
11096 }
11097 if (p->error_indicator) {
11098 p->level--;
11099 return NULL;
11100 }
11101 expr_ty _res = NULL;
11102 int _mark = p->mark;
11103 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11104 p->error_indicator = 1;
11105 p->level--;
11106 return NULL;
11107 }
11108 int _start_lineno = p->tokens[_mark]->lineno;
11109 UNUSED(_start_lineno); // Only used by EXTRA macro
11110 int _start_col_offset = p->tokens[_mark]->col_offset;
11111 UNUSED(_start_col_offset); // Only used by EXTRA macro
11112 { // '*' bitwise_or
11113 if (p->error_indicator) {
11114 p->level--;
11115 return NULL;
11116 }
11117 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
11118 Token * _literal;
11119 expr_ty a;
11120 if (
11121 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11122 &&
11123 (a = bitwise_or_rule(p)) // bitwise_or
11124 )
11125 {
11126 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
11127 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11128 if (_token == NULL) {
11129 p->level--;
11130 return NULL;
11131 }
11132 int _end_lineno = _token->end_lineno;
11133 UNUSED(_end_lineno); // Only used by EXTRA macro
11134 int _end_col_offset = _token->end_col_offset;
11135 UNUSED(_end_col_offset); // Only used by EXTRA macro
11136 _res = _PyAST_Starred ( a , Load , EXTRA );
11137 if (_res == NULL && PyErr_Occurred()) {
11138 p->error_indicator = 1;
11139 p->level--;
11140 return NULL;
11141 }
11142 goto done;
11143 }
11144 p->mark = _mark;
11145 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
11146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
11147 }
11148 { // named_expression
11149 if (p->error_indicator) {
11150 p->level--;
11151 return NULL;
11152 }
11153 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
11154 expr_ty named_expression_var;
11155 if (
11156 (named_expression_var = named_expression_rule(p)) // named_expression
11157 )
11158 {
11159 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
11160 _res = named_expression_var;
11161 goto done;
11162 }
11163 p->mark = _mark;
11164 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
11165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
11166 }
11167 _res = NULL;
11168 done:
11169 p->level--;
11170 return _res;
11171 }
11172
11173 // assignment_expression: NAME ':=' ~ expression
11174 static expr_ty
assignment_expression_rule(Parser * p)11175 assignment_expression_rule(Parser *p)
11176 {
11177 if (p->level++ == MAXSTACK) {
11178 p->error_indicator = 1;
11179 PyErr_NoMemory();
11180 }
11181 if (p->error_indicator) {
11182 p->level--;
11183 return NULL;
11184 }
11185 expr_ty _res = NULL;
11186 int _mark = p->mark;
11187 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11188 p->error_indicator = 1;
11189 p->level--;
11190 return NULL;
11191 }
11192 int _start_lineno = p->tokens[_mark]->lineno;
11193 UNUSED(_start_lineno); // Only used by EXTRA macro
11194 int _start_col_offset = p->tokens[_mark]->col_offset;
11195 UNUSED(_start_col_offset); // Only used by EXTRA macro
11196 { // NAME ':=' ~ expression
11197 if (p->error_indicator) {
11198 p->level--;
11199 return NULL;
11200 }
11201 D(fprintf(stderr, "%*c> assignment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
11202 int _cut_var = 0;
11203 Token * _literal;
11204 expr_ty a;
11205 expr_ty b;
11206 if (
11207 (a = _PyPegen_name_token(p)) // NAME
11208 &&
11209 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
11210 &&
11211 (_cut_var = 1)
11212 &&
11213 (b = expression_rule(p)) // expression
11214 )
11215 {
11216 D(fprintf(stderr, "%*c+ assignment_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
11217 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11218 if (_token == NULL) {
11219 p->level--;
11220 return NULL;
11221 }
11222 int _end_lineno = _token->end_lineno;
11223 UNUSED(_end_lineno); // Only used by EXTRA macro
11224 int _end_col_offset = _token->end_col_offset;
11225 UNUSED(_end_col_offset); // Only used by EXTRA macro
11226 _res = CHECK_VERSION ( expr_ty , 8 , "Assignment expressions are" , _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA ) );
11227 if (_res == NULL && PyErr_Occurred()) {
11228 p->error_indicator = 1;
11229 p->level--;
11230 return NULL;
11231 }
11232 goto done;
11233 }
11234 p->mark = _mark;
11235 D(fprintf(stderr, "%*c%s assignment_expression[%d-%d]: %s failed!\n", p->level, ' ',
11236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
11237 if (_cut_var) {
11238 p->level--;
11239 return NULL;
11240 }
11241 }
11242 _res = NULL;
11243 done:
11244 p->level--;
11245 return _res;
11246 }
11247
11248 // named_expression: assignment_expression | invalid_named_expression | expression !':='
11249 static expr_ty
named_expression_rule(Parser * p)11250 named_expression_rule(Parser *p)
11251 {
11252 if (p->level++ == MAXSTACK) {
11253 p->error_indicator = 1;
11254 PyErr_NoMemory();
11255 }
11256 if (p->error_indicator) {
11257 p->level--;
11258 return NULL;
11259 }
11260 expr_ty _res = NULL;
11261 int _mark = p->mark;
11262 { // assignment_expression
11263 if (p->error_indicator) {
11264 p->level--;
11265 return NULL;
11266 }
11267 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
11268 expr_ty assignment_expression_var;
11269 if (
11270 (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression
11271 )
11272 {
11273 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
11274 _res = assignment_expression_var;
11275 goto done;
11276 }
11277 p->mark = _mark;
11278 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
11279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
11280 }
11281 if (p->call_invalid_rules) { // invalid_named_expression
11282 if (p->error_indicator) {
11283 p->level--;
11284 return NULL;
11285 }
11286 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
11287 void *invalid_named_expression_var;
11288 if (
11289 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
11290 )
11291 {
11292 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
11293 _res = invalid_named_expression_var;
11294 goto done;
11295 }
11296 p->mark = _mark;
11297 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
11298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
11299 }
11300 { // expression !':='
11301 if (p->error_indicator) {
11302 p->level--;
11303 return NULL;
11304 }
11305 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
11306 expr_ty expression_var;
11307 if (
11308 (expression_var = expression_rule(p)) // expression
11309 &&
11310 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
11311 )
11312 {
11313 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
11314 _res = expression_var;
11315 goto done;
11316 }
11317 p->mark = _mark;
11318 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
11319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
11320 }
11321 _res = NULL;
11322 done:
11323 p->level--;
11324 return _res;
11325 }
11326
11327 // disjunction: conjunction (('or' conjunction))+ | conjunction
11328 static expr_ty
disjunction_rule(Parser * p)11329 disjunction_rule(Parser *p)
11330 {
11331 if (p->level++ == MAXSTACK) {
11332 p->error_indicator = 1;
11333 PyErr_NoMemory();
11334 }
11335 if (p->error_indicator) {
11336 p->level--;
11337 return NULL;
11338 }
11339 expr_ty _res = NULL;
11340 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
11341 p->level--;
11342 return _res;
11343 }
11344 int _mark = p->mark;
11345 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11346 p->error_indicator = 1;
11347 p->level--;
11348 return NULL;
11349 }
11350 int _start_lineno = p->tokens[_mark]->lineno;
11351 UNUSED(_start_lineno); // Only used by EXTRA macro
11352 int _start_col_offset = p->tokens[_mark]->col_offset;
11353 UNUSED(_start_col_offset); // Only used by EXTRA macro
11354 { // conjunction (('or' conjunction))+
11355 if (p->error_indicator) {
11356 p->level--;
11357 return NULL;
11358 }
11359 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11360 expr_ty a;
11361 asdl_seq * b;
11362 if (
11363 (a = conjunction_rule(p)) // conjunction
11364 &&
11365 (b = _loop1_84_rule(p)) // (('or' conjunction))+
11366 )
11367 {
11368 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11369 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11370 if (_token == NULL) {
11371 p->level--;
11372 return NULL;
11373 }
11374 int _end_lineno = _token->end_lineno;
11375 UNUSED(_end_lineno); // Only used by EXTRA macro
11376 int _end_col_offset = _token->end_col_offset;
11377 UNUSED(_end_col_offset); // Only used by EXTRA macro
11378 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
11379 if (_res == NULL && PyErr_Occurred()) {
11380 p->error_indicator = 1;
11381 p->level--;
11382 return NULL;
11383 }
11384 goto done;
11385 }
11386 p->mark = _mark;
11387 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
11389 }
11390 { // conjunction
11391 if (p->error_indicator) {
11392 p->level--;
11393 return NULL;
11394 }
11395 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
11396 expr_ty conjunction_var;
11397 if (
11398 (conjunction_var = conjunction_rule(p)) // conjunction
11399 )
11400 {
11401 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
11402 _res = conjunction_var;
11403 goto done;
11404 }
11405 p->mark = _mark;
11406 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
11408 }
11409 _res = NULL;
11410 done:
11411 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
11412 p->level--;
11413 return _res;
11414 }
11415
11416 // conjunction: inversion (('and' inversion))+ | inversion
11417 static expr_ty
conjunction_rule(Parser * p)11418 conjunction_rule(Parser *p)
11419 {
11420 if (p->level++ == MAXSTACK) {
11421 p->error_indicator = 1;
11422 PyErr_NoMemory();
11423 }
11424 if (p->error_indicator) {
11425 p->level--;
11426 return NULL;
11427 }
11428 expr_ty _res = NULL;
11429 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
11430 p->level--;
11431 return _res;
11432 }
11433 int _mark = p->mark;
11434 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11435 p->error_indicator = 1;
11436 p->level--;
11437 return NULL;
11438 }
11439 int _start_lineno = p->tokens[_mark]->lineno;
11440 UNUSED(_start_lineno); // Only used by EXTRA macro
11441 int _start_col_offset = p->tokens[_mark]->col_offset;
11442 UNUSED(_start_col_offset); // Only used by EXTRA macro
11443 { // inversion (('and' inversion))+
11444 if (p->error_indicator) {
11445 p->level--;
11446 return NULL;
11447 }
11448 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11449 expr_ty a;
11450 asdl_seq * b;
11451 if (
11452 (a = inversion_rule(p)) // inversion
11453 &&
11454 (b = _loop1_85_rule(p)) // (('and' inversion))+
11455 )
11456 {
11457 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11458 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11459 if (_token == NULL) {
11460 p->level--;
11461 return NULL;
11462 }
11463 int _end_lineno = _token->end_lineno;
11464 UNUSED(_end_lineno); // Only used by EXTRA macro
11465 int _end_col_offset = _token->end_col_offset;
11466 UNUSED(_end_col_offset); // Only used by EXTRA macro
11467 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
11468 if (_res == NULL && PyErr_Occurred()) {
11469 p->error_indicator = 1;
11470 p->level--;
11471 return NULL;
11472 }
11473 goto done;
11474 }
11475 p->mark = _mark;
11476 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
11478 }
11479 { // inversion
11480 if (p->error_indicator) {
11481 p->level--;
11482 return NULL;
11483 }
11484 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
11485 expr_ty inversion_var;
11486 if (
11487 (inversion_var = inversion_rule(p)) // inversion
11488 )
11489 {
11490 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
11491 _res = inversion_var;
11492 goto done;
11493 }
11494 p->mark = _mark;
11495 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
11497 }
11498 _res = NULL;
11499 done:
11500 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
11501 p->level--;
11502 return _res;
11503 }
11504
11505 // inversion: 'not' inversion | comparison
11506 static expr_ty
inversion_rule(Parser * p)11507 inversion_rule(Parser *p)
11508 {
11509 if (p->level++ == MAXSTACK) {
11510 p->error_indicator = 1;
11511 PyErr_NoMemory();
11512 }
11513 if (p->error_indicator) {
11514 p->level--;
11515 return NULL;
11516 }
11517 expr_ty _res = NULL;
11518 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
11519 p->level--;
11520 return _res;
11521 }
11522 int _mark = p->mark;
11523 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11524 p->error_indicator = 1;
11525 p->level--;
11526 return NULL;
11527 }
11528 int _start_lineno = p->tokens[_mark]->lineno;
11529 UNUSED(_start_lineno); // Only used by EXTRA macro
11530 int _start_col_offset = p->tokens[_mark]->col_offset;
11531 UNUSED(_start_col_offset); // Only used by EXTRA macro
11532 { // 'not' inversion
11533 if (p->error_indicator) {
11534 p->level--;
11535 return NULL;
11536 }
11537 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11538 Token * _keyword;
11539 expr_ty a;
11540 if (
11541 (_keyword = _PyPegen_expect_token(p, 581)) // token='not'
11542 &&
11543 (a = inversion_rule(p)) // inversion
11544 )
11545 {
11546 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11547 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11548 if (_token == NULL) {
11549 p->level--;
11550 return NULL;
11551 }
11552 int _end_lineno = _token->end_lineno;
11553 UNUSED(_end_lineno); // Only used by EXTRA macro
11554 int _end_col_offset = _token->end_col_offset;
11555 UNUSED(_end_col_offset); // Only used by EXTRA macro
11556 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
11557 if (_res == NULL && PyErr_Occurred()) {
11558 p->error_indicator = 1;
11559 p->level--;
11560 return NULL;
11561 }
11562 goto done;
11563 }
11564 p->mark = _mark;
11565 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
11567 }
11568 { // comparison
11569 if (p->error_indicator) {
11570 p->level--;
11571 return NULL;
11572 }
11573 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
11574 expr_ty comparison_var;
11575 if (
11576 (comparison_var = comparison_rule(p)) // comparison
11577 )
11578 {
11579 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
11580 _res = comparison_var;
11581 goto done;
11582 }
11583 p->mark = _mark;
11584 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
11586 }
11587 _res = NULL;
11588 done:
11589 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
11590 p->level--;
11591 return _res;
11592 }
11593
11594 // comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
11595 static expr_ty
comparison_rule(Parser * p)11596 comparison_rule(Parser *p)
11597 {
11598 if (p->level++ == MAXSTACK) {
11599 p->error_indicator = 1;
11600 PyErr_NoMemory();
11601 }
11602 if (p->error_indicator) {
11603 p->level--;
11604 return NULL;
11605 }
11606 expr_ty _res = NULL;
11607 int _mark = p->mark;
11608 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11609 p->error_indicator = 1;
11610 p->level--;
11611 return NULL;
11612 }
11613 int _start_lineno = p->tokens[_mark]->lineno;
11614 UNUSED(_start_lineno); // Only used by EXTRA macro
11615 int _start_col_offset = p->tokens[_mark]->col_offset;
11616 UNUSED(_start_col_offset); // Only used by EXTRA macro
11617 { // bitwise_or compare_op_bitwise_or_pair+
11618 if (p->error_indicator) {
11619 p->level--;
11620 return NULL;
11621 }
11622 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11623 expr_ty a;
11624 asdl_seq * b;
11625 if (
11626 (a = bitwise_or_rule(p)) // bitwise_or
11627 &&
11628 (b = _loop1_86_rule(p)) // compare_op_bitwise_or_pair+
11629 )
11630 {
11631 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11632 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11633 if (_token == NULL) {
11634 p->level--;
11635 return NULL;
11636 }
11637 int _end_lineno = _token->end_lineno;
11638 UNUSED(_end_lineno); // Only used by EXTRA macro
11639 int _end_col_offset = _token->end_col_offset;
11640 UNUSED(_end_col_offset); // Only used by EXTRA macro
11641 _res = _PyAST_Compare ( a , CHECK ( asdl_int_seq* , _PyPegen_get_cmpops ( p , b ) ) , CHECK ( asdl_expr_seq* , _PyPegen_get_exprs ( p , b ) ) , EXTRA );
11642 if (_res == NULL && PyErr_Occurred()) {
11643 p->error_indicator = 1;
11644 p->level--;
11645 return NULL;
11646 }
11647 goto done;
11648 }
11649 p->mark = _mark;
11650 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11652 }
11653 { // bitwise_or
11654 if (p->error_indicator) {
11655 p->level--;
11656 return NULL;
11657 }
11658 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11659 expr_ty bitwise_or_var;
11660 if (
11661 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11662 )
11663 {
11664 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11665 _res = bitwise_or_var;
11666 goto done;
11667 }
11668 p->mark = _mark;
11669 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11671 }
11672 _res = NULL;
11673 done:
11674 p->level--;
11675 return _res;
11676 }
11677
11678 // compare_op_bitwise_or_pair:
11679 // | eq_bitwise_or
11680 // | noteq_bitwise_or
11681 // | lte_bitwise_or
11682 // | lt_bitwise_or
11683 // | gte_bitwise_or
11684 // | gt_bitwise_or
11685 // | notin_bitwise_or
11686 // | in_bitwise_or
11687 // | isnot_bitwise_or
11688 // | is_bitwise_or
11689 static CmpopExprPair*
compare_op_bitwise_or_pair_rule(Parser * p)11690 compare_op_bitwise_or_pair_rule(Parser *p)
11691 {
11692 if (p->level++ == MAXSTACK) {
11693 p->error_indicator = 1;
11694 PyErr_NoMemory();
11695 }
11696 if (p->error_indicator) {
11697 p->level--;
11698 return NULL;
11699 }
11700 CmpopExprPair* _res = NULL;
11701 int _mark = p->mark;
11702 { // eq_bitwise_or
11703 if (p->error_indicator) {
11704 p->level--;
11705 return NULL;
11706 }
11707 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11708 CmpopExprPair* eq_bitwise_or_var;
11709 if (
11710 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11711 )
11712 {
11713 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11714 _res = eq_bitwise_or_var;
11715 goto done;
11716 }
11717 p->mark = _mark;
11718 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11720 }
11721 { // noteq_bitwise_or
11722 if (p->error_indicator) {
11723 p->level--;
11724 return NULL;
11725 }
11726 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11727 CmpopExprPair* noteq_bitwise_or_var;
11728 if (
11729 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11730 )
11731 {
11732 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11733 _res = noteq_bitwise_or_var;
11734 goto done;
11735 }
11736 p->mark = _mark;
11737 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11739 }
11740 { // lte_bitwise_or
11741 if (p->error_indicator) {
11742 p->level--;
11743 return NULL;
11744 }
11745 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11746 CmpopExprPair* lte_bitwise_or_var;
11747 if (
11748 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11749 )
11750 {
11751 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11752 _res = lte_bitwise_or_var;
11753 goto done;
11754 }
11755 p->mark = _mark;
11756 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
11758 }
11759 { // lt_bitwise_or
11760 if (p->error_indicator) {
11761 p->level--;
11762 return NULL;
11763 }
11764 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11765 CmpopExprPair* lt_bitwise_or_var;
11766 if (
11767 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
11768 )
11769 {
11770 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11771 _res = lt_bitwise_or_var;
11772 goto done;
11773 }
11774 p->mark = _mark;
11775 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
11777 }
11778 { // gte_bitwise_or
11779 if (p->error_indicator) {
11780 p->level--;
11781 return NULL;
11782 }
11783 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11784 CmpopExprPair* gte_bitwise_or_var;
11785 if (
11786 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
11787 )
11788 {
11789 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11790 _res = gte_bitwise_or_var;
11791 goto done;
11792 }
11793 p->mark = _mark;
11794 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
11796 }
11797 { // gt_bitwise_or
11798 if (p->error_indicator) {
11799 p->level--;
11800 return NULL;
11801 }
11802 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11803 CmpopExprPair* gt_bitwise_or_var;
11804 if (
11805 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
11806 )
11807 {
11808 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11809 _res = gt_bitwise_or_var;
11810 goto done;
11811 }
11812 p->mark = _mark;
11813 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
11815 }
11816 { // notin_bitwise_or
11817 if (p->error_indicator) {
11818 p->level--;
11819 return NULL;
11820 }
11821 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11822 CmpopExprPair* notin_bitwise_or_var;
11823 if (
11824 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
11825 )
11826 {
11827 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
11828 _res = notin_bitwise_or_var;
11829 goto done;
11830 }
11831 p->mark = _mark;
11832 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
11834 }
11835 { // in_bitwise_or
11836 if (p->error_indicator) {
11837 p->level--;
11838 return NULL;
11839 }
11840 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11841 CmpopExprPair* in_bitwise_or_var;
11842 if (
11843 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
11844 )
11845 {
11846 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
11847 _res = in_bitwise_or_var;
11848 goto done;
11849 }
11850 p->mark = _mark;
11851 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
11853 }
11854 { // isnot_bitwise_or
11855 if (p->error_indicator) {
11856 p->level--;
11857 return NULL;
11858 }
11859 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11860 CmpopExprPair* isnot_bitwise_or_var;
11861 if (
11862 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
11863 )
11864 {
11865 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
11866 _res = isnot_bitwise_or_var;
11867 goto done;
11868 }
11869 p->mark = _mark;
11870 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
11872 }
11873 { // is_bitwise_or
11874 if (p->error_indicator) {
11875 p->level--;
11876 return NULL;
11877 }
11878 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11879 CmpopExprPair* is_bitwise_or_var;
11880 if (
11881 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
11882 )
11883 {
11884 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
11885 _res = is_bitwise_or_var;
11886 goto done;
11887 }
11888 p->mark = _mark;
11889 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
11891 }
11892 _res = NULL;
11893 done:
11894 p->level--;
11895 return _res;
11896 }
11897
11898 // eq_bitwise_or: '==' bitwise_or
11899 static CmpopExprPair*
eq_bitwise_or_rule(Parser * p)11900 eq_bitwise_or_rule(Parser *p)
11901 {
11902 if (p->level++ == MAXSTACK) {
11903 p->error_indicator = 1;
11904 PyErr_NoMemory();
11905 }
11906 if (p->error_indicator) {
11907 p->level--;
11908 return NULL;
11909 }
11910 CmpopExprPair* _res = NULL;
11911 int _mark = p->mark;
11912 { // '==' bitwise_or
11913 if (p->error_indicator) {
11914 p->level--;
11915 return NULL;
11916 }
11917 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11918 Token * _literal;
11919 expr_ty a;
11920 if (
11921 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
11922 &&
11923 (a = bitwise_or_rule(p)) // bitwise_or
11924 )
11925 {
11926 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11927 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
11928 if (_res == NULL && PyErr_Occurred()) {
11929 p->error_indicator = 1;
11930 p->level--;
11931 return NULL;
11932 }
11933 goto done;
11934 }
11935 p->mark = _mark;
11936 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
11938 }
11939 _res = NULL;
11940 done:
11941 p->level--;
11942 return _res;
11943 }
11944
11945 // noteq_bitwise_or: ('!=') bitwise_or
11946 static CmpopExprPair*
noteq_bitwise_or_rule(Parser * p)11947 noteq_bitwise_or_rule(Parser *p)
11948 {
11949 if (p->level++ == MAXSTACK) {
11950 p->error_indicator = 1;
11951 PyErr_NoMemory();
11952 }
11953 if (p->error_indicator) {
11954 p->level--;
11955 return NULL;
11956 }
11957 CmpopExprPair* _res = NULL;
11958 int _mark = p->mark;
11959 { // ('!=') bitwise_or
11960 if (p->error_indicator) {
11961 p->level--;
11962 return NULL;
11963 }
11964 D(fprintf(stderr, "%*c> noteq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
11965 void *_tmp_87_var;
11966 expr_ty a;
11967 if (
11968 (_tmp_87_var = _tmp_87_rule(p)) // '!='
11969 &&
11970 (a = bitwise_or_rule(p)) // bitwise_or
11971 )
11972 {
11973 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
11974 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
11975 if (_res == NULL && PyErr_Occurred()) {
11976 p->error_indicator = 1;
11977 p->level--;
11978 return NULL;
11979 }
11980 goto done;
11981 }
11982 p->mark = _mark;
11983 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
11985 }
11986 _res = NULL;
11987 done:
11988 p->level--;
11989 return _res;
11990 }
11991
11992 // lte_bitwise_or: '<=' bitwise_or
11993 static CmpopExprPair*
lte_bitwise_or_rule(Parser * p)11994 lte_bitwise_or_rule(Parser *p)
11995 {
11996 if (p->level++ == MAXSTACK) {
11997 p->error_indicator = 1;
11998 PyErr_NoMemory();
11999 }
12000 if (p->error_indicator) {
12001 p->level--;
12002 return NULL;
12003 }
12004 CmpopExprPair* _res = NULL;
12005 int _mark = p->mark;
12006 { // '<=' bitwise_or
12007 if (p->error_indicator) {
12008 p->level--;
12009 return NULL;
12010 }
12011 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12012 Token * _literal;
12013 expr_ty a;
12014 if (
12015 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
12016 &&
12017 (a = bitwise_or_rule(p)) // bitwise_or
12018 )
12019 {
12020 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12021 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
12022 if (_res == NULL && PyErr_Occurred()) {
12023 p->error_indicator = 1;
12024 p->level--;
12025 return NULL;
12026 }
12027 goto done;
12028 }
12029 p->mark = _mark;
12030 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
12032 }
12033 _res = NULL;
12034 done:
12035 p->level--;
12036 return _res;
12037 }
12038
12039 // lt_bitwise_or: '<' bitwise_or
12040 static CmpopExprPair*
lt_bitwise_or_rule(Parser * p)12041 lt_bitwise_or_rule(Parser *p)
12042 {
12043 if (p->level++ == MAXSTACK) {
12044 p->error_indicator = 1;
12045 PyErr_NoMemory();
12046 }
12047 if (p->error_indicator) {
12048 p->level--;
12049 return NULL;
12050 }
12051 CmpopExprPair* _res = NULL;
12052 int _mark = p->mark;
12053 { // '<' bitwise_or
12054 if (p->error_indicator) {
12055 p->level--;
12056 return NULL;
12057 }
12058 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12059 Token * _literal;
12060 expr_ty a;
12061 if (
12062 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
12063 &&
12064 (a = bitwise_or_rule(p)) // bitwise_or
12065 )
12066 {
12067 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12068 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
12069 if (_res == NULL && PyErr_Occurred()) {
12070 p->error_indicator = 1;
12071 p->level--;
12072 return NULL;
12073 }
12074 goto done;
12075 }
12076 p->mark = _mark;
12077 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
12079 }
12080 _res = NULL;
12081 done:
12082 p->level--;
12083 return _res;
12084 }
12085
12086 // gte_bitwise_or: '>=' bitwise_or
12087 static CmpopExprPair*
gte_bitwise_or_rule(Parser * p)12088 gte_bitwise_or_rule(Parser *p)
12089 {
12090 if (p->level++ == MAXSTACK) {
12091 p->error_indicator = 1;
12092 PyErr_NoMemory();
12093 }
12094 if (p->error_indicator) {
12095 p->level--;
12096 return NULL;
12097 }
12098 CmpopExprPair* _res = NULL;
12099 int _mark = p->mark;
12100 { // '>=' bitwise_or
12101 if (p->error_indicator) {
12102 p->level--;
12103 return NULL;
12104 }
12105 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12106 Token * _literal;
12107 expr_ty a;
12108 if (
12109 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
12110 &&
12111 (a = bitwise_or_rule(p)) // bitwise_or
12112 )
12113 {
12114 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12115 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
12116 if (_res == NULL && PyErr_Occurred()) {
12117 p->error_indicator = 1;
12118 p->level--;
12119 return NULL;
12120 }
12121 goto done;
12122 }
12123 p->mark = _mark;
12124 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
12126 }
12127 _res = NULL;
12128 done:
12129 p->level--;
12130 return _res;
12131 }
12132
12133 // gt_bitwise_or: '>' bitwise_or
12134 static CmpopExprPair*
gt_bitwise_or_rule(Parser * p)12135 gt_bitwise_or_rule(Parser *p)
12136 {
12137 if (p->level++ == MAXSTACK) {
12138 p->error_indicator = 1;
12139 PyErr_NoMemory();
12140 }
12141 if (p->error_indicator) {
12142 p->level--;
12143 return NULL;
12144 }
12145 CmpopExprPair* _res = NULL;
12146 int _mark = p->mark;
12147 { // '>' bitwise_or
12148 if (p->error_indicator) {
12149 p->level--;
12150 return NULL;
12151 }
12152 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12153 Token * _literal;
12154 expr_ty a;
12155 if (
12156 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
12157 &&
12158 (a = bitwise_or_rule(p)) // bitwise_or
12159 )
12160 {
12161 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12162 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
12163 if (_res == NULL && PyErr_Occurred()) {
12164 p->error_indicator = 1;
12165 p->level--;
12166 return NULL;
12167 }
12168 goto done;
12169 }
12170 p->mark = _mark;
12171 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
12173 }
12174 _res = NULL;
12175 done:
12176 p->level--;
12177 return _res;
12178 }
12179
12180 // notin_bitwise_or: 'not' 'in' bitwise_or
12181 static CmpopExprPair*
notin_bitwise_or_rule(Parser * p)12182 notin_bitwise_or_rule(Parser *p)
12183 {
12184 if (p->level++ == MAXSTACK) {
12185 p->error_indicator = 1;
12186 PyErr_NoMemory();
12187 }
12188 if (p->error_indicator) {
12189 p->level--;
12190 return NULL;
12191 }
12192 CmpopExprPair* _res = NULL;
12193 int _mark = p->mark;
12194 { // 'not' 'in' bitwise_or
12195 if (p->error_indicator) {
12196 p->level--;
12197 return NULL;
12198 }
12199 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12200 Token * _keyword;
12201 Token * _keyword_1;
12202 expr_ty a;
12203 if (
12204 (_keyword = _PyPegen_expect_token(p, 581)) // token='not'
12205 &&
12206 (_keyword_1 = _PyPegen_expect_token(p, 648)) // token='in'
12207 &&
12208 (a = bitwise_or_rule(p)) // bitwise_or
12209 )
12210 {
12211 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12212 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
12213 if (_res == NULL && PyErr_Occurred()) {
12214 p->error_indicator = 1;
12215 p->level--;
12216 return NULL;
12217 }
12218 goto done;
12219 }
12220 p->mark = _mark;
12221 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
12223 }
12224 _res = NULL;
12225 done:
12226 p->level--;
12227 return _res;
12228 }
12229
12230 // in_bitwise_or: 'in' bitwise_or
12231 static CmpopExprPair*
in_bitwise_or_rule(Parser * p)12232 in_bitwise_or_rule(Parser *p)
12233 {
12234 if (p->level++ == MAXSTACK) {
12235 p->error_indicator = 1;
12236 PyErr_NoMemory();
12237 }
12238 if (p->error_indicator) {
12239 p->level--;
12240 return NULL;
12241 }
12242 CmpopExprPair* _res = NULL;
12243 int _mark = p->mark;
12244 { // 'in' bitwise_or
12245 if (p->error_indicator) {
12246 p->level--;
12247 return NULL;
12248 }
12249 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12250 Token * _keyword;
12251 expr_ty a;
12252 if (
12253 (_keyword = _PyPegen_expect_token(p, 648)) // token='in'
12254 &&
12255 (a = bitwise_or_rule(p)) // bitwise_or
12256 )
12257 {
12258 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12259 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
12260 if (_res == NULL && PyErr_Occurred()) {
12261 p->error_indicator = 1;
12262 p->level--;
12263 return NULL;
12264 }
12265 goto done;
12266 }
12267 p->mark = _mark;
12268 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
12270 }
12271 _res = NULL;
12272 done:
12273 p->level--;
12274 return _res;
12275 }
12276
12277 // isnot_bitwise_or: 'is' 'not' bitwise_or
12278 static CmpopExprPair*
isnot_bitwise_or_rule(Parser * p)12279 isnot_bitwise_or_rule(Parser *p)
12280 {
12281 if (p->level++ == MAXSTACK) {
12282 p->error_indicator = 1;
12283 PyErr_NoMemory();
12284 }
12285 if (p->error_indicator) {
12286 p->level--;
12287 return NULL;
12288 }
12289 CmpopExprPair* _res = NULL;
12290 int _mark = p->mark;
12291 { // 'is' 'not' bitwise_or
12292 if (p->error_indicator) {
12293 p->level--;
12294 return NULL;
12295 }
12296 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12297 Token * _keyword;
12298 Token * _keyword_1;
12299 expr_ty a;
12300 if (
12301 (_keyword = _PyPegen_expect_token(p, 582)) // token='is'
12302 &&
12303 (_keyword_1 = _PyPegen_expect_token(p, 581)) // token='not'
12304 &&
12305 (a = bitwise_or_rule(p)) // bitwise_or
12306 )
12307 {
12308 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12309 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
12310 if (_res == NULL && PyErr_Occurred()) {
12311 p->error_indicator = 1;
12312 p->level--;
12313 return NULL;
12314 }
12315 goto done;
12316 }
12317 p->mark = _mark;
12318 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
12320 }
12321 _res = NULL;
12322 done:
12323 p->level--;
12324 return _res;
12325 }
12326
12327 // is_bitwise_or: 'is' bitwise_or
12328 static CmpopExprPair*
is_bitwise_or_rule(Parser * p)12329 is_bitwise_or_rule(Parser *p)
12330 {
12331 if (p->level++ == MAXSTACK) {
12332 p->error_indicator = 1;
12333 PyErr_NoMemory();
12334 }
12335 if (p->error_indicator) {
12336 p->level--;
12337 return NULL;
12338 }
12339 CmpopExprPair* _res = NULL;
12340 int _mark = p->mark;
12341 { // 'is' bitwise_or
12342 if (p->error_indicator) {
12343 p->level--;
12344 return NULL;
12345 }
12346 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12347 Token * _keyword;
12348 expr_ty a;
12349 if (
12350 (_keyword = _PyPegen_expect_token(p, 582)) // token='is'
12351 &&
12352 (a = bitwise_or_rule(p)) // bitwise_or
12353 )
12354 {
12355 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12356 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
12357 if (_res == NULL && PyErr_Occurred()) {
12358 p->error_indicator = 1;
12359 p->level--;
12360 return NULL;
12361 }
12362 goto done;
12363 }
12364 p->mark = _mark;
12365 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
12367 }
12368 _res = NULL;
12369 done:
12370 p->level--;
12371 return _res;
12372 }
12373
12374 // Left-recursive
12375 // bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
12376 static expr_ty bitwise_or_raw(Parser *);
12377 static expr_ty
bitwise_or_rule(Parser * p)12378 bitwise_or_rule(Parser *p)
12379 {
12380 if (p->level++ == MAXSTACK) {
12381 p->error_indicator = 1;
12382 PyErr_NoMemory();
12383 }
12384 expr_ty _res = NULL;
12385 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
12386 p->level--;
12387 return _res;
12388 }
12389 int _mark = p->mark;
12390 int _resmark = p->mark;
12391 while (1) {
12392 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
12393 if (tmpvar_2) {
12394 p->level--;
12395 return _res;
12396 }
12397 p->mark = _mark;
12398 void *_raw = bitwise_or_raw(p);
12399 if (p->error_indicator) {
12400 p->level--;
12401 return NULL;
12402 }
12403 if (_raw == NULL || p->mark <= _resmark)
12404 break;
12405 _resmark = p->mark;
12406 _res = _raw;
12407 }
12408 p->mark = _resmark;
12409 p->level--;
12410 return _res;
12411 }
12412 static expr_ty
bitwise_or_raw(Parser * p)12413 bitwise_or_raw(Parser *p)
12414 {
12415 if (p->level++ == MAXSTACK) {
12416 p->error_indicator = 1;
12417 PyErr_NoMemory();
12418 }
12419 if (p->error_indicator) {
12420 p->level--;
12421 return NULL;
12422 }
12423 expr_ty _res = NULL;
12424 int _mark = p->mark;
12425 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12426 p->error_indicator = 1;
12427 p->level--;
12428 return NULL;
12429 }
12430 int _start_lineno = p->tokens[_mark]->lineno;
12431 UNUSED(_start_lineno); // Only used by EXTRA macro
12432 int _start_col_offset = p->tokens[_mark]->col_offset;
12433 UNUSED(_start_col_offset); // Only used by EXTRA macro
12434 { // bitwise_or '|' bitwise_xor
12435 if (p->error_indicator) {
12436 p->level--;
12437 return NULL;
12438 }
12439 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12440 Token * _literal;
12441 expr_ty a;
12442 expr_ty b;
12443 if (
12444 (a = bitwise_or_rule(p)) // bitwise_or
12445 &&
12446 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
12447 &&
12448 (b = bitwise_xor_rule(p)) // bitwise_xor
12449 )
12450 {
12451 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12452 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12453 if (_token == NULL) {
12454 p->level--;
12455 return NULL;
12456 }
12457 int _end_lineno = _token->end_lineno;
12458 UNUSED(_end_lineno); // Only used by EXTRA macro
12459 int _end_col_offset = _token->end_col_offset;
12460 UNUSED(_end_col_offset); // Only used by EXTRA macro
12461 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
12462 if (_res == NULL && PyErr_Occurred()) {
12463 p->error_indicator = 1;
12464 p->level--;
12465 return NULL;
12466 }
12467 goto done;
12468 }
12469 p->mark = _mark;
12470 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12472 }
12473 { // bitwise_xor
12474 if (p->error_indicator) {
12475 p->level--;
12476 return NULL;
12477 }
12478 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12479 expr_ty bitwise_xor_var;
12480 if (
12481 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
12482 )
12483 {
12484 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12485 _res = bitwise_xor_var;
12486 goto done;
12487 }
12488 p->mark = _mark;
12489 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
12491 }
12492 _res = NULL;
12493 done:
12494 p->level--;
12495 return _res;
12496 }
12497
12498 // Left-recursive
12499 // bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
12500 static expr_ty bitwise_xor_raw(Parser *);
12501 static expr_ty
bitwise_xor_rule(Parser * p)12502 bitwise_xor_rule(Parser *p)
12503 {
12504 if (p->level++ == MAXSTACK) {
12505 p->error_indicator = 1;
12506 PyErr_NoMemory();
12507 }
12508 expr_ty _res = NULL;
12509 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
12510 p->level--;
12511 return _res;
12512 }
12513 int _mark = p->mark;
12514 int _resmark = p->mark;
12515 while (1) {
12516 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
12517 if (tmpvar_3) {
12518 p->level--;
12519 return _res;
12520 }
12521 p->mark = _mark;
12522 void *_raw = bitwise_xor_raw(p);
12523 if (p->error_indicator) {
12524 p->level--;
12525 return NULL;
12526 }
12527 if (_raw == NULL || p->mark <= _resmark)
12528 break;
12529 _resmark = p->mark;
12530 _res = _raw;
12531 }
12532 p->mark = _resmark;
12533 p->level--;
12534 return _res;
12535 }
12536 static expr_ty
bitwise_xor_raw(Parser * p)12537 bitwise_xor_raw(Parser *p)
12538 {
12539 if (p->level++ == MAXSTACK) {
12540 p->error_indicator = 1;
12541 PyErr_NoMemory();
12542 }
12543 if (p->error_indicator) {
12544 p->level--;
12545 return NULL;
12546 }
12547 expr_ty _res = NULL;
12548 int _mark = p->mark;
12549 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12550 p->error_indicator = 1;
12551 p->level--;
12552 return NULL;
12553 }
12554 int _start_lineno = p->tokens[_mark]->lineno;
12555 UNUSED(_start_lineno); // Only used by EXTRA macro
12556 int _start_col_offset = p->tokens[_mark]->col_offset;
12557 UNUSED(_start_col_offset); // Only used by EXTRA macro
12558 { // bitwise_xor '^' bitwise_and
12559 if (p->error_indicator) {
12560 p->level--;
12561 return NULL;
12562 }
12563 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12564 Token * _literal;
12565 expr_ty a;
12566 expr_ty b;
12567 if (
12568 (a = bitwise_xor_rule(p)) // bitwise_xor
12569 &&
12570 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
12571 &&
12572 (b = bitwise_and_rule(p)) // bitwise_and
12573 )
12574 {
12575 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12576 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12577 if (_token == NULL) {
12578 p->level--;
12579 return NULL;
12580 }
12581 int _end_lineno = _token->end_lineno;
12582 UNUSED(_end_lineno); // Only used by EXTRA macro
12583 int _end_col_offset = _token->end_col_offset;
12584 UNUSED(_end_col_offset); // Only used by EXTRA macro
12585 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
12586 if (_res == NULL && PyErr_Occurred()) {
12587 p->error_indicator = 1;
12588 p->level--;
12589 return NULL;
12590 }
12591 goto done;
12592 }
12593 p->mark = _mark;
12594 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12596 }
12597 { // bitwise_and
12598 if (p->error_indicator) {
12599 p->level--;
12600 return NULL;
12601 }
12602 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12603 expr_ty bitwise_and_var;
12604 if (
12605 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
12606 )
12607 {
12608 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12609 _res = bitwise_and_var;
12610 goto done;
12611 }
12612 p->mark = _mark;
12613 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
12615 }
12616 _res = NULL;
12617 done:
12618 p->level--;
12619 return _res;
12620 }
12621
12622 // Left-recursive
12623 // bitwise_and: bitwise_and '&' shift_expr | shift_expr
12624 static expr_ty bitwise_and_raw(Parser *);
12625 static expr_ty
bitwise_and_rule(Parser * p)12626 bitwise_and_rule(Parser *p)
12627 {
12628 if (p->level++ == MAXSTACK) {
12629 p->error_indicator = 1;
12630 PyErr_NoMemory();
12631 }
12632 expr_ty _res = NULL;
12633 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
12634 p->level--;
12635 return _res;
12636 }
12637 int _mark = p->mark;
12638 int _resmark = p->mark;
12639 while (1) {
12640 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
12641 if (tmpvar_4) {
12642 p->level--;
12643 return _res;
12644 }
12645 p->mark = _mark;
12646 void *_raw = bitwise_and_raw(p);
12647 if (p->error_indicator) {
12648 p->level--;
12649 return NULL;
12650 }
12651 if (_raw == NULL || p->mark <= _resmark)
12652 break;
12653 _resmark = p->mark;
12654 _res = _raw;
12655 }
12656 p->mark = _resmark;
12657 p->level--;
12658 return _res;
12659 }
12660 static expr_ty
bitwise_and_raw(Parser * p)12661 bitwise_and_raw(Parser *p)
12662 {
12663 if (p->level++ == MAXSTACK) {
12664 p->error_indicator = 1;
12665 PyErr_NoMemory();
12666 }
12667 if (p->error_indicator) {
12668 p->level--;
12669 return NULL;
12670 }
12671 expr_ty _res = NULL;
12672 int _mark = p->mark;
12673 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12674 p->error_indicator = 1;
12675 p->level--;
12676 return NULL;
12677 }
12678 int _start_lineno = p->tokens[_mark]->lineno;
12679 UNUSED(_start_lineno); // Only used by EXTRA macro
12680 int _start_col_offset = p->tokens[_mark]->col_offset;
12681 UNUSED(_start_col_offset); // Only used by EXTRA macro
12682 { // bitwise_and '&' shift_expr
12683 if (p->error_indicator) {
12684 p->level--;
12685 return NULL;
12686 }
12687 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12688 Token * _literal;
12689 expr_ty a;
12690 expr_ty b;
12691 if (
12692 (a = bitwise_and_rule(p)) // bitwise_and
12693 &&
12694 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12695 &&
12696 (b = shift_expr_rule(p)) // shift_expr
12697 )
12698 {
12699 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12700 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12701 if (_token == NULL) {
12702 p->level--;
12703 return NULL;
12704 }
12705 int _end_lineno = _token->end_lineno;
12706 UNUSED(_end_lineno); // Only used by EXTRA macro
12707 int _end_col_offset = _token->end_col_offset;
12708 UNUSED(_end_col_offset); // Only used by EXTRA macro
12709 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
12710 if (_res == NULL && PyErr_Occurred()) {
12711 p->error_indicator = 1;
12712 p->level--;
12713 return NULL;
12714 }
12715 goto done;
12716 }
12717 p->mark = _mark;
12718 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12720 }
12721 { // shift_expr
12722 if (p->error_indicator) {
12723 p->level--;
12724 return NULL;
12725 }
12726 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12727 expr_ty shift_expr_var;
12728 if (
12729 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12730 )
12731 {
12732 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12733 _res = shift_expr_var;
12734 goto done;
12735 }
12736 p->mark = _mark;
12737 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12739 }
12740 _res = NULL;
12741 done:
12742 p->level--;
12743 return _res;
12744 }
12745
12746 // Left-recursive
12747 // shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12748 static expr_ty shift_expr_raw(Parser *);
12749 static expr_ty
shift_expr_rule(Parser * p)12750 shift_expr_rule(Parser *p)
12751 {
12752 if (p->level++ == MAXSTACK) {
12753 p->error_indicator = 1;
12754 PyErr_NoMemory();
12755 }
12756 expr_ty _res = NULL;
12757 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12758 p->level--;
12759 return _res;
12760 }
12761 int _mark = p->mark;
12762 int _resmark = p->mark;
12763 while (1) {
12764 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12765 if (tmpvar_5) {
12766 p->level--;
12767 return _res;
12768 }
12769 p->mark = _mark;
12770 void *_raw = shift_expr_raw(p);
12771 if (p->error_indicator) {
12772 p->level--;
12773 return NULL;
12774 }
12775 if (_raw == NULL || p->mark <= _resmark)
12776 break;
12777 _resmark = p->mark;
12778 _res = _raw;
12779 }
12780 p->mark = _resmark;
12781 p->level--;
12782 return _res;
12783 }
12784 static expr_ty
shift_expr_raw(Parser * p)12785 shift_expr_raw(Parser *p)
12786 {
12787 if (p->level++ == MAXSTACK) {
12788 p->error_indicator = 1;
12789 PyErr_NoMemory();
12790 }
12791 if (p->error_indicator) {
12792 p->level--;
12793 return NULL;
12794 }
12795 expr_ty _res = NULL;
12796 int _mark = p->mark;
12797 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12798 p->error_indicator = 1;
12799 p->level--;
12800 return NULL;
12801 }
12802 int _start_lineno = p->tokens[_mark]->lineno;
12803 UNUSED(_start_lineno); // Only used by EXTRA macro
12804 int _start_col_offset = p->tokens[_mark]->col_offset;
12805 UNUSED(_start_col_offset); // Only used by EXTRA macro
12806 { // shift_expr '<<' sum
12807 if (p->error_indicator) {
12808 p->level--;
12809 return NULL;
12810 }
12811 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12812 Token * _literal;
12813 expr_ty a;
12814 expr_ty b;
12815 if (
12816 (a = shift_expr_rule(p)) // shift_expr
12817 &&
12818 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
12819 &&
12820 (b = sum_rule(p)) // sum
12821 )
12822 {
12823 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12824 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12825 if (_token == NULL) {
12826 p->level--;
12827 return NULL;
12828 }
12829 int _end_lineno = _token->end_lineno;
12830 UNUSED(_end_lineno); // Only used by EXTRA macro
12831 int _end_col_offset = _token->end_col_offset;
12832 UNUSED(_end_col_offset); // Only used by EXTRA macro
12833 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
12834 if (_res == NULL && PyErr_Occurred()) {
12835 p->error_indicator = 1;
12836 p->level--;
12837 return NULL;
12838 }
12839 goto done;
12840 }
12841 p->mark = _mark;
12842 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
12844 }
12845 { // shift_expr '>>' sum
12846 if (p->error_indicator) {
12847 p->level--;
12848 return NULL;
12849 }
12850 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12851 Token * _literal;
12852 expr_ty a;
12853 expr_ty b;
12854 if (
12855 (a = shift_expr_rule(p)) // shift_expr
12856 &&
12857 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
12858 &&
12859 (b = sum_rule(p)) // sum
12860 )
12861 {
12862 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12863 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12864 if (_token == NULL) {
12865 p->level--;
12866 return NULL;
12867 }
12868 int _end_lineno = _token->end_lineno;
12869 UNUSED(_end_lineno); // Only used by EXTRA macro
12870 int _end_col_offset = _token->end_col_offset;
12871 UNUSED(_end_col_offset); // Only used by EXTRA macro
12872 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
12873 if (_res == NULL && PyErr_Occurred()) {
12874 p->error_indicator = 1;
12875 p->level--;
12876 return NULL;
12877 }
12878 goto done;
12879 }
12880 p->mark = _mark;
12881 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
12883 }
12884 { // sum
12885 if (p->error_indicator) {
12886 p->level--;
12887 return NULL;
12888 }
12889 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
12890 expr_ty sum_var;
12891 if (
12892 (sum_var = sum_rule(p)) // sum
12893 )
12894 {
12895 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
12896 _res = sum_var;
12897 goto done;
12898 }
12899 p->mark = _mark;
12900 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
12902 }
12903 _res = NULL;
12904 done:
12905 p->level--;
12906 return _res;
12907 }
12908
12909 // Left-recursive
12910 // sum: sum '+' term | sum '-' term | term
12911 static expr_ty sum_raw(Parser *);
12912 static expr_ty
sum_rule(Parser * p)12913 sum_rule(Parser *p)
12914 {
12915 if (p->level++ == MAXSTACK) {
12916 p->error_indicator = 1;
12917 PyErr_NoMemory();
12918 }
12919 expr_ty _res = NULL;
12920 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
12921 p->level--;
12922 return _res;
12923 }
12924 int _mark = p->mark;
12925 int _resmark = p->mark;
12926 while (1) {
12927 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
12928 if (tmpvar_6) {
12929 p->level--;
12930 return _res;
12931 }
12932 p->mark = _mark;
12933 void *_raw = sum_raw(p);
12934 if (p->error_indicator) {
12935 p->level--;
12936 return NULL;
12937 }
12938 if (_raw == NULL || p->mark <= _resmark)
12939 break;
12940 _resmark = p->mark;
12941 _res = _raw;
12942 }
12943 p->mark = _resmark;
12944 p->level--;
12945 return _res;
12946 }
12947 static expr_ty
sum_raw(Parser * p)12948 sum_raw(Parser *p)
12949 {
12950 if (p->level++ == MAXSTACK) {
12951 p->error_indicator = 1;
12952 PyErr_NoMemory();
12953 }
12954 if (p->error_indicator) {
12955 p->level--;
12956 return NULL;
12957 }
12958 expr_ty _res = NULL;
12959 int _mark = p->mark;
12960 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12961 p->error_indicator = 1;
12962 p->level--;
12963 return NULL;
12964 }
12965 int _start_lineno = p->tokens[_mark]->lineno;
12966 UNUSED(_start_lineno); // Only used by EXTRA macro
12967 int _start_col_offset = p->tokens[_mark]->col_offset;
12968 UNUSED(_start_col_offset); // Only used by EXTRA macro
12969 { // sum '+' term
12970 if (p->error_indicator) {
12971 p->level--;
12972 return NULL;
12973 }
12974 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12975 Token * _literal;
12976 expr_ty a;
12977 expr_ty b;
12978 if (
12979 (a = sum_rule(p)) // sum
12980 &&
12981 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12982 &&
12983 (b = term_rule(p)) // term
12984 )
12985 {
12986 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12987 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12988 if (_token == NULL) {
12989 p->level--;
12990 return NULL;
12991 }
12992 int _end_lineno = _token->end_lineno;
12993 UNUSED(_end_lineno); // Only used by EXTRA macro
12994 int _end_col_offset = _token->end_col_offset;
12995 UNUSED(_end_col_offset); // Only used by EXTRA macro
12996 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
12997 if (_res == NULL && PyErr_Occurred()) {
12998 p->error_indicator = 1;
12999 p->level--;
13000 return NULL;
13001 }
13002 goto done;
13003 }
13004 p->mark = _mark;
13005 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
13007 }
13008 { // sum '-' term
13009 if (p->error_indicator) {
13010 p->level--;
13011 return NULL;
13012 }
13013 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13014 Token * _literal;
13015 expr_ty a;
13016 expr_ty b;
13017 if (
13018 (a = sum_rule(p)) // sum
13019 &&
13020 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13021 &&
13022 (b = term_rule(p)) // term
13023 )
13024 {
13025 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13026 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13027 if (_token == NULL) {
13028 p->level--;
13029 return NULL;
13030 }
13031 int _end_lineno = _token->end_lineno;
13032 UNUSED(_end_lineno); // Only used by EXTRA macro
13033 int _end_col_offset = _token->end_col_offset;
13034 UNUSED(_end_col_offset); // Only used by EXTRA macro
13035 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
13036 if (_res == NULL && PyErr_Occurred()) {
13037 p->error_indicator = 1;
13038 p->level--;
13039 return NULL;
13040 }
13041 goto done;
13042 }
13043 p->mark = _mark;
13044 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
13046 }
13047 { // term
13048 if (p->error_indicator) {
13049 p->level--;
13050 return NULL;
13051 }
13052 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
13053 expr_ty term_var;
13054 if (
13055 (term_var = term_rule(p)) // term
13056 )
13057 {
13058 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
13059 _res = term_var;
13060 goto done;
13061 }
13062 p->mark = _mark;
13063 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
13065 }
13066 _res = NULL;
13067 done:
13068 p->level--;
13069 return _res;
13070 }
13071
13072 // Left-recursive
13073 // term:
13074 // | term '*' factor
13075 // | term '/' factor
13076 // | term '//' factor
13077 // | term '%' factor
13078 // | term '@' factor
13079 // | factor
13080 static expr_ty term_raw(Parser *);
13081 static expr_ty
term_rule(Parser * p)13082 term_rule(Parser *p)
13083 {
13084 if (p->level++ == MAXSTACK) {
13085 p->error_indicator = 1;
13086 PyErr_NoMemory();
13087 }
13088 expr_ty _res = NULL;
13089 if (_PyPegen_is_memoized(p, term_type, &_res)) {
13090 p->level--;
13091 return _res;
13092 }
13093 int _mark = p->mark;
13094 int _resmark = p->mark;
13095 while (1) {
13096 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
13097 if (tmpvar_7) {
13098 p->level--;
13099 return _res;
13100 }
13101 p->mark = _mark;
13102 void *_raw = term_raw(p);
13103 if (p->error_indicator) {
13104 p->level--;
13105 return NULL;
13106 }
13107 if (_raw == NULL || p->mark <= _resmark)
13108 break;
13109 _resmark = p->mark;
13110 _res = _raw;
13111 }
13112 p->mark = _resmark;
13113 p->level--;
13114 return _res;
13115 }
13116 static expr_ty
term_raw(Parser * p)13117 term_raw(Parser *p)
13118 {
13119 if (p->level++ == MAXSTACK) {
13120 p->error_indicator = 1;
13121 PyErr_NoMemory();
13122 }
13123 if (p->error_indicator) {
13124 p->level--;
13125 return NULL;
13126 }
13127 expr_ty _res = NULL;
13128 int _mark = p->mark;
13129 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13130 p->error_indicator = 1;
13131 p->level--;
13132 return NULL;
13133 }
13134 int _start_lineno = p->tokens[_mark]->lineno;
13135 UNUSED(_start_lineno); // Only used by EXTRA macro
13136 int _start_col_offset = p->tokens[_mark]->col_offset;
13137 UNUSED(_start_col_offset); // Only used by EXTRA macro
13138 { // term '*' factor
13139 if (p->error_indicator) {
13140 p->level--;
13141 return NULL;
13142 }
13143 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13144 Token * _literal;
13145 expr_ty a;
13146 expr_ty b;
13147 if (
13148 (a = term_rule(p)) // term
13149 &&
13150 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
13151 &&
13152 (b = factor_rule(p)) // factor
13153 )
13154 {
13155 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13156 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13157 if (_token == NULL) {
13158 p->level--;
13159 return NULL;
13160 }
13161 int _end_lineno = _token->end_lineno;
13162 UNUSED(_end_lineno); // Only used by EXTRA macro
13163 int _end_col_offset = _token->end_col_offset;
13164 UNUSED(_end_col_offset); // Only used by EXTRA macro
13165 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
13166 if (_res == NULL && PyErr_Occurred()) {
13167 p->error_indicator = 1;
13168 p->level--;
13169 return NULL;
13170 }
13171 goto done;
13172 }
13173 p->mark = _mark;
13174 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
13176 }
13177 { // term '/' factor
13178 if (p->error_indicator) {
13179 p->level--;
13180 return NULL;
13181 }
13182 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13183 Token * _literal;
13184 expr_ty a;
13185 expr_ty b;
13186 if (
13187 (a = term_rule(p)) // term
13188 &&
13189 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
13190 &&
13191 (b = factor_rule(p)) // factor
13192 )
13193 {
13194 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13195 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13196 if (_token == NULL) {
13197 p->level--;
13198 return NULL;
13199 }
13200 int _end_lineno = _token->end_lineno;
13201 UNUSED(_end_lineno); // Only used by EXTRA macro
13202 int _end_col_offset = _token->end_col_offset;
13203 UNUSED(_end_col_offset); // Only used by EXTRA macro
13204 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
13205 if (_res == NULL && PyErr_Occurred()) {
13206 p->error_indicator = 1;
13207 p->level--;
13208 return NULL;
13209 }
13210 goto done;
13211 }
13212 p->mark = _mark;
13213 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
13215 }
13216 { // term '//' factor
13217 if (p->error_indicator) {
13218 p->level--;
13219 return NULL;
13220 }
13221 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13222 Token * _literal;
13223 expr_ty a;
13224 expr_ty b;
13225 if (
13226 (a = term_rule(p)) // term
13227 &&
13228 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
13229 &&
13230 (b = factor_rule(p)) // factor
13231 )
13232 {
13233 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13234 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13235 if (_token == NULL) {
13236 p->level--;
13237 return NULL;
13238 }
13239 int _end_lineno = _token->end_lineno;
13240 UNUSED(_end_lineno); // Only used by EXTRA macro
13241 int _end_col_offset = _token->end_col_offset;
13242 UNUSED(_end_col_offset); // Only used by EXTRA macro
13243 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
13244 if (_res == NULL && PyErr_Occurred()) {
13245 p->error_indicator = 1;
13246 p->level--;
13247 return NULL;
13248 }
13249 goto done;
13250 }
13251 p->mark = _mark;
13252 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
13254 }
13255 { // term '%' factor
13256 if (p->error_indicator) {
13257 p->level--;
13258 return NULL;
13259 }
13260 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13261 Token * _literal;
13262 expr_ty a;
13263 expr_ty b;
13264 if (
13265 (a = term_rule(p)) // term
13266 &&
13267 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
13268 &&
13269 (b = factor_rule(p)) // factor
13270 )
13271 {
13272 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13273 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13274 if (_token == NULL) {
13275 p->level--;
13276 return NULL;
13277 }
13278 int _end_lineno = _token->end_lineno;
13279 UNUSED(_end_lineno); // Only used by EXTRA macro
13280 int _end_col_offset = _token->end_col_offset;
13281 UNUSED(_end_col_offset); // Only used by EXTRA macro
13282 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
13283 if (_res == NULL && PyErr_Occurred()) {
13284 p->error_indicator = 1;
13285 p->level--;
13286 return NULL;
13287 }
13288 goto done;
13289 }
13290 p->mark = _mark;
13291 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
13293 }
13294 { // term '@' factor
13295 if (p->error_indicator) {
13296 p->level--;
13297 return NULL;
13298 }
13299 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13300 Token * _literal;
13301 expr_ty a;
13302 expr_ty b;
13303 if (
13304 (a = term_rule(p)) // term
13305 &&
13306 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
13307 &&
13308 (b = factor_rule(p)) // factor
13309 )
13310 {
13311 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13312 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13313 if (_token == NULL) {
13314 p->level--;
13315 return NULL;
13316 }
13317 int _end_lineno = _token->end_lineno;
13318 UNUSED(_end_lineno); // Only used by EXTRA macro
13319 int _end_col_offset = _token->end_col_offset;
13320 UNUSED(_end_col_offset); // Only used by EXTRA macro
13321 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
13322 if (_res == NULL && PyErr_Occurred()) {
13323 p->error_indicator = 1;
13324 p->level--;
13325 return NULL;
13326 }
13327 goto done;
13328 }
13329 p->mark = _mark;
13330 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
13332 }
13333 { // factor
13334 if (p->error_indicator) {
13335 p->level--;
13336 return NULL;
13337 }
13338 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
13339 expr_ty factor_var;
13340 if (
13341 (factor_var = factor_rule(p)) // factor
13342 )
13343 {
13344 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
13345 _res = factor_var;
13346 goto done;
13347 }
13348 p->mark = _mark;
13349 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
13351 }
13352 _res = NULL;
13353 done:
13354 p->level--;
13355 return _res;
13356 }
13357
13358 // factor: '+' factor | '-' factor | '~' factor | power
13359 static expr_ty
factor_rule(Parser * p)13360 factor_rule(Parser *p)
13361 {
13362 if (p->level++ == MAXSTACK) {
13363 p->error_indicator = 1;
13364 PyErr_NoMemory();
13365 }
13366 if (p->error_indicator) {
13367 p->level--;
13368 return NULL;
13369 }
13370 expr_ty _res = NULL;
13371 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
13372 p->level--;
13373 return _res;
13374 }
13375 int _mark = p->mark;
13376 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13377 p->error_indicator = 1;
13378 p->level--;
13379 return NULL;
13380 }
13381 int _start_lineno = p->tokens[_mark]->lineno;
13382 UNUSED(_start_lineno); // Only used by EXTRA macro
13383 int _start_col_offset = p->tokens[_mark]->col_offset;
13384 UNUSED(_start_col_offset); // Only used by EXTRA macro
13385 { // '+' factor
13386 if (p->error_indicator) {
13387 p->level--;
13388 return NULL;
13389 }
13390 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13391 Token * _literal;
13392 expr_ty a;
13393 if (
13394 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13395 &&
13396 (a = factor_rule(p)) // factor
13397 )
13398 {
13399 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13400 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13401 if (_token == NULL) {
13402 p->level--;
13403 return NULL;
13404 }
13405 int _end_lineno = _token->end_lineno;
13406 UNUSED(_end_lineno); // Only used by EXTRA macro
13407 int _end_col_offset = _token->end_col_offset;
13408 UNUSED(_end_col_offset); // Only used by EXTRA macro
13409 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
13410 if (_res == NULL && PyErr_Occurred()) {
13411 p->error_indicator = 1;
13412 p->level--;
13413 return NULL;
13414 }
13415 goto done;
13416 }
13417 p->mark = _mark;
13418 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
13420 }
13421 { // '-' factor
13422 if (p->error_indicator) {
13423 p->level--;
13424 return NULL;
13425 }
13426 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13427 Token * _literal;
13428 expr_ty a;
13429 if (
13430 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13431 &&
13432 (a = factor_rule(p)) // factor
13433 )
13434 {
13435 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13436 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13437 if (_token == NULL) {
13438 p->level--;
13439 return NULL;
13440 }
13441 int _end_lineno = _token->end_lineno;
13442 UNUSED(_end_lineno); // Only used by EXTRA macro
13443 int _end_col_offset = _token->end_col_offset;
13444 UNUSED(_end_col_offset); // Only used by EXTRA macro
13445 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
13446 if (_res == NULL && PyErr_Occurred()) {
13447 p->error_indicator = 1;
13448 p->level--;
13449 return NULL;
13450 }
13451 goto done;
13452 }
13453 p->mark = _mark;
13454 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
13456 }
13457 { // '~' factor
13458 if (p->error_indicator) {
13459 p->level--;
13460 return NULL;
13461 }
13462 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13463 Token * _literal;
13464 expr_ty a;
13465 if (
13466 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
13467 &&
13468 (a = factor_rule(p)) // factor
13469 )
13470 {
13471 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13472 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13473 if (_token == NULL) {
13474 p->level--;
13475 return NULL;
13476 }
13477 int _end_lineno = _token->end_lineno;
13478 UNUSED(_end_lineno); // Only used by EXTRA macro
13479 int _end_col_offset = _token->end_col_offset;
13480 UNUSED(_end_col_offset); // Only used by EXTRA macro
13481 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
13482 if (_res == NULL && PyErr_Occurred()) {
13483 p->error_indicator = 1;
13484 p->level--;
13485 return NULL;
13486 }
13487 goto done;
13488 }
13489 p->mark = _mark;
13490 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
13492 }
13493 { // power
13494 if (p->error_indicator) {
13495 p->level--;
13496 return NULL;
13497 }
13498 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
13499 expr_ty power_var;
13500 if (
13501 (power_var = power_rule(p)) // power
13502 )
13503 {
13504 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
13505 _res = power_var;
13506 goto done;
13507 }
13508 p->mark = _mark;
13509 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
13511 }
13512 _res = NULL;
13513 done:
13514 _PyPegen_insert_memo(p, _mark, factor_type, _res);
13515 p->level--;
13516 return _res;
13517 }
13518
13519 // power: await_primary '**' factor | await_primary
13520 static expr_ty
power_rule(Parser * p)13521 power_rule(Parser *p)
13522 {
13523 if (p->level++ == MAXSTACK) {
13524 p->error_indicator = 1;
13525 PyErr_NoMemory();
13526 }
13527 if (p->error_indicator) {
13528 p->level--;
13529 return NULL;
13530 }
13531 expr_ty _res = NULL;
13532 int _mark = p->mark;
13533 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13534 p->error_indicator = 1;
13535 p->level--;
13536 return NULL;
13537 }
13538 int _start_lineno = p->tokens[_mark]->lineno;
13539 UNUSED(_start_lineno); // Only used by EXTRA macro
13540 int _start_col_offset = p->tokens[_mark]->col_offset;
13541 UNUSED(_start_col_offset); // Only used by EXTRA macro
13542 { // await_primary '**' factor
13543 if (p->error_indicator) {
13544 p->level--;
13545 return NULL;
13546 }
13547 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13548 Token * _literal;
13549 expr_ty a;
13550 expr_ty b;
13551 if (
13552 (a = await_primary_rule(p)) // await_primary
13553 &&
13554 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
13555 &&
13556 (b = factor_rule(p)) // factor
13557 )
13558 {
13559 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13560 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13561 if (_token == NULL) {
13562 p->level--;
13563 return NULL;
13564 }
13565 int _end_lineno = _token->end_lineno;
13566 UNUSED(_end_lineno); // Only used by EXTRA macro
13567 int _end_col_offset = _token->end_col_offset;
13568 UNUSED(_end_col_offset); // Only used by EXTRA macro
13569 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
13570 if (_res == NULL && PyErr_Occurred()) {
13571 p->error_indicator = 1;
13572 p->level--;
13573 return NULL;
13574 }
13575 goto done;
13576 }
13577 p->mark = _mark;
13578 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
13580 }
13581 { // await_primary
13582 if (p->error_indicator) {
13583 p->level--;
13584 return NULL;
13585 }
13586 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
13587 expr_ty await_primary_var;
13588 if (
13589 (await_primary_var = await_primary_rule(p)) // await_primary
13590 )
13591 {
13592 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
13593 _res = await_primary_var;
13594 goto done;
13595 }
13596 p->mark = _mark;
13597 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
13599 }
13600 _res = NULL;
13601 done:
13602 p->level--;
13603 return _res;
13604 }
13605
13606 // await_primary: AWAIT primary | primary
13607 static expr_ty
await_primary_rule(Parser * p)13608 await_primary_rule(Parser *p)
13609 {
13610 if (p->level++ == MAXSTACK) {
13611 p->error_indicator = 1;
13612 PyErr_NoMemory();
13613 }
13614 if (p->error_indicator) {
13615 p->level--;
13616 return NULL;
13617 }
13618 expr_ty _res = NULL;
13619 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
13620 p->level--;
13621 return _res;
13622 }
13623 int _mark = p->mark;
13624 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13625 p->error_indicator = 1;
13626 p->level--;
13627 return NULL;
13628 }
13629 int _start_lineno = p->tokens[_mark]->lineno;
13630 UNUSED(_start_lineno); // Only used by EXTRA macro
13631 int _start_col_offset = p->tokens[_mark]->col_offset;
13632 UNUSED(_start_col_offset); // Only used by EXTRA macro
13633 { // AWAIT primary
13634 if (p->error_indicator) {
13635 p->level--;
13636 return NULL;
13637 }
13638 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13639 expr_ty a;
13640 Token * await_var;
13641 if (
13642 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
13643 &&
13644 (a = primary_rule(p)) // primary
13645 )
13646 {
13647 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13648 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13649 if (_token == NULL) {
13650 p->level--;
13651 return NULL;
13652 }
13653 int _end_lineno = _token->end_lineno;
13654 UNUSED(_end_lineno); // Only used by EXTRA macro
13655 int _end_col_offset = _token->end_col_offset;
13656 UNUSED(_end_col_offset); // Only used by EXTRA macro
13657 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
13658 if (_res == NULL && PyErr_Occurred()) {
13659 p->error_indicator = 1;
13660 p->level--;
13661 return NULL;
13662 }
13663 goto done;
13664 }
13665 p->mark = _mark;
13666 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
13668 }
13669 { // primary
13670 if (p->error_indicator) {
13671 p->level--;
13672 return NULL;
13673 }
13674 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
13675 expr_ty primary_var;
13676 if (
13677 (primary_var = primary_rule(p)) // primary
13678 )
13679 {
13680 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
13681 _res = primary_var;
13682 goto done;
13683 }
13684 p->mark = _mark;
13685 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
13687 }
13688 _res = NULL;
13689 done:
13690 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
13691 p->level--;
13692 return _res;
13693 }
13694
13695 // Left-recursive
13696 // primary:
13697 // | primary '.' NAME
13698 // | primary genexp
13699 // | primary '(' arguments? ')'
13700 // | primary '[' slices ']'
13701 // | atom
13702 static expr_ty primary_raw(Parser *);
13703 static expr_ty
primary_rule(Parser * p)13704 primary_rule(Parser *p)
13705 {
13706 if (p->level++ == MAXSTACK) {
13707 p->error_indicator = 1;
13708 PyErr_NoMemory();
13709 }
13710 expr_ty _res = NULL;
13711 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13712 p->level--;
13713 return _res;
13714 }
13715 int _mark = p->mark;
13716 int _resmark = p->mark;
13717 while (1) {
13718 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13719 if (tmpvar_8) {
13720 p->level--;
13721 return _res;
13722 }
13723 p->mark = _mark;
13724 void *_raw = primary_raw(p);
13725 if (p->error_indicator) {
13726 p->level--;
13727 return NULL;
13728 }
13729 if (_raw == NULL || p->mark <= _resmark)
13730 break;
13731 _resmark = p->mark;
13732 _res = _raw;
13733 }
13734 p->mark = _resmark;
13735 p->level--;
13736 return _res;
13737 }
13738 static expr_ty
primary_raw(Parser * p)13739 primary_raw(Parser *p)
13740 {
13741 if (p->level++ == MAXSTACK) {
13742 p->error_indicator = 1;
13743 PyErr_NoMemory();
13744 }
13745 if (p->error_indicator) {
13746 p->level--;
13747 return NULL;
13748 }
13749 expr_ty _res = NULL;
13750 int _mark = p->mark;
13751 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13752 p->error_indicator = 1;
13753 p->level--;
13754 return NULL;
13755 }
13756 int _start_lineno = p->tokens[_mark]->lineno;
13757 UNUSED(_start_lineno); // Only used by EXTRA macro
13758 int _start_col_offset = p->tokens[_mark]->col_offset;
13759 UNUSED(_start_col_offset); // Only used by EXTRA macro
13760 { // primary '.' NAME
13761 if (p->error_indicator) {
13762 p->level--;
13763 return NULL;
13764 }
13765 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13766 Token * _literal;
13767 expr_ty a;
13768 expr_ty b;
13769 if (
13770 (a = primary_rule(p)) // primary
13771 &&
13772 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13773 &&
13774 (b = _PyPegen_name_token(p)) // NAME
13775 )
13776 {
13777 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13778 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13779 if (_token == NULL) {
13780 p->level--;
13781 return NULL;
13782 }
13783 int _end_lineno = _token->end_lineno;
13784 UNUSED(_end_lineno); // Only used by EXTRA macro
13785 int _end_col_offset = _token->end_col_offset;
13786 UNUSED(_end_col_offset); // Only used by EXTRA macro
13787 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
13788 if (_res == NULL && PyErr_Occurred()) {
13789 p->error_indicator = 1;
13790 p->level--;
13791 return NULL;
13792 }
13793 goto done;
13794 }
13795 p->mark = _mark;
13796 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13798 }
13799 { // primary genexp
13800 if (p->error_indicator) {
13801 p->level--;
13802 return NULL;
13803 }
13804 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13805 expr_ty a;
13806 expr_ty b;
13807 if (
13808 (a = primary_rule(p)) // primary
13809 &&
13810 (b = genexp_rule(p)) // genexp
13811 )
13812 {
13813 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13814 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13815 if (_token == NULL) {
13816 p->level--;
13817 return NULL;
13818 }
13819 int _end_lineno = _token->end_lineno;
13820 UNUSED(_end_lineno); // Only used by EXTRA macro
13821 int _end_col_offset = _token->end_col_offset;
13822 UNUSED(_end_col_offset); // Only used by EXTRA macro
13823 _res = _PyAST_Call ( a , CHECK ( asdl_expr_seq* , ( asdl_expr_seq* ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
13824 if (_res == NULL && PyErr_Occurred()) {
13825 p->error_indicator = 1;
13826 p->level--;
13827 return NULL;
13828 }
13829 goto done;
13830 }
13831 p->mark = _mark;
13832 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
13834 }
13835 { // primary '(' arguments? ')'
13836 if (p->error_indicator) {
13837 p->level--;
13838 return NULL;
13839 }
13840 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13841 Token * _literal;
13842 Token * _literal_1;
13843 expr_ty a;
13844 void *b;
13845 if (
13846 (a = primary_rule(p)) // primary
13847 &&
13848 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13849 &&
13850 (b = arguments_rule(p), !p->error_indicator) // arguments?
13851 &&
13852 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13853 )
13854 {
13855 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13856 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13857 if (_token == NULL) {
13858 p->level--;
13859 return NULL;
13860 }
13861 int _end_lineno = _token->end_lineno;
13862 UNUSED(_end_lineno); // Only used by EXTRA macro
13863 int _end_col_offset = _token->end_col_offset;
13864 UNUSED(_end_col_offset); // Only used by EXTRA macro
13865 _res = _PyAST_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
13866 if (_res == NULL && PyErr_Occurred()) {
13867 p->error_indicator = 1;
13868 p->level--;
13869 return NULL;
13870 }
13871 goto done;
13872 }
13873 p->mark = _mark;
13874 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
13876 }
13877 { // primary '[' slices ']'
13878 if (p->error_indicator) {
13879 p->level--;
13880 return NULL;
13881 }
13882 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
13883 Token * _literal;
13884 Token * _literal_1;
13885 expr_ty a;
13886 expr_ty b;
13887 if (
13888 (a = primary_rule(p)) // primary
13889 &&
13890 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13891 &&
13892 (b = slices_rule(p)) // slices
13893 &&
13894 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13895 )
13896 {
13897 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
13898 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13899 if (_token == NULL) {
13900 p->level--;
13901 return NULL;
13902 }
13903 int _end_lineno = _token->end_lineno;
13904 UNUSED(_end_lineno); // Only used by EXTRA macro
13905 int _end_col_offset = _token->end_col_offset;
13906 UNUSED(_end_col_offset); // Only used by EXTRA macro
13907 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
13908 if (_res == NULL && PyErr_Occurred()) {
13909 p->error_indicator = 1;
13910 p->level--;
13911 return NULL;
13912 }
13913 goto done;
13914 }
13915 p->mark = _mark;
13916 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
13918 }
13919 { // atom
13920 if (p->error_indicator) {
13921 p->level--;
13922 return NULL;
13923 }
13924 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
13925 expr_ty atom_var;
13926 if (
13927 (atom_var = atom_rule(p)) // atom
13928 )
13929 {
13930 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
13931 _res = atom_var;
13932 goto done;
13933 }
13934 p->mark = _mark;
13935 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
13937 }
13938 _res = NULL;
13939 done:
13940 p->level--;
13941 return _res;
13942 }
13943
13944 // slices: slice !',' | ','.(slice | starred_expression)+ ','?
13945 static expr_ty
slices_rule(Parser * p)13946 slices_rule(Parser *p)
13947 {
13948 if (p->level++ == MAXSTACK) {
13949 p->error_indicator = 1;
13950 PyErr_NoMemory();
13951 }
13952 if (p->error_indicator) {
13953 p->level--;
13954 return NULL;
13955 }
13956 expr_ty _res = NULL;
13957 int _mark = p->mark;
13958 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13959 p->error_indicator = 1;
13960 p->level--;
13961 return NULL;
13962 }
13963 int _start_lineno = p->tokens[_mark]->lineno;
13964 UNUSED(_start_lineno); // Only used by EXTRA macro
13965 int _start_col_offset = p->tokens[_mark]->col_offset;
13966 UNUSED(_start_col_offset); // Only used by EXTRA macro
13967 { // slice !','
13968 if (p->error_indicator) {
13969 p->level--;
13970 return NULL;
13971 }
13972 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
13973 expr_ty a;
13974 if (
13975 (a = slice_rule(p)) // slice
13976 &&
13977 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
13978 )
13979 {
13980 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
13981 _res = a;
13982 if (_res == NULL && PyErr_Occurred()) {
13983 p->error_indicator = 1;
13984 p->level--;
13985 return NULL;
13986 }
13987 goto done;
13988 }
13989 p->mark = _mark;
13990 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
13992 }
13993 { // ','.(slice | starred_expression)+ ','?
13994 if (p->error_indicator) {
13995 p->level--;
13996 return NULL;
13997 }
13998 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(slice | starred_expression)+ ','?"));
13999 void *_opt_var;
14000 UNUSED(_opt_var); // Silence compiler warnings
14001 asdl_expr_seq* a;
14002 if (
14003 (a = (asdl_expr_seq*)_gather_88_rule(p)) // ','.(slice | starred_expression)+
14004 &&
14005 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
14006 )
14007 {
14008 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(slice | starred_expression)+ ','?"));
14009 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14010 if (_token == NULL) {
14011 p->level--;
14012 return NULL;
14013 }
14014 int _end_lineno = _token->end_lineno;
14015 UNUSED(_end_lineno); // Only used by EXTRA macro
14016 int _end_col_offset = _token->end_col_offset;
14017 UNUSED(_end_col_offset); // Only used by EXTRA macro
14018 _res = _PyAST_Tuple ( a , Load , EXTRA );
14019 if (_res == NULL && PyErr_Occurred()) {
14020 p->error_indicator = 1;
14021 p->level--;
14022 return NULL;
14023 }
14024 goto done;
14025 }
14026 p->mark = _mark;
14027 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(slice | starred_expression)+ ','?"));
14029 }
14030 _res = NULL;
14031 done:
14032 p->level--;
14033 return _res;
14034 }
14035
14036 // slice: expression? ':' expression? [':' expression?] | named_expression
14037 static expr_ty
slice_rule(Parser * p)14038 slice_rule(Parser *p)
14039 {
14040 if (p->level++ == MAXSTACK) {
14041 p->error_indicator = 1;
14042 PyErr_NoMemory();
14043 }
14044 if (p->error_indicator) {
14045 p->level--;
14046 return NULL;
14047 }
14048 expr_ty _res = NULL;
14049 int _mark = p->mark;
14050 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14051 p->error_indicator = 1;
14052 p->level--;
14053 return NULL;
14054 }
14055 int _start_lineno = p->tokens[_mark]->lineno;
14056 UNUSED(_start_lineno); // Only used by EXTRA macro
14057 int _start_col_offset = p->tokens[_mark]->col_offset;
14058 UNUSED(_start_col_offset); // Only used by EXTRA macro
14059 { // expression? ':' expression? [':' expression?]
14060 if (p->error_indicator) {
14061 p->level--;
14062 return NULL;
14063 }
14064 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14065 Token * _literal;
14066 void *a;
14067 void *b;
14068 void *c;
14069 if (
14070 (a = expression_rule(p), !p->error_indicator) // expression?
14071 &&
14072 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14073 &&
14074 (b = expression_rule(p), !p->error_indicator) // expression?
14075 &&
14076 (c = _tmp_90_rule(p), !p->error_indicator) // [':' expression?]
14077 )
14078 {
14079 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14080 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14081 if (_token == NULL) {
14082 p->level--;
14083 return NULL;
14084 }
14085 int _end_lineno = _token->end_lineno;
14086 UNUSED(_end_lineno); // Only used by EXTRA macro
14087 int _end_col_offset = _token->end_col_offset;
14088 UNUSED(_end_col_offset); // Only used by EXTRA macro
14089 _res = _PyAST_Slice ( a , b , c , EXTRA );
14090 if (_res == NULL && PyErr_Occurred()) {
14091 p->error_indicator = 1;
14092 p->level--;
14093 return NULL;
14094 }
14095 goto done;
14096 }
14097 p->mark = _mark;
14098 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
14099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14100 }
14101 { // named_expression
14102 if (p->error_indicator) {
14103 p->level--;
14104 return NULL;
14105 }
14106 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
14107 expr_ty a;
14108 if (
14109 (a = named_expression_rule(p)) // named_expression
14110 )
14111 {
14112 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
14113 _res = a;
14114 if (_res == NULL && PyErr_Occurred()) {
14115 p->error_indicator = 1;
14116 p->level--;
14117 return NULL;
14118 }
14119 goto done;
14120 }
14121 p->mark = _mark;
14122 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
14123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
14124 }
14125 _res = NULL;
14126 done:
14127 p->level--;
14128 return _res;
14129 }
14130
14131 // atom:
14132 // | NAME
14133 // | 'True'
14134 // | 'False'
14135 // | 'None'
14136 // | &STRING strings
14137 // | NUMBER
14138 // | &'(' (tuple | group | genexp)
14139 // | &'[' (list | listcomp)
14140 // | &'{' (dict | set | dictcomp | setcomp)
14141 // | '...'
14142 static expr_ty
atom_rule(Parser * p)14143 atom_rule(Parser *p)
14144 {
14145 if (p->level++ == MAXSTACK) {
14146 p->error_indicator = 1;
14147 PyErr_NoMemory();
14148 }
14149 if (p->error_indicator) {
14150 p->level--;
14151 return NULL;
14152 }
14153 expr_ty _res = NULL;
14154 int _mark = p->mark;
14155 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14156 p->error_indicator = 1;
14157 p->level--;
14158 return NULL;
14159 }
14160 int _start_lineno = p->tokens[_mark]->lineno;
14161 UNUSED(_start_lineno); // Only used by EXTRA macro
14162 int _start_col_offset = p->tokens[_mark]->col_offset;
14163 UNUSED(_start_col_offset); // Only used by EXTRA macro
14164 { // NAME
14165 if (p->error_indicator) {
14166 p->level--;
14167 return NULL;
14168 }
14169 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14170 expr_ty name_var;
14171 if (
14172 (name_var = _PyPegen_name_token(p)) // NAME
14173 )
14174 {
14175 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14176 _res = name_var;
14177 goto done;
14178 }
14179 p->mark = _mark;
14180 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14182 }
14183 { // 'True'
14184 if (p->error_indicator) {
14185 p->level--;
14186 return NULL;
14187 }
14188 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
14189 Token * _keyword;
14190 if (
14191 (_keyword = _PyPegen_expect_token(p, 600)) // token='True'
14192 )
14193 {
14194 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
14195 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14196 if (_token == NULL) {
14197 p->level--;
14198 return NULL;
14199 }
14200 int _end_lineno = _token->end_lineno;
14201 UNUSED(_end_lineno); // Only used by EXTRA macro
14202 int _end_col_offset = _token->end_col_offset;
14203 UNUSED(_end_col_offset); // Only used by EXTRA macro
14204 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
14205 if (_res == NULL && PyErr_Occurred()) {
14206 p->error_indicator = 1;
14207 p->level--;
14208 return NULL;
14209 }
14210 goto done;
14211 }
14212 p->mark = _mark;
14213 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
14215 }
14216 { // 'False'
14217 if (p->error_indicator) {
14218 p->level--;
14219 return NULL;
14220 }
14221 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
14222 Token * _keyword;
14223 if (
14224 (_keyword = _PyPegen_expect_token(p, 602)) // token='False'
14225 )
14226 {
14227 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
14228 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14229 if (_token == NULL) {
14230 p->level--;
14231 return NULL;
14232 }
14233 int _end_lineno = _token->end_lineno;
14234 UNUSED(_end_lineno); // Only used by EXTRA macro
14235 int _end_col_offset = _token->end_col_offset;
14236 UNUSED(_end_col_offset); // Only used by EXTRA macro
14237 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
14238 if (_res == NULL && PyErr_Occurred()) {
14239 p->error_indicator = 1;
14240 p->level--;
14241 return NULL;
14242 }
14243 goto done;
14244 }
14245 p->mark = _mark;
14246 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
14248 }
14249 { // 'None'
14250 if (p->error_indicator) {
14251 p->level--;
14252 return NULL;
14253 }
14254 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
14255 Token * _keyword;
14256 if (
14257 (_keyword = _PyPegen_expect_token(p, 601)) // token='None'
14258 )
14259 {
14260 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
14261 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14262 if (_token == NULL) {
14263 p->level--;
14264 return NULL;
14265 }
14266 int _end_lineno = _token->end_lineno;
14267 UNUSED(_end_lineno); // Only used by EXTRA macro
14268 int _end_col_offset = _token->end_col_offset;
14269 UNUSED(_end_col_offset); // Only used by EXTRA macro
14270 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
14271 if (_res == NULL && PyErr_Occurred()) {
14272 p->error_indicator = 1;
14273 p->level--;
14274 return NULL;
14275 }
14276 goto done;
14277 }
14278 p->mark = _mark;
14279 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
14281 }
14282 { // &STRING strings
14283 if (p->error_indicator) {
14284 p->level--;
14285 return NULL;
14286 }
14287 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14288 expr_ty strings_var;
14289 if (
14290 _PyPegen_lookahead(1, _PyPegen_string_token, p)
14291 &&
14292 (strings_var = strings_rule(p)) // strings
14293 )
14294 {
14295 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14296 _res = strings_var;
14297 goto done;
14298 }
14299 p->mark = _mark;
14300 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14301 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
14302 }
14303 { // NUMBER
14304 if (p->error_indicator) {
14305 p->level--;
14306 return NULL;
14307 }
14308 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14309 expr_ty number_var;
14310 if (
14311 (number_var = _PyPegen_number_token(p)) // NUMBER
14312 )
14313 {
14314 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14315 _res = number_var;
14316 goto done;
14317 }
14318 p->mark = _mark;
14319 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
14321 }
14322 { // &'(' (tuple | group | genexp)
14323 if (p->error_indicator) {
14324 p->level--;
14325 return NULL;
14326 }
14327 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
14328 void *_tmp_91_var;
14329 if (
14330 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
14331 &&
14332 (_tmp_91_var = _tmp_91_rule(p)) // tuple | group | genexp
14333 )
14334 {
14335 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
14336 _res = _tmp_91_var;
14337 goto done;
14338 }
14339 p->mark = _mark;
14340 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
14342 }
14343 { // &'[' (list | listcomp)
14344 if (p->error_indicator) {
14345 p->level--;
14346 return NULL;
14347 }
14348 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
14349 void *_tmp_92_var;
14350 if (
14351 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
14352 &&
14353 (_tmp_92_var = _tmp_92_rule(p)) // list | listcomp
14354 )
14355 {
14356 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
14357 _res = _tmp_92_var;
14358 goto done;
14359 }
14360 p->mark = _mark;
14361 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
14363 }
14364 { // &'{' (dict | set | dictcomp | setcomp)
14365 if (p->error_indicator) {
14366 p->level--;
14367 return NULL;
14368 }
14369 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
14370 void *_tmp_93_var;
14371 if (
14372 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
14373 &&
14374 (_tmp_93_var = _tmp_93_rule(p)) // dict | set | dictcomp | setcomp
14375 )
14376 {
14377 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
14378 _res = _tmp_93_var;
14379 goto done;
14380 }
14381 p->mark = _mark;
14382 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
14384 }
14385 { // '...'
14386 if (p->error_indicator) {
14387 p->level--;
14388 return NULL;
14389 }
14390 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
14391 Token * _literal;
14392 if (
14393 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
14394 )
14395 {
14396 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
14397 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14398 if (_token == NULL) {
14399 p->level--;
14400 return NULL;
14401 }
14402 int _end_lineno = _token->end_lineno;
14403 UNUSED(_end_lineno); // Only used by EXTRA macro
14404 int _end_col_offset = _token->end_col_offset;
14405 UNUSED(_end_col_offset); // Only used by EXTRA macro
14406 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
14407 if (_res == NULL && PyErr_Occurred()) {
14408 p->error_indicator = 1;
14409 p->level--;
14410 return NULL;
14411 }
14412 goto done;
14413 }
14414 p->mark = _mark;
14415 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
14417 }
14418 _res = NULL;
14419 done:
14420 p->level--;
14421 return _res;
14422 }
14423
14424 // group: '(' (yield_expr | named_expression) ')' | invalid_group
14425 static expr_ty
group_rule(Parser * p)14426 group_rule(Parser *p)
14427 {
14428 if (p->level++ == MAXSTACK) {
14429 p->error_indicator = 1;
14430 PyErr_NoMemory();
14431 }
14432 if (p->error_indicator) {
14433 p->level--;
14434 return NULL;
14435 }
14436 expr_ty _res = NULL;
14437 int _mark = p->mark;
14438 { // '(' (yield_expr | named_expression) ')'
14439 if (p->error_indicator) {
14440 p->level--;
14441 return NULL;
14442 }
14443 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14444 Token * _literal;
14445 Token * _literal_1;
14446 void *a;
14447 if (
14448 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14449 &&
14450 (a = _tmp_94_rule(p)) // yield_expr | named_expression
14451 &&
14452 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14453 )
14454 {
14455 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14456 _res = a;
14457 if (_res == NULL && PyErr_Occurred()) {
14458 p->error_indicator = 1;
14459 p->level--;
14460 return NULL;
14461 }
14462 goto done;
14463 }
14464 p->mark = _mark;
14465 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14467 }
14468 if (p->call_invalid_rules) { // invalid_group
14469 if (p->error_indicator) {
14470 p->level--;
14471 return NULL;
14472 }
14473 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14474 void *invalid_group_var;
14475 if (
14476 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14477 )
14478 {
14479 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14480 _res = invalid_group_var;
14481 goto done;
14482 }
14483 p->mark = _mark;
14484 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14486 }
14487 _res = NULL;
14488 done:
14489 p->level--;
14490 return _res;
14491 }
14492
14493 // lambdef: 'lambda' lambda_params? ':' expression
14494 static expr_ty
lambdef_rule(Parser * p)14495 lambdef_rule(Parser *p)
14496 {
14497 if (p->level++ == MAXSTACK) {
14498 p->error_indicator = 1;
14499 PyErr_NoMemory();
14500 }
14501 if (p->error_indicator) {
14502 p->level--;
14503 return NULL;
14504 }
14505 expr_ty _res = NULL;
14506 int _mark = p->mark;
14507 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14508 p->error_indicator = 1;
14509 p->level--;
14510 return NULL;
14511 }
14512 int _start_lineno = p->tokens[_mark]->lineno;
14513 UNUSED(_start_lineno); // Only used by EXTRA macro
14514 int _start_col_offset = p->tokens[_mark]->col_offset;
14515 UNUSED(_start_col_offset); // Only used by EXTRA macro
14516 { // 'lambda' lambda_params? ':' expression
14517 if (p->error_indicator) {
14518 p->level--;
14519 return NULL;
14520 }
14521 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
14522 Token * _keyword;
14523 Token * _literal;
14524 void *a;
14525 expr_ty b;
14526 if (
14527 (_keyword = _PyPegen_expect_token(p, 586)) // token='lambda'
14528 &&
14529 (a = lambda_params_rule(p), !p->error_indicator) // lambda_params?
14530 &&
14531 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14532 &&
14533 (b = expression_rule(p)) // expression
14534 )
14535 {
14536 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
14537 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14538 if (_token == NULL) {
14539 p->level--;
14540 return NULL;
14541 }
14542 int _end_lineno = _token->end_lineno;
14543 UNUSED(_end_lineno); // Only used by EXTRA macro
14544 int _end_col_offset = _token->end_col_offset;
14545 UNUSED(_end_col_offset); // Only used by EXTRA macro
14546 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
14547 if (_res == NULL && PyErr_Occurred()) {
14548 p->error_indicator = 1;
14549 p->level--;
14550 return NULL;
14551 }
14552 goto done;
14553 }
14554 p->mark = _mark;
14555 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
14556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
14557 }
14558 _res = NULL;
14559 done:
14560 p->level--;
14561 return _res;
14562 }
14563
14564 // lambda_params: invalid_lambda_parameters | lambda_parameters
14565 static arguments_ty
lambda_params_rule(Parser * p)14566 lambda_params_rule(Parser *p)
14567 {
14568 if (p->level++ == MAXSTACK) {
14569 p->error_indicator = 1;
14570 PyErr_NoMemory();
14571 }
14572 if (p->error_indicator) {
14573 p->level--;
14574 return NULL;
14575 }
14576 arguments_ty _res = NULL;
14577 int _mark = p->mark;
14578 if (p->call_invalid_rules) { // invalid_lambda_parameters
14579 if (p->error_indicator) {
14580 p->level--;
14581 return NULL;
14582 }
14583 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
14584 void *invalid_lambda_parameters_var;
14585 if (
14586 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
14587 )
14588 {
14589 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
14590 _res = invalid_lambda_parameters_var;
14591 goto done;
14592 }
14593 p->mark = _mark;
14594 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
14595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
14596 }
14597 { // lambda_parameters
14598 if (p->error_indicator) {
14599 p->level--;
14600 return NULL;
14601 }
14602 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
14603 arguments_ty lambda_parameters_var;
14604 if (
14605 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
14606 )
14607 {
14608 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
14609 _res = lambda_parameters_var;
14610 goto done;
14611 }
14612 p->mark = _mark;
14613 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
14614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
14615 }
14616 _res = NULL;
14617 done:
14618 p->level--;
14619 return _res;
14620 }
14621
14622 // lambda_parameters:
14623 // | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
14624 // | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
14625 // | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
14626 // | lambda_param_with_default+ lambda_star_etc?
14627 // | lambda_star_etc
14628 static arguments_ty
lambda_parameters_rule(Parser * p)14629 lambda_parameters_rule(Parser *p)
14630 {
14631 if (p->level++ == MAXSTACK) {
14632 p->error_indicator = 1;
14633 PyErr_NoMemory();
14634 }
14635 if (p->error_indicator) {
14636 p->level--;
14637 return NULL;
14638 }
14639 arguments_ty _res = NULL;
14640 int _mark = p->mark;
14641 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
14642 if (p->error_indicator) {
14643 p->level--;
14644 return NULL;
14645 }
14646 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?"));
14647 asdl_arg_seq* a;
14648 asdl_arg_seq* b;
14649 asdl_seq * c;
14650 void *d;
14651 if (
14652 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
14653 &&
14654 (b = (asdl_arg_seq*)_loop0_95_rule(p)) // lambda_param_no_default*
14655 &&
14656 (c = _loop0_96_rule(p)) // lambda_param_with_default*
14657 &&
14658 (d = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
14659 )
14660 {
14661 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?"));
14662 _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , a , NULL , b , c , d ) );
14663 if (_res == NULL && PyErr_Occurred()) {
14664 p->error_indicator = 1;
14665 p->level--;
14666 return NULL;
14667 }
14668 goto done;
14669 }
14670 p->mark = _mark;
14671 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
14672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
14673 }
14674 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
14675 if (p->error_indicator) {
14676 p->level--;
14677 return NULL;
14678 }
14679 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?"));
14680 SlashWithDefault* a;
14681 asdl_seq * b;
14682 void *c;
14683 if (
14684 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
14685 &&
14686 (b = _loop0_97_rule(p)) // lambda_param_with_default*
14687 &&
14688 (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
14689 )
14690 {
14691 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?"));
14692 _res = CHECK_VERSION ( arguments_ty , 8 , "Positional-only parameters are" , _PyPegen_make_arguments ( p , NULL , a , NULL , b , c ) );
14693 if (_res == NULL && PyErr_Occurred()) {
14694 p->error_indicator = 1;
14695 p->level--;
14696 return NULL;
14697 }
14698 goto done;
14699 }
14700 p->mark = _mark;
14701 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
14702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
14703 }
14704 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
14705 if (p->error_indicator) {
14706 p->level--;
14707 return NULL;
14708 }
14709 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?"));
14710 asdl_arg_seq* a;
14711 asdl_seq * b;
14712 void *c;
14713 if (
14714 (a = (asdl_arg_seq*)_loop1_98_rule(p)) // lambda_param_no_default+
14715 &&
14716 (b = _loop0_99_rule(p)) // lambda_param_with_default*
14717 &&
14718 (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
14719 )
14720 {
14721 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?"));
14722 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
14723 if (_res == NULL && PyErr_Occurred()) {
14724 p->error_indicator = 1;
14725 p->level--;
14726 return NULL;
14727 }
14728 goto done;
14729 }
14730 p->mark = _mark;
14731 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
14732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
14733 }
14734 { // lambda_param_with_default+ lambda_star_etc?
14735 if (p->error_indicator) {
14736 p->level--;
14737 return NULL;
14738 }
14739 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
14740 asdl_seq * a;
14741 void *b;
14742 if (
14743 (a = _loop1_100_rule(p)) // lambda_param_with_default+
14744 &&
14745 (b = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
14746 )
14747 {
14748 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
14749 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
14750 if (_res == NULL && PyErr_Occurred()) {
14751 p->error_indicator = 1;
14752 p->level--;
14753 return NULL;
14754 }
14755 goto done;
14756 }
14757 p->mark = _mark;
14758 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
14759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
14760 }
14761 { // lambda_star_etc
14762 if (p->error_indicator) {
14763 p->level--;
14764 return NULL;
14765 }
14766 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
14767 StarEtc* a;
14768 if (
14769 (a = lambda_star_etc_rule(p)) // lambda_star_etc
14770 )
14771 {
14772 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
14773 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
14774 if (_res == NULL && PyErr_Occurred()) {
14775 p->error_indicator = 1;
14776 p->level--;
14777 return NULL;
14778 }
14779 goto done;
14780 }
14781 p->mark = _mark;
14782 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
14783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
14784 }
14785 _res = NULL;
14786 done:
14787 p->level--;
14788 return _res;
14789 }
14790
14791 // lambda_slash_no_default:
14792 // | lambda_param_no_default+ '/' ','
14793 // | lambda_param_no_default+ '/' &':'
14794 static asdl_arg_seq*
lambda_slash_no_default_rule(Parser * p)14795 lambda_slash_no_default_rule(Parser *p)
14796 {
14797 if (p->level++ == MAXSTACK) {
14798 p->error_indicator = 1;
14799 PyErr_NoMemory();
14800 }
14801 if (p->error_indicator) {
14802 p->level--;
14803 return NULL;
14804 }
14805 asdl_arg_seq* _res = NULL;
14806 int _mark = p->mark;
14807 { // lambda_param_no_default+ '/' ','
14808 if (p->error_indicator) {
14809 p->level--;
14810 return NULL;
14811 }
14812 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
14813 Token * _literal;
14814 Token * _literal_1;
14815 asdl_arg_seq* a;
14816 if (
14817 (a = (asdl_arg_seq*)_loop1_101_rule(p)) // lambda_param_no_default+
14818 &&
14819 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
14820 &&
14821 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
14822 )
14823 {
14824 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
14825 _res = a;
14826 if (_res == NULL && PyErr_Occurred()) {
14827 p->error_indicator = 1;
14828 p->level--;
14829 return NULL;
14830 }
14831 goto done;
14832 }
14833 p->mark = _mark;
14834 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
14835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
14836 }
14837 { // lambda_param_no_default+ '/' &':'
14838 if (p->error_indicator) {
14839 p->level--;
14840 return NULL;
14841 }
14842 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
14843 Token * _literal;
14844 asdl_arg_seq* a;
14845 if (
14846 (a = (asdl_arg_seq*)_loop1_102_rule(p)) // lambda_param_no_default+
14847 &&
14848 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
14849 &&
14850 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
14851 )
14852 {
14853 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
14854 _res = a;
14855 if (_res == NULL && PyErr_Occurred()) {
14856 p->error_indicator = 1;
14857 p->level--;
14858 return NULL;
14859 }
14860 goto done;
14861 }
14862 p->mark = _mark;
14863 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
14864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
14865 }
14866 _res = NULL;
14867 done:
14868 p->level--;
14869 return _res;
14870 }
14871
14872 // lambda_slash_with_default:
14873 // | lambda_param_no_default* lambda_param_with_default+ '/' ','
14874 // | lambda_param_no_default* lambda_param_with_default+ '/' &':'
14875 static SlashWithDefault*
lambda_slash_with_default_rule(Parser * p)14876 lambda_slash_with_default_rule(Parser *p)
14877 {
14878 if (p->level++ == MAXSTACK) {
14879 p->error_indicator = 1;
14880 PyErr_NoMemory();
14881 }
14882 if (p->error_indicator) {
14883 p->level--;
14884 return NULL;
14885 }
14886 SlashWithDefault* _res = NULL;
14887 int _mark = p->mark;
14888 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
14889 if (p->error_indicator) {
14890 p->level--;
14891 return NULL;
14892 }
14893 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+ '/' ','"));
14894 Token * _literal;
14895 Token * _literal_1;
14896 asdl_seq * a;
14897 asdl_seq * b;
14898 if (
14899 (a = _loop0_103_rule(p)) // lambda_param_no_default*
14900 &&
14901 (b = _loop1_104_rule(p)) // lambda_param_with_default+
14902 &&
14903 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
14904 &&
14905 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
14906 )
14907 {
14908 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+ '/' ','"));
14909 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq* ) a , b );
14910 if (_res == NULL && PyErr_Occurred()) {
14911 p->error_indicator = 1;
14912 p->level--;
14913 return NULL;
14914 }
14915 goto done;
14916 }
14917 p->mark = _mark;
14918 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
14919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
14920 }
14921 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
14922 if (p->error_indicator) {
14923 p->level--;
14924 return NULL;
14925 }
14926 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+ '/' &':'"));
14927 Token * _literal;
14928 asdl_seq * a;
14929 asdl_seq * b;
14930 if (
14931 (a = _loop0_105_rule(p)) // lambda_param_no_default*
14932 &&
14933 (b = _loop1_106_rule(p)) // lambda_param_with_default+
14934 &&
14935 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
14936 &&
14937 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
14938 )
14939 {
14940 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+ '/' &':'"));
14941 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq* ) a , b );
14942 if (_res == NULL && PyErr_Occurred()) {
14943 p->error_indicator = 1;
14944 p->level--;
14945 return NULL;
14946 }
14947 goto done;
14948 }
14949 p->mark = _mark;
14950 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
14951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
14952 }
14953 _res = NULL;
14954 done:
14955 p->level--;
14956 return _res;
14957 }
14958
14959 // lambda_star_etc:
14960 // | invalid_lambda_star_etc
14961 // | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
14962 // | '*' ',' lambda_param_maybe_default+ lambda_kwds?
14963 // | lambda_kwds
14964 static StarEtc*
lambda_star_etc_rule(Parser * p)14965 lambda_star_etc_rule(Parser *p)
14966 {
14967 if (p->level++ == MAXSTACK) {
14968 p->error_indicator = 1;
14969 PyErr_NoMemory();
14970 }
14971 if (p->error_indicator) {
14972 p->level--;
14973 return NULL;
14974 }
14975 StarEtc* _res = NULL;
14976 int _mark = p->mark;
14977 if (p->call_invalid_rules) { // invalid_lambda_star_etc
14978 if (p->error_indicator) {
14979 p->level--;
14980 return NULL;
14981 }
14982 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
14983 void *invalid_lambda_star_etc_var;
14984 if (
14985 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
14986 )
14987 {
14988 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
14989 _res = invalid_lambda_star_etc_var;
14990 goto done;
14991 }
14992 p->mark = _mark;
14993 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
14994 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
14995 }
14996 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
14997 if (p->error_indicator) {
14998 p->level--;
14999 return NULL;
15000 }
15001 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?"));
15002 Token * _literal;
15003 arg_ty a;
15004 asdl_seq * b;
15005 void *c;
15006 if (
15007 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15008 &&
15009 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
15010 &&
15011 (b = _loop0_107_rule(p)) // lambda_param_maybe_default*
15012 &&
15013 (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds?
15014 )
15015 {
15016 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?"));
15017 _res = _PyPegen_star_etc ( p , a , b , c );
15018 if (_res == NULL && PyErr_Occurred()) {
15019 p->error_indicator = 1;
15020 p->level--;
15021 return NULL;
15022 }
15023 goto done;
15024 }
15025 p->mark = _mark;
15026 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
15028 }
15029 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
15030 if (p->error_indicator) {
15031 p->level--;
15032 return NULL;
15033 }
15034 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
15035 Token * _literal;
15036 Token * _literal_1;
15037 asdl_seq * b;
15038 void *c;
15039 if (
15040 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15041 &&
15042 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15043 &&
15044 (b = _loop1_108_rule(p)) // lambda_param_maybe_default+
15045 &&
15046 (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds?
15047 )
15048 {
15049 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
15050 _res = _PyPegen_star_etc ( p , NULL , b , c );
15051 if (_res == NULL && PyErr_Occurred()) {
15052 p->error_indicator = 1;
15053 p->level--;
15054 return NULL;
15055 }
15056 goto done;
15057 }
15058 p->mark = _mark;
15059 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
15061 }
15062 { // lambda_kwds
15063 if (p->error_indicator) {
15064 p->level--;
15065 return NULL;
15066 }
15067 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
15068 arg_ty a;
15069 if (
15070 (a = lambda_kwds_rule(p)) // lambda_kwds
15071 )
15072 {
15073 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
15074 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
15075 if (_res == NULL && PyErr_Occurred()) {
15076 p->error_indicator = 1;
15077 p->level--;
15078 return NULL;
15079 }
15080 goto done;
15081 }
15082 p->mark = _mark;
15083 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
15085 }
15086 _res = NULL;
15087 done:
15088 p->level--;
15089 return _res;
15090 }
15091
15092 // lambda_kwds: invalid_lambda_kwds | '**' lambda_param_no_default
15093 static arg_ty
lambda_kwds_rule(Parser * p)15094 lambda_kwds_rule(Parser *p)
15095 {
15096 if (p->level++ == MAXSTACK) {
15097 p->error_indicator = 1;
15098 PyErr_NoMemory();
15099 }
15100 if (p->error_indicator) {
15101 p->level--;
15102 return NULL;
15103 }
15104 arg_ty _res = NULL;
15105 int _mark = p->mark;
15106 if (p->call_invalid_rules) { // invalid_lambda_kwds
15107 if (p->error_indicator) {
15108 p->level--;
15109 return NULL;
15110 }
15111 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_kwds"));
15112 void *invalid_lambda_kwds_var;
15113 if (
15114 (invalid_lambda_kwds_var = invalid_lambda_kwds_rule(p)) // invalid_lambda_kwds
15115 )
15116 {
15117 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_kwds"));
15118 _res = invalid_lambda_kwds_var;
15119 goto done;
15120 }
15121 p->mark = _mark;
15122 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
15123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_kwds"));
15124 }
15125 { // '**' lambda_param_no_default
15126 if (p->error_indicator) {
15127 p->level--;
15128 return NULL;
15129 }
15130 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
15131 Token * _literal;
15132 arg_ty a;
15133 if (
15134 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15135 &&
15136 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
15137 )
15138 {
15139 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
15140 _res = a;
15141 if (_res == NULL && PyErr_Occurred()) {
15142 p->error_indicator = 1;
15143 p->level--;
15144 return NULL;
15145 }
15146 goto done;
15147 }
15148 p->mark = _mark;
15149 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
15150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
15151 }
15152 _res = NULL;
15153 done:
15154 p->level--;
15155 return _res;
15156 }
15157
15158 // lambda_param_no_default: lambda_param ',' | lambda_param &':'
15159 static arg_ty
lambda_param_no_default_rule(Parser * p)15160 lambda_param_no_default_rule(Parser *p)
15161 {
15162 if (p->level++ == MAXSTACK) {
15163 p->error_indicator = 1;
15164 PyErr_NoMemory();
15165 }
15166 if (p->error_indicator) {
15167 p->level--;
15168 return NULL;
15169 }
15170 arg_ty _res = NULL;
15171 int _mark = p->mark;
15172 { // lambda_param ','
15173 if (p->error_indicator) {
15174 p->level--;
15175 return NULL;
15176 }
15177 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
15178 Token * _literal;
15179 arg_ty a;
15180 if (
15181 (a = lambda_param_rule(p)) // lambda_param
15182 &&
15183 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15184 )
15185 {
15186 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
15187 _res = a;
15188 if (_res == NULL && PyErr_Occurred()) {
15189 p->error_indicator = 1;
15190 p->level--;
15191 return NULL;
15192 }
15193 goto done;
15194 }
15195 p->mark = _mark;
15196 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
15197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
15198 }
15199 { // lambda_param &':'
15200 if (p->error_indicator) {
15201 p->level--;
15202 return NULL;
15203 }
15204 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
15205 arg_ty a;
15206 if (
15207 (a = lambda_param_rule(p)) // lambda_param
15208 &&
15209 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
15210 )
15211 {
15212 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
15213 _res = a;
15214 if (_res == NULL && PyErr_Occurred()) {
15215 p->error_indicator = 1;
15216 p->level--;
15217 return NULL;
15218 }
15219 goto done;
15220 }
15221 p->mark = _mark;
15222 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
15223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
15224 }
15225 _res = NULL;
15226 done:
15227 p->level--;
15228 return _res;
15229 }
15230
15231 // lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
15232 static NameDefaultPair*
lambda_param_with_default_rule(Parser * p)15233 lambda_param_with_default_rule(Parser *p)
15234 {
15235 if (p->level++ == MAXSTACK) {
15236 p->error_indicator = 1;
15237 PyErr_NoMemory();
15238 }
15239 if (p->error_indicator) {
15240 p->level--;
15241 return NULL;
15242 }
15243 NameDefaultPair* _res = NULL;
15244 int _mark = p->mark;
15245 { // lambda_param default ','
15246 if (p->error_indicator) {
15247 p->level--;
15248 return NULL;
15249 }
15250 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
15251 Token * _literal;
15252 arg_ty a;
15253 expr_ty c;
15254 if (
15255 (a = lambda_param_rule(p)) // lambda_param
15256 &&
15257 (c = default_rule(p)) // default
15258 &&
15259 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15260 )
15261 {
15262 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
15263 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
15264 if (_res == NULL && PyErr_Occurred()) {
15265 p->error_indicator = 1;
15266 p->level--;
15267 return NULL;
15268 }
15269 goto done;
15270 }
15271 p->mark = _mark;
15272 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
15273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
15274 }
15275 { // lambda_param default &':'
15276 if (p->error_indicator) {
15277 p->level--;
15278 return NULL;
15279 }
15280 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
15281 arg_ty a;
15282 expr_ty c;
15283 if (
15284 (a = lambda_param_rule(p)) // lambda_param
15285 &&
15286 (c = default_rule(p)) // default
15287 &&
15288 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
15289 )
15290 {
15291 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
15292 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
15293 if (_res == NULL && PyErr_Occurred()) {
15294 p->error_indicator = 1;
15295 p->level--;
15296 return NULL;
15297 }
15298 goto done;
15299 }
15300 p->mark = _mark;
15301 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
15302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
15303 }
15304 _res = NULL;
15305 done:
15306 p->level--;
15307 return _res;
15308 }
15309
15310 // lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
15311 static NameDefaultPair*
lambda_param_maybe_default_rule(Parser * p)15312 lambda_param_maybe_default_rule(Parser *p)
15313 {
15314 if (p->level++ == MAXSTACK) {
15315 p->error_indicator = 1;
15316 PyErr_NoMemory();
15317 }
15318 if (p->error_indicator) {
15319 p->level--;
15320 return NULL;
15321 }
15322 NameDefaultPair* _res = NULL;
15323 int _mark = p->mark;
15324 { // lambda_param default? ','
15325 if (p->error_indicator) {
15326 p->level--;
15327 return NULL;
15328 }
15329 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
15330 Token * _literal;
15331 arg_ty a;
15332 void *c;
15333 if (
15334 (a = lambda_param_rule(p)) // lambda_param
15335 &&
15336 (c = default_rule(p), !p->error_indicator) // default?
15337 &&
15338 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15339 )
15340 {
15341 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
15342 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
15343 if (_res == NULL && PyErr_Occurred()) {
15344 p->error_indicator = 1;
15345 p->level--;
15346 return NULL;
15347 }
15348 goto done;
15349 }
15350 p->mark = _mark;
15351 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
15352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
15353 }
15354 { // lambda_param default? &':'
15355 if (p->error_indicator) {
15356 p->level--;
15357 return NULL;
15358 }
15359 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
15360 arg_ty a;
15361 void *c;
15362 if (
15363 (a = lambda_param_rule(p)) // lambda_param
15364 &&
15365 (c = default_rule(p), !p->error_indicator) // default?
15366 &&
15367 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
15368 )
15369 {
15370 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
15371 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
15372 if (_res == NULL && PyErr_Occurred()) {
15373 p->error_indicator = 1;
15374 p->level--;
15375 return NULL;
15376 }
15377 goto done;
15378 }
15379 p->mark = _mark;
15380 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
15381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
15382 }
15383 _res = NULL;
15384 done:
15385 p->level--;
15386 return _res;
15387 }
15388
15389 // lambda_param: NAME
15390 static arg_ty
lambda_param_rule(Parser * p)15391 lambda_param_rule(Parser *p)
15392 {
15393 if (p->level++ == MAXSTACK) {
15394 p->error_indicator = 1;
15395 PyErr_NoMemory();
15396 }
15397 if (p->error_indicator) {
15398 p->level--;
15399 return NULL;
15400 }
15401 arg_ty _res = NULL;
15402 int _mark = p->mark;
15403 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15404 p->error_indicator = 1;
15405 p->level--;
15406 return NULL;
15407 }
15408 int _start_lineno = p->tokens[_mark]->lineno;
15409 UNUSED(_start_lineno); // Only used by EXTRA macro
15410 int _start_col_offset = p->tokens[_mark]->col_offset;
15411 UNUSED(_start_col_offset); // Only used by EXTRA macro
15412 { // NAME
15413 if (p->error_indicator) {
15414 p->level--;
15415 return NULL;
15416 }
15417 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
15418 expr_ty a;
15419 if (
15420 (a = _PyPegen_name_token(p)) // NAME
15421 )
15422 {
15423 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
15424 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15425 if (_token == NULL) {
15426 p->level--;
15427 return NULL;
15428 }
15429 int _end_lineno = _token->end_lineno;
15430 UNUSED(_end_lineno); // Only used by EXTRA macro
15431 int _end_col_offset = _token->end_col_offset;
15432 UNUSED(_end_col_offset); // Only used by EXTRA macro
15433 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
15434 if (_res == NULL && PyErr_Occurred()) {
15435 p->error_indicator = 1;
15436 p->level--;
15437 return NULL;
15438 }
15439 goto done;
15440 }
15441 p->mark = _mark;
15442 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
15443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
15444 }
15445 _res = NULL;
15446 done:
15447 p->level--;
15448 return _res;
15449 }
15450
15451 // strings: STRING+
15452 static expr_ty
strings_rule(Parser * p)15453 strings_rule(Parser *p)
15454 {
15455 if (p->level++ == MAXSTACK) {
15456 p->error_indicator = 1;
15457 PyErr_NoMemory();
15458 }
15459 if (p->error_indicator) {
15460 p->level--;
15461 return NULL;
15462 }
15463 expr_ty _res = NULL;
15464 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
15465 p->level--;
15466 return _res;
15467 }
15468 int _mark = p->mark;
15469 { // STRING+
15470 if (p->error_indicator) {
15471 p->level--;
15472 return NULL;
15473 }
15474 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
15475 asdl_seq * a;
15476 if (
15477 (a = _loop1_109_rule(p)) // STRING+
15478 )
15479 {
15480 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
15481 _res = _PyPegen_concatenate_strings ( p , a );
15482 if (_res == NULL && PyErr_Occurred()) {
15483 p->error_indicator = 1;
15484 p->level--;
15485 return NULL;
15486 }
15487 goto done;
15488 }
15489 p->mark = _mark;
15490 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
15491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
15492 }
15493 _res = NULL;
15494 done:
15495 _PyPegen_insert_memo(p, _mark, strings_type, _res);
15496 p->level--;
15497 return _res;
15498 }
15499
15500 // list: '[' star_named_expressions? ']'
15501 static expr_ty
list_rule(Parser * p)15502 list_rule(Parser *p)
15503 {
15504 if (p->level++ == MAXSTACK) {
15505 p->error_indicator = 1;
15506 PyErr_NoMemory();
15507 }
15508 if (p->error_indicator) {
15509 p->level--;
15510 return NULL;
15511 }
15512 expr_ty _res = NULL;
15513 int _mark = p->mark;
15514 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15515 p->error_indicator = 1;
15516 p->level--;
15517 return NULL;
15518 }
15519 int _start_lineno = p->tokens[_mark]->lineno;
15520 UNUSED(_start_lineno); // Only used by EXTRA macro
15521 int _start_col_offset = p->tokens[_mark]->col_offset;
15522 UNUSED(_start_col_offset); // Only used by EXTRA macro
15523 { // '[' star_named_expressions? ']'
15524 if (p->error_indicator) {
15525 p->level--;
15526 return NULL;
15527 }
15528 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
15529 Token * _literal;
15530 Token * _literal_1;
15531 void *a;
15532 if (
15533 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15534 &&
15535 (a = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
15536 &&
15537 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15538 )
15539 {
15540 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
15541 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15542 if (_token == NULL) {
15543 p->level--;
15544 return NULL;
15545 }
15546 int _end_lineno = _token->end_lineno;
15547 UNUSED(_end_lineno); // Only used by EXTRA macro
15548 int _end_col_offset = _token->end_col_offset;
15549 UNUSED(_end_col_offset); // Only used by EXTRA macro
15550 _res = _PyAST_List ( a , Load , EXTRA );
15551 if (_res == NULL && PyErr_Occurred()) {
15552 p->error_indicator = 1;
15553 p->level--;
15554 return NULL;
15555 }
15556 goto done;
15557 }
15558 p->mark = _mark;
15559 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
15560 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
15561 }
15562 _res = NULL;
15563 done:
15564 p->level--;
15565 return _res;
15566 }
15567
15568 // tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
15569 static expr_ty
tuple_rule(Parser * p)15570 tuple_rule(Parser *p)
15571 {
15572 if (p->level++ == MAXSTACK) {
15573 p->error_indicator = 1;
15574 PyErr_NoMemory();
15575 }
15576 if (p->error_indicator) {
15577 p->level--;
15578 return NULL;
15579 }
15580 expr_ty _res = NULL;
15581 int _mark = p->mark;
15582 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15583 p->error_indicator = 1;
15584 p->level--;
15585 return NULL;
15586 }
15587 int _start_lineno = p->tokens[_mark]->lineno;
15588 UNUSED(_start_lineno); // Only used by EXTRA macro
15589 int _start_col_offset = p->tokens[_mark]->col_offset;
15590 UNUSED(_start_col_offset); // Only used by EXTRA macro
15591 { // '(' [star_named_expression ',' star_named_expressions?] ')'
15592 if (p->error_indicator) {
15593 p->level--;
15594 return NULL;
15595 }
15596 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
15597 Token * _literal;
15598 Token * _literal_1;
15599 void *a;
15600 if (
15601 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15602 &&
15603 (a = _tmp_110_rule(p), !p->error_indicator) // [star_named_expression ',' star_named_expressions?]
15604 &&
15605 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15606 )
15607 {
15608 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
15609 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15610 if (_token == NULL) {
15611 p->level--;
15612 return NULL;
15613 }
15614 int _end_lineno = _token->end_lineno;
15615 UNUSED(_end_lineno); // Only used by EXTRA macro
15616 int _end_col_offset = _token->end_col_offset;
15617 UNUSED(_end_col_offset); // Only used by EXTRA macro
15618 _res = _PyAST_Tuple ( a , Load , EXTRA );
15619 if (_res == NULL && PyErr_Occurred()) {
15620 p->error_indicator = 1;
15621 p->level--;
15622 return NULL;
15623 }
15624 goto done;
15625 }
15626 p->mark = _mark;
15627 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
15628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
15629 }
15630 _res = NULL;
15631 done:
15632 p->level--;
15633 return _res;
15634 }
15635
15636 // set: '{' star_named_expressions '}'
15637 static expr_ty
set_rule(Parser * p)15638 set_rule(Parser *p)
15639 {
15640 if (p->level++ == MAXSTACK) {
15641 p->error_indicator = 1;
15642 PyErr_NoMemory();
15643 }
15644 if (p->error_indicator) {
15645 p->level--;
15646 return NULL;
15647 }
15648 expr_ty _res = NULL;
15649 int _mark = p->mark;
15650 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15651 p->error_indicator = 1;
15652 p->level--;
15653 return NULL;
15654 }
15655 int _start_lineno = p->tokens[_mark]->lineno;
15656 UNUSED(_start_lineno); // Only used by EXTRA macro
15657 int _start_col_offset = p->tokens[_mark]->col_offset;
15658 UNUSED(_start_col_offset); // Only used by EXTRA macro
15659 { // '{' star_named_expressions '}'
15660 if (p->error_indicator) {
15661 p->level--;
15662 return NULL;
15663 }
15664 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
15665 Token * _literal;
15666 Token * _literal_1;
15667 asdl_expr_seq* a;
15668 if (
15669 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15670 &&
15671 (a = star_named_expressions_rule(p)) // star_named_expressions
15672 &&
15673 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15674 )
15675 {
15676 D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
15677 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15678 if (_token == NULL) {
15679 p->level--;
15680 return NULL;
15681 }
15682 int _end_lineno = _token->end_lineno;
15683 UNUSED(_end_lineno); // Only used by EXTRA macro
15684 int _end_col_offset = _token->end_col_offset;
15685 UNUSED(_end_col_offset); // Only used by EXTRA macro
15686 _res = _PyAST_Set ( a , EXTRA );
15687 if (_res == NULL && PyErr_Occurred()) {
15688 p->error_indicator = 1;
15689 p->level--;
15690 return NULL;
15691 }
15692 goto done;
15693 }
15694 p->mark = _mark;
15695 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
15696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
15697 }
15698 _res = NULL;
15699 done:
15700 p->level--;
15701 return _res;
15702 }
15703
15704 // dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
15705 static expr_ty
dict_rule(Parser * p)15706 dict_rule(Parser *p)
15707 {
15708 if (p->level++ == MAXSTACK) {
15709 p->error_indicator = 1;
15710 PyErr_NoMemory();
15711 }
15712 if (p->error_indicator) {
15713 p->level--;
15714 return NULL;
15715 }
15716 expr_ty _res = NULL;
15717 int _mark = p->mark;
15718 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15719 p->error_indicator = 1;
15720 p->level--;
15721 return NULL;
15722 }
15723 int _start_lineno = p->tokens[_mark]->lineno;
15724 UNUSED(_start_lineno); // Only used by EXTRA macro
15725 int _start_col_offset = p->tokens[_mark]->col_offset;
15726 UNUSED(_start_col_offset); // Only used by EXTRA macro
15727 { // '{' double_starred_kvpairs? '}'
15728 if (p->error_indicator) {
15729 p->level--;
15730 return NULL;
15731 }
15732 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15733 Token * _literal;
15734 Token * _literal_1;
15735 void *a;
15736 if (
15737 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15738 &&
15739 (a = double_starred_kvpairs_rule(p), !p->error_indicator) // double_starred_kvpairs?
15740 &&
15741 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15742 )
15743 {
15744 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15745 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15746 if (_token == NULL) {
15747 p->level--;
15748 return NULL;
15749 }
15750 int _end_lineno = _token->end_lineno;
15751 UNUSED(_end_lineno); // Only used by EXTRA macro
15752 int _end_col_offset = _token->end_col_offset;
15753 UNUSED(_end_col_offset); // Only used by EXTRA macro
15754 _res = _PyAST_Dict ( CHECK ( asdl_expr_seq* , _PyPegen_get_keys ( p , a ) ) , CHECK ( asdl_expr_seq* , _PyPegen_get_values ( p , a ) ) , EXTRA );
15755 if (_res == NULL && PyErr_Occurred()) {
15756 p->error_indicator = 1;
15757 p->level--;
15758 return NULL;
15759 }
15760 goto done;
15761 }
15762 p->mark = _mark;
15763 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15765 }
15766 { // '{' invalid_double_starred_kvpairs '}'
15767 if (p->error_indicator) {
15768 p->level--;
15769 return NULL;
15770 }
15771 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15772 Token * _literal;
15773 Token * _literal_1;
15774 void *invalid_double_starred_kvpairs_var;
15775 if (
15776 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15777 &&
15778 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
15779 &&
15780 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15781 )
15782 {
15783 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15784 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
15785 goto done;
15786 }
15787 p->mark = _mark;
15788 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15790 }
15791 _res = NULL;
15792 done:
15793 p->level--;
15794 return _res;
15795 }
15796
15797 // double_starred_kvpairs: ','.double_starred_kvpair+ ','?
15798 static asdl_seq*
double_starred_kvpairs_rule(Parser * p)15799 double_starred_kvpairs_rule(Parser *p)
15800 {
15801 if (p->level++ == MAXSTACK) {
15802 p->error_indicator = 1;
15803 PyErr_NoMemory();
15804 }
15805 if (p->error_indicator) {
15806 p->level--;
15807 return NULL;
15808 }
15809 asdl_seq* _res = NULL;
15810 int _mark = p->mark;
15811 { // ','.double_starred_kvpair+ ','?
15812 if (p->error_indicator) {
15813 p->level--;
15814 return NULL;
15815 }
15816 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15817 void *_opt_var;
15818 UNUSED(_opt_var); // Silence compiler warnings
15819 asdl_seq * a;
15820 if (
15821 (a = _gather_111_rule(p)) // ','.double_starred_kvpair+
15822 &&
15823 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
15824 )
15825 {
15826 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15827 _res = a;
15828 if (_res == NULL && PyErr_Occurred()) {
15829 p->error_indicator = 1;
15830 p->level--;
15831 return NULL;
15832 }
15833 goto done;
15834 }
15835 p->mark = _mark;
15836 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
15837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15838 }
15839 _res = NULL;
15840 done:
15841 p->level--;
15842 return _res;
15843 }
15844
15845 // double_starred_kvpair: '**' bitwise_or | kvpair
15846 static KeyValuePair*
double_starred_kvpair_rule(Parser * p)15847 double_starred_kvpair_rule(Parser *p)
15848 {
15849 if (p->level++ == MAXSTACK) {
15850 p->error_indicator = 1;
15851 PyErr_NoMemory();
15852 }
15853 if (p->error_indicator) {
15854 p->level--;
15855 return NULL;
15856 }
15857 KeyValuePair* _res = NULL;
15858 int _mark = p->mark;
15859 { // '**' bitwise_or
15860 if (p->error_indicator) {
15861 p->level--;
15862 return NULL;
15863 }
15864 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15865 Token * _literal;
15866 expr_ty a;
15867 if (
15868 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15869 &&
15870 (a = bitwise_or_rule(p)) // bitwise_or
15871 )
15872 {
15873 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15874 _res = _PyPegen_key_value_pair ( p , NULL , a );
15875 if (_res == NULL && PyErr_Occurred()) {
15876 p->error_indicator = 1;
15877 p->level--;
15878 return NULL;
15879 }
15880 goto done;
15881 }
15882 p->mark = _mark;
15883 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
15885 }
15886 { // kvpair
15887 if (p->error_indicator) {
15888 p->level--;
15889 return NULL;
15890 }
15891 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
15892 KeyValuePair* kvpair_var;
15893 if (
15894 (kvpair_var = kvpair_rule(p)) // kvpair
15895 )
15896 {
15897 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
15898 _res = kvpair_var;
15899 goto done;
15900 }
15901 p->mark = _mark;
15902 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
15904 }
15905 _res = NULL;
15906 done:
15907 p->level--;
15908 return _res;
15909 }
15910
15911 // kvpair: expression ':' expression
15912 static KeyValuePair*
kvpair_rule(Parser * p)15913 kvpair_rule(Parser *p)
15914 {
15915 if (p->level++ == MAXSTACK) {
15916 p->error_indicator = 1;
15917 PyErr_NoMemory();
15918 }
15919 if (p->error_indicator) {
15920 p->level--;
15921 return NULL;
15922 }
15923 KeyValuePair* _res = NULL;
15924 int _mark = p->mark;
15925 { // expression ':' expression
15926 if (p->error_indicator) {
15927 p->level--;
15928 return NULL;
15929 }
15930 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15931 Token * _literal;
15932 expr_ty a;
15933 expr_ty b;
15934 if (
15935 (a = expression_rule(p)) // expression
15936 &&
15937 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
15938 &&
15939 (b = expression_rule(p)) // expression
15940 )
15941 {
15942 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15943 _res = _PyPegen_key_value_pair ( p , a , b );
15944 if (_res == NULL && PyErr_Occurred()) {
15945 p->error_indicator = 1;
15946 p->level--;
15947 return NULL;
15948 }
15949 goto done;
15950 }
15951 p->mark = _mark;
15952 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
15954 }
15955 _res = NULL;
15956 done:
15957 p->level--;
15958 return _res;
15959 }
15960
15961 // for_if_clauses: for_if_clause+
15962 static asdl_comprehension_seq*
for_if_clauses_rule(Parser * p)15963 for_if_clauses_rule(Parser *p)
15964 {
15965 if (p->level++ == MAXSTACK) {
15966 p->error_indicator = 1;
15967 PyErr_NoMemory();
15968 }
15969 if (p->error_indicator) {
15970 p->level--;
15971 return NULL;
15972 }
15973 asdl_comprehension_seq* _res = NULL;
15974 int _mark = p->mark;
15975 { // for_if_clause+
15976 if (p->error_indicator) {
15977 p->level--;
15978 return NULL;
15979 }
15980 D(fprintf(stderr, "%*c> for_if_clauses[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
15981 asdl_comprehension_seq* a;
15982 if (
15983 (a = (asdl_comprehension_seq*)_loop1_113_rule(p)) // for_if_clause+
15984 )
15985 {
15986 D(fprintf(stderr, "%*c+ for_if_clauses[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
15987 _res = a;
15988 if (_res == NULL && PyErr_Occurred()) {
15989 p->error_indicator = 1;
15990 p->level--;
15991 return NULL;
15992 }
15993 goto done;
15994 }
15995 p->mark = _mark;
15996 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
15997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
15998 }
15999 _res = NULL;
16000 done:
16001 p->level--;
16002 return _res;
16003 }
16004
16005 // for_if_clause:
16006 // | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
16007 // | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
16008 // | invalid_for_target
16009 static comprehension_ty
for_if_clause_rule(Parser * p)16010 for_if_clause_rule(Parser *p)
16011 {
16012 if (p->level++ == MAXSTACK) {
16013 p->error_indicator = 1;
16014 PyErr_NoMemory();
16015 }
16016 if (p->error_indicator) {
16017 p->level--;
16018 return NULL;
16019 }
16020 comprehension_ty _res = NULL;
16021 int _mark = p->mark;
16022 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
16023 if (p->error_indicator) {
16024 p->level--;
16025 return NULL;
16026 }
16027 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
16028 int _cut_var = 0;
16029 Token * _keyword;
16030 Token * _keyword_1;
16031 expr_ty a;
16032 Token * async_var;
16033 expr_ty b;
16034 asdl_expr_seq* c;
16035 if (
16036 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16037 &&
16038 (_keyword = _PyPegen_expect_token(p, 647)) // token='for'
16039 &&
16040 (a = star_targets_rule(p)) // star_targets
16041 &&
16042 (_keyword_1 = _PyPegen_expect_token(p, 648)) // token='in'
16043 &&
16044 (_cut_var = 1)
16045 &&
16046 (b = disjunction_rule(p)) // disjunction
16047 &&
16048 (c = (asdl_expr_seq*)_loop0_114_rule(p)) // (('if' disjunction))*
16049 )
16050 {
16051 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))*"));
16052 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
16053 if (_res == NULL && PyErr_Occurred()) {
16054 p->error_indicator = 1;
16055 p->level--;
16056 return NULL;
16057 }
16058 goto done;
16059 }
16060 p->mark = _mark;
16061 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
16062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
16063 if (_cut_var) {
16064 p->level--;
16065 return NULL;
16066 }
16067 }
16068 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
16069 if (p->error_indicator) {
16070 p->level--;
16071 return NULL;
16072 }
16073 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
16074 int _cut_var = 0;
16075 Token * _keyword;
16076 Token * _keyword_1;
16077 expr_ty a;
16078 expr_ty b;
16079 asdl_expr_seq* c;
16080 if (
16081 (_keyword = _PyPegen_expect_token(p, 647)) // token='for'
16082 &&
16083 (a = star_targets_rule(p)) // star_targets
16084 &&
16085 (_keyword_1 = _PyPegen_expect_token(p, 648)) // token='in'
16086 &&
16087 (_cut_var = 1)
16088 &&
16089 (b = disjunction_rule(p)) // disjunction
16090 &&
16091 (c = (asdl_expr_seq*)_loop0_115_rule(p)) // (('if' disjunction))*
16092 )
16093 {
16094 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
16095 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
16096 if (_res == NULL && PyErr_Occurred()) {
16097 p->error_indicator = 1;
16098 p->level--;
16099 return NULL;
16100 }
16101 goto done;
16102 }
16103 p->mark = _mark;
16104 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
16105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
16106 if (_cut_var) {
16107 p->level--;
16108 return NULL;
16109 }
16110 }
16111 if (p->call_invalid_rules) { // invalid_for_target
16112 if (p->error_indicator) {
16113 p->level--;
16114 return NULL;
16115 }
16116 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
16117 void *invalid_for_target_var;
16118 if (
16119 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
16120 )
16121 {
16122 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
16123 _res = invalid_for_target_var;
16124 goto done;
16125 }
16126 p->mark = _mark;
16127 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
16128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
16129 }
16130 _res = NULL;
16131 done:
16132 p->level--;
16133 return _res;
16134 }
16135
16136 // listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
16137 static expr_ty
listcomp_rule(Parser * p)16138 listcomp_rule(Parser *p)
16139 {
16140 if (p->level++ == MAXSTACK) {
16141 p->error_indicator = 1;
16142 PyErr_NoMemory();
16143 }
16144 if (p->error_indicator) {
16145 p->level--;
16146 return NULL;
16147 }
16148 expr_ty _res = NULL;
16149 int _mark = p->mark;
16150 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16151 p->error_indicator = 1;
16152 p->level--;
16153 return NULL;
16154 }
16155 int _start_lineno = p->tokens[_mark]->lineno;
16156 UNUSED(_start_lineno); // Only used by EXTRA macro
16157 int _start_col_offset = p->tokens[_mark]->col_offset;
16158 UNUSED(_start_col_offset); // Only used by EXTRA macro
16159 { // '[' named_expression for_if_clauses ']'
16160 if (p->error_indicator) {
16161 p->level--;
16162 return NULL;
16163 }
16164 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
16165 Token * _literal;
16166 Token * _literal_1;
16167 expr_ty a;
16168 asdl_comprehension_seq* b;
16169 if (
16170 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16171 &&
16172 (a = named_expression_rule(p)) // named_expression
16173 &&
16174 (b = for_if_clauses_rule(p)) // for_if_clauses
16175 &&
16176 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16177 )
16178 {
16179 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
16180 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16181 if (_token == NULL) {
16182 p->level--;
16183 return NULL;
16184 }
16185 int _end_lineno = _token->end_lineno;
16186 UNUSED(_end_lineno); // Only used by EXTRA macro
16187 int _end_col_offset = _token->end_col_offset;
16188 UNUSED(_end_col_offset); // Only used by EXTRA macro
16189 _res = _PyAST_ListComp ( a , b , EXTRA );
16190 if (_res == NULL && PyErr_Occurred()) {
16191 p->error_indicator = 1;
16192 p->level--;
16193 return NULL;
16194 }
16195 goto done;
16196 }
16197 p->mark = _mark;
16198 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
16199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
16200 }
16201 if (p->call_invalid_rules) { // invalid_comprehension
16202 if (p->error_indicator) {
16203 p->level--;
16204 return NULL;
16205 }
16206 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
16207 void *invalid_comprehension_var;
16208 if (
16209 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
16210 )
16211 {
16212 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
16213 _res = invalid_comprehension_var;
16214 goto done;
16215 }
16216 p->mark = _mark;
16217 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
16218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
16219 }
16220 _res = NULL;
16221 done:
16222 p->level--;
16223 return _res;
16224 }
16225
16226 // setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
16227 static expr_ty
setcomp_rule(Parser * p)16228 setcomp_rule(Parser *p)
16229 {
16230 if (p->level++ == MAXSTACK) {
16231 p->error_indicator = 1;
16232 PyErr_NoMemory();
16233 }
16234 if (p->error_indicator) {
16235 p->level--;
16236 return NULL;
16237 }
16238 expr_ty _res = NULL;
16239 int _mark = p->mark;
16240 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16241 p->error_indicator = 1;
16242 p->level--;
16243 return NULL;
16244 }
16245 int _start_lineno = p->tokens[_mark]->lineno;
16246 UNUSED(_start_lineno); // Only used by EXTRA macro
16247 int _start_col_offset = p->tokens[_mark]->col_offset;
16248 UNUSED(_start_col_offset); // Only used by EXTRA macro
16249 { // '{' named_expression for_if_clauses '}'
16250 if (p->error_indicator) {
16251 p->level--;
16252 return NULL;
16253 }
16254 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
16255 Token * _literal;
16256 Token * _literal_1;
16257 expr_ty a;
16258 asdl_comprehension_seq* b;
16259 if (
16260 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
16261 &&
16262 (a = named_expression_rule(p)) // named_expression
16263 &&
16264 (b = for_if_clauses_rule(p)) // for_if_clauses
16265 &&
16266 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
16267 )
16268 {
16269 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
16270 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16271 if (_token == NULL) {
16272 p->level--;
16273 return NULL;
16274 }
16275 int _end_lineno = _token->end_lineno;
16276 UNUSED(_end_lineno); // Only used by EXTRA macro
16277 int _end_col_offset = _token->end_col_offset;
16278 UNUSED(_end_col_offset); // Only used by EXTRA macro
16279 _res = _PyAST_SetComp ( a , b , EXTRA );
16280 if (_res == NULL && PyErr_Occurred()) {
16281 p->error_indicator = 1;
16282 p->level--;
16283 return NULL;
16284 }
16285 goto done;
16286 }
16287 p->mark = _mark;
16288 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
16289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
16290 }
16291 if (p->call_invalid_rules) { // invalid_comprehension
16292 if (p->error_indicator) {
16293 p->level--;
16294 return NULL;
16295 }
16296 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
16297 void *invalid_comprehension_var;
16298 if (
16299 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
16300 )
16301 {
16302 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
16303 _res = invalid_comprehension_var;
16304 goto done;
16305 }
16306 p->mark = _mark;
16307 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
16308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
16309 }
16310 _res = NULL;
16311 done:
16312 p->level--;
16313 return _res;
16314 }
16315
16316 // genexp:
16317 // | '(' (assignment_expression | expression !':=') for_if_clauses ')'
16318 // | invalid_comprehension
16319 static expr_ty
genexp_rule(Parser * p)16320 genexp_rule(Parser *p)
16321 {
16322 if (p->level++ == MAXSTACK) {
16323 p->error_indicator = 1;
16324 PyErr_NoMemory();
16325 }
16326 if (p->error_indicator) {
16327 p->level--;
16328 return NULL;
16329 }
16330 expr_ty _res = NULL;
16331 int _mark = p->mark;
16332 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16333 p->error_indicator = 1;
16334 p->level--;
16335 return NULL;
16336 }
16337 int _start_lineno = p->tokens[_mark]->lineno;
16338 UNUSED(_start_lineno); // Only used by EXTRA macro
16339 int _start_col_offset = p->tokens[_mark]->col_offset;
16340 UNUSED(_start_col_offset); // Only used by EXTRA macro
16341 { // '(' (assignment_expression | expression !':=') for_if_clauses ')'
16342 if (p->error_indicator) {
16343 p->level--;
16344 return NULL;
16345 }
16346 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
16347 Token * _literal;
16348 Token * _literal_1;
16349 void *a;
16350 asdl_comprehension_seq* b;
16351 if (
16352 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16353 &&
16354 (a = _tmp_116_rule(p)) // assignment_expression | expression !':='
16355 &&
16356 (b = for_if_clauses_rule(p)) // for_if_clauses
16357 &&
16358 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16359 )
16360 {
16361 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
16362 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16363 if (_token == NULL) {
16364 p->level--;
16365 return NULL;
16366 }
16367 int _end_lineno = _token->end_lineno;
16368 UNUSED(_end_lineno); // Only used by EXTRA macro
16369 int _end_col_offset = _token->end_col_offset;
16370 UNUSED(_end_col_offset); // Only used by EXTRA macro
16371 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
16372 if (_res == NULL && PyErr_Occurred()) {
16373 p->error_indicator = 1;
16374 p->level--;
16375 return NULL;
16376 }
16377 goto done;
16378 }
16379 p->mark = _mark;
16380 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
16381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
16382 }
16383 if (p->call_invalid_rules) { // invalid_comprehension
16384 if (p->error_indicator) {
16385 p->level--;
16386 return NULL;
16387 }
16388 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
16389 void *invalid_comprehension_var;
16390 if (
16391 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
16392 )
16393 {
16394 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
16395 _res = invalid_comprehension_var;
16396 goto done;
16397 }
16398 p->mark = _mark;
16399 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
16400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
16401 }
16402 _res = NULL;
16403 done:
16404 p->level--;
16405 return _res;
16406 }
16407
16408 // dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
16409 static expr_ty
dictcomp_rule(Parser * p)16410 dictcomp_rule(Parser *p)
16411 {
16412 if (p->level++ == MAXSTACK) {
16413 p->error_indicator = 1;
16414 PyErr_NoMemory();
16415 }
16416 if (p->error_indicator) {
16417 p->level--;
16418 return NULL;
16419 }
16420 expr_ty _res = NULL;
16421 int _mark = p->mark;
16422 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16423 p->error_indicator = 1;
16424 p->level--;
16425 return NULL;
16426 }
16427 int _start_lineno = p->tokens[_mark]->lineno;
16428 UNUSED(_start_lineno); // Only used by EXTRA macro
16429 int _start_col_offset = p->tokens[_mark]->col_offset;
16430 UNUSED(_start_col_offset); // Only used by EXTRA macro
16431 { // '{' kvpair for_if_clauses '}'
16432 if (p->error_indicator) {
16433 p->level--;
16434 return NULL;
16435 }
16436 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
16437 Token * _literal;
16438 Token * _literal_1;
16439 KeyValuePair* a;
16440 asdl_comprehension_seq* b;
16441 if (
16442 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
16443 &&
16444 (a = kvpair_rule(p)) // kvpair
16445 &&
16446 (b = for_if_clauses_rule(p)) // for_if_clauses
16447 &&
16448 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
16449 )
16450 {
16451 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
16452 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16453 if (_token == NULL) {
16454 p->level--;
16455 return NULL;
16456 }
16457 int _end_lineno = _token->end_lineno;
16458 UNUSED(_end_lineno); // Only used by EXTRA macro
16459 int _end_col_offset = _token->end_col_offset;
16460 UNUSED(_end_col_offset); // Only used by EXTRA macro
16461 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
16462 if (_res == NULL && PyErr_Occurred()) {
16463 p->error_indicator = 1;
16464 p->level--;
16465 return NULL;
16466 }
16467 goto done;
16468 }
16469 p->mark = _mark;
16470 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
16471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
16472 }
16473 if (p->call_invalid_rules) { // invalid_dict_comprehension
16474 if (p->error_indicator) {
16475 p->level--;
16476 return NULL;
16477 }
16478 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
16479 void *invalid_dict_comprehension_var;
16480 if (
16481 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
16482 )
16483 {
16484 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
16485 _res = invalid_dict_comprehension_var;
16486 goto done;
16487 }
16488 p->mark = _mark;
16489 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
16490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
16491 }
16492 _res = NULL;
16493 done:
16494 p->level--;
16495 return _res;
16496 }
16497
16498 // arguments: args ','? &')' | invalid_arguments
16499 static expr_ty
arguments_rule(Parser * p)16500 arguments_rule(Parser *p)
16501 {
16502 if (p->level++ == MAXSTACK) {
16503 p->error_indicator = 1;
16504 PyErr_NoMemory();
16505 }
16506 if (p->error_indicator) {
16507 p->level--;
16508 return NULL;
16509 }
16510 expr_ty _res = NULL;
16511 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
16512 p->level--;
16513 return _res;
16514 }
16515 int _mark = p->mark;
16516 { // args ','? &')'
16517 if (p->error_indicator) {
16518 p->level--;
16519 return NULL;
16520 }
16521 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
16522 void *_opt_var;
16523 UNUSED(_opt_var); // Silence compiler warnings
16524 expr_ty a;
16525 if (
16526 (a = args_rule(p)) // args
16527 &&
16528 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
16529 &&
16530 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
16531 )
16532 {
16533 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
16534 _res = a;
16535 if (_res == NULL && PyErr_Occurred()) {
16536 p->error_indicator = 1;
16537 p->level--;
16538 return NULL;
16539 }
16540 goto done;
16541 }
16542 p->mark = _mark;
16543 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
16544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
16545 }
16546 if (p->call_invalid_rules) { // invalid_arguments
16547 if (p->error_indicator) {
16548 p->level--;
16549 return NULL;
16550 }
16551 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
16552 void *invalid_arguments_var;
16553 if (
16554 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
16555 )
16556 {
16557 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
16558 _res = invalid_arguments_var;
16559 goto done;
16560 }
16561 p->mark = _mark;
16562 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
16563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
16564 }
16565 _res = NULL;
16566 done:
16567 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
16568 p->level--;
16569 return _res;
16570 }
16571
16572 // args:
16573 // | ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]
16574 // | kwargs
16575 static expr_ty
args_rule(Parser * p)16576 args_rule(Parser *p)
16577 {
16578 if (p->level++ == MAXSTACK) {
16579 p->error_indicator = 1;
16580 PyErr_NoMemory();
16581 }
16582 if (p->error_indicator) {
16583 p->level--;
16584 return NULL;
16585 }
16586 expr_ty _res = NULL;
16587 int _mark = p->mark;
16588 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16589 p->error_indicator = 1;
16590 p->level--;
16591 return NULL;
16592 }
16593 int _start_lineno = p->tokens[_mark]->lineno;
16594 UNUSED(_start_lineno); // Only used by EXTRA macro
16595 int _start_col_offset = p->tokens[_mark]->col_offset;
16596 UNUSED(_start_col_offset); // Only used by EXTRA macro
16597 { // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]
16598 if (p->error_indicator) {
16599 p->level--;
16600 return NULL;
16601 }
16602 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
16603 asdl_expr_seq* a;
16604 void *b;
16605 if (
16606 (a = (asdl_expr_seq*)_gather_117_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+
16607 &&
16608 (b = _tmp_119_rule(p), !p->error_indicator) // [',' kwargs]
16609 )
16610 {
16611 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
16612 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16613 if (_token == NULL) {
16614 p->level--;
16615 return NULL;
16616 }
16617 int _end_lineno = _token->end_lineno;
16618 UNUSED(_end_lineno); // Only used by EXTRA macro
16619 int _end_col_offset = _token->end_col_offset;
16620 UNUSED(_end_col_offset); // Only used by EXTRA macro
16621 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
16622 if (_res == NULL && PyErr_Occurred()) {
16623 p->error_indicator = 1;
16624 p->level--;
16625 return NULL;
16626 }
16627 goto done;
16628 }
16629 p->mark = _mark;
16630 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
16631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
16632 }
16633 { // kwargs
16634 if (p->error_indicator) {
16635 p->level--;
16636 return NULL;
16637 }
16638 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
16639 asdl_seq* a;
16640 if (
16641 (a = kwargs_rule(p)) // kwargs
16642 )
16643 {
16644 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
16645 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16646 if (_token == NULL) {
16647 p->level--;
16648 return NULL;
16649 }
16650 int _end_lineno = _token->end_lineno;
16651 UNUSED(_end_lineno); // Only used by EXTRA macro
16652 int _end_col_offset = _token->end_col_offset;
16653 UNUSED(_end_col_offset); // Only used by EXTRA macro
16654 _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 );
16655 if (_res == NULL && PyErr_Occurred()) {
16656 p->error_indicator = 1;
16657 p->level--;
16658 return NULL;
16659 }
16660 goto done;
16661 }
16662 p->mark = _mark;
16663 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
16664 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
16665 }
16666 _res = NULL;
16667 done:
16668 p->level--;
16669 return _res;
16670 }
16671
16672 // kwargs:
16673 // | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
16674 // | ','.kwarg_or_starred+
16675 // | ','.kwarg_or_double_starred+
16676 static asdl_seq*
kwargs_rule(Parser * p)16677 kwargs_rule(Parser *p)
16678 {
16679 if (p->level++ == MAXSTACK) {
16680 p->error_indicator = 1;
16681 PyErr_NoMemory();
16682 }
16683 if (p->error_indicator) {
16684 p->level--;
16685 return NULL;
16686 }
16687 asdl_seq* _res = NULL;
16688 int _mark = p->mark;
16689 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
16690 if (p->error_indicator) {
16691 p->level--;
16692 return NULL;
16693 }
16694 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
16695 Token * _literal;
16696 asdl_seq * a;
16697 asdl_seq * b;
16698 if (
16699 (a = _gather_120_rule(p)) // ','.kwarg_or_starred+
16700 &&
16701 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16702 &&
16703 (b = _gather_122_rule(p)) // ','.kwarg_or_double_starred+
16704 )
16705 {
16706 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
16707 _res = _PyPegen_join_sequences ( p , a , b );
16708 if (_res == NULL && PyErr_Occurred()) {
16709 p->error_indicator = 1;
16710 p->level--;
16711 return NULL;
16712 }
16713 goto done;
16714 }
16715 p->mark = _mark;
16716 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
16717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
16718 }
16719 { // ','.kwarg_or_starred+
16720 if (p->error_indicator) {
16721 p->level--;
16722 return NULL;
16723 }
16724 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
16725 asdl_seq * _gather_124_var;
16726 if (
16727 (_gather_124_var = _gather_124_rule(p)) // ','.kwarg_or_starred+
16728 )
16729 {
16730 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
16731 _res = _gather_124_var;
16732 goto done;
16733 }
16734 p->mark = _mark;
16735 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
16736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
16737 }
16738 { // ','.kwarg_or_double_starred+
16739 if (p->error_indicator) {
16740 p->level--;
16741 return NULL;
16742 }
16743 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
16744 asdl_seq * _gather_126_var;
16745 if (
16746 (_gather_126_var = _gather_126_rule(p)) // ','.kwarg_or_double_starred+
16747 )
16748 {
16749 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
16750 _res = _gather_126_var;
16751 goto done;
16752 }
16753 p->mark = _mark;
16754 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
16755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
16756 }
16757 _res = NULL;
16758 done:
16759 p->level--;
16760 return _res;
16761 }
16762
16763 // starred_expression: '*' expression
16764 static expr_ty
starred_expression_rule(Parser * p)16765 starred_expression_rule(Parser *p)
16766 {
16767 if (p->level++ == MAXSTACK) {
16768 p->error_indicator = 1;
16769 PyErr_NoMemory();
16770 }
16771 if (p->error_indicator) {
16772 p->level--;
16773 return NULL;
16774 }
16775 expr_ty _res = NULL;
16776 int _mark = p->mark;
16777 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16778 p->error_indicator = 1;
16779 p->level--;
16780 return NULL;
16781 }
16782 int _start_lineno = p->tokens[_mark]->lineno;
16783 UNUSED(_start_lineno); // Only used by EXTRA macro
16784 int _start_col_offset = p->tokens[_mark]->col_offset;
16785 UNUSED(_start_col_offset); // Only used by EXTRA macro
16786 { // '*' expression
16787 if (p->error_indicator) {
16788 p->level--;
16789 return NULL;
16790 }
16791 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16792 Token * _literal;
16793 expr_ty a;
16794 if (
16795 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16796 &&
16797 (a = expression_rule(p)) // expression
16798 )
16799 {
16800 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16801 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16802 if (_token == NULL) {
16803 p->level--;
16804 return NULL;
16805 }
16806 int _end_lineno = _token->end_lineno;
16807 UNUSED(_end_lineno); // Only used by EXTRA macro
16808 int _end_col_offset = _token->end_col_offset;
16809 UNUSED(_end_col_offset); // Only used by EXTRA macro
16810 _res = _PyAST_Starred ( a , Load , EXTRA );
16811 if (_res == NULL && PyErr_Occurred()) {
16812 p->error_indicator = 1;
16813 p->level--;
16814 return NULL;
16815 }
16816 goto done;
16817 }
16818 p->mark = _mark;
16819 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
16820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
16821 }
16822 _res = NULL;
16823 done:
16824 p->level--;
16825 return _res;
16826 }
16827
16828 // kwarg_or_starred: invalid_kwarg | NAME '=' expression | starred_expression
16829 static KeywordOrStarred*
kwarg_or_starred_rule(Parser * p)16830 kwarg_or_starred_rule(Parser *p)
16831 {
16832 if (p->level++ == MAXSTACK) {
16833 p->error_indicator = 1;
16834 PyErr_NoMemory();
16835 }
16836 if (p->error_indicator) {
16837 p->level--;
16838 return NULL;
16839 }
16840 KeywordOrStarred* _res = NULL;
16841 int _mark = p->mark;
16842 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16843 p->error_indicator = 1;
16844 p->level--;
16845 return NULL;
16846 }
16847 int _start_lineno = p->tokens[_mark]->lineno;
16848 UNUSED(_start_lineno); // Only used by EXTRA macro
16849 int _start_col_offset = p->tokens[_mark]->col_offset;
16850 UNUSED(_start_col_offset); // Only used by EXTRA macro
16851 if (p->call_invalid_rules) { // invalid_kwarg
16852 if (p->error_indicator) {
16853 p->level--;
16854 return NULL;
16855 }
16856 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16857 void *invalid_kwarg_var;
16858 if (
16859 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16860 )
16861 {
16862 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16863 _res = invalid_kwarg_var;
16864 goto done;
16865 }
16866 p->mark = _mark;
16867 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16869 }
16870 { // NAME '=' expression
16871 if (p->error_indicator) {
16872 p->level--;
16873 return NULL;
16874 }
16875 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16876 Token * _literal;
16877 expr_ty a;
16878 expr_ty b;
16879 if (
16880 (a = _PyPegen_name_token(p)) // NAME
16881 &&
16882 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16883 &&
16884 (b = expression_rule(p)) // expression
16885 )
16886 {
16887 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16888 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16889 if (_token == NULL) {
16890 p->level--;
16891 return NULL;
16892 }
16893 int _end_lineno = _token->end_lineno;
16894 UNUSED(_end_lineno); // Only used by EXTRA macro
16895 int _end_col_offset = _token->end_col_offset;
16896 UNUSED(_end_col_offset); // Only used by EXTRA macro
16897 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
16898 if (_res == NULL && PyErr_Occurred()) {
16899 p->error_indicator = 1;
16900 p->level--;
16901 return NULL;
16902 }
16903 goto done;
16904 }
16905 p->mark = _mark;
16906 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16908 }
16909 { // starred_expression
16910 if (p->error_indicator) {
16911 p->level--;
16912 return NULL;
16913 }
16914 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16915 expr_ty a;
16916 if (
16917 (a = starred_expression_rule(p)) // starred_expression
16918 )
16919 {
16920 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16921 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
16922 if (_res == NULL && PyErr_Occurred()) {
16923 p->error_indicator = 1;
16924 p->level--;
16925 return NULL;
16926 }
16927 goto done;
16928 }
16929 p->mark = _mark;
16930 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
16932 }
16933 _res = NULL;
16934 done:
16935 p->level--;
16936 return _res;
16937 }
16938
16939 // kwarg_or_double_starred: invalid_kwarg | NAME '=' expression | '**' expression
16940 static KeywordOrStarred*
kwarg_or_double_starred_rule(Parser * p)16941 kwarg_or_double_starred_rule(Parser *p)
16942 {
16943 if (p->level++ == MAXSTACK) {
16944 p->error_indicator = 1;
16945 PyErr_NoMemory();
16946 }
16947 if (p->error_indicator) {
16948 p->level--;
16949 return NULL;
16950 }
16951 KeywordOrStarred* _res = NULL;
16952 int _mark = p->mark;
16953 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16954 p->error_indicator = 1;
16955 p->level--;
16956 return NULL;
16957 }
16958 int _start_lineno = p->tokens[_mark]->lineno;
16959 UNUSED(_start_lineno); // Only used by EXTRA macro
16960 int _start_col_offset = p->tokens[_mark]->col_offset;
16961 UNUSED(_start_col_offset); // Only used by EXTRA macro
16962 if (p->call_invalid_rules) { // invalid_kwarg
16963 if (p->error_indicator) {
16964 p->level--;
16965 return NULL;
16966 }
16967 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16968 void *invalid_kwarg_var;
16969 if (
16970 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16971 )
16972 {
16973 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16974 _res = invalid_kwarg_var;
16975 goto done;
16976 }
16977 p->mark = _mark;
16978 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16980 }
16981 { // NAME '=' expression
16982 if (p->error_indicator) {
16983 p->level--;
16984 return NULL;
16985 }
16986 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16987 Token * _literal;
16988 expr_ty a;
16989 expr_ty b;
16990 if (
16991 (a = _PyPegen_name_token(p)) // NAME
16992 &&
16993 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16994 &&
16995 (b = expression_rule(p)) // expression
16996 )
16997 {
16998 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16999 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17000 if (_token == NULL) {
17001 p->level--;
17002 return NULL;
17003 }
17004 int _end_lineno = _token->end_lineno;
17005 UNUSED(_end_lineno); // Only used by EXTRA macro
17006 int _end_col_offset = _token->end_col_offset;
17007 UNUSED(_end_col_offset); // Only used by EXTRA macro
17008 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
17009 if (_res == NULL && PyErr_Occurred()) {
17010 p->error_indicator = 1;
17011 p->level--;
17012 return NULL;
17013 }
17014 goto done;
17015 }
17016 p->mark = _mark;
17017 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
17018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
17019 }
17020 { // '**' expression
17021 if (p->error_indicator) {
17022 p->level--;
17023 return NULL;
17024 }
17025 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
17026 Token * _literal;
17027 expr_ty a;
17028 if (
17029 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
17030 &&
17031 (a = expression_rule(p)) // expression
17032 )
17033 {
17034 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
17035 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17036 if (_token == NULL) {
17037 p->level--;
17038 return NULL;
17039 }
17040 int _end_lineno = _token->end_lineno;
17041 UNUSED(_end_lineno); // Only used by EXTRA macro
17042 int _end_col_offset = _token->end_col_offset;
17043 UNUSED(_end_col_offset); // Only used by EXTRA macro
17044 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
17045 if (_res == NULL && PyErr_Occurred()) {
17046 p->error_indicator = 1;
17047 p->level--;
17048 return NULL;
17049 }
17050 goto done;
17051 }
17052 p->mark = _mark;
17053 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
17054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
17055 }
17056 _res = NULL;
17057 done:
17058 p->level--;
17059 return _res;
17060 }
17061
17062 // star_targets: star_target !',' | star_target ((',' star_target))* ','?
17063 static expr_ty
star_targets_rule(Parser * p)17064 star_targets_rule(Parser *p)
17065 {
17066 if (p->level++ == MAXSTACK) {
17067 p->error_indicator = 1;
17068 PyErr_NoMemory();
17069 }
17070 if (p->error_indicator) {
17071 p->level--;
17072 return NULL;
17073 }
17074 expr_ty _res = NULL;
17075 int _mark = p->mark;
17076 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17077 p->error_indicator = 1;
17078 p->level--;
17079 return NULL;
17080 }
17081 int _start_lineno = p->tokens[_mark]->lineno;
17082 UNUSED(_start_lineno); // Only used by EXTRA macro
17083 int _start_col_offset = p->tokens[_mark]->col_offset;
17084 UNUSED(_start_col_offset); // Only used by EXTRA macro
17085 { // star_target !','
17086 if (p->error_indicator) {
17087 p->level--;
17088 return NULL;
17089 }
17090 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
17091 expr_ty a;
17092 if (
17093 (a = star_target_rule(p)) // star_target
17094 &&
17095 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
17096 )
17097 {
17098 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
17099 _res = a;
17100 if (_res == NULL && PyErr_Occurred()) {
17101 p->error_indicator = 1;
17102 p->level--;
17103 return NULL;
17104 }
17105 goto done;
17106 }
17107 p->mark = _mark;
17108 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
17109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
17110 }
17111 { // star_target ((',' star_target))* ','?
17112 if (p->error_indicator) {
17113 p->level--;
17114 return NULL;
17115 }
17116 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
17117 void *_opt_var;
17118 UNUSED(_opt_var); // Silence compiler warnings
17119 expr_ty a;
17120 asdl_seq * b;
17121 if (
17122 (a = star_target_rule(p)) // star_target
17123 &&
17124 (b = _loop0_128_rule(p)) // ((',' star_target))*
17125 &&
17126 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
17127 )
17128 {
17129 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
17130 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17131 if (_token == NULL) {
17132 p->level--;
17133 return NULL;
17134 }
17135 int _end_lineno = _token->end_lineno;
17136 UNUSED(_end_lineno); // Only used by EXTRA macro
17137 int _end_col_offset = _token->end_col_offset;
17138 UNUSED(_end_col_offset); // Only used by EXTRA macro
17139 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
17140 if (_res == NULL && PyErr_Occurred()) {
17141 p->error_indicator = 1;
17142 p->level--;
17143 return NULL;
17144 }
17145 goto done;
17146 }
17147 p->mark = _mark;
17148 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
17149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
17150 }
17151 _res = NULL;
17152 done:
17153 p->level--;
17154 return _res;
17155 }
17156
17157 // star_targets_list_seq: ','.star_target+ ','?
17158 static asdl_expr_seq*
star_targets_list_seq_rule(Parser * p)17159 star_targets_list_seq_rule(Parser *p)
17160 {
17161 if (p->level++ == MAXSTACK) {
17162 p->error_indicator = 1;
17163 PyErr_NoMemory();
17164 }
17165 if (p->error_indicator) {
17166 p->level--;
17167 return NULL;
17168 }
17169 asdl_expr_seq* _res = NULL;
17170 int _mark = p->mark;
17171 { // ','.star_target+ ','?
17172 if (p->error_indicator) {
17173 p->level--;
17174 return NULL;
17175 }
17176 D(fprintf(stderr, "%*c> star_targets_list_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
17177 void *_opt_var;
17178 UNUSED(_opt_var); // Silence compiler warnings
17179 asdl_expr_seq* a;
17180 if (
17181 (a = (asdl_expr_seq*)_gather_129_rule(p)) // ','.star_target+
17182 &&
17183 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
17184 )
17185 {
17186 D(fprintf(stderr, "%*c+ star_targets_list_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
17187 _res = a;
17188 if (_res == NULL && PyErr_Occurred()) {
17189 p->error_indicator = 1;
17190 p->level--;
17191 return NULL;
17192 }
17193 goto done;
17194 }
17195 p->mark = _mark;
17196 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
17197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
17198 }
17199 _res = NULL;
17200 done:
17201 p->level--;
17202 return _res;
17203 }
17204
17205 // star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
17206 static asdl_expr_seq*
star_targets_tuple_seq_rule(Parser * p)17207 star_targets_tuple_seq_rule(Parser *p)
17208 {
17209 if (p->level++ == MAXSTACK) {
17210 p->error_indicator = 1;
17211 PyErr_NoMemory();
17212 }
17213 if (p->error_indicator) {
17214 p->level--;
17215 return NULL;
17216 }
17217 asdl_expr_seq* _res = NULL;
17218 int _mark = p->mark;
17219 { // star_target ((',' star_target))+ ','?
17220 if (p->error_indicator) {
17221 p->level--;
17222 return NULL;
17223 }
17224 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
17225 void *_opt_var;
17226 UNUSED(_opt_var); // Silence compiler warnings
17227 expr_ty a;
17228 asdl_seq * b;
17229 if (
17230 (a = star_target_rule(p)) // star_target
17231 &&
17232 (b = _loop1_131_rule(p)) // ((',' star_target))+
17233 &&
17234 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
17235 )
17236 {
17237 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
17238 _res = ( asdl_expr_seq* ) _PyPegen_seq_insert_in_front ( p , a , b );
17239 if (_res == NULL && PyErr_Occurred()) {
17240 p->error_indicator = 1;
17241 p->level--;
17242 return NULL;
17243 }
17244 goto done;
17245 }
17246 p->mark = _mark;
17247 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
17248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
17249 }
17250 { // star_target ','
17251 if (p->error_indicator) {
17252 p->level--;
17253 return NULL;
17254 }
17255 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
17256 Token * _literal;
17257 expr_ty a;
17258 if (
17259 (a = star_target_rule(p)) // star_target
17260 &&
17261 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17262 )
17263 {
17264 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
17265 _res = ( asdl_expr_seq* ) _PyPegen_singleton_seq ( p , a );
17266 if (_res == NULL && PyErr_Occurred()) {
17267 p->error_indicator = 1;
17268 p->level--;
17269 return NULL;
17270 }
17271 goto done;
17272 }
17273 p->mark = _mark;
17274 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
17275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
17276 }
17277 _res = NULL;
17278 done:
17279 p->level--;
17280 return _res;
17281 }
17282
17283 // star_target: '*' (!'*' star_target) | target_with_star_atom
17284 static expr_ty
star_target_rule(Parser * p)17285 star_target_rule(Parser *p)
17286 {
17287 if (p->level++ == MAXSTACK) {
17288 p->error_indicator = 1;
17289 PyErr_NoMemory();
17290 }
17291 if (p->error_indicator) {
17292 p->level--;
17293 return NULL;
17294 }
17295 expr_ty _res = NULL;
17296 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
17297 p->level--;
17298 return _res;
17299 }
17300 int _mark = p->mark;
17301 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17302 p->error_indicator = 1;
17303 p->level--;
17304 return NULL;
17305 }
17306 int _start_lineno = p->tokens[_mark]->lineno;
17307 UNUSED(_start_lineno); // Only used by EXTRA macro
17308 int _start_col_offset = p->tokens[_mark]->col_offset;
17309 UNUSED(_start_col_offset); // Only used by EXTRA macro
17310 { // '*' (!'*' star_target)
17311 if (p->error_indicator) {
17312 p->level--;
17313 return NULL;
17314 }
17315 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
17316 Token * _literal;
17317 void *a;
17318 if (
17319 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
17320 &&
17321 (a = _tmp_132_rule(p)) // !'*' star_target
17322 )
17323 {
17324 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
17325 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17326 if (_token == NULL) {
17327 p->level--;
17328 return NULL;
17329 }
17330 int _end_lineno = _token->end_lineno;
17331 UNUSED(_end_lineno); // Only used by EXTRA macro
17332 int _end_col_offset = _token->end_col_offset;
17333 UNUSED(_end_col_offset); // Only used by EXTRA macro
17334 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
17335 if (_res == NULL && PyErr_Occurred()) {
17336 p->error_indicator = 1;
17337 p->level--;
17338 return NULL;
17339 }
17340 goto done;
17341 }
17342 p->mark = _mark;
17343 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
17344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
17345 }
17346 { // target_with_star_atom
17347 if (p->error_indicator) {
17348 p->level--;
17349 return NULL;
17350 }
17351 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
17352 expr_ty target_with_star_atom_var;
17353 if (
17354 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
17355 )
17356 {
17357 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
17358 _res = target_with_star_atom_var;
17359 goto done;
17360 }
17361 p->mark = _mark;
17362 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
17363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
17364 }
17365 _res = NULL;
17366 done:
17367 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
17368 p->level--;
17369 return _res;
17370 }
17371
17372 // target_with_star_atom:
17373 // | t_primary '.' NAME !t_lookahead
17374 // | t_primary '[' slices ']' !t_lookahead
17375 // | star_atom
17376 static expr_ty
target_with_star_atom_rule(Parser * p)17377 target_with_star_atom_rule(Parser *p)
17378 {
17379 if (p->level++ == MAXSTACK) {
17380 p->error_indicator = 1;
17381 PyErr_NoMemory();
17382 }
17383 if (p->error_indicator) {
17384 p->level--;
17385 return NULL;
17386 }
17387 expr_ty _res = NULL;
17388 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
17389 p->level--;
17390 return _res;
17391 }
17392 int _mark = p->mark;
17393 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17394 p->error_indicator = 1;
17395 p->level--;
17396 return NULL;
17397 }
17398 int _start_lineno = p->tokens[_mark]->lineno;
17399 UNUSED(_start_lineno); // Only used by EXTRA macro
17400 int _start_col_offset = p->tokens[_mark]->col_offset;
17401 UNUSED(_start_col_offset); // Only used by EXTRA macro
17402 { // t_primary '.' NAME !t_lookahead
17403 if (p->error_indicator) {
17404 p->level--;
17405 return NULL;
17406 }
17407 D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17408 Token * _literal;
17409 expr_ty a;
17410 expr_ty b;
17411 if (
17412 (a = t_primary_rule(p)) // t_primary
17413 &&
17414 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17415 &&
17416 (b = _PyPegen_name_token(p)) // NAME
17417 &&
17418 _PyPegen_lookahead(0, t_lookahead_rule, p)
17419 )
17420 {
17421 D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17422 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17423 if (_token == NULL) {
17424 p->level--;
17425 return NULL;
17426 }
17427 int _end_lineno = _token->end_lineno;
17428 UNUSED(_end_lineno); // Only used by EXTRA macro
17429 int _end_col_offset = _token->end_col_offset;
17430 UNUSED(_end_col_offset); // Only used by EXTRA macro
17431 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
17432 if (_res == NULL && PyErr_Occurred()) {
17433 p->error_indicator = 1;
17434 p->level--;
17435 return NULL;
17436 }
17437 goto done;
17438 }
17439 p->mark = _mark;
17440 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
17441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17442 }
17443 { // t_primary '[' slices ']' !t_lookahead
17444 if (p->error_indicator) {
17445 p->level--;
17446 return NULL;
17447 }
17448 D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17449 Token * _literal;
17450 Token * _literal_1;
17451 expr_ty a;
17452 expr_ty b;
17453 if (
17454 (a = t_primary_rule(p)) // t_primary
17455 &&
17456 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17457 &&
17458 (b = slices_rule(p)) // slices
17459 &&
17460 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17461 &&
17462 _PyPegen_lookahead(0, t_lookahead_rule, p)
17463 )
17464 {
17465 D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17466 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17467 if (_token == NULL) {
17468 p->level--;
17469 return NULL;
17470 }
17471 int _end_lineno = _token->end_lineno;
17472 UNUSED(_end_lineno); // Only used by EXTRA macro
17473 int _end_col_offset = _token->end_col_offset;
17474 UNUSED(_end_col_offset); // Only used by EXTRA macro
17475 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
17476 if (_res == NULL && PyErr_Occurred()) {
17477 p->error_indicator = 1;
17478 p->level--;
17479 return NULL;
17480 }
17481 goto done;
17482 }
17483 p->mark = _mark;
17484 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
17485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17486 }
17487 { // star_atom
17488 if (p->error_indicator) {
17489 p->level--;
17490 return NULL;
17491 }
17492 D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
17493 expr_ty star_atom_var;
17494 if (
17495 (star_atom_var = star_atom_rule(p)) // star_atom
17496 )
17497 {
17498 D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_atom"));
17499 _res = star_atom_var;
17500 goto done;
17501 }
17502 p->mark = _mark;
17503 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
17504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
17505 }
17506 _res = NULL;
17507 done:
17508 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
17509 p->level--;
17510 return _res;
17511 }
17512
17513 // star_atom:
17514 // | NAME
17515 // | '(' target_with_star_atom ')'
17516 // | '(' star_targets_tuple_seq? ')'
17517 // | '[' star_targets_list_seq? ']'
17518 static expr_ty
star_atom_rule(Parser * p)17519 star_atom_rule(Parser *p)
17520 {
17521 if (p->level++ == MAXSTACK) {
17522 p->error_indicator = 1;
17523 PyErr_NoMemory();
17524 }
17525 if (p->error_indicator) {
17526 p->level--;
17527 return NULL;
17528 }
17529 expr_ty _res = NULL;
17530 int _mark = p->mark;
17531 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17532 p->error_indicator = 1;
17533 p->level--;
17534 return NULL;
17535 }
17536 int _start_lineno = p->tokens[_mark]->lineno;
17537 UNUSED(_start_lineno); // Only used by EXTRA macro
17538 int _start_col_offset = p->tokens[_mark]->col_offset;
17539 UNUSED(_start_col_offset); // Only used by EXTRA macro
17540 { // NAME
17541 if (p->error_indicator) {
17542 p->level--;
17543 return NULL;
17544 }
17545 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
17546 expr_ty a;
17547 if (
17548 (a = _PyPegen_name_token(p)) // NAME
17549 )
17550 {
17551 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
17552 _res = _PyPegen_set_expr_context ( p , a , Store );
17553 if (_res == NULL && PyErr_Occurred()) {
17554 p->error_indicator = 1;
17555 p->level--;
17556 return NULL;
17557 }
17558 goto done;
17559 }
17560 p->mark = _mark;
17561 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
17562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
17563 }
17564 { // '(' target_with_star_atom ')'
17565 if (p->error_indicator) {
17566 p->level--;
17567 return NULL;
17568 }
17569 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target_with_star_atom ')'"));
17570 Token * _literal;
17571 Token * _literal_1;
17572 expr_ty a;
17573 if (
17574 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17575 &&
17576 (a = target_with_star_atom_rule(p)) // target_with_star_atom
17577 &&
17578 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17579 )
17580 {
17581 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target_with_star_atom ')'"));
17582 _res = _PyPegen_set_expr_context ( p , a , Store );
17583 if (_res == NULL && PyErr_Occurred()) {
17584 p->error_indicator = 1;
17585 p->level--;
17586 return NULL;
17587 }
17588 goto done;
17589 }
17590 p->mark = _mark;
17591 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
17592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
17593 }
17594 { // '(' star_targets_tuple_seq? ')'
17595 if (p->error_indicator) {
17596 p->level--;
17597 return NULL;
17598 }
17599 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
17600 Token * _literal;
17601 Token * _literal_1;
17602 void *a;
17603 if (
17604 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17605 &&
17606 (a = star_targets_tuple_seq_rule(p), !p->error_indicator) // star_targets_tuple_seq?
17607 &&
17608 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17609 )
17610 {
17611 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
17612 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17613 if (_token == NULL) {
17614 p->level--;
17615 return NULL;
17616 }
17617 int _end_lineno = _token->end_lineno;
17618 UNUSED(_end_lineno); // Only used by EXTRA macro
17619 int _end_col_offset = _token->end_col_offset;
17620 UNUSED(_end_col_offset); // Only used by EXTRA macro
17621 _res = _PyAST_Tuple ( a , Store , EXTRA );
17622 if (_res == NULL && PyErr_Occurred()) {
17623 p->error_indicator = 1;
17624 p->level--;
17625 return NULL;
17626 }
17627 goto done;
17628 }
17629 p->mark = _mark;
17630 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
17631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
17632 }
17633 { // '[' star_targets_list_seq? ']'
17634 if (p->error_indicator) {
17635 p->level--;
17636 return NULL;
17637 }
17638 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_targets_list_seq? ']'"));
17639 Token * _literal;
17640 Token * _literal_1;
17641 void *a;
17642 if (
17643 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17644 &&
17645 (a = star_targets_list_seq_rule(p), !p->error_indicator) // star_targets_list_seq?
17646 &&
17647 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17648 )
17649 {
17650 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_targets_list_seq? ']'"));
17651 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17652 if (_token == NULL) {
17653 p->level--;
17654 return NULL;
17655 }
17656 int _end_lineno = _token->end_lineno;
17657 UNUSED(_end_lineno); // Only used by EXTRA macro
17658 int _end_col_offset = _token->end_col_offset;
17659 UNUSED(_end_col_offset); // Only used by EXTRA macro
17660 _res = _PyAST_List ( a , Store , EXTRA );
17661 if (_res == NULL && PyErr_Occurred()) {
17662 p->error_indicator = 1;
17663 p->level--;
17664 return NULL;
17665 }
17666 goto done;
17667 }
17668 p->mark = _mark;
17669 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
17670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
17671 }
17672 _res = NULL;
17673 done:
17674 p->level--;
17675 return _res;
17676 }
17677
17678 // single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
17679 static expr_ty
single_target_rule(Parser * p)17680 single_target_rule(Parser *p)
17681 {
17682 if (p->level++ == MAXSTACK) {
17683 p->error_indicator = 1;
17684 PyErr_NoMemory();
17685 }
17686 if (p->error_indicator) {
17687 p->level--;
17688 return NULL;
17689 }
17690 expr_ty _res = NULL;
17691 int _mark = p->mark;
17692 { // single_subscript_attribute_target
17693 if (p->error_indicator) {
17694 p->level--;
17695 return NULL;
17696 }
17697 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
17698 expr_ty single_subscript_attribute_target_var;
17699 if (
17700 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
17701 )
17702 {
17703 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
17704 _res = single_subscript_attribute_target_var;
17705 goto done;
17706 }
17707 p->mark = _mark;
17708 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
17709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
17710 }
17711 { // NAME
17712 if (p->error_indicator) {
17713 p->level--;
17714 return NULL;
17715 }
17716 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
17717 expr_ty a;
17718 if (
17719 (a = _PyPegen_name_token(p)) // NAME
17720 )
17721 {
17722 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
17723 _res = _PyPegen_set_expr_context ( p , a , Store );
17724 if (_res == NULL && PyErr_Occurred()) {
17725 p->error_indicator = 1;
17726 p->level--;
17727 return NULL;
17728 }
17729 goto done;
17730 }
17731 p->mark = _mark;
17732 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
17733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
17734 }
17735 { // '(' single_target ')'
17736 if (p->error_indicator) {
17737 p->level--;
17738 return NULL;
17739 }
17740 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
17741 Token * _literal;
17742 Token * _literal_1;
17743 expr_ty a;
17744 if (
17745 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17746 &&
17747 (a = single_target_rule(p)) // single_target
17748 &&
17749 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17750 )
17751 {
17752 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
17753 _res = a;
17754 if (_res == NULL && PyErr_Occurred()) {
17755 p->error_indicator = 1;
17756 p->level--;
17757 return NULL;
17758 }
17759 goto done;
17760 }
17761 p->mark = _mark;
17762 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
17763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
17764 }
17765 _res = NULL;
17766 done:
17767 p->level--;
17768 return _res;
17769 }
17770
17771 // single_subscript_attribute_target:
17772 // | t_primary '.' NAME !t_lookahead
17773 // | t_primary '[' slices ']' !t_lookahead
17774 static expr_ty
single_subscript_attribute_target_rule(Parser * p)17775 single_subscript_attribute_target_rule(Parser *p)
17776 {
17777 if (p->level++ == MAXSTACK) {
17778 p->error_indicator = 1;
17779 PyErr_NoMemory();
17780 }
17781 if (p->error_indicator) {
17782 p->level--;
17783 return NULL;
17784 }
17785 expr_ty _res = NULL;
17786 int _mark = p->mark;
17787 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17788 p->error_indicator = 1;
17789 p->level--;
17790 return NULL;
17791 }
17792 int _start_lineno = p->tokens[_mark]->lineno;
17793 UNUSED(_start_lineno); // Only used by EXTRA macro
17794 int _start_col_offset = p->tokens[_mark]->col_offset;
17795 UNUSED(_start_col_offset); // Only used by EXTRA macro
17796 { // t_primary '.' NAME !t_lookahead
17797 if (p->error_indicator) {
17798 p->level--;
17799 return NULL;
17800 }
17801 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17802 Token * _literal;
17803 expr_ty a;
17804 expr_ty b;
17805 if (
17806 (a = t_primary_rule(p)) // t_primary
17807 &&
17808 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17809 &&
17810 (b = _PyPegen_name_token(p)) // NAME
17811 &&
17812 _PyPegen_lookahead(0, t_lookahead_rule, p)
17813 )
17814 {
17815 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17816 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17817 if (_token == NULL) {
17818 p->level--;
17819 return NULL;
17820 }
17821 int _end_lineno = _token->end_lineno;
17822 UNUSED(_end_lineno); // Only used by EXTRA macro
17823 int _end_col_offset = _token->end_col_offset;
17824 UNUSED(_end_col_offset); // Only used by EXTRA macro
17825 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
17826 if (_res == NULL && PyErr_Occurred()) {
17827 p->error_indicator = 1;
17828 p->level--;
17829 return NULL;
17830 }
17831 goto done;
17832 }
17833 p->mark = _mark;
17834 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17836 }
17837 { // t_primary '[' slices ']' !t_lookahead
17838 if (p->error_indicator) {
17839 p->level--;
17840 return NULL;
17841 }
17842 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17843 Token * _literal;
17844 Token * _literal_1;
17845 expr_ty a;
17846 expr_ty b;
17847 if (
17848 (a = t_primary_rule(p)) // t_primary
17849 &&
17850 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17851 &&
17852 (b = slices_rule(p)) // slices
17853 &&
17854 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17855 &&
17856 _PyPegen_lookahead(0, t_lookahead_rule, p)
17857 )
17858 {
17859 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17860 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17861 if (_token == NULL) {
17862 p->level--;
17863 return NULL;
17864 }
17865 int _end_lineno = _token->end_lineno;
17866 UNUSED(_end_lineno); // Only used by EXTRA macro
17867 int _end_col_offset = _token->end_col_offset;
17868 UNUSED(_end_col_offset); // Only used by EXTRA macro
17869 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
17870 if (_res == NULL && PyErr_Occurred()) {
17871 p->error_indicator = 1;
17872 p->level--;
17873 return NULL;
17874 }
17875 goto done;
17876 }
17877 p->mark = _mark;
17878 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17880 }
17881 _res = NULL;
17882 done:
17883 p->level--;
17884 return _res;
17885 }
17886
17887 // Left-recursive
17888 // t_primary:
17889 // | t_primary '.' NAME &t_lookahead
17890 // | t_primary '[' slices ']' &t_lookahead
17891 // | t_primary genexp &t_lookahead
17892 // | t_primary '(' arguments? ')' &t_lookahead
17893 // | atom &t_lookahead
17894 static expr_ty t_primary_raw(Parser *);
17895 static expr_ty
t_primary_rule(Parser * p)17896 t_primary_rule(Parser *p)
17897 {
17898 if (p->level++ == MAXSTACK) {
17899 p->error_indicator = 1;
17900 PyErr_NoMemory();
17901 }
17902 expr_ty _res = NULL;
17903 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
17904 p->level--;
17905 return _res;
17906 }
17907 int _mark = p->mark;
17908 int _resmark = p->mark;
17909 while (1) {
17910 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
17911 if (tmpvar_9) {
17912 p->level--;
17913 return _res;
17914 }
17915 p->mark = _mark;
17916 void *_raw = t_primary_raw(p);
17917 if (p->error_indicator) {
17918 p->level--;
17919 return NULL;
17920 }
17921 if (_raw == NULL || p->mark <= _resmark)
17922 break;
17923 _resmark = p->mark;
17924 _res = _raw;
17925 }
17926 p->mark = _resmark;
17927 p->level--;
17928 return _res;
17929 }
17930 static expr_ty
t_primary_raw(Parser * p)17931 t_primary_raw(Parser *p)
17932 {
17933 if (p->level++ == MAXSTACK) {
17934 p->error_indicator = 1;
17935 PyErr_NoMemory();
17936 }
17937 if (p->error_indicator) {
17938 p->level--;
17939 return NULL;
17940 }
17941 expr_ty _res = NULL;
17942 int _mark = p->mark;
17943 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17944 p->error_indicator = 1;
17945 p->level--;
17946 return NULL;
17947 }
17948 int _start_lineno = p->tokens[_mark]->lineno;
17949 UNUSED(_start_lineno); // Only used by EXTRA macro
17950 int _start_col_offset = p->tokens[_mark]->col_offset;
17951 UNUSED(_start_col_offset); // Only used by EXTRA macro
17952 { // t_primary '.' NAME &t_lookahead
17953 if (p->error_indicator) {
17954 p->level--;
17955 return NULL;
17956 }
17957 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17958 Token * _literal;
17959 expr_ty a;
17960 expr_ty b;
17961 if (
17962 (a = t_primary_rule(p)) // t_primary
17963 &&
17964 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17965 &&
17966 (b = _PyPegen_name_token(p)) // NAME
17967 &&
17968 _PyPegen_lookahead(1, t_lookahead_rule, p)
17969 )
17970 {
17971 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17972 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17973 if (_token == NULL) {
17974 p->level--;
17975 return NULL;
17976 }
17977 int _end_lineno = _token->end_lineno;
17978 UNUSED(_end_lineno); // Only used by EXTRA macro
17979 int _end_col_offset = _token->end_col_offset;
17980 UNUSED(_end_col_offset); // Only used by EXTRA macro
17981 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
17982 if (_res == NULL && PyErr_Occurred()) {
17983 p->error_indicator = 1;
17984 p->level--;
17985 return NULL;
17986 }
17987 goto done;
17988 }
17989 p->mark = _mark;
17990 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17992 }
17993 { // t_primary '[' slices ']' &t_lookahead
17994 if (p->error_indicator) {
17995 p->level--;
17996 return NULL;
17997 }
17998 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17999 Token * _literal;
18000 Token * _literal_1;
18001 expr_ty a;
18002 expr_ty b;
18003 if (
18004 (a = t_primary_rule(p)) // t_primary
18005 &&
18006 (_literal = _PyPegen_expect_token(p, 9)) // token='['
18007 &&
18008 (b = slices_rule(p)) // slices
18009 &&
18010 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
18011 &&
18012 _PyPegen_lookahead(1, t_lookahead_rule, p)
18013 )
18014 {
18015 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
18016 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18017 if (_token == NULL) {
18018 p->level--;
18019 return NULL;
18020 }
18021 int _end_lineno = _token->end_lineno;
18022 UNUSED(_end_lineno); // Only used by EXTRA macro
18023 int _end_col_offset = _token->end_col_offset;
18024 UNUSED(_end_col_offset); // Only used by EXTRA macro
18025 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
18026 if (_res == NULL && PyErr_Occurred()) {
18027 p->error_indicator = 1;
18028 p->level--;
18029 return NULL;
18030 }
18031 goto done;
18032 }
18033 p->mark = _mark;
18034 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
18035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
18036 }
18037 { // t_primary genexp &t_lookahead
18038 if (p->error_indicator) {
18039 p->level--;
18040 return NULL;
18041 }
18042 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
18043 expr_ty a;
18044 expr_ty b;
18045 if (
18046 (a = t_primary_rule(p)) // t_primary
18047 &&
18048 (b = genexp_rule(p)) // genexp
18049 &&
18050 _PyPegen_lookahead(1, t_lookahead_rule, p)
18051 )
18052 {
18053 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
18054 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18055 if (_token == NULL) {
18056 p->level--;
18057 return NULL;
18058 }
18059 int _end_lineno = _token->end_lineno;
18060 UNUSED(_end_lineno); // Only used by EXTRA macro
18061 int _end_col_offset = _token->end_col_offset;
18062 UNUSED(_end_col_offset); // Only used by EXTRA macro
18063 _res = _PyAST_Call ( a , CHECK ( asdl_expr_seq* , ( asdl_expr_seq* ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
18064 if (_res == NULL && PyErr_Occurred()) {
18065 p->error_indicator = 1;
18066 p->level--;
18067 return NULL;
18068 }
18069 goto done;
18070 }
18071 p->mark = _mark;
18072 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
18073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
18074 }
18075 { // t_primary '(' arguments? ')' &t_lookahead
18076 if (p->error_indicator) {
18077 p->level--;
18078 return NULL;
18079 }
18080 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
18081 Token * _literal;
18082 Token * _literal_1;
18083 expr_ty a;
18084 void *b;
18085 if (
18086 (a = t_primary_rule(p)) // t_primary
18087 &&
18088 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18089 &&
18090 (b = arguments_rule(p), !p->error_indicator) // arguments?
18091 &&
18092 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18093 &&
18094 _PyPegen_lookahead(1, t_lookahead_rule, p)
18095 )
18096 {
18097 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
18098 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18099 if (_token == NULL) {
18100 p->level--;
18101 return NULL;
18102 }
18103 int _end_lineno = _token->end_lineno;
18104 UNUSED(_end_lineno); // Only used by EXTRA macro
18105 int _end_col_offset = _token->end_col_offset;
18106 UNUSED(_end_col_offset); // Only used by EXTRA macro
18107 _res = _PyAST_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
18108 if (_res == NULL && PyErr_Occurred()) {
18109 p->error_indicator = 1;
18110 p->level--;
18111 return NULL;
18112 }
18113 goto done;
18114 }
18115 p->mark = _mark;
18116 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
18117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
18118 }
18119 { // atom &t_lookahead
18120 if (p->error_indicator) {
18121 p->level--;
18122 return NULL;
18123 }
18124 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
18125 expr_ty a;
18126 if (
18127 (a = atom_rule(p)) // atom
18128 &&
18129 _PyPegen_lookahead(1, t_lookahead_rule, p)
18130 )
18131 {
18132 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
18133 _res = a;
18134 if (_res == NULL && PyErr_Occurred()) {
18135 p->error_indicator = 1;
18136 p->level--;
18137 return NULL;
18138 }
18139 goto done;
18140 }
18141 p->mark = _mark;
18142 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
18143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
18144 }
18145 _res = NULL;
18146 done:
18147 p->level--;
18148 return _res;
18149 }
18150
18151 // t_lookahead: '(' | '[' | '.'
18152 static void *
t_lookahead_rule(Parser * p)18153 t_lookahead_rule(Parser *p)
18154 {
18155 if (p->level++ == MAXSTACK) {
18156 p->error_indicator = 1;
18157 PyErr_NoMemory();
18158 }
18159 if (p->error_indicator) {
18160 p->level--;
18161 return NULL;
18162 }
18163 void * _res = NULL;
18164 int _mark = p->mark;
18165 { // '('
18166 if (p->error_indicator) {
18167 p->level--;
18168 return NULL;
18169 }
18170 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
18171 Token * _literal;
18172 if (
18173 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18174 )
18175 {
18176 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
18177 _res = _literal;
18178 goto done;
18179 }
18180 p->mark = _mark;
18181 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
18182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
18183 }
18184 { // '['
18185 if (p->error_indicator) {
18186 p->level--;
18187 return NULL;
18188 }
18189 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
18190 Token * _literal;
18191 if (
18192 (_literal = _PyPegen_expect_token(p, 9)) // token='['
18193 )
18194 {
18195 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
18196 _res = _literal;
18197 goto done;
18198 }
18199 p->mark = _mark;
18200 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
18201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
18202 }
18203 { // '.'
18204 if (p->error_indicator) {
18205 p->level--;
18206 return NULL;
18207 }
18208 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
18209 Token * _literal;
18210 if (
18211 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
18212 )
18213 {
18214 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
18215 _res = _literal;
18216 goto done;
18217 }
18218 p->mark = _mark;
18219 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
18220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
18221 }
18222 _res = NULL;
18223 done:
18224 p->level--;
18225 return _res;
18226 }
18227
18228 // del_targets: ','.del_target+ ','?
18229 static asdl_expr_seq*
del_targets_rule(Parser * p)18230 del_targets_rule(Parser *p)
18231 {
18232 if (p->level++ == MAXSTACK) {
18233 p->error_indicator = 1;
18234 PyErr_NoMemory();
18235 }
18236 if (p->error_indicator) {
18237 p->level--;
18238 return NULL;
18239 }
18240 asdl_expr_seq* _res = NULL;
18241 int _mark = p->mark;
18242 { // ','.del_target+ ','?
18243 if (p->error_indicator) {
18244 p->level--;
18245 return NULL;
18246 }
18247 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
18248 void *_opt_var;
18249 UNUSED(_opt_var); // Silence compiler warnings
18250 asdl_expr_seq* a;
18251 if (
18252 (a = (asdl_expr_seq*)_gather_133_rule(p)) // ','.del_target+
18253 &&
18254 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
18255 )
18256 {
18257 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
18258 _res = a;
18259 if (_res == NULL && PyErr_Occurred()) {
18260 p->error_indicator = 1;
18261 p->level--;
18262 return NULL;
18263 }
18264 goto done;
18265 }
18266 p->mark = _mark;
18267 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
18268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
18269 }
18270 _res = NULL;
18271 done:
18272 p->level--;
18273 return _res;
18274 }
18275
18276 // del_target:
18277 // | t_primary '.' NAME !t_lookahead
18278 // | t_primary '[' slices ']' !t_lookahead
18279 // | del_t_atom
18280 static expr_ty
del_target_rule(Parser * p)18281 del_target_rule(Parser *p)
18282 {
18283 if (p->level++ == MAXSTACK) {
18284 p->error_indicator = 1;
18285 PyErr_NoMemory();
18286 }
18287 if (p->error_indicator) {
18288 p->level--;
18289 return NULL;
18290 }
18291 expr_ty _res = NULL;
18292 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
18293 p->level--;
18294 return _res;
18295 }
18296 int _mark = p->mark;
18297 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
18298 p->error_indicator = 1;
18299 p->level--;
18300 return NULL;
18301 }
18302 int _start_lineno = p->tokens[_mark]->lineno;
18303 UNUSED(_start_lineno); // Only used by EXTRA macro
18304 int _start_col_offset = p->tokens[_mark]->col_offset;
18305 UNUSED(_start_col_offset); // Only used by EXTRA macro
18306 { // t_primary '.' NAME !t_lookahead
18307 if (p->error_indicator) {
18308 p->level--;
18309 return NULL;
18310 }
18311 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
18312 Token * _literal;
18313 expr_ty a;
18314 expr_ty b;
18315 if (
18316 (a = t_primary_rule(p)) // t_primary
18317 &&
18318 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
18319 &&
18320 (b = _PyPegen_name_token(p)) // NAME
18321 &&
18322 _PyPegen_lookahead(0, t_lookahead_rule, p)
18323 )
18324 {
18325 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
18326 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18327 if (_token == NULL) {
18328 p->level--;
18329 return NULL;
18330 }
18331 int _end_lineno = _token->end_lineno;
18332 UNUSED(_end_lineno); // Only used by EXTRA macro
18333 int _end_col_offset = _token->end_col_offset;
18334 UNUSED(_end_col_offset); // Only used by EXTRA macro
18335 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
18336 if (_res == NULL && PyErr_Occurred()) {
18337 p->error_indicator = 1;
18338 p->level--;
18339 return NULL;
18340 }
18341 goto done;
18342 }
18343 p->mark = _mark;
18344 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
18345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
18346 }
18347 { // t_primary '[' slices ']' !t_lookahead
18348 if (p->error_indicator) {
18349 p->level--;
18350 return NULL;
18351 }
18352 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
18353 Token * _literal;
18354 Token * _literal_1;
18355 expr_ty a;
18356 expr_ty b;
18357 if (
18358 (a = t_primary_rule(p)) // t_primary
18359 &&
18360 (_literal = _PyPegen_expect_token(p, 9)) // token='['
18361 &&
18362 (b = slices_rule(p)) // slices
18363 &&
18364 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
18365 &&
18366 _PyPegen_lookahead(0, t_lookahead_rule, p)
18367 )
18368 {
18369 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
18370 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18371 if (_token == NULL) {
18372 p->level--;
18373 return NULL;
18374 }
18375 int _end_lineno = _token->end_lineno;
18376 UNUSED(_end_lineno); // Only used by EXTRA macro
18377 int _end_col_offset = _token->end_col_offset;
18378 UNUSED(_end_col_offset); // Only used by EXTRA macro
18379 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
18380 if (_res == NULL && PyErr_Occurred()) {
18381 p->error_indicator = 1;
18382 p->level--;
18383 return NULL;
18384 }
18385 goto done;
18386 }
18387 p->mark = _mark;
18388 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
18389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
18390 }
18391 { // del_t_atom
18392 if (p->error_indicator) {
18393 p->level--;
18394 return NULL;
18395 }
18396 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
18397 expr_ty del_t_atom_var;
18398 if (
18399 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
18400 )
18401 {
18402 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
18403 _res = del_t_atom_var;
18404 goto done;
18405 }
18406 p->mark = _mark;
18407 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
18408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
18409 }
18410 _res = NULL;
18411 done:
18412 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
18413 p->level--;
18414 return _res;
18415 }
18416
18417 // del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
18418 static expr_ty
del_t_atom_rule(Parser * p)18419 del_t_atom_rule(Parser *p)
18420 {
18421 if (p->level++ == MAXSTACK) {
18422 p->error_indicator = 1;
18423 PyErr_NoMemory();
18424 }
18425 if (p->error_indicator) {
18426 p->level--;
18427 return NULL;
18428 }
18429 expr_ty _res = NULL;
18430 int _mark = p->mark;
18431 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
18432 p->error_indicator = 1;
18433 p->level--;
18434 return NULL;
18435 }
18436 int _start_lineno = p->tokens[_mark]->lineno;
18437 UNUSED(_start_lineno); // Only used by EXTRA macro
18438 int _start_col_offset = p->tokens[_mark]->col_offset;
18439 UNUSED(_start_col_offset); // Only used by EXTRA macro
18440 { // NAME
18441 if (p->error_indicator) {
18442 p->level--;
18443 return NULL;
18444 }
18445 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
18446 expr_ty a;
18447 if (
18448 (a = _PyPegen_name_token(p)) // NAME
18449 )
18450 {
18451 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
18452 _res = _PyPegen_set_expr_context ( p , a , Del );
18453 if (_res == NULL && PyErr_Occurred()) {
18454 p->error_indicator = 1;
18455 p->level--;
18456 return NULL;
18457 }
18458 goto done;
18459 }
18460 p->mark = _mark;
18461 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
18462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
18463 }
18464 { // '(' del_target ')'
18465 if (p->error_indicator) {
18466 p->level--;
18467 return NULL;
18468 }
18469 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
18470 Token * _literal;
18471 Token * _literal_1;
18472 expr_ty a;
18473 if (
18474 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18475 &&
18476 (a = del_target_rule(p)) // del_target
18477 &&
18478 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18479 )
18480 {
18481 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
18482 _res = _PyPegen_set_expr_context ( p , a , Del );
18483 if (_res == NULL && PyErr_Occurred()) {
18484 p->error_indicator = 1;
18485 p->level--;
18486 return NULL;
18487 }
18488 goto done;
18489 }
18490 p->mark = _mark;
18491 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
18492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
18493 }
18494 { // '(' del_targets? ')'
18495 if (p->error_indicator) {
18496 p->level--;
18497 return NULL;
18498 }
18499 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
18500 Token * _literal;
18501 Token * _literal_1;
18502 void *a;
18503 if (
18504 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18505 &&
18506 (a = del_targets_rule(p), !p->error_indicator) // del_targets?
18507 &&
18508 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18509 )
18510 {
18511 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
18512 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18513 if (_token == NULL) {
18514 p->level--;
18515 return NULL;
18516 }
18517 int _end_lineno = _token->end_lineno;
18518 UNUSED(_end_lineno); // Only used by EXTRA macro
18519 int _end_col_offset = _token->end_col_offset;
18520 UNUSED(_end_col_offset); // Only used by EXTRA macro
18521 _res = _PyAST_Tuple ( a , Del , EXTRA );
18522 if (_res == NULL && PyErr_Occurred()) {
18523 p->error_indicator = 1;
18524 p->level--;
18525 return NULL;
18526 }
18527 goto done;
18528 }
18529 p->mark = _mark;
18530 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
18531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
18532 }
18533 { // '[' del_targets? ']'
18534 if (p->error_indicator) {
18535 p->level--;
18536 return NULL;
18537 }
18538 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
18539 Token * _literal;
18540 Token * _literal_1;
18541 void *a;
18542 if (
18543 (_literal = _PyPegen_expect_token(p, 9)) // token='['
18544 &&
18545 (a = del_targets_rule(p), !p->error_indicator) // del_targets?
18546 &&
18547 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
18548 )
18549 {
18550 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
18551 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18552 if (_token == NULL) {
18553 p->level--;
18554 return NULL;
18555 }
18556 int _end_lineno = _token->end_lineno;
18557 UNUSED(_end_lineno); // Only used by EXTRA macro
18558 int _end_col_offset = _token->end_col_offset;
18559 UNUSED(_end_col_offset); // Only used by EXTRA macro
18560 _res = _PyAST_List ( a , Del , EXTRA );
18561 if (_res == NULL && PyErr_Occurred()) {
18562 p->error_indicator = 1;
18563 p->level--;
18564 return NULL;
18565 }
18566 goto done;
18567 }
18568 p->mark = _mark;
18569 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
18570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
18571 }
18572 _res = NULL;
18573 done:
18574 p->level--;
18575 return _res;
18576 }
18577
18578 // type_expressions:
18579 // | ','.expression+ ',' '*' expression ',' '**' expression
18580 // | ','.expression+ ',' '*' expression
18581 // | ','.expression+ ',' '**' expression
18582 // | '*' expression ',' '**' expression
18583 // | '*' expression
18584 // | '**' expression
18585 // | ','.expression+
18586 static asdl_expr_seq*
type_expressions_rule(Parser * p)18587 type_expressions_rule(Parser *p)
18588 {
18589 if (p->level++ == MAXSTACK) {
18590 p->error_indicator = 1;
18591 PyErr_NoMemory();
18592 }
18593 if (p->error_indicator) {
18594 p->level--;
18595 return NULL;
18596 }
18597 asdl_expr_seq* _res = NULL;
18598 int _mark = p->mark;
18599 { // ','.expression+ ',' '*' expression ',' '**' expression
18600 if (p->error_indicator) {
18601 p->level--;
18602 return NULL;
18603 }
18604 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
18605 Token * _literal;
18606 Token * _literal_1;
18607 Token * _literal_2;
18608 Token * _literal_3;
18609 asdl_seq * a;
18610 expr_ty b;
18611 expr_ty c;
18612 if (
18613 (a = _gather_135_rule(p)) // ','.expression+
18614 &&
18615 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18616 &&
18617 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
18618 &&
18619 (b = expression_rule(p)) // expression
18620 &&
18621 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
18622 &&
18623 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
18624 &&
18625 (c = expression_rule(p)) // expression
18626 )
18627 {
18628 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
18629 _res = ( asdl_expr_seq* ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq* , _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
18630 if (_res == NULL && PyErr_Occurred()) {
18631 p->error_indicator = 1;
18632 p->level--;
18633 return NULL;
18634 }
18635 goto done;
18636 }
18637 p->mark = _mark;
18638 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
18639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
18640 }
18641 { // ','.expression+ ',' '*' expression
18642 if (p->error_indicator) {
18643 p->level--;
18644 return NULL;
18645 }
18646 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
18647 Token * _literal;
18648 Token * _literal_1;
18649 asdl_seq * a;
18650 expr_ty b;
18651 if (
18652 (a = _gather_137_rule(p)) // ','.expression+
18653 &&
18654 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18655 &&
18656 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
18657 &&
18658 (b = expression_rule(p)) // expression
18659 )
18660 {
18661 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
18662 _res = ( asdl_expr_seq* ) _PyPegen_seq_append_to_end ( p , a , b );
18663 if (_res == NULL && PyErr_Occurred()) {
18664 p->error_indicator = 1;
18665 p->level--;
18666 return NULL;
18667 }
18668 goto done;
18669 }
18670 p->mark = _mark;
18671 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
18672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
18673 }
18674 { // ','.expression+ ',' '**' expression
18675 if (p->error_indicator) {
18676 p->level--;
18677 return NULL;
18678 }
18679 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
18680 Token * _literal;
18681 Token * _literal_1;
18682 asdl_seq * a;
18683 expr_ty b;
18684 if (
18685 (a = _gather_139_rule(p)) // ','.expression+
18686 &&
18687 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18688 &&
18689 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
18690 &&
18691 (b = expression_rule(p)) // expression
18692 )
18693 {
18694 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
18695 _res = ( asdl_expr_seq* ) _PyPegen_seq_append_to_end ( p , a , b );
18696 if (_res == NULL && PyErr_Occurred()) {
18697 p->error_indicator = 1;
18698 p->level--;
18699 return NULL;
18700 }
18701 goto done;
18702 }
18703 p->mark = _mark;
18704 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
18705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
18706 }
18707 { // '*' expression ',' '**' expression
18708 if (p->error_indicator) {
18709 p->level--;
18710 return NULL;
18711 }
18712 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
18713 Token * _literal;
18714 Token * _literal_1;
18715 Token * _literal_2;
18716 expr_ty a;
18717 expr_ty b;
18718 if (
18719 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18720 &&
18721 (a = expression_rule(p)) // expression
18722 &&
18723 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
18724 &&
18725 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
18726 &&
18727 (b = expression_rule(p)) // expression
18728 )
18729 {
18730 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
18731 _res = ( asdl_expr_seq* ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq* , _PyPegen_singleton_seq ( p , a ) ) , b );
18732 if (_res == NULL && PyErr_Occurred()) {
18733 p->error_indicator = 1;
18734 p->level--;
18735 return NULL;
18736 }
18737 goto done;
18738 }
18739 p->mark = _mark;
18740 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
18741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
18742 }
18743 { // '*' expression
18744 if (p->error_indicator) {
18745 p->level--;
18746 return NULL;
18747 }
18748 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
18749 Token * _literal;
18750 expr_ty a;
18751 if (
18752 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18753 &&
18754 (a = expression_rule(p)) // expression
18755 )
18756 {
18757 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
18758 _res = ( asdl_expr_seq* ) _PyPegen_singleton_seq ( p , a );
18759 if (_res == NULL && PyErr_Occurred()) {
18760 p->error_indicator = 1;
18761 p->level--;
18762 return NULL;
18763 }
18764 goto done;
18765 }
18766 p->mark = _mark;
18767 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
18768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
18769 }
18770 { // '**' expression
18771 if (p->error_indicator) {
18772 p->level--;
18773 return NULL;
18774 }
18775 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
18776 Token * _literal;
18777 expr_ty a;
18778 if (
18779 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
18780 &&
18781 (a = expression_rule(p)) // expression
18782 )
18783 {
18784 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
18785 _res = ( asdl_expr_seq* ) _PyPegen_singleton_seq ( p , a );
18786 if (_res == NULL && PyErr_Occurred()) {
18787 p->error_indicator = 1;
18788 p->level--;
18789 return NULL;
18790 }
18791 goto done;
18792 }
18793 p->mark = _mark;
18794 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
18795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
18796 }
18797 { // ','.expression+
18798 if (p->error_indicator) {
18799 p->level--;
18800 return NULL;
18801 }
18802 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
18803 asdl_expr_seq* a;
18804 if (
18805 (a = (asdl_expr_seq*)_gather_141_rule(p)) // ','.expression+
18806 )
18807 {
18808 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
18809 _res = a;
18810 if (_res == NULL && PyErr_Occurred()) {
18811 p->error_indicator = 1;
18812 p->level--;
18813 return NULL;
18814 }
18815 goto done;
18816 }
18817 p->mark = _mark;
18818 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
18819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
18820 }
18821 _res = NULL;
18822 done:
18823 p->level--;
18824 return _res;
18825 }
18826
18827 // func_type_comment:
18828 // | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
18829 // | invalid_double_type_comments
18830 // | TYPE_COMMENT
18831 static Token*
func_type_comment_rule(Parser * p)18832 func_type_comment_rule(Parser *p)
18833 {
18834 if (p->level++ == MAXSTACK) {
18835 p->error_indicator = 1;
18836 PyErr_NoMemory();
18837 }
18838 if (p->error_indicator) {
18839 p->level--;
18840 return NULL;
18841 }
18842 Token* _res = NULL;
18843 int _mark = p->mark;
18844 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
18845 if (p->error_indicator) {
18846 p->level--;
18847 return NULL;
18848 }
18849 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
18850 Token * newline_var;
18851 Token * t;
18852 if (
18853 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18854 &&
18855 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18856 &&
18857 _PyPegen_lookahead(1, _tmp_143_rule, p)
18858 )
18859 {
18860 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
18861 _res = t;
18862 if (_res == NULL && PyErr_Occurred()) {
18863 p->error_indicator = 1;
18864 p->level--;
18865 return NULL;
18866 }
18867 goto done;
18868 }
18869 p->mark = _mark;
18870 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
18871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
18872 }
18873 if (p->call_invalid_rules) { // invalid_double_type_comments
18874 if (p->error_indicator) {
18875 p->level--;
18876 return NULL;
18877 }
18878 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
18879 void *invalid_double_type_comments_var;
18880 if (
18881 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
18882 )
18883 {
18884 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
18885 _res = invalid_double_type_comments_var;
18886 goto done;
18887 }
18888 p->mark = _mark;
18889 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
18890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
18891 }
18892 { // TYPE_COMMENT
18893 if (p->error_indicator) {
18894 p->level--;
18895 return NULL;
18896 }
18897 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
18898 Token * type_comment_var;
18899 if (
18900 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18901 )
18902 {
18903 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
18904 _res = type_comment_var;
18905 goto done;
18906 }
18907 p->mark = _mark;
18908 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
18909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
18910 }
18911 _res = NULL;
18912 done:
18913 p->level--;
18914 return _res;
18915 }
18916
18917 // invalid_arguments:
18918 // | args ',' '*'
18919 // | expression for_if_clauses ',' [args | expression for_if_clauses]
18920 // | NAME '=' expression for_if_clauses
18921 // | args for_if_clauses
18922 // | args ',' expression for_if_clauses
18923 // | args ',' args
18924 static void *
invalid_arguments_rule(Parser * p)18925 invalid_arguments_rule(Parser *p)
18926 {
18927 if (p->level++ == MAXSTACK) {
18928 p->error_indicator = 1;
18929 PyErr_NoMemory();
18930 }
18931 if (p->error_indicator) {
18932 p->level--;
18933 return NULL;
18934 }
18935 void * _res = NULL;
18936 int _mark = p->mark;
18937 { // args ',' '*'
18938 if (p->error_indicator) {
18939 p->level--;
18940 return NULL;
18941 }
18942 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
18943 Token * _literal;
18944 Token * _literal_1;
18945 expr_ty a;
18946 if (
18947 (a = args_rule(p)) // args
18948 &&
18949 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18950 &&
18951 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
18952 )
18953 {
18954 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
18955 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
18956 if (_res == NULL && PyErr_Occurred()) {
18957 p->error_indicator = 1;
18958 p->level--;
18959 return NULL;
18960 }
18961 goto done;
18962 }
18963 p->mark = _mark;
18964 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
18965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
18966 }
18967 { // expression for_if_clauses ',' [args | expression for_if_clauses]
18968 if (p->error_indicator) {
18969 p->level--;
18970 return NULL;
18971 }
18972 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
18973 Token * _literal;
18974 void *_opt_var;
18975 UNUSED(_opt_var); // Silence compiler warnings
18976 expr_ty a;
18977 asdl_comprehension_seq* b;
18978 if (
18979 (a = expression_rule(p)) // expression
18980 &&
18981 (b = for_if_clauses_rule(p)) // for_if_clauses
18982 &&
18983 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18984 &&
18985 (_opt_var = _tmp_144_rule(p), !p->error_indicator) // [args | expression for_if_clauses]
18986 )
18987 {
18988 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
18989 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , _PyPegen_get_last_comprehension_item ( PyPegen_last_item ( b , comprehension_ty ) ) , "Generator expression must be parenthesized" );
18990 if (_res == NULL && PyErr_Occurred()) {
18991 p->error_indicator = 1;
18992 p->level--;
18993 return NULL;
18994 }
18995 goto done;
18996 }
18997 p->mark = _mark;
18998 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
18999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
19000 }
19001 { // NAME '=' expression for_if_clauses
19002 if (p->error_indicator) {
19003 p->level--;
19004 return NULL;
19005 }
19006 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
19007 expr_ty a;
19008 Token * b;
19009 expr_ty expression_var;
19010 asdl_comprehension_seq* for_if_clauses_var;
19011 if (
19012 (a = _PyPegen_name_token(p)) // NAME
19013 &&
19014 (b = _PyPegen_expect_token(p, 22)) // token='='
19015 &&
19016 (expression_var = expression_rule(p)) // expression
19017 &&
19018 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19019 )
19020 {
19021 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
19022 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
19023 if (_res == NULL && PyErr_Occurred()) {
19024 p->error_indicator = 1;
19025 p->level--;
19026 return NULL;
19027 }
19028 goto done;
19029 }
19030 p->mark = _mark;
19031 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
19032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
19033 }
19034 { // args for_if_clauses
19035 if (p->error_indicator) {
19036 p->level--;
19037 return NULL;
19038 }
19039 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
19040 expr_ty a;
19041 asdl_comprehension_seq* b;
19042 if (
19043 (a = args_rule(p)) // args
19044 &&
19045 (b = for_if_clauses_rule(p)) // for_if_clauses
19046 )
19047 {
19048 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
19049 _res = _PyPegen_nonparen_genexp_in_call ( p , a , b );
19050 if (_res == NULL && PyErr_Occurred()) {
19051 p->error_indicator = 1;
19052 p->level--;
19053 return NULL;
19054 }
19055 goto done;
19056 }
19057 p->mark = _mark;
19058 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
19059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
19060 }
19061 { // args ',' expression for_if_clauses
19062 if (p->error_indicator) {
19063 p->level--;
19064 return NULL;
19065 }
19066 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
19067 Token * _literal;
19068 expr_ty a;
19069 expr_ty args_var;
19070 asdl_comprehension_seq* b;
19071 if (
19072 (args_var = args_rule(p)) // args
19073 &&
19074 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19075 &&
19076 (a = expression_rule(p)) // expression
19077 &&
19078 (b = for_if_clauses_rule(p)) // for_if_clauses
19079 )
19080 {
19081 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
19082 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , _PyPegen_get_last_comprehension_item ( PyPegen_last_item ( b , comprehension_ty ) ) , "Generator expression must be parenthesized" );
19083 if (_res == NULL && PyErr_Occurred()) {
19084 p->error_indicator = 1;
19085 p->level--;
19086 return NULL;
19087 }
19088 goto done;
19089 }
19090 p->mark = _mark;
19091 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
19092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
19093 }
19094 { // args ',' args
19095 if (p->error_indicator) {
19096 p->level--;
19097 return NULL;
19098 }
19099 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
19100 Token * _literal;
19101 expr_ty a;
19102 expr_ty args_var;
19103 if (
19104 (a = args_rule(p)) // args
19105 &&
19106 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19107 &&
19108 (args_var = args_rule(p)) // args
19109 )
19110 {
19111 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' args"));
19112 _res = _PyPegen_arguments_parsing_error ( p , a );
19113 if (_res == NULL && PyErr_Occurred()) {
19114 p->error_indicator = 1;
19115 p->level--;
19116 return NULL;
19117 }
19118 goto done;
19119 }
19120 p->mark = _mark;
19121 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
19122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
19123 }
19124 _res = NULL;
19125 done:
19126 p->level--;
19127 return _res;
19128 }
19129
19130 // invalid_kwarg:
19131 // | ('True' | 'False' | 'None') '='
19132 // | NAME '=' expression for_if_clauses
19133 // | !(NAME '=') expression '='
19134 static void *
invalid_kwarg_rule(Parser * p)19135 invalid_kwarg_rule(Parser *p)
19136 {
19137 if (p->level++ == MAXSTACK) {
19138 p->error_indicator = 1;
19139 PyErr_NoMemory();
19140 }
19141 if (p->error_indicator) {
19142 p->level--;
19143 return NULL;
19144 }
19145 void * _res = NULL;
19146 int _mark = p->mark;
19147 { // ('True' | 'False' | 'None') '='
19148 if (p->error_indicator) {
19149 p->level--;
19150 return NULL;
19151 }
19152 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('True' | 'False' | 'None') '='"));
19153 Token* a;
19154 Token * b;
19155 if (
19156 (a = (Token*)_tmp_145_rule(p)) // 'True' | 'False' | 'None'
19157 &&
19158 (b = _PyPegen_expect_token(p, 22)) // token='='
19159 )
19160 {
19161 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('True' | 'False' | 'None') '='"));
19162 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot assign to %s" , PyBytes_AS_STRING ( a -> bytes ) );
19163 if (_res == NULL && PyErr_Occurred()) {
19164 p->error_indicator = 1;
19165 p->level--;
19166 return NULL;
19167 }
19168 goto done;
19169 }
19170 p->mark = _mark;
19171 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
19172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('True' | 'False' | 'None') '='"));
19173 }
19174 { // NAME '=' expression for_if_clauses
19175 if (p->error_indicator) {
19176 p->level--;
19177 return NULL;
19178 }
19179 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
19180 expr_ty a;
19181 Token * b;
19182 expr_ty expression_var;
19183 asdl_comprehension_seq* for_if_clauses_var;
19184 if (
19185 (a = _PyPegen_name_token(p)) // NAME
19186 &&
19187 (b = _PyPegen_expect_token(p, 22)) // token='='
19188 &&
19189 (expression_var = expression_rule(p)) // expression
19190 &&
19191 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19192 )
19193 {
19194 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
19195 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
19196 if (_res == NULL && PyErr_Occurred()) {
19197 p->error_indicator = 1;
19198 p->level--;
19199 return NULL;
19200 }
19201 goto done;
19202 }
19203 p->mark = _mark;
19204 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
19205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
19206 }
19207 { // !(NAME '=') expression '='
19208 if (p->error_indicator) {
19209 p->level--;
19210 return NULL;
19211 }
19212 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
19213 expr_ty a;
19214 Token * b;
19215 if (
19216 _PyPegen_lookahead(0, _tmp_146_rule, p)
19217 &&
19218 (a = expression_rule(p)) // expression
19219 &&
19220 (b = _PyPegen_expect_token(p, 22)) // token='='
19221 )
19222 {
19223 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
19224 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
19225 if (_res == NULL && PyErr_Occurred()) {
19226 p->error_indicator = 1;
19227 p->level--;
19228 return NULL;
19229 }
19230 goto done;
19231 }
19232 p->mark = _mark;
19233 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
19234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='"));
19235 }
19236 _res = NULL;
19237 done:
19238 p->level--;
19239 return _res;
19240 }
19241
19242 // expression_without_invalid:
19243 // | disjunction 'if' disjunction 'else' expression
19244 // | disjunction
19245 // | lambdef
19246 static expr_ty
expression_without_invalid_rule(Parser * p)19247 expression_without_invalid_rule(Parser *p)
19248 {
19249 int _prev_call_invalid = p->call_invalid_rules;
19250 p->call_invalid_rules = 0;
19251 if (p->level++ == MAXSTACK) {
19252 p->error_indicator = 1;
19253 PyErr_NoMemory();
19254 }
19255 if (p->error_indicator) {
19256 p->call_invalid_rules = _prev_call_invalid;
19257 p->level--;
19258 return NULL;
19259 }
19260 expr_ty _res = NULL;
19261 int _mark = p->mark;
19262 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
19263 p->error_indicator = 1;
19264 p->call_invalid_rules = _prev_call_invalid;
19265 p->level--;
19266 return NULL;
19267 }
19268 int _start_lineno = p->tokens[_mark]->lineno;
19269 UNUSED(_start_lineno); // Only used by EXTRA macro
19270 int _start_col_offset = p->tokens[_mark]->col_offset;
19271 UNUSED(_start_col_offset); // Only used by EXTRA macro
19272 { // disjunction 'if' disjunction 'else' expression
19273 if (p->error_indicator) {
19274 p->call_invalid_rules = _prev_call_invalid;
19275 p->level--;
19276 return NULL;
19277 }
19278 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
19279 Token * _keyword;
19280 Token * _keyword_1;
19281 expr_ty a;
19282 expr_ty b;
19283 expr_ty c;
19284 if (
19285 (a = disjunction_rule(p)) // disjunction
19286 &&
19287 (_keyword = _PyPegen_expect_token(p, 639)) // token='if'
19288 &&
19289 (b = disjunction_rule(p)) // disjunction
19290 &&
19291 (_keyword_1 = _PyPegen_expect_token(p, 642)) // token='else'
19292 &&
19293 (c = expression_rule(p)) // expression
19294 )
19295 {
19296 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
19297 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
19298 if (_token == NULL) {
19299 p->call_invalid_rules = _prev_call_invalid;
19300 p->level--;
19301 return NULL;
19302 }
19303 int _end_lineno = _token->end_lineno;
19304 UNUSED(_end_lineno); // Only used by EXTRA macro
19305 int _end_col_offset = _token->end_col_offset;
19306 UNUSED(_end_col_offset); // Only used by EXTRA macro
19307 _res = _PyAST_IfExp ( b , a , c , EXTRA );
19308 if (_res == NULL && PyErr_Occurred()) {
19309 p->error_indicator = 1;
19310 p->call_invalid_rules = _prev_call_invalid;
19311 p->level--;
19312 return NULL;
19313 }
19314 goto done;
19315 }
19316 p->mark = _mark;
19317 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
19318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
19319 }
19320 { // disjunction
19321 if (p->error_indicator) {
19322 p->call_invalid_rules = _prev_call_invalid;
19323 p->level--;
19324 return NULL;
19325 }
19326 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
19327 expr_ty disjunction_var;
19328 if (
19329 (disjunction_var = disjunction_rule(p)) // disjunction
19330 )
19331 {
19332 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
19333 _res = disjunction_var;
19334 goto done;
19335 }
19336 p->mark = _mark;
19337 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
19338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
19339 }
19340 { // lambdef
19341 if (p->error_indicator) {
19342 p->call_invalid_rules = _prev_call_invalid;
19343 p->level--;
19344 return NULL;
19345 }
19346 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
19347 expr_ty lambdef_var;
19348 if (
19349 (lambdef_var = lambdef_rule(p)) // lambdef
19350 )
19351 {
19352 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
19353 _res = lambdef_var;
19354 goto done;
19355 }
19356 p->mark = _mark;
19357 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
19358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
19359 }
19360 _res = NULL;
19361 done:
19362 p->call_invalid_rules = _prev_call_invalid;
19363 p->level--;
19364 return _res;
19365 }
19366
19367 // invalid_legacy_expression: NAME !'(' star_expressions
19368 static void *
invalid_legacy_expression_rule(Parser * p)19369 invalid_legacy_expression_rule(Parser *p)
19370 {
19371 if (p->level++ == MAXSTACK) {
19372 p->error_indicator = 1;
19373 PyErr_NoMemory();
19374 }
19375 if (p->error_indicator) {
19376 p->level--;
19377 return NULL;
19378 }
19379 void * _res = NULL;
19380 int _mark = p->mark;
19381 { // NAME !'(' star_expressions
19382 if (p->error_indicator) {
19383 p->level--;
19384 return NULL;
19385 }
19386 D(fprintf(stderr, "%*c> invalid_legacy_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));
19387 expr_ty a;
19388 expr_ty b;
19389 if (
19390 (a = _PyPegen_name_token(p)) // NAME
19391 &&
19392 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 7) // token='('
19393 &&
19394 (b = star_expressions_rule(p)) // star_expressions
19395 )
19396 {
19397 D(fprintf(stderr, "%*c+ invalid_legacy_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));
19398 _res = _PyPegen_check_legacy_stmt ( p , a ) ? RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "Missing parentheses in call to '%U'. Did you mean %U(...)?" , a -> v . Name . id , a -> v . Name . id ) : NULL;
19399 if (_res == NULL && PyErr_Occurred()) {
19400 p->error_indicator = 1;
19401 p->level--;
19402 return NULL;
19403 }
19404 goto done;
19405 }
19406 p->mark = _mark;
19407 D(fprintf(stderr, "%*c%s invalid_legacy_expression[%d-%d]: %s failed!\n", p->level, ' ',
19408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME !'(' star_expressions"));
19409 }
19410 _res = NULL;
19411 done:
19412 p->level--;
19413 return _res;
19414 }
19415
19416 // invalid_expression:
19417 // | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
19418 // | disjunction 'if' disjunction !('else' | ':')
19419 static void *
invalid_expression_rule(Parser * p)19420 invalid_expression_rule(Parser *p)
19421 {
19422 if (p->level++ == MAXSTACK) {
19423 p->error_indicator = 1;
19424 PyErr_NoMemory();
19425 }
19426 if (p->error_indicator) {
19427 p->level--;
19428 return NULL;
19429 }
19430 void * _res = NULL;
19431 int _mark = p->mark;
19432 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
19433 if (p->error_indicator) {
19434 p->level--;
19435 return NULL;
19436 }
19437 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
19438 expr_ty a;
19439 expr_ty b;
19440 if (
19441 _PyPegen_lookahead(0, _tmp_147_rule, p)
19442 &&
19443 (a = disjunction_rule(p)) // disjunction
19444 &&
19445 (b = expression_without_invalid_rule(p)) // expression_without_invalid
19446 )
19447 {
19448 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
19449 _res = _PyPegen_check_legacy_stmt ( p , a ) ? NULL : p -> tokens [p -> mark - 1] -> level == 0 ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
19450 if (_res == NULL && PyErr_Occurred()) {
19451 p->error_indicator = 1;
19452 p->level--;
19453 return NULL;
19454 }
19455 goto done;
19456 }
19457 p->mark = _mark;
19458 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
19459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
19460 }
19461 { // disjunction 'if' disjunction !('else' | ':')
19462 if (p->error_indicator) {
19463 p->level--;
19464 return NULL;
19465 }
19466 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
19467 Token * _keyword;
19468 expr_ty a;
19469 expr_ty b;
19470 if (
19471 (a = disjunction_rule(p)) // disjunction
19472 &&
19473 (_keyword = _PyPegen_expect_token(p, 639)) // token='if'
19474 &&
19475 (b = disjunction_rule(p)) // disjunction
19476 &&
19477 _PyPegen_lookahead(0, _tmp_148_rule, p)
19478 )
19479 {
19480 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
19481 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expected 'else' after 'if' expression" );
19482 if (_res == NULL && PyErr_Occurred()) {
19483 p->error_indicator = 1;
19484 p->level--;
19485 return NULL;
19486 }
19487 goto done;
19488 }
19489 p->mark = _mark;
19490 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
19491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
19492 }
19493 _res = NULL;
19494 done:
19495 p->level--;
19496 return _res;
19497 }
19498
19499 // invalid_named_expression:
19500 // | expression ':=' expression
19501 // | NAME '=' bitwise_or !('=' | ':=')
19502 // | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
19503 static void *
invalid_named_expression_rule(Parser * p)19504 invalid_named_expression_rule(Parser *p)
19505 {
19506 if (p->level++ == MAXSTACK) {
19507 p->error_indicator = 1;
19508 PyErr_NoMemory();
19509 }
19510 if (p->error_indicator) {
19511 p->level--;
19512 return NULL;
19513 }
19514 void * _res = NULL;
19515 if (_PyPegen_is_memoized(p, invalid_named_expression_type, &_res)) {
19516 p->level--;
19517 return _res;
19518 }
19519 int _mark = p->mark;
19520 { // expression ':=' expression
19521 if (p->error_indicator) {
19522 p->level--;
19523 return NULL;
19524 }
19525 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
19526 Token * _literal;
19527 expr_ty a;
19528 expr_ty expression_var;
19529 if (
19530 (a = expression_rule(p)) // expression
19531 &&
19532 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
19533 &&
19534 (expression_var = expression_rule(p)) // expression
19535 )
19536 {
19537 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
19538 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
19539 if (_res == NULL && PyErr_Occurred()) {
19540 p->error_indicator = 1;
19541 p->level--;
19542 return NULL;
19543 }
19544 goto done;
19545 }
19546 p->mark = _mark;
19547 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
19548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
19549 }
19550 { // NAME '=' bitwise_or !('=' | ':=')
19551 if (p->error_indicator) {
19552 p->level--;
19553 return NULL;
19554 }
19555 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
19556 Token * _literal;
19557 expr_ty a;
19558 expr_ty b;
19559 if (
19560 (a = _PyPegen_name_token(p)) // NAME
19561 &&
19562 (_literal = _PyPegen_expect_token(p, 22)) // token='='
19563 &&
19564 (b = bitwise_or_rule(p)) // bitwise_or
19565 &&
19566 _PyPegen_lookahead(0, _tmp_149_rule, p)
19567 )
19568 {
19569 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
19570 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
19571 if (_res == NULL && PyErr_Occurred()) {
19572 p->error_indicator = 1;
19573 p->level--;
19574 return NULL;
19575 }
19576 goto done;
19577 }
19578 p->mark = _mark;
19579 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
19580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
19581 }
19582 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
19583 if (p->error_indicator) {
19584 p->level--;
19585 return NULL;
19586 }
19587 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
19588 expr_ty a;
19589 Token * b;
19590 expr_ty bitwise_or_var;
19591 if (
19592 _PyPegen_lookahead(0, _tmp_150_rule, p)
19593 &&
19594 (a = bitwise_or_rule(p)) // bitwise_or
19595 &&
19596 (b = _PyPegen_expect_token(p, 22)) // token='='
19597 &&
19598 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
19599 &&
19600 _PyPegen_lookahead(0, _tmp_151_rule, p)
19601 )
19602 {
19603 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
19604 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
19605 if (_res == NULL && PyErr_Occurred()) {
19606 p->error_indicator = 1;
19607 p->level--;
19608 return NULL;
19609 }
19610 goto done;
19611 }
19612 p->mark = _mark;
19613 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
19614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
19615 }
19616 _res = NULL;
19617 done:
19618 _PyPegen_insert_memo(p, _mark, invalid_named_expression_type, _res);
19619 p->level--;
19620 return _res;
19621 }
19622
19623 // invalid_assignment:
19624 // | invalid_ann_assign_target ':' expression
19625 // | star_named_expression ',' star_named_expressions* ':' expression
19626 // | expression ':' expression
19627 // | ((star_targets '='))* star_expressions '='
19628 // | ((star_targets '='))* yield_expr '='
19629 // | star_expressions augassign (yield_expr | star_expressions)
19630 static void *
invalid_assignment_rule(Parser * p)19631 invalid_assignment_rule(Parser *p)
19632 {
19633 if (p->level++ == MAXSTACK) {
19634 p->error_indicator = 1;
19635 PyErr_NoMemory();
19636 }
19637 if (p->error_indicator) {
19638 p->level--;
19639 return NULL;
19640 }
19641 void * _res = NULL;
19642 int _mark = p->mark;
19643 { // invalid_ann_assign_target ':' expression
19644 if (p->error_indicator) {
19645 p->level--;
19646 return NULL;
19647 }
19648 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
19649 Token * _literal;
19650 expr_ty a;
19651 expr_ty expression_var;
19652 if (
19653 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
19654 &&
19655 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19656 &&
19657 (expression_var = expression_rule(p)) // expression
19658 )
19659 {
19660 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
19661 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not %s) can be annotated" , _PyPegen_get_expr_name ( a ) );
19662 if (_res == NULL && PyErr_Occurred()) {
19663 p->error_indicator = 1;
19664 p->level--;
19665 return NULL;
19666 }
19667 goto done;
19668 }
19669 p->mark = _mark;
19670 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
19671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
19672 }
19673 { // star_named_expression ',' star_named_expressions* ':' expression
19674 if (p->error_indicator) {
19675 p->level--;
19676 return NULL;
19677 }
19678 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
19679 Token * _literal;
19680 Token * _literal_1;
19681 asdl_seq * _loop0_152_var;
19682 expr_ty a;
19683 expr_ty expression_var;
19684 if (
19685 (a = star_named_expression_rule(p)) // star_named_expression
19686 &&
19687 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19688 &&
19689 (_loop0_152_var = _loop0_152_rule(p)) // star_named_expressions*
19690 &&
19691 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
19692 &&
19693 (expression_var = expression_rule(p)) // expression
19694 )
19695 {
19696 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
19697 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
19698 if (_res == NULL && PyErr_Occurred()) {
19699 p->error_indicator = 1;
19700 p->level--;
19701 return NULL;
19702 }
19703 goto done;
19704 }
19705 p->mark = _mark;
19706 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
19707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
19708 }
19709 { // expression ':' expression
19710 if (p->error_indicator) {
19711 p->level--;
19712 return NULL;
19713 }
19714 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
19715 Token * _literal;
19716 expr_ty a;
19717 expr_ty expression_var;
19718 if (
19719 (a = expression_rule(p)) // expression
19720 &&
19721 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19722 &&
19723 (expression_var = expression_rule(p)) // expression
19724 )
19725 {
19726 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
19727 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
19728 if (_res == NULL && PyErr_Occurred()) {
19729 p->error_indicator = 1;
19730 p->level--;
19731 return NULL;
19732 }
19733 goto done;
19734 }
19735 p->mark = _mark;
19736 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
19737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
19738 }
19739 { // ((star_targets '='))* star_expressions '='
19740 if (p->error_indicator) {
19741 p->level--;
19742 return NULL;
19743 }
19744 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
19745 Token * _literal;
19746 asdl_seq * _loop0_153_var;
19747 expr_ty a;
19748 if (
19749 (_loop0_153_var = _loop0_153_rule(p)) // ((star_targets '='))*
19750 &&
19751 (a = star_expressions_rule(p)) // star_expressions
19752 &&
19753 (_literal = _PyPegen_expect_token(p, 22)) // token='='
19754 )
19755 {
19756 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
19757 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
19758 if (_res == NULL && PyErr_Occurred()) {
19759 p->error_indicator = 1;
19760 p->level--;
19761 return NULL;
19762 }
19763 goto done;
19764 }
19765 p->mark = _mark;
19766 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
19767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
19768 }
19769 { // ((star_targets '='))* yield_expr '='
19770 if (p->error_indicator) {
19771 p->level--;
19772 return NULL;
19773 }
19774 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
19775 Token * _literal;
19776 asdl_seq * _loop0_154_var;
19777 expr_ty a;
19778 if (
19779 (_loop0_154_var = _loop0_154_rule(p)) // ((star_targets '='))*
19780 &&
19781 (a = yield_expr_rule(p)) // yield_expr
19782 &&
19783 (_literal = _PyPegen_expect_token(p, 22)) // token='='
19784 )
19785 {
19786 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
19787 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
19788 if (_res == NULL && PyErr_Occurred()) {
19789 p->error_indicator = 1;
19790 p->level--;
19791 return NULL;
19792 }
19793 goto done;
19794 }
19795 p->mark = _mark;
19796 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
19797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
19798 }
19799 { // star_expressions augassign (yield_expr | star_expressions)
19800 if (p->error_indicator) {
19801 p->level--;
19802 return NULL;
19803 }
19804 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
19805 void *_tmp_155_var;
19806 expr_ty a;
19807 AugOperator* augassign_var;
19808 if (
19809 (a = star_expressions_rule(p)) // star_expressions
19810 &&
19811 (augassign_var = augassign_rule(p)) // augassign
19812 &&
19813 (_tmp_155_var = _tmp_155_rule(p)) // yield_expr | star_expressions
19814 )
19815 {
19816 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
19817 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
19818 if (_res == NULL && PyErr_Occurred()) {
19819 p->error_indicator = 1;
19820 p->level--;
19821 return NULL;
19822 }
19823 goto done;
19824 }
19825 p->mark = _mark;
19826 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
19827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
19828 }
19829 _res = NULL;
19830 done:
19831 p->level--;
19832 return _res;
19833 }
19834
19835 // invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
19836 static expr_ty
invalid_ann_assign_target_rule(Parser * p)19837 invalid_ann_assign_target_rule(Parser *p)
19838 {
19839 if (p->level++ == MAXSTACK) {
19840 p->error_indicator = 1;
19841 PyErr_NoMemory();
19842 }
19843 if (p->error_indicator) {
19844 p->level--;
19845 return NULL;
19846 }
19847 expr_ty _res = NULL;
19848 int _mark = p->mark;
19849 { // list
19850 if (p->error_indicator) {
19851 p->level--;
19852 return NULL;
19853 }
19854 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
19855 expr_ty list_var;
19856 if (
19857 (list_var = list_rule(p)) // list
19858 )
19859 {
19860 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
19861 _res = list_var;
19862 goto done;
19863 }
19864 p->mark = _mark;
19865 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
19866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
19867 }
19868 { // tuple
19869 if (p->error_indicator) {
19870 p->level--;
19871 return NULL;
19872 }
19873 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
19874 expr_ty tuple_var;
19875 if (
19876 (tuple_var = tuple_rule(p)) // tuple
19877 )
19878 {
19879 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
19880 _res = tuple_var;
19881 goto done;
19882 }
19883 p->mark = _mark;
19884 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
19885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
19886 }
19887 { // '(' invalid_ann_assign_target ')'
19888 if (p->error_indicator) {
19889 p->level--;
19890 return NULL;
19891 }
19892 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
19893 Token * _literal;
19894 Token * _literal_1;
19895 expr_ty a;
19896 if (
19897 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19898 &&
19899 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
19900 &&
19901 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19902 )
19903 {
19904 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
19905 _res = a;
19906 if (_res == NULL && PyErr_Occurred()) {
19907 p->error_indicator = 1;
19908 p->level--;
19909 return NULL;
19910 }
19911 goto done;
19912 }
19913 p->mark = _mark;
19914 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
19915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
19916 }
19917 _res = NULL;
19918 done:
19919 p->level--;
19920 return _res;
19921 }
19922
19923 // invalid_del_stmt: 'del' star_expressions
19924 static void *
invalid_del_stmt_rule(Parser * p)19925 invalid_del_stmt_rule(Parser *p)
19926 {
19927 if (p->level++ == MAXSTACK) {
19928 p->error_indicator = 1;
19929 PyErr_NoMemory();
19930 }
19931 if (p->error_indicator) {
19932 p->level--;
19933 return NULL;
19934 }
19935 void * _res = NULL;
19936 int _mark = p->mark;
19937 { // 'del' star_expressions
19938 if (p->error_indicator) {
19939 p->level--;
19940 return NULL;
19941 }
19942 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
19943 Token * _keyword;
19944 expr_ty a;
19945 if (
19946 (_keyword = _PyPegen_expect_token(p, 603)) // token='del'
19947 &&
19948 (a = star_expressions_rule(p)) // star_expressions
19949 )
19950 {
19951 D(fprintf(stderr, "%*c+ invalid_del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
19952 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
19953 if (_res == NULL && PyErr_Occurred()) {
19954 p->error_indicator = 1;
19955 p->level--;
19956 return NULL;
19957 }
19958 goto done;
19959 }
19960 p->mark = _mark;
19961 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
19963 }
19964 _res = NULL;
19965 done:
19966 p->level--;
19967 return _res;
19968 }
19969
19970 // invalid_block: NEWLINE !INDENT
19971 static void *
invalid_block_rule(Parser * p)19972 invalid_block_rule(Parser *p)
19973 {
19974 if (p->level++ == MAXSTACK) {
19975 p->error_indicator = 1;
19976 PyErr_NoMemory();
19977 }
19978 if (p->error_indicator) {
19979 p->level--;
19980 return NULL;
19981 }
19982 void * _res = NULL;
19983 int _mark = p->mark;
19984 { // NEWLINE !INDENT
19985 if (p->error_indicator) {
19986 p->level--;
19987 return NULL;
19988 }
19989 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
19990 Token * newline_var;
19991 if (
19992 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19993 &&
19994 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19995 )
19996 {
19997 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
19998 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
19999 if (_res == NULL && PyErr_Occurred()) {
20000 p->error_indicator = 1;
20001 p->level--;
20002 return NULL;
20003 }
20004 goto done;
20005 }
20006 p->mark = _mark;
20007 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
20008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
20009 }
20010 _res = NULL;
20011 done:
20012 p->level--;
20013 return _res;
20014 }
20015
20016 // invalid_comprehension:
20017 // | ('[' | '(' | '{') starred_expression for_if_clauses
20018 // | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
20019 // | ('[' | '{') star_named_expression ',' for_if_clauses
20020 static void *
invalid_comprehension_rule(Parser * p)20021 invalid_comprehension_rule(Parser *p)
20022 {
20023 if (p->level++ == MAXSTACK) {
20024 p->error_indicator = 1;
20025 PyErr_NoMemory();
20026 }
20027 if (p->error_indicator) {
20028 p->level--;
20029 return NULL;
20030 }
20031 void * _res = NULL;
20032 int _mark = p->mark;
20033 { // ('[' | '(' | '{') starred_expression for_if_clauses
20034 if (p->error_indicator) {
20035 p->level--;
20036 return NULL;
20037 }
20038 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
20039 void *_tmp_156_var;
20040 expr_ty a;
20041 asdl_comprehension_seq* for_if_clauses_var;
20042 if (
20043 (_tmp_156_var = _tmp_156_rule(p)) // '[' | '(' | '{'
20044 &&
20045 (a = starred_expression_rule(p)) // starred_expression
20046 &&
20047 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
20048 )
20049 {
20050 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
20051 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
20052 if (_res == NULL && PyErr_Occurred()) {
20053 p->error_indicator = 1;
20054 p->level--;
20055 return NULL;
20056 }
20057 goto done;
20058 }
20059 p->mark = _mark;
20060 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
20061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
20062 }
20063 { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
20064 if (p->error_indicator) {
20065 p->level--;
20066 return NULL;
20067 }
20068 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
20069 Token * _literal;
20070 void *_tmp_157_var;
20071 expr_ty a;
20072 asdl_expr_seq* b;
20073 asdl_comprehension_seq* for_if_clauses_var;
20074 if (
20075 (_tmp_157_var = _tmp_157_rule(p)) // '[' | '{'
20076 &&
20077 (a = star_named_expression_rule(p)) // star_named_expression
20078 &&
20079 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20080 &&
20081 (b = star_named_expressions_rule(p)) // star_named_expressions
20082 &&
20083 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
20084 )
20085 {
20086 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
20087 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , PyPegen_last_item ( b , expr_ty ) , "did you forget parentheses around the comprehension target?" );
20088 if (_res == NULL && PyErr_Occurred()) {
20089 p->error_indicator = 1;
20090 p->level--;
20091 return NULL;
20092 }
20093 goto done;
20094 }
20095 p->mark = _mark;
20096 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
20097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
20098 }
20099 { // ('[' | '{') star_named_expression ',' for_if_clauses
20100 if (p->error_indicator) {
20101 p->level--;
20102 return NULL;
20103 }
20104 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
20105 void *_tmp_158_var;
20106 expr_ty a;
20107 Token * b;
20108 asdl_comprehension_seq* for_if_clauses_var;
20109 if (
20110 (_tmp_158_var = _tmp_158_rule(p)) // '[' | '{'
20111 &&
20112 (a = star_named_expression_rule(p)) // star_named_expression
20113 &&
20114 (b = _PyPegen_expect_token(p, 12)) // token=','
20115 &&
20116 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
20117 )
20118 {
20119 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
20120 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
20121 if (_res == NULL && PyErr_Occurred()) {
20122 p->error_indicator = 1;
20123 p->level--;
20124 return NULL;
20125 }
20126 goto done;
20127 }
20128 p->mark = _mark;
20129 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
20130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
20131 }
20132 _res = NULL;
20133 done:
20134 p->level--;
20135 return _res;
20136 }
20137
20138 // invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
20139 static void *
invalid_dict_comprehension_rule(Parser * p)20140 invalid_dict_comprehension_rule(Parser *p)
20141 {
20142 if (p->level++ == MAXSTACK) {
20143 p->error_indicator = 1;
20144 PyErr_NoMemory();
20145 }
20146 if (p->error_indicator) {
20147 p->level--;
20148 return NULL;
20149 }
20150 void * _res = NULL;
20151 int _mark = p->mark;
20152 { // '{' '**' bitwise_or for_if_clauses '}'
20153 if (p->error_indicator) {
20154 p->level--;
20155 return NULL;
20156 }
20157 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
20158 Token * _literal;
20159 Token * _literal_1;
20160 Token * a;
20161 expr_ty bitwise_or_var;
20162 asdl_comprehension_seq* for_if_clauses_var;
20163 if (
20164 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
20165 &&
20166 (a = _PyPegen_expect_token(p, 35)) // token='**'
20167 &&
20168 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
20169 &&
20170 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
20171 &&
20172 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
20173 )
20174 {
20175 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
20176 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
20177 if (_res == NULL && PyErr_Occurred()) {
20178 p->error_indicator = 1;
20179 p->level--;
20180 return NULL;
20181 }
20182 goto done;
20183 }
20184 p->mark = _mark;
20185 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
20186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
20187 }
20188 _res = NULL;
20189 done:
20190 p->level--;
20191 return _res;
20192 }
20193
20194 // invalid_parameters:
20195 // | param_no_default* invalid_parameters_helper param_no_default
20196 // | param_no_default* '(' param_no_default+ ','? ')'
20197 // | "/" ','
20198 // | (slash_no_default | slash_with_default) param_maybe_default* '/'
20199 // | [(slash_no_default | slash_with_default)] param_maybe_default* '*' (',' | param_no_default) param_maybe_default* '/'
20200 // | param_maybe_default+ '/' '*'
20201 static void *
invalid_parameters_rule(Parser * p)20202 invalid_parameters_rule(Parser *p)
20203 {
20204 if (p->level++ == MAXSTACK) {
20205 p->error_indicator = 1;
20206 PyErr_NoMemory();
20207 }
20208 if (p->error_indicator) {
20209 p->level--;
20210 return NULL;
20211 }
20212 void * _res = NULL;
20213 int _mark = p->mark;
20214 { // param_no_default* invalid_parameters_helper param_no_default
20215 if (p->error_indicator) {
20216 p->level--;
20217 return NULL;
20218 }
20219 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
20220 asdl_seq * _loop0_159_var;
20221 arg_ty a;
20222 void *invalid_parameters_helper_var;
20223 if (
20224 (_loop0_159_var = _loop0_159_rule(p)) // param_no_default*
20225 &&
20226 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
20227 &&
20228 (a = param_no_default_rule(p)) // param_no_default
20229 )
20230 {
20231 D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
20232 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
20233 if (_res == NULL && PyErr_Occurred()) {
20234 p->error_indicator = 1;
20235 p->level--;
20236 return NULL;
20237 }
20238 goto done;
20239 }
20240 p->mark = _mark;
20241 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
20242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
20243 }
20244 { // param_no_default* '(' param_no_default+ ','? ')'
20245 if (p->error_indicator) {
20246 p->level--;
20247 return NULL;
20248 }
20249 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* '(' param_no_default+ ','? ')'"));
20250 asdl_seq * _loop0_160_var;
20251 asdl_seq * _loop1_161_var;
20252 void *_opt_var;
20253 UNUSED(_opt_var); // Silence compiler warnings
20254 Token * a;
20255 Token * b;
20256 if (
20257 (_loop0_160_var = _loop0_160_rule(p)) // param_no_default*
20258 &&
20259 (a = _PyPegen_expect_token(p, 7)) // token='('
20260 &&
20261 (_loop1_161_var = _loop1_161_rule(p)) // param_no_default+
20262 &&
20263 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
20264 &&
20265 (b = _PyPegen_expect_token(p, 8)) // token=')'
20266 )
20267 {
20268 D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* '(' param_no_default+ ','? ')'"));
20269 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "Function parameters cannot be parenthesized" );
20270 if (_res == NULL && PyErr_Occurred()) {
20271 p->error_indicator = 1;
20272 p->level--;
20273 return NULL;
20274 }
20275 goto done;
20276 }
20277 p->mark = _mark;
20278 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
20279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* '(' param_no_default+ ','? ')'"));
20280 }
20281 { // "/" ','
20282 if (p->error_indicator) {
20283 p->level--;
20284 return NULL;
20285 }
20286 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"/\" ','"));
20287 Token * _literal;
20288 Token * a;
20289 if (
20290 (a = _PyPegen_expect_token(p, 17)) // token='/'
20291 &&
20292 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20293 )
20294 {
20295 D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"/\" ','"));
20296 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "at least one argument must precede /" );
20297 if (_res == NULL && PyErr_Occurred()) {
20298 p->error_indicator = 1;
20299 p->level--;
20300 return NULL;
20301 }
20302 goto done;
20303 }
20304 p->mark = _mark;
20305 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
20306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"/\" ','"));
20307 }
20308 { // (slash_no_default | slash_with_default) param_maybe_default* '/'
20309 if (p->error_indicator) {
20310 p->level--;
20311 return NULL;
20312 }
20313 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(slash_no_default | slash_with_default) param_maybe_default* '/'"));
20314 asdl_seq * _loop0_163_var;
20315 void *_tmp_162_var;
20316 Token * a;
20317 if (
20318 (_tmp_162_var = _tmp_162_rule(p)) // slash_no_default | slash_with_default
20319 &&
20320 (_loop0_163_var = _loop0_163_rule(p)) // param_maybe_default*
20321 &&
20322 (a = _PyPegen_expect_token(p, 17)) // token='/'
20323 )
20324 {
20325 D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(slash_no_default | slash_with_default) param_maybe_default* '/'"));
20326 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "/ may appear only once" );
20327 if (_res == NULL && PyErr_Occurred()) {
20328 p->error_indicator = 1;
20329 p->level--;
20330 return NULL;
20331 }
20332 goto done;
20333 }
20334 p->mark = _mark;
20335 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
20336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(slash_no_default | slash_with_default) param_maybe_default* '/'"));
20337 }
20338 { // [(slash_no_default | slash_with_default)] param_maybe_default* '*' (',' | param_no_default) param_maybe_default* '/'
20339 if (p->error_indicator) {
20340 p->level--;
20341 return NULL;
20342 }
20343 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[(slash_no_default | slash_with_default)] param_maybe_default* '*' (',' | param_no_default) param_maybe_default* '/'"));
20344 Token * _literal;
20345 asdl_seq * _loop0_165_var;
20346 asdl_seq * _loop0_167_var;
20347 void *_opt_var;
20348 UNUSED(_opt_var); // Silence compiler warnings
20349 void *_tmp_166_var;
20350 Token * a;
20351 if (
20352 (_opt_var = _tmp_164_rule(p), !p->error_indicator) // [(slash_no_default | slash_with_default)]
20353 &&
20354 (_loop0_165_var = _loop0_165_rule(p)) // param_maybe_default*
20355 &&
20356 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
20357 &&
20358 (_tmp_166_var = _tmp_166_rule(p)) // ',' | param_no_default
20359 &&
20360 (_loop0_167_var = _loop0_167_rule(p)) // param_maybe_default*
20361 &&
20362 (a = _PyPegen_expect_token(p, 17)) // token='/'
20363 )
20364 {
20365 D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "[(slash_no_default | slash_with_default)] param_maybe_default* '*' (',' | param_no_default) param_maybe_default* '/'"));
20366 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "/ must be ahead of *" );
20367 if (_res == NULL && PyErr_Occurred()) {
20368 p->error_indicator = 1;
20369 p->level--;
20370 return NULL;
20371 }
20372 goto done;
20373 }
20374 p->mark = _mark;
20375 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
20376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[(slash_no_default | slash_with_default)] param_maybe_default* '*' (',' | param_no_default) param_maybe_default* '/'"));
20377 }
20378 { // param_maybe_default+ '/' '*'
20379 if (p->error_indicator) {
20380 p->level--;
20381 return NULL;
20382 }
20383 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default+ '/' '*'"));
20384 Token * _literal;
20385 asdl_seq * _loop1_168_var;
20386 Token * a;
20387 if (
20388 (_loop1_168_var = _loop1_168_rule(p)) // param_maybe_default+
20389 &&
20390 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
20391 &&
20392 (a = _PyPegen_expect_token(p, 16)) // token='*'
20393 )
20394 {
20395 D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_maybe_default+ '/' '*'"));
20396 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expected comma between / and *" );
20397 if (_res == NULL && PyErr_Occurred()) {
20398 p->error_indicator = 1;
20399 p->level--;
20400 return NULL;
20401 }
20402 goto done;
20403 }
20404 p->mark = _mark;
20405 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
20406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default+ '/' '*'"));
20407 }
20408 _res = NULL;
20409 done:
20410 p->level--;
20411 return _res;
20412 }
20413
20414 // invalid_default: '=' &(')' | ',')
20415 static void *
invalid_default_rule(Parser * p)20416 invalid_default_rule(Parser *p)
20417 {
20418 if (p->level++ == MAXSTACK) {
20419 p->error_indicator = 1;
20420 PyErr_NoMemory();
20421 }
20422 if (p->error_indicator) {
20423 p->level--;
20424 return NULL;
20425 }
20426 void * _res = NULL;
20427 int _mark = p->mark;
20428 { // '=' &(')' | ',')
20429 if (p->error_indicator) {
20430 p->level--;
20431 return NULL;
20432 }
20433 D(fprintf(stderr, "%*c> invalid_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' &(')' | ',')"));
20434 Token * a;
20435 if (
20436 (a = _PyPegen_expect_token(p, 22)) // token='='
20437 &&
20438 _PyPegen_lookahead(1, _tmp_169_rule, p)
20439 )
20440 {
20441 D(fprintf(stderr, "%*c+ invalid_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' &(')' | ',')"));
20442 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expected default value expression" );
20443 if (_res == NULL && PyErr_Occurred()) {
20444 p->error_indicator = 1;
20445 p->level--;
20446 return NULL;
20447 }
20448 goto done;
20449 }
20450 p->mark = _mark;
20451 D(fprintf(stderr, "%*c%s invalid_default[%d-%d]: %s failed!\n", p->level, ' ',
20452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' &(')' | ',')"));
20453 }
20454 _res = NULL;
20455 done:
20456 p->level--;
20457 return _res;
20458 }
20459
20460 // invalid_star_etc:
20461 // | '*' (')' | ',' (')' | '**'))
20462 // | '*' ',' TYPE_COMMENT
20463 // | '*' param '='
20464 // | '*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')
20465 static void *
invalid_star_etc_rule(Parser * p)20466 invalid_star_etc_rule(Parser *p)
20467 {
20468 if (p->level++ == MAXSTACK) {
20469 p->error_indicator = 1;
20470 PyErr_NoMemory();
20471 }
20472 if (p->error_indicator) {
20473 p->level--;
20474 return NULL;
20475 }
20476 void * _res = NULL;
20477 int _mark = p->mark;
20478 { // '*' (')' | ',' (')' | '**'))
20479 if (p->error_indicator) {
20480 p->level--;
20481 return NULL;
20482 }
20483 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
20484 void *_tmp_170_var;
20485 Token * a;
20486 if (
20487 (a = _PyPegen_expect_token(p, 16)) // token='*'
20488 &&
20489 (_tmp_170_var = _tmp_170_rule(p)) // ')' | ',' (')' | '**')
20490 )
20491 {
20492 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
20493 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
20494 if (_res == NULL && PyErr_Occurred()) {
20495 p->error_indicator = 1;
20496 p->level--;
20497 return NULL;
20498 }
20499 goto done;
20500 }
20501 p->mark = _mark;
20502 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
20503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
20504 }
20505 { // '*' ',' TYPE_COMMENT
20506 if (p->error_indicator) {
20507 p->level--;
20508 return NULL;
20509 }
20510 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
20511 Token * _literal;
20512 Token * _literal_1;
20513 Token * type_comment_var;
20514 if (
20515 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
20516 &&
20517 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
20518 &&
20519 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
20520 )
20521 {
20522 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
20523 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
20524 if (_res == NULL && PyErr_Occurred()) {
20525 p->error_indicator = 1;
20526 p->level--;
20527 return NULL;
20528 }
20529 goto done;
20530 }
20531 p->mark = _mark;
20532 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
20533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
20534 }
20535 { // '*' param '='
20536 if (p->error_indicator) {
20537 p->level--;
20538 return NULL;
20539 }
20540 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param '='"));
20541 Token * _literal;
20542 Token * a;
20543 arg_ty param_var;
20544 if (
20545 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
20546 &&
20547 (param_var = param_rule(p)) // param
20548 &&
20549 (a = _PyPegen_expect_token(p, 22)) // token='='
20550 )
20551 {
20552 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param '='"));
20553 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "var-positional argument cannot have default value" );
20554 if (_res == NULL && PyErr_Occurred()) {
20555 p->error_indicator = 1;
20556 p->level--;
20557 return NULL;
20558 }
20559 goto done;
20560 }
20561 p->mark = _mark;
20562 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
20563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param '='"));
20564 }
20565 { // '*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')
20566 if (p->error_indicator) {
20567 p->level--;
20568 return NULL;
20569 }
20570 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')"));
20571 Token * _literal;
20572 asdl_seq * _loop0_172_var;
20573 void *_tmp_171_var;
20574 void *_tmp_173_var;
20575 Token * a;
20576 if (
20577 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
20578 &&
20579 (_tmp_171_var = _tmp_171_rule(p)) // param_no_default | ','
20580 &&
20581 (_loop0_172_var = _loop0_172_rule(p)) // param_maybe_default*
20582 &&
20583 (a = _PyPegen_expect_token(p, 16)) // token='*'
20584 &&
20585 (_tmp_173_var = _tmp_173_rule(p)) // param_no_default | ','
20586 )
20587 {
20588 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')"));
20589 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "* argument may appear only once" );
20590 if (_res == NULL && PyErr_Occurred()) {
20591 p->error_indicator = 1;
20592 p->level--;
20593 return NULL;
20594 }
20595 goto done;
20596 }
20597 p->mark = _mark;
20598 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
20599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')"));
20600 }
20601 _res = NULL;
20602 done:
20603 p->level--;
20604 return _res;
20605 }
20606
20607 // invalid_kwds: '**' param '=' | '**' param ',' param | '**' param ',' ('*' | '**' | '/')
20608 static void *
invalid_kwds_rule(Parser * p)20609 invalid_kwds_rule(Parser *p)
20610 {
20611 if (p->level++ == MAXSTACK) {
20612 p->error_indicator = 1;
20613 PyErr_NoMemory();
20614 }
20615 if (p->error_indicator) {
20616 p->level--;
20617 return NULL;
20618 }
20619 void * _res = NULL;
20620 int _mark = p->mark;
20621 { // '**' param '='
20622 if (p->error_indicator) {
20623 p->level--;
20624 return NULL;
20625 }
20626 D(fprintf(stderr, "%*c> invalid_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param '='"));
20627 Token * _literal;
20628 Token * a;
20629 arg_ty param_var;
20630 if (
20631 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
20632 &&
20633 (param_var = param_rule(p)) // param
20634 &&
20635 (a = _PyPegen_expect_token(p, 22)) // token='='
20636 )
20637 {
20638 D(fprintf(stderr, "%*c+ invalid_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param '='"));
20639 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "var-keyword argument cannot have default value" );
20640 if (_res == NULL && PyErr_Occurred()) {
20641 p->error_indicator = 1;
20642 p->level--;
20643 return NULL;
20644 }
20645 goto done;
20646 }
20647 p->mark = _mark;
20648 D(fprintf(stderr, "%*c%s invalid_kwds[%d-%d]: %s failed!\n", p->level, ' ',
20649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param '='"));
20650 }
20651 { // '**' param ',' param
20652 if (p->error_indicator) {
20653 p->level--;
20654 return NULL;
20655 }
20656 D(fprintf(stderr, "%*c> invalid_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param ',' param"));
20657 Token * _literal;
20658 Token * _literal_1;
20659 arg_ty a;
20660 arg_ty param_var;
20661 if (
20662 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
20663 &&
20664 (param_var = param_rule(p)) // param
20665 &&
20666 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
20667 &&
20668 (a = param_rule(p)) // param
20669 )
20670 {
20671 D(fprintf(stderr, "%*c+ invalid_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param ',' param"));
20672 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "arguments cannot follow var-keyword argument" );
20673 if (_res == NULL && PyErr_Occurred()) {
20674 p->error_indicator = 1;
20675 p->level--;
20676 return NULL;
20677 }
20678 goto done;
20679 }
20680 p->mark = _mark;
20681 D(fprintf(stderr, "%*c%s invalid_kwds[%d-%d]: %s failed!\n", p->level, ' ',
20682 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param ',' param"));
20683 }
20684 { // '**' param ',' ('*' | '**' | '/')
20685 if (p->error_indicator) {
20686 p->level--;
20687 return NULL;
20688 }
20689 D(fprintf(stderr, "%*c> invalid_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param ',' ('*' | '**' | '/')"));
20690 Token * _literal;
20691 Token * _literal_1;
20692 Token* a;
20693 arg_ty param_var;
20694 if (
20695 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
20696 &&
20697 (param_var = param_rule(p)) // param
20698 &&
20699 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
20700 &&
20701 (a = (Token*)_tmp_174_rule(p)) // '*' | '**' | '/'
20702 )
20703 {
20704 D(fprintf(stderr, "%*c+ invalid_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param ',' ('*' | '**' | '/')"));
20705 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "arguments cannot follow var-keyword argument" );
20706 if (_res == NULL && PyErr_Occurred()) {
20707 p->error_indicator = 1;
20708 p->level--;
20709 return NULL;
20710 }
20711 goto done;
20712 }
20713 p->mark = _mark;
20714 D(fprintf(stderr, "%*c%s invalid_kwds[%d-%d]: %s failed!\n", p->level, ' ',
20715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param ',' ('*' | '**' | '/')"));
20716 }
20717 _res = NULL;
20718 done:
20719 p->level--;
20720 return _res;
20721 }
20722
20723 // invalid_parameters_helper: slash_with_default | param_with_default+
20724 static void *
invalid_parameters_helper_rule(Parser * p)20725 invalid_parameters_helper_rule(Parser *p)
20726 {
20727 if (p->level++ == MAXSTACK) {
20728 p->error_indicator = 1;
20729 PyErr_NoMemory();
20730 }
20731 if (p->error_indicator) {
20732 p->level--;
20733 return NULL;
20734 }
20735 void * _res = NULL;
20736 int _mark = p->mark;
20737 { // slash_with_default
20738 if (p->error_indicator) {
20739 p->level--;
20740 return NULL;
20741 }
20742 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
20743 SlashWithDefault* a;
20744 if (
20745 (a = slash_with_default_rule(p)) // slash_with_default
20746 )
20747 {
20748 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
20749 _res = _PyPegen_singleton_seq ( p , a );
20750 if (_res == NULL && PyErr_Occurred()) {
20751 p->error_indicator = 1;
20752 p->level--;
20753 return NULL;
20754 }
20755 goto done;
20756 }
20757 p->mark = _mark;
20758 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
20759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
20760 }
20761 { // param_with_default+
20762 if (p->error_indicator) {
20763 p->level--;
20764 return NULL;
20765 }
20766 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
20767 asdl_seq * _loop1_175_var;
20768 if (
20769 (_loop1_175_var = _loop1_175_rule(p)) // param_with_default+
20770 )
20771 {
20772 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
20773 _res = _loop1_175_var;
20774 goto done;
20775 }
20776 p->mark = _mark;
20777 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
20778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
20779 }
20780 _res = NULL;
20781 done:
20782 p->level--;
20783 return _res;
20784 }
20785
20786 // invalid_lambda_parameters:
20787 // | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
20788 // | lambda_param_no_default* '(' ','.lambda_param+ ','? ')'
20789 // | "/" ','
20790 // | (lambda_slash_no_default | lambda_slash_with_default) lambda_param_maybe_default* '/'
20791 // | [(lambda_slash_no_default | lambda_slash_with_default)] lambda_param_maybe_default* '*' (',' | lambda_param_no_default) lambda_param_maybe_default* '/'
20792 // | lambda_param_maybe_default+ '/' '*'
20793 static void *
invalid_lambda_parameters_rule(Parser * p)20794 invalid_lambda_parameters_rule(Parser *p)
20795 {
20796 if (p->level++ == MAXSTACK) {
20797 p->error_indicator = 1;
20798 PyErr_NoMemory();
20799 }
20800 if (p->error_indicator) {
20801 p->level--;
20802 return NULL;
20803 }
20804 void * _res = NULL;
20805 int _mark = p->mark;
20806 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
20807 if (p->error_indicator) {
20808 p->level--;
20809 return NULL;
20810 }
20811 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
20812 asdl_seq * _loop0_176_var;
20813 arg_ty a;
20814 void *invalid_lambda_parameters_helper_var;
20815 if (
20816 (_loop0_176_var = _loop0_176_rule(p)) // lambda_param_no_default*
20817 &&
20818 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
20819 &&
20820 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
20821 )
20822 {
20823 D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
20824 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
20825 if (_res == NULL && PyErr_Occurred()) {
20826 p->error_indicator = 1;
20827 p->level--;
20828 return NULL;
20829 }
20830 goto done;
20831 }
20832 p->mark = _mark;
20833 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
20834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
20835 }
20836 { // lambda_param_no_default* '(' ','.lambda_param+ ','? ')'
20837 if (p->error_indicator) {
20838 p->level--;
20839 return NULL;
20840 }
20841 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* '(' ','.lambda_param+ ','? ')'"));
20842 asdl_seq * _gather_178_var;
20843 asdl_seq * _loop0_177_var;
20844 void *_opt_var;
20845 UNUSED(_opt_var); // Silence compiler warnings
20846 Token * a;
20847 Token * b;
20848 if (
20849 (_loop0_177_var = _loop0_177_rule(p)) // lambda_param_no_default*
20850 &&
20851 (a = _PyPegen_expect_token(p, 7)) // token='('
20852 &&
20853 (_gather_178_var = _gather_178_rule(p)) // ','.lambda_param+
20854 &&
20855 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
20856 &&
20857 (b = _PyPegen_expect_token(p, 8)) // token=')'
20858 )
20859 {
20860 D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* '(' ','.lambda_param+ ','? ')'"));
20861 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "Lambda expression parameters cannot be parenthesized" );
20862 if (_res == NULL && PyErr_Occurred()) {
20863 p->error_indicator = 1;
20864 p->level--;
20865 return NULL;
20866 }
20867 goto done;
20868 }
20869 p->mark = _mark;
20870 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
20871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* '(' ','.lambda_param+ ','? ')'"));
20872 }
20873 { // "/" ','
20874 if (p->error_indicator) {
20875 p->level--;
20876 return NULL;
20877 }
20878 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"/\" ','"));
20879 Token * _literal;
20880 Token * a;
20881 if (
20882 (a = _PyPegen_expect_token(p, 17)) // token='/'
20883 &&
20884 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20885 )
20886 {
20887 D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"/\" ','"));
20888 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "at least one argument must precede /" );
20889 if (_res == NULL && PyErr_Occurred()) {
20890 p->error_indicator = 1;
20891 p->level--;
20892 return NULL;
20893 }
20894 goto done;
20895 }
20896 p->mark = _mark;
20897 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
20898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"/\" ','"));
20899 }
20900 { // (lambda_slash_no_default | lambda_slash_with_default) lambda_param_maybe_default* '/'
20901 if (p->error_indicator) {
20902 p->level--;
20903 return NULL;
20904 }
20905 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(lambda_slash_no_default | lambda_slash_with_default) lambda_param_maybe_default* '/'"));
20906 asdl_seq * _loop0_181_var;
20907 void *_tmp_180_var;
20908 Token * a;
20909 if (
20910 (_tmp_180_var = _tmp_180_rule(p)) // lambda_slash_no_default | lambda_slash_with_default
20911 &&
20912 (_loop0_181_var = _loop0_181_rule(p)) // lambda_param_maybe_default*
20913 &&
20914 (a = _PyPegen_expect_token(p, 17)) // token='/'
20915 )
20916 {
20917 D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(lambda_slash_no_default | lambda_slash_with_default) lambda_param_maybe_default* '/'"));
20918 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "/ may appear only once" );
20919 if (_res == NULL && PyErr_Occurred()) {
20920 p->error_indicator = 1;
20921 p->level--;
20922 return NULL;
20923 }
20924 goto done;
20925 }
20926 p->mark = _mark;
20927 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
20928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(lambda_slash_no_default | lambda_slash_with_default) lambda_param_maybe_default* '/'"));
20929 }
20930 { // [(lambda_slash_no_default | lambda_slash_with_default)] lambda_param_maybe_default* '*' (',' | lambda_param_no_default) lambda_param_maybe_default* '/'
20931 if (p->error_indicator) {
20932 p->level--;
20933 return NULL;
20934 }
20935 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[(lambda_slash_no_default | lambda_slash_with_default)] lambda_param_maybe_default* '*' (',' | lambda_param_no_default) lambda_param_maybe_default* '/'"));
20936 Token * _literal;
20937 asdl_seq * _loop0_183_var;
20938 asdl_seq * _loop0_185_var;
20939 void *_opt_var;
20940 UNUSED(_opt_var); // Silence compiler warnings
20941 void *_tmp_184_var;
20942 Token * a;
20943 if (
20944 (_opt_var = _tmp_182_rule(p), !p->error_indicator) // [(lambda_slash_no_default | lambda_slash_with_default)]
20945 &&
20946 (_loop0_183_var = _loop0_183_rule(p)) // lambda_param_maybe_default*
20947 &&
20948 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
20949 &&
20950 (_tmp_184_var = _tmp_184_rule(p)) // ',' | lambda_param_no_default
20951 &&
20952 (_loop0_185_var = _loop0_185_rule(p)) // lambda_param_maybe_default*
20953 &&
20954 (a = _PyPegen_expect_token(p, 17)) // token='/'
20955 )
20956 {
20957 D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "[(lambda_slash_no_default | lambda_slash_with_default)] lambda_param_maybe_default* '*' (',' | lambda_param_no_default) lambda_param_maybe_default* '/'"));
20958 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "/ must be ahead of *" );
20959 if (_res == NULL && PyErr_Occurred()) {
20960 p->error_indicator = 1;
20961 p->level--;
20962 return NULL;
20963 }
20964 goto done;
20965 }
20966 p->mark = _mark;
20967 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
20968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[(lambda_slash_no_default | lambda_slash_with_default)] lambda_param_maybe_default* '*' (',' | lambda_param_no_default) lambda_param_maybe_default* '/'"));
20969 }
20970 { // lambda_param_maybe_default+ '/' '*'
20971 if (p->error_indicator) {
20972 p->level--;
20973 return NULL;
20974 }
20975 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default+ '/' '*'"));
20976 Token * _literal;
20977 asdl_seq * _loop1_186_var;
20978 Token * a;
20979 if (
20980 (_loop1_186_var = _loop1_186_rule(p)) // lambda_param_maybe_default+
20981 &&
20982 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
20983 &&
20984 (a = _PyPegen_expect_token(p, 16)) // token='*'
20985 )
20986 {
20987 D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default+ '/' '*'"));
20988 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expected comma between / and *" );
20989 if (_res == NULL && PyErr_Occurred()) {
20990 p->error_indicator = 1;
20991 p->level--;
20992 return NULL;
20993 }
20994 goto done;
20995 }
20996 p->mark = _mark;
20997 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
20998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default+ '/' '*'"));
20999 }
21000 _res = NULL;
21001 done:
21002 p->level--;
21003 return _res;
21004 }
21005
21006 // invalid_lambda_parameters_helper:
21007 // | lambda_slash_with_default
21008 // | lambda_param_with_default+
21009 static void *
invalid_lambda_parameters_helper_rule(Parser * p)21010 invalid_lambda_parameters_helper_rule(Parser *p)
21011 {
21012 if (p->level++ == MAXSTACK) {
21013 p->error_indicator = 1;
21014 PyErr_NoMemory();
21015 }
21016 if (p->error_indicator) {
21017 p->level--;
21018 return NULL;
21019 }
21020 void * _res = NULL;
21021 int _mark = p->mark;
21022 { // lambda_slash_with_default
21023 if (p->error_indicator) {
21024 p->level--;
21025 return NULL;
21026 }
21027 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
21028 SlashWithDefault* a;
21029 if (
21030 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
21031 )
21032 {
21033 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
21034 _res = _PyPegen_singleton_seq ( p , a );
21035 if (_res == NULL && PyErr_Occurred()) {
21036 p->error_indicator = 1;
21037 p->level--;
21038 return NULL;
21039 }
21040 goto done;
21041 }
21042 p->mark = _mark;
21043 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
21044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
21045 }
21046 { // lambda_param_with_default+
21047 if (p->error_indicator) {
21048 p->level--;
21049 return NULL;
21050 }
21051 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
21052 asdl_seq * _loop1_187_var;
21053 if (
21054 (_loop1_187_var = _loop1_187_rule(p)) // lambda_param_with_default+
21055 )
21056 {
21057 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
21058 _res = _loop1_187_var;
21059 goto done;
21060 }
21061 p->mark = _mark;
21062 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
21063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
21064 }
21065 _res = NULL;
21066 done:
21067 p->level--;
21068 return _res;
21069 }
21070
21071 // invalid_lambda_star_etc:
21072 // | '*' (':' | ',' (':' | '**'))
21073 // | '*' lambda_param '='
21074 // | '*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')
21075 static void *
invalid_lambda_star_etc_rule(Parser * p)21076 invalid_lambda_star_etc_rule(Parser *p)
21077 {
21078 if (p->level++ == MAXSTACK) {
21079 p->error_indicator = 1;
21080 PyErr_NoMemory();
21081 }
21082 if (p->error_indicator) {
21083 p->level--;
21084 return NULL;
21085 }
21086 void * _res = NULL;
21087 int _mark = p->mark;
21088 { // '*' (':' | ',' (':' | '**'))
21089 if (p->error_indicator) {
21090 p->level--;
21091 return NULL;
21092 }
21093 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
21094 Token * _literal;
21095 void *_tmp_188_var;
21096 if (
21097 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
21098 &&
21099 (_tmp_188_var = _tmp_188_rule(p)) // ':' | ',' (':' | '**')
21100 )
21101 {
21102 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
21103 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
21104 if (_res == NULL && PyErr_Occurred()) {
21105 p->error_indicator = 1;
21106 p->level--;
21107 return NULL;
21108 }
21109 goto done;
21110 }
21111 p->mark = _mark;
21112 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
21113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
21114 }
21115 { // '*' lambda_param '='
21116 if (p->error_indicator) {
21117 p->level--;
21118 return NULL;
21119 }
21120 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' lambda_param '='"));
21121 Token * _literal;
21122 Token * a;
21123 arg_ty lambda_param_var;
21124 if (
21125 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
21126 &&
21127 (lambda_param_var = lambda_param_rule(p)) // lambda_param
21128 &&
21129 (a = _PyPegen_expect_token(p, 22)) // token='='
21130 )
21131 {
21132 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' lambda_param '='"));
21133 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "var-positional argument cannot have default value" );
21134 if (_res == NULL && PyErr_Occurred()) {
21135 p->error_indicator = 1;
21136 p->level--;
21137 return NULL;
21138 }
21139 goto done;
21140 }
21141 p->mark = _mark;
21142 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
21143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param '='"));
21144 }
21145 { // '*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')
21146 if (p->error_indicator) {
21147 p->level--;
21148 return NULL;
21149 }
21150 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')"));
21151 Token * _literal;
21152 asdl_seq * _loop0_190_var;
21153 void *_tmp_189_var;
21154 void *_tmp_191_var;
21155 Token * a;
21156 if (
21157 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
21158 &&
21159 (_tmp_189_var = _tmp_189_rule(p)) // lambda_param_no_default | ','
21160 &&
21161 (_loop0_190_var = _loop0_190_rule(p)) // lambda_param_maybe_default*
21162 &&
21163 (a = _PyPegen_expect_token(p, 16)) // token='*'
21164 &&
21165 (_tmp_191_var = _tmp_191_rule(p)) // lambda_param_no_default | ','
21166 )
21167 {
21168 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')"));
21169 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "* argument may appear only once" );
21170 if (_res == NULL && PyErr_Occurred()) {
21171 p->error_indicator = 1;
21172 p->level--;
21173 return NULL;
21174 }
21175 goto done;
21176 }
21177 p->mark = _mark;
21178 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
21179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')"));
21180 }
21181 _res = NULL;
21182 done:
21183 p->level--;
21184 return _res;
21185 }
21186
21187 // invalid_lambda_kwds:
21188 // | '**' lambda_param '='
21189 // | '**' lambda_param ',' lambda_param
21190 // | '**' lambda_param ',' ('*' | '**' | '/')
21191 static void *
invalid_lambda_kwds_rule(Parser * p)21192 invalid_lambda_kwds_rule(Parser *p)
21193 {
21194 if (p->level++ == MAXSTACK) {
21195 p->error_indicator = 1;
21196 PyErr_NoMemory();
21197 }
21198 if (p->error_indicator) {
21199 p->level--;
21200 return NULL;
21201 }
21202 void * _res = NULL;
21203 int _mark = p->mark;
21204 { // '**' lambda_param '='
21205 if (p->error_indicator) {
21206 p->level--;
21207 return NULL;
21208 }
21209 D(fprintf(stderr, "%*c> invalid_lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param '='"));
21210 Token * _literal;
21211 Token * a;
21212 arg_ty lambda_param_var;
21213 if (
21214 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
21215 &&
21216 (lambda_param_var = lambda_param_rule(p)) // lambda_param
21217 &&
21218 (a = _PyPegen_expect_token(p, 22)) // token='='
21219 )
21220 {
21221 D(fprintf(stderr, "%*c+ invalid_lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param '='"));
21222 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "var-keyword argument cannot have default value" );
21223 if (_res == NULL && PyErr_Occurred()) {
21224 p->error_indicator = 1;
21225 p->level--;
21226 return NULL;
21227 }
21228 goto done;
21229 }
21230 p->mark = _mark;
21231 D(fprintf(stderr, "%*c%s invalid_lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
21232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param '='"));
21233 }
21234 { // '**' lambda_param ',' lambda_param
21235 if (p->error_indicator) {
21236 p->level--;
21237 return NULL;
21238 }
21239 D(fprintf(stderr, "%*c> invalid_lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param ',' lambda_param"));
21240 Token * _literal;
21241 Token * _literal_1;
21242 arg_ty a;
21243 arg_ty lambda_param_var;
21244 if (
21245 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
21246 &&
21247 (lambda_param_var = lambda_param_rule(p)) // lambda_param
21248 &&
21249 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
21250 &&
21251 (a = lambda_param_rule(p)) // lambda_param
21252 )
21253 {
21254 D(fprintf(stderr, "%*c+ invalid_lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param ',' lambda_param"));
21255 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "arguments cannot follow var-keyword argument" );
21256 if (_res == NULL && PyErr_Occurred()) {
21257 p->error_indicator = 1;
21258 p->level--;
21259 return NULL;
21260 }
21261 goto done;
21262 }
21263 p->mark = _mark;
21264 D(fprintf(stderr, "%*c%s invalid_lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
21265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param ',' lambda_param"));
21266 }
21267 { // '**' lambda_param ',' ('*' | '**' | '/')
21268 if (p->error_indicator) {
21269 p->level--;
21270 return NULL;
21271 }
21272 D(fprintf(stderr, "%*c> invalid_lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param ',' ('*' | '**' | '/')"));
21273 Token * _literal;
21274 Token * _literal_1;
21275 Token* a;
21276 arg_ty lambda_param_var;
21277 if (
21278 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
21279 &&
21280 (lambda_param_var = lambda_param_rule(p)) // lambda_param
21281 &&
21282 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
21283 &&
21284 (a = (Token*)_tmp_192_rule(p)) // '*' | '**' | '/'
21285 )
21286 {
21287 D(fprintf(stderr, "%*c+ invalid_lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param ',' ('*' | '**' | '/')"));
21288 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "arguments cannot follow var-keyword argument" );
21289 if (_res == NULL && PyErr_Occurred()) {
21290 p->error_indicator = 1;
21291 p->level--;
21292 return NULL;
21293 }
21294 goto done;
21295 }
21296 p->mark = _mark;
21297 D(fprintf(stderr, "%*c%s invalid_lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
21298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param ',' ('*' | '**' | '/')"));
21299 }
21300 _res = NULL;
21301 done:
21302 p->level--;
21303 return _res;
21304 }
21305
21306 // invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
21307 static void *
invalid_double_type_comments_rule(Parser * p)21308 invalid_double_type_comments_rule(Parser *p)
21309 {
21310 if (p->level++ == MAXSTACK) {
21311 p->error_indicator = 1;
21312 PyErr_NoMemory();
21313 }
21314 if (p->error_indicator) {
21315 p->level--;
21316 return NULL;
21317 }
21318 void * _res = NULL;
21319 int _mark = p->mark;
21320 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
21321 if (p->error_indicator) {
21322 p->level--;
21323 return NULL;
21324 }
21325 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
21326 Token * indent_var;
21327 Token * newline_var;
21328 Token * newline_var_1;
21329 Token * type_comment_var;
21330 Token * type_comment_var_1;
21331 if (
21332 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
21333 &&
21334 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21335 &&
21336 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
21337 &&
21338 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21339 &&
21340 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
21341 )
21342 {
21343 D(fprintf(stderr, "%*c+ invalid_double_type_comments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
21344 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
21345 if (_res == NULL && PyErr_Occurred()) {
21346 p->error_indicator = 1;
21347 p->level--;
21348 return NULL;
21349 }
21350 goto done;
21351 }
21352 p->mark = _mark;
21353 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
21354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
21355 }
21356 _res = NULL;
21357 done:
21358 p->level--;
21359 return _res;
21360 }
21361
21362 // invalid_with_item: expression 'as' expression &(',' | ')' | ':')
21363 static void *
invalid_with_item_rule(Parser * p)21364 invalid_with_item_rule(Parser *p)
21365 {
21366 if (p->level++ == MAXSTACK) {
21367 p->error_indicator = 1;
21368 PyErr_NoMemory();
21369 }
21370 if (p->error_indicator) {
21371 p->level--;
21372 return NULL;
21373 }
21374 void * _res = NULL;
21375 int _mark = p->mark;
21376 { // expression 'as' expression &(',' | ')' | ':')
21377 if (p->error_indicator) {
21378 p->level--;
21379 return NULL;
21380 }
21381 D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
21382 Token * _keyword;
21383 expr_ty a;
21384 expr_ty expression_var;
21385 if (
21386 (expression_var = expression_rule(p)) // expression
21387 &&
21388 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
21389 &&
21390 (a = expression_rule(p)) // expression
21391 &&
21392 _PyPegen_lookahead(1, _tmp_193_rule, p)
21393 )
21394 {
21395 D(fprintf(stderr, "%*c+ invalid_with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
21396 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
21397 if (_res == NULL && PyErr_Occurred()) {
21398 p->error_indicator = 1;
21399 p->level--;
21400 return NULL;
21401 }
21402 goto done;
21403 }
21404 p->mark = _mark;
21405 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
21406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
21407 }
21408 _res = NULL;
21409 done:
21410 p->level--;
21411 return _res;
21412 }
21413
21414 // invalid_for_target: ASYNC? 'for' star_expressions
21415 static void *
invalid_for_target_rule(Parser * p)21416 invalid_for_target_rule(Parser *p)
21417 {
21418 if (p->level++ == MAXSTACK) {
21419 p->error_indicator = 1;
21420 PyErr_NoMemory();
21421 }
21422 if (p->error_indicator) {
21423 p->level--;
21424 return NULL;
21425 }
21426 void * _res = NULL;
21427 int _mark = p->mark;
21428 { // ASYNC? 'for' star_expressions
21429 if (p->error_indicator) {
21430 p->level--;
21431 return NULL;
21432 }
21433 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
21434 Token * _keyword;
21435 void *_opt_var;
21436 UNUSED(_opt_var); // Silence compiler warnings
21437 expr_ty a;
21438 if (
21439 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
21440 &&
21441 (_keyword = _PyPegen_expect_token(p, 647)) // token='for'
21442 &&
21443 (a = star_expressions_rule(p)) // star_expressions
21444 )
21445 {
21446 D(fprintf(stderr, "%*c+ invalid_for_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
21447 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
21448 if (_res == NULL && PyErr_Occurred()) {
21449 p->error_indicator = 1;
21450 p->level--;
21451 return NULL;
21452 }
21453 goto done;
21454 }
21455 p->mark = _mark;
21456 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
21457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
21458 }
21459 _res = NULL;
21460 done:
21461 p->level--;
21462 return _res;
21463 }
21464
21465 // invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
21466 static void *
invalid_group_rule(Parser * p)21467 invalid_group_rule(Parser *p)
21468 {
21469 if (p->level++ == MAXSTACK) {
21470 p->error_indicator = 1;
21471 PyErr_NoMemory();
21472 }
21473 if (p->error_indicator) {
21474 p->level--;
21475 return NULL;
21476 }
21477 void * _res = NULL;
21478 int _mark = p->mark;
21479 { // '(' starred_expression ')'
21480 if (p->error_indicator) {
21481 p->level--;
21482 return NULL;
21483 }
21484 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
21485 Token * _literal;
21486 Token * _literal_1;
21487 expr_ty a;
21488 if (
21489 (_literal = _PyPegen_expect_token(p, 7)) // token='('
21490 &&
21491 (a = starred_expression_rule(p)) // starred_expression
21492 &&
21493 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
21494 )
21495 {
21496 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
21497 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
21498 if (_res == NULL && PyErr_Occurred()) {
21499 p->error_indicator = 1;
21500 p->level--;
21501 return NULL;
21502 }
21503 goto done;
21504 }
21505 p->mark = _mark;
21506 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
21507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
21508 }
21509 { // '(' '**' expression ')'
21510 if (p->error_indicator) {
21511 p->level--;
21512 return NULL;
21513 }
21514 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
21515 Token * _literal;
21516 Token * _literal_1;
21517 Token * a;
21518 expr_ty expression_var;
21519 if (
21520 (_literal = _PyPegen_expect_token(p, 7)) // token='('
21521 &&
21522 (a = _PyPegen_expect_token(p, 35)) // token='**'
21523 &&
21524 (expression_var = expression_rule(p)) // expression
21525 &&
21526 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
21527 )
21528 {
21529 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
21530 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
21531 if (_res == NULL && PyErr_Occurred()) {
21532 p->error_indicator = 1;
21533 p->level--;
21534 return NULL;
21535 }
21536 goto done;
21537 }
21538 p->mark = _mark;
21539 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
21540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
21541 }
21542 _res = NULL;
21543 done:
21544 p->level--;
21545 return _res;
21546 }
21547
21548 // invalid_import_from_targets: import_from_as_names ',' NEWLINE
21549 static void *
invalid_import_from_targets_rule(Parser * p)21550 invalid_import_from_targets_rule(Parser *p)
21551 {
21552 if (p->level++ == MAXSTACK) {
21553 p->error_indicator = 1;
21554 PyErr_NoMemory();
21555 }
21556 if (p->error_indicator) {
21557 p->level--;
21558 return NULL;
21559 }
21560 void * _res = NULL;
21561 int _mark = p->mark;
21562 { // import_from_as_names ',' NEWLINE
21563 if (p->error_indicator) {
21564 p->level--;
21565 return NULL;
21566 }
21567 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
21568 Token * _literal;
21569 asdl_alias_seq* import_from_as_names_var;
21570 Token * newline_var;
21571 if (
21572 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
21573 &&
21574 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21575 &&
21576 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21577 )
21578 {
21579 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
21580 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
21581 if (_res == NULL && PyErr_Occurred()) {
21582 p->error_indicator = 1;
21583 p->level--;
21584 return NULL;
21585 }
21586 goto done;
21587 }
21588 p->mark = _mark;
21589 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
21590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ',' NEWLINE"));
21591 }
21592 _res = NULL;
21593 done:
21594 p->level--;
21595 return _res;
21596 }
21597
21598 // invalid_with_stmt:
21599 // | ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE
21600 // | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE
21601 static void *
invalid_with_stmt_rule(Parser * p)21602 invalid_with_stmt_rule(Parser *p)
21603 {
21604 if (p->level++ == MAXSTACK) {
21605 p->error_indicator = 1;
21606 PyErr_NoMemory();
21607 }
21608 if (p->error_indicator) {
21609 p->level--;
21610 return NULL;
21611 }
21612 void * _res = NULL;
21613 int _mark = p->mark;
21614 { // ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE
21615 if (p->error_indicator) {
21616 p->level--;
21617 return NULL;
21618 }
21619 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE"));
21620 asdl_seq * _gather_194_var;
21621 Token * _keyword;
21622 void *_opt_var;
21623 UNUSED(_opt_var); // Silence compiler warnings
21624 Token * newline_var;
21625 if (
21626 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
21627 &&
21628 (_keyword = _PyPegen_expect_token(p, 612)) // token='with'
21629 &&
21630 (_gather_194_var = _gather_194_rule(p)) // ','.(expression ['as' star_target])+
21631 &&
21632 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21633 )
21634 {
21635 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE"));
21636 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
21637 if (_res == NULL && PyErr_Occurred()) {
21638 p->error_indicator = 1;
21639 p->level--;
21640 return NULL;
21641 }
21642 goto done;
21643 }
21644 p->mark = _mark;
21645 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
21646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE"));
21647 }
21648 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE
21649 if (p->error_indicator) {
21650 p->level--;
21651 return NULL;
21652 }
21653 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE"));
21654 asdl_seq * _gather_196_var;
21655 Token * _keyword;
21656 Token * _literal;
21657 Token * _literal_1;
21658 void *_opt_var;
21659 UNUSED(_opt_var); // Silence compiler warnings
21660 void *_opt_var_1;
21661 UNUSED(_opt_var_1); // Silence compiler warnings
21662 Token * newline_var;
21663 if (
21664 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
21665 &&
21666 (_keyword = _PyPegen_expect_token(p, 612)) // token='with'
21667 &&
21668 (_literal = _PyPegen_expect_token(p, 7)) // token='('
21669 &&
21670 (_gather_196_var = _gather_196_rule(p)) // ','.(expressions ['as' star_target])+
21671 &&
21672 (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
21673 &&
21674 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
21675 &&
21676 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21677 )
21678 {
21679 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE"));
21680 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
21681 if (_res == NULL && PyErr_Occurred()) {
21682 p->error_indicator = 1;
21683 p->level--;
21684 return NULL;
21685 }
21686 goto done;
21687 }
21688 p->mark = _mark;
21689 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
21690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE"));
21691 }
21692 _res = NULL;
21693 done:
21694 p->level--;
21695 return _res;
21696 }
21697
21698 // invalid_with_stmt_indent:
21699 // | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
21700 // | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
21701 static void *
invalid_with_stmt_indent_rule(Parser * p)21702 invalid_with_stmt_indent_rule(Parser *p)
21703 {
21704 if (p->level++ == MAXSTACK) {
21705 p->error_indicator = 1;
21706 PyErr_NoMemory();
21707 }
21708 if (p->error_indicator) {
21709 p->level--;
21710 return NULL;
21711 }
21712 void * _res = NULL;
21713 int _mark = p->mark;
21714 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
21715 if (p->error_indicator) {
21716 p->level--;
21717 return NULL;
21718 }
21719 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
21720 asdl_seq * _gather_198_var;
21721 Token * _literal;
21722 void *_opt_var;
21723 UNUSED(_opt_var); // Silence compiler warnings
21724 Token * a;
21725 Token * newline_var;
21726 if (
21727 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
21728 &&
21729 (a = _PyPegen_expect_token(p, 612)) // token='with'
21730 &&
21731 (_gather_198_var = _gather_198_rule(p)) // ','.(expression ['as' star_target])+
21732 &&
21733 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21734 &&
21735 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21736 &&
21737 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
21738 )
21739 {
21740 D(fprintf(stderr, "%*c+ invalid_with_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
21741 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
21742 if (_res == NULL && PyErr_Occurred()) {
21743 p->error_indicator = 1;
21744 p->level--;
21745 return NULL;
21746 }
21747 goto done;
21748 }
21749 p->mark = _mark;
21750 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
21751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
21752 }
21753 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
21754 if (p->error_indicator) {
21755 p->level--;
21756 return NULL;
21757 }
21758 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
21759 asdl_seq * _gather_200_var;
21760 Token * _literal;
21761 Token * _literal_1;
21762 Token * _literal_2;
21763 void *_opt_var;
21764 UNUSED(_opt_var); // Silence compiler warnings
21765 void *_opt_var_1;
21766 UNUSED(_opt_var_1); // Silence compiler warnings
21767 Token * a;
21768 Token * newline_var;
21769 if (
21770 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
21771 &&
21772 (a = _PyPegen_expect_token(p, 612)) // token='with'
21773 &&
21774 (_literal = _PyPegen_expect_token(p, 7)) // token='('
21775 &&
21776 (_gather_200_var = _gather_200_rule(p)) // ','.(expressions ['as' star_target])+
21777 &&
21778 (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
21779 &&
21780 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
21781 &&
21782 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
21783 &&
21784 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21785 &&
21786 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
21787 )
21788 {
21789 D(fprintf(stderr, "%*c+ invalid_with_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
21790 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
21791 if (_res == NULL && PyErr_Occurred()) {
21792 p->error_indicator = 1;
21793 p->level--;
21794 return NULL;
21795 }
21796 goto done;
21797 }
21798 p->mark = _mark;
21799 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
21800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
21801 }
21802 _res = NULL;
21803 done:
21804 p->level--;
21805 return _res;
21806 }
21807
21808 // invalid_try_stmt:
21809 // | 'try' ':' NEWLINE !INDENT
21810 // | 'try' ':' block !('except' | 'finally')
21811 // | 'try' ':' block* except_block+ 'except' '*' expression ['as' NAME] ':'
21812 // | 'try' ':' block* except_star_block+ 'except' [expression ['as' NAME]] ':'
21813 static void *
invalid_try_stmt_rule(Parser * p)21814 invalid_try_stmt_rule(Parser *p)
21815 {
21816 if (p->level++ == MAXSTACK) {
21817 p->error_indicator = 1;
21818 PyErr_NoMemory();
21819 }
21820 if (p->error_indicator) {
21821 p->level--;
21822 return NULL;
21823 }
21824 void * _res = NULL;
21825 int _mark = p->mark;
21826 { // 'try' ':' NEWLINE !INDENT
21827 if (p->error_indicator) {
21828 p->level--;
21829 return NULL;
21830 }
21831 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
21832 Token * _literal;
21833 Token * a;
21834 Token * newline_var;
21835 if (
21836 (a = _PyPegen_expect_token(p, 621)) // token='try'
21837 &&
21838 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21839 &&
21840 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21841 &&
21842 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
21843 )
21844 {
21845 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
21846 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
21847 if (_res == NULL && PyErr_Occurred()) {
21848 p->error_indicator = 1;
21849 p->level--;
21850 return NULL;
21851 }
21852 goto done;
21853 }
21854 p->mark = _mark;
21855 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
21856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
21857 }
21858 { // 'try' ':' block !('except' | 'finally')
21859 if (p->error_indicator) {
21860 p->level--;
21861 return NULL;
21862 }
21863 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
21864 Token * _keyword;
21865 Token * _literal;
21866 asdl_stmt_seq* block_var;
21867 if (
21868 (_keyword = _PyPegen_expect_token(p, 621)) // token='try'
21869 &&
21870 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21871 &&
21872 (block_var = block_rule(p)) // block
21873 &&
21874 _PyPegen_lookahead(0, _tmp_202_rule, p)
21875 )
21876 {
21877 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
21878 _res = RAISE_SYNTAX_ERROR ( "expected 'except' or 'finally' block" );
21879 if (_res == NULL && PyErr_Occurred()) {
21880 p->error_indicator = 1;
21881 p->level--;
21882 return NULL;
21883 }
21884 goto done;
21885 }
21886 p->mark = _mark;
21887 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
21888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
21889 }
21890 { // 'try' ':' block* except_block+ 'except' '*' expression ['as' NAME] ':'
21891 if (p->error_indicator) {
21892 p->level--;
21893 return NULL;
21894 }
21895 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block* except_block+ 'except' '*' expression ['as' NAME] ':'"));
21896 Token * _keyword;
21897 Token * _literal;
21898 Token * _literal_1;
21899 asdl_seq * _loop0_203_var;
21900 asdl_seq * _loop1_204_var;
21901 void *_opt_var;
21902 UNUSED(_opt_var); // Silence compiler warnings
21903 Token * a;
21904 Token * b;
21905 expr_ty expression_var;
21906 if (
21907 (_keyword = _PyPegen_expect_token(p, 621)) // token='try'
21908 &&
21909 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21910 &&
21911 (_loop0_203_var = _loop0_203_rule(p)) // block*
21912 &&
21913 (_loop1_204_var = _loop1_204_rule(p)) // except_block+
21914 &&
21915 (a = _PyPegen_expect_token(p, 634)) // token='except'
21916 &&
21917 (b = _PyPegen_expect_token(p, 16)) // token='*'
21918 &&
21919 (expression_var = expression_rule(p)) // expression
21920 &&
21921 (_opt_var = _tmp_205_rule(p), !p->error_indicator) // ['as' NAME]
21922 &&
21923 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
21924 )
21925 {
21926 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block* except_block+ 'except' '*' expression ['as' NAME] ':'"));
21927 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot have both 'except' and 'except*' on the same 'try'" );
21928 if (_res == NULL && PyErr_Occurred()) {
21929 p->error_indicator = 1;
21930 p->level--;
21931 return NULL;
21932 }
21933 goto done;
21934 }
21935 p->mark = _mark;
21936 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
21937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block* except_block+ 'except' '*' expression ['as' NAME] ':'"));
21938 }
21939 { // 'try' ':' block* except_star_block+ 'except' [expression ['as' NAME]] ':'
21940 if (p->error_indicator) {
21941 p->level--;
21942 return NULL;
21943 }
21944 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block* except_star_block+ 'except' [expression ['as' NAME]] ':'"));
21945 Token * _keyword;
21946 Token * _literal;
21947 Token * _literal_1;
21948 asdl_seq * _loop0_206_var;
21949 asdl_seq * _loop1_207_var;
21950 void *_opt_var;
21951 UNUSED(_opt_var); // Silence compiler warnings
21952 Token * a;
21953 if (
21954 (_keyword = _PyPegen_expect_token(p, 621)) // token='try'
21955 &&
21956 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21957 &&
21958 (_loop0_206_var = _loop0_206_rule(p)) // block*
21959 &&
21960 (_loop1_207_var = _loop1_207_rule(p)) // except_star_block+
21961 &&
21962 (a = _PyPegen_expect_token(p, 634)) // token='except'
21963 &&
21964 (_opt_var = _tmp_208_rule(p), !p->error_indicator) // [expression ['as' NAME]]
21965 &&
21966 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
21967 )
21968 {
21969 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block* except_star_block+ 'except' [expression ['as' NAME]] ':'"));
21970 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot have both 'except' and 'except*' on the same 'try'" );
21971 if (_res == NULL && PyErr_Occurred()) {
21972 p->error_indicator = 1;
21973 p->level--;
21974 return NULL;
21975 }
21976 goto done;
21977 }
21978 p->mark = _mark;
21979 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
21980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block* except_star_block+ 'except' [expression ['as' NAME]] ':'"));
21981 }
21982 _res = NULL;
21983 done:
21984 p->level--;
21985 return _res;
21986 }
21987
21988 // invalid_except_stmt:
21989 // | 'except' '*'? expression ',' expressions ['as' NAME] ':'
21990 // | 'except' '*'? expression ['as' NAME] NEWLINE
21991 // | 'except' NEWLINE
21992 // | 'except' '*' (NEWLINE | ':')
21993 static void *
invalid_except_stmt_rule(Parser * p)21994 invalid_except_stmt_rule(Parser *p)
21995 {
21996 if (p->level++ == MAXSTACK) {
21997 p->error_indicator = 1;
21998 PyErr_NoMemory();
21999 }
22000 if (p->error_indicator) {
22001 p->level--;
22002 return NULL;
22003 }
22004 void * _res = NULL;
22005 int _mark = p->mark;
22006 { // 'except' '*'? expression ',' expressions ['as' NAME] ':'
22007 if (p->error_indicator) {
22008 p->level--;
22009 return NULL;
22010 }
22011 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*'? expression ',' expressions ['as' NAME] ':'"));
22012 Token * _keyword;
22013 Token * _literal;
22014 Token * _literal_1;
22015 void *_opt_var;
22016 UNUSED(_opt_var); // Silence compiler warnings
22017 void *_opt_var_1;
22018 UNUSED(_opt_var_1); // Silence compiler warnings
22019 expr_ty a;
22020 expr_ty expressions_var;
22021 if (
22022 (_keyword = _PyPegen_expect_token(p, 634)) // token='except'
22023 &&
22024 (_opt_var = _PyPegen_expect_token(p, 16), !p->error_indicator) // '*'?
22025 &&
22026 (a = expression_rule(p)) // expression
22027 &&
22028 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22029 &&
22030 (expressions_var = expressions_rule(p)) // expressions
22031 &&
22032 (_opt_var_1 = _tmp_209_rule(p), !p->error_indicator) // ['as' NAME]
22033 &&
22034 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
22035 )
22036 {
22037 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*'? expression ',' expressions ['as' NAME] ':'"));
22038 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized" );
22039 if (_res == NULL && PyErr_Occurred()) {
22040 p->error_indicator = 1;
22041 p->level--;
22042 return NULL;
22043 }
22044 goto done;
22045 }
22046 p->mark = _mark;
22047 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
22048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*'? expression ',' expressions ['as' NAME] ':'"));
22049 }
22050 { // 'except' '*'? expression ['as' NAME] NEWLINE
22051 if (p->error_indicator) {
22052 p->level--;
22053 return NULL;
22054 }
22055 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*'? expression ['as' NAME] NEWLINE"));
22056 void *_opt_var;
22057 UNUSED(_opt_var); // Silence compiler warnings
22058 void *_opt_var_1;
22059 UNUSED(_opt_var_1); // Silence compiler warnings
22060 Token * a;
22061 expr_ty expression_var;
22062 Token * newline_var;
22063 if (
22064 (a = _PyPegen_expect_token(p, 634)) // token='except'
22065 &&
22066 (_opt_var = _PyPegen_expect_token(p, 16), !p->error_indicator) // '*'?
22067 &&
22068 (expression_var = expression_rule(p)) // expression
22069 &&
22070 (_opt_var_1 = _tmp_210_rule(p), !p->error_indicator) // ['as' NAME]
22071 &&
22072 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22073 )
22074 {
22075 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*'? expression ['as' NAME] NEWLINE"));
22076 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
22077 if (_res == NULL && PyErr_Occurred()) {
22078 p->error_indicator = 1;
22079 p->level--;
22080 return NULL;
22081 }
22082 goto done;
22083 }
22084 p->mark = _mark;
22085 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
22086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*'? expression ['as' NAME] NEWLINE"));
22087 }
22088 { // 'except' NEWLINE
22089 if (p->error_indicator) {
22090 p->level--;
22091 return NULL;
22092 }
22093 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
22094 Token * a;
22095 Token * newline_var;
22096 if (
22097 (a = _PyPegen_expect_token(p, 634)) // token='except'
22098 &&
22099 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22100 )
22101 {
22102 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
22103 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
22104 if (_res == NULL && PyErr_Occurred()) {
22105 p->error_indicator = 1;
22106 p->level--;
22107 return NULL;
22108 }
22109 goto done;
22110 }
22111 p->mark = _mark;
22112 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
22113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
22114 }
22115 { // 'except' '*' (NEWLINE | ':')
22116 if (p->error_indicator) {
22117 p->level--;
22118 return NULL;
22119 }
22120 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')"));
22121 Token * _literal;
22122 void *_tmp_211_var;
22123 Token * a;
22124 if (
22125 (a = _PyPegen_expect_token(p, 634)) // token='except'
22126 &&
22127 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
22128 &&
22129 (_tmp_211_var = _tmp_211_rule(p)) // NEWLINE | ':'
22130 )
22131 {
22132 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')"));
22133 _res = RAISE_SYNTAX_ERROR ( "expected one or more exception types" );
22134 if (_res == NULL && PyErr_Occurred()) {
22135 p->error_indicator = 1;
22136 p->level--;
22137 return NULL;
22138 }
22139 goto done;
22140 }
22141 p->mark = _mark;
22142 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
22143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' (NEWLINE | ':')"));
22144 }
22145 _res = NULL;
22146 done:
22147 p->level--;
22148 return _res;
22149 }
22150
22151 // invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
22152 static void *
invalid_finally_stmt_rule(Parser * p)22153 invalid_finally_stmt_rule(Parser *p)
22154 {
22155 if (p->level++ == MAXSTACK) {
22156 p->error_indicator = 1;
22157 PyErr_NoMemory();
22158 }
22159 if (p->error_indicator) {
22160 p->level--;
22161 return NULL;
22162 }
22163 void * _res = NULL;
22164 int _mark = p->mark;
22165 { // 'finally' ':' NEWLINE !INDENT
22166 if (p->error_indicator) {
22167 p->level--;
22168 return NULL;
22169 }
22170 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
22171 Token * _literal;
22172 Token * a;
22173 Token * newline_var;
22174 if (
22175 (a = _PyPegen_expect_token(p, 630)) // token='finally'
22176 &&
22177 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
22178 &&
22179 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22180 &&
22181 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
22182 )
22183 {
22184 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
22185 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
22186 if (_res == NULL && PyErr_Occurred()) {
22187 p->error_indicator = 1;
22188 p->level--;
22189 return NULL;
22190 }
22191 goto done;
22192 }
22193 p->mark = _mark;
22194 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
22195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
22196 }
22197 _res = NULL;
22198 done:
22199 p->level--;
22200 return _res;
22201 }
22202
22203 // invalid_except_stmt_indent:
22204 // | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
22205 // | 'except' ':' NEWLINE !INDENT
22206 static void *
invalid_except_stmt_indent_rule(Parser * p)22207 invalid_except_stmt_indent_rule(Parser *p)
22208 {
22209 if (p->level++ == MAXSTACK) {
22210 p->error_indicator = 1;
22211 PyErr_NoMemory();
22212 }
22213 if (p->error_indicator) {
22214 p->level--;
22215 return NULL;
22216 }
22217 void * _res = NULL;
22218 int _mark = p->mark;
22219 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
22220 if (p->error_indicator) {
22221 p->level--;
22222 return NULL;
22223 }
22224 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
22225 Token * _literal;
22226 void *_opt_var;
22227 UNUSED(_opt_var); // Silence compiler warnings
22228 Token * a;
22229 expr_ty expression_var;
22230 Token * newline_var;
22231 if (
22232 (a = _PyPegen_expect_token(p, 634)) // token='except'
22233 &&
22234 (expression_var = expression_rule(p)) // expression
22235 &&
22236 (_opt_var = _tmp_212_rule(p), !p->error_indicator) // ['as' NAME]
22237 &&
22238 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
22239 &&
22240 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22241 &&
22242 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
22243 )
22244 {
22245 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
22246 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
22247 if (_res == NULL && PyErr_Occurred()) {
22248 p->error_indicator = 1;
22249 p->level--;
22250 return NULL;
22251 }
22252 goto done;
22253 }
22254 p->mark = _mark;
22255 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
22256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
22257 }
22258 { // 'except' ':' NEWLINE !INDENT
22259 if (p->error_indicator) {
22260 p->level--;
22261 return NULL;
22262 }
22263 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
22264 Token * _literal;
22265 Token * a;
22266 Token * newline_var;
22267 if (
22268 (a = _PyPegen_expect_token(p, 634)) // token='except'
22269 &&
22270 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
22271 &&
22272 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22273 &&
22274 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
22275 )
22276 {
22277 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
22278 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
22279 if (_res == NULL && PyErr_Occurred()) {
22280 p->error_indicator = 1;
22281 p->level--;
22282 return NULL;
22283 }
22284 goto done;
22285 }
22286 p->mark = _mark;
22287 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
22288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
22289 }
22290 _res = NULL;
22291 done:
22292 p->level--;
22293 return _res;
22294 }
22295
22296 // invalid_except_star_stmt_indent:
22297 // | 'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT
22298 static void *
invalid_except_star_stmt_indent_rule(Parser * p)22299 invalid_except_star_stmt_indent_rule(Parser *p)
22300 {
22301 if (p->level++ == MAXSTACK) {
22302 p->error_indicator = 1;
22303 PyErr_NoMemory();
22304 }
22305 if (p->error_indicator) {
22306 p->level--;
22307 return NULL;
22308 }
22309 void * _res = NULL;
22310 int _mark = p->mark;
22311 { // 'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT
22312 if (p->error_indicator) {
22313 p->level--;
22314 return NULL;
22315 }
22316 D(fprintf(stderr, "%*c> invalid_except_star_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT"));
22317 Token * _literal;
22318 Token * _literal_1;
22319 void *_opt_var;
22320 UNUSED(_opt_var); // Silence compiler warnings
22321 Token * a;
22322 expr_ty expression_var;
22323 Token * newline_var;
22324 if (
22325 (a = _PyPegen_expect_token(p, 634)) // token='except'
22326 &&
22327 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
22328 &&
22329 (expression_var = expression_rule(p)) // expression
22330 &&
22331 (_opt_var = _tmp_213_rule(p), !p->error_indicator) // ['as' NAME]
22332 &&
22333 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
22334 &&
22335 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22336 &&
22337 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
22338 )
22339 {
22340 D(fprintf(stderr, "%*c+ invalid_except_star_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT"));
22341 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except*' statement on line %d" , a -> lineno );
22342 if (_res == NULL && PyErr_Occurred()) {
22343 p->error_indicator = 1;
22344 p->level--;
22345 return NULL;
22346 }
22347 goto done;
22348 }
22349 p->mark = _mark;
22350 D(fprintf(stderr, "%*c%s invalid_except_star_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
22351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT"));
22352 }
22353 _res = NULL;
22354 done:
22355 p->level--;
22356 return _res;
22357 }
22358
22359 // invalid_match_stmt:
22360 // | "match" subject_expr NEWLINE
22361 // | "match" subject_expr ':' NEWLINE !INDENT
22362 static void *
invalid_match_stmt_rule(Parser * p)22363 invalid_match_stmt_rule(Parser *p)
22364 {
22365 if (p->level++ == MAXSTACK) {
22366 p->error_indicator = 1;
22367 PyErr_NoMemory();
22368 }
22369 if (p->error_indicator) {
22370 p->level--;
22371 return NULL;
22372 }
22373 void * _res = NULL;
22374 int _mark = p->mark;
22375 { // "match" subject_expr NEWLINE
22376 if (p->error_indicator) {
22377 p->level--;
22378 return NULL;
22379 }
22380 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr NEWLINE"));
22381 expr_ty _keyword;
22382 Token * newline_var;
22383 expr_ty subject_expr_var;
22384 if (
22385 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
22386 &&
22387 (subject_expr_var = subject_expr_rule(p)) // subject_expr
22388 &&
22389 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22390 )
22391 {
22392 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr NEWLINE"));
22393 _res = CHECK_VERSION ( void* , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
22394 if (_res == NULL && PyErr_Occurred()) {
22395 p->error_indicator = 1;
22396 p->level--;
22397 return NULL;
22398 }
22399 goto done;
22400 }
22401 p->mark = _mark;
22402 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
22403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr NEWLINE"));
22404 }
22405 { // "match" subject_expr ':' NEWLINE !INDENT
22406 if (p->error_indicator) {
22407 p->level--;
22408 return NULL;
22409 }
22410 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
22411 Token * _literal;
22412 expr_ty a;
22413 Token * newline_var;
22414 expr_ty subject;
22415 if (
22416 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
22417 &&
22418 (subject = subject_expr_rule(p)) // subject_expr
22419 &&
22420 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
22421 &&
22422 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22423 &&
22424 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
22425 )
22426 {
22427 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
22428 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
22429 if (_res == NULL && PyErr_Occurred()) {
22430 p->error_indicator = 1;
22431 p->level--;
22432 return NULL;
22433 }
22434 goto done;
22435 }
22436 p->mark = _mark;
22437 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
22438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
22439 }
22440 _res = NULL;
22441 done:
22442 p->level--;
22443 return _res;
22444 }
22445
22446 // invalid_case_block:
22447 // | "case" patterns guard? NEWLINE
22448 // | "case" patterns guard? ':' NEWLINE !INDENT
22449 static void *
invalid_case_block_rule(Parser * p)22450 invalid_case_block_rule(Parser *p)
22451 {
22452 if (p->level++ == MAXSTACK) {
22453 p->error_indicator = 1;
22454 PyErr_NoMemory();
22455 }
22456 if (p->error_indicator) {
22457 p->level--;
22458 return NULL;
22459 }
22460 void * _res = NULL;
22461 int _mark = p->mark;
22462 { // "case" patterns guard? NEWLINE
22463 if (p->error_indicator) {
22464 p->level--;
22465 return NULL;
22466 }
22467 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? NEWLINE"));
22468 expr_ty _keyword;
22469 void *_opt_var;
22470 UNUSED(_opt_var); // Silence compiler warnings
22471 Token * newline_var;
22472 pattern_ty patterns_var;
22473 if (
22474 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
22475 &&
22476 (patterns_var = patterns_rule(p)) // patterns
22477 &&
22478 (_opt_var = guard_rule(p), !p->error_indicator) // guard?
22479 &&
22480 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22481 )
22482 {
22483 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? NEWLINE"));
22484 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
22485 if (_res == NULL && PyErr_Occurred()) {
22486 p->error_indicator = 1;
22487 p->level--;
22488 return NULL;
22489 }
22490 goto done;
22491 }
22492 p->mark = _mark;
22493 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
22494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? NEWLINE"));
22495 }
22496 { // "case" patterns guard? ':' NEWLINE !INDENT
22497 if (p->error_indicator) {
22498 p->level--;
22499 return NULL;
22500 }
22501 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
22502 Token * _literal;
22503 void *_opt_var;
22504 UNUSED(_opt_var); // Silence compiler warnings
22505 expr_ty a;
22506 Token * newline_var;
22507 pattern_ty patterns_var;
22508 if (
22509 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
22510 &&
22511 (patterns_var = patterns_rule(p)) // patterns
22512 &&
22513 (_opt_var = guard_rule(p), !p->error_indicator) // guard?
22514 &&
22515 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
22516 &&
22517 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22518 &&
22519 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
22520 )
22521 {
22522 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
22523 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
22524 if (_res == NULL && PyErr_Occurred()) {
22525 p->error_indicator = 1;
22526 p->level--;
22527 return NULL;
22528 }
22529 goto done;
22530 }
22531 p->mark = _mark;
22532 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
22533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
22534 }
22535 _res = NULL;
22536 done:
22537 p->level--;
22538 return _res;
22539 }
22540
22541 // invalid_as_pattern: or_pattern 'as' "_" | or_pattern 'as' !NAME expression
22542 static void *
invalid_as_pattern_rule(Parser * p)22543 invalid_as_pattern_rule(Parser *p)
22544 {
22545 if (p->level++ == MAXSTACK) {
22546 p->error_indicator = 1;
22547 PyErr_NoMemory();
22548 }
22549 if (p->error_indicator) {
22550 p->level--;
22551 return NULL;
22552 }
22553 void * _res = NULL;
22554 int _mark = p->mark;
22555 { // or_pattern 'as' "_"
22556 if (p->error_indicator) {
22557 p->level--;
22558 return NULL;
22559 }
22560 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
22561 Token * _keyword;
22562 expr_ty a;
22563 pattern_ty or_pattern_var;
22564 if (
22565 (or_pattern_var = or_pattern_rule(p)) // or_pattern
22566 &&
22567 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
22568 &&
22569 (a = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
22570 )
22571 {
22572 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
22573 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use '_' as a target" );
22574 if (_res == NULL && PyErr_Occurred()) {
22575 p->error_indicator = 1;
22576 p->level--;
22577 return NULL;
22578 }
22579 goto done;
22580 }
22581 p->mark = _mark;
22582 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
22583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' \"_\""));
22584 }
22585 { // or_pattern 'as' !NAME expression
22586 if (p->error_indicator) {
22587 p->level--;
22588 return NULL;
22589 }
22590 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
22591 Token * _keyword;
22592 expr_ty a;
22593 pattern_ty or_pattern_var;
22594 if (
22595 (or_pattern_var = or_pattern_rule(p)) // or_pattern
22596 &&
22597 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
22598 &&
22599 _PyPegen_lookahead_with_name(0, _PyPegen_name_token, p)
22600 &&
22601 (a = expression_rule(p)) // expression
22602 )
22603 {
22604 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
22605 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid pattern target" );
22606 if (_res == NULL && PyErr_Occurred()) {
22607 p->error_indicator = 1;
22608 p->level--;
22609 return NULL;
22610 }
22611 goto done;
22612 }
22613 p->mark = _mark;
22614 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
22615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' !NAME expression"));
22616 }
22617 _res = NULL;
22618 done:
22619 p->level--;
22620 return _res;
22621 }
22622
22623 // invalid_class_pattern: name_or_attr '(' invalid_class_argument_pattern
22624 static void *
invalid_class_pattern_rule(Parser * p)22625 invalid_class_pattern_rule(Parser *p)
22626 {
22627 if (p->level++ == MAXSTACK) {
22628 p->error_indicator = 1;
22629 PyErr_NoMemory();
22630 }
22631 if (p->error_indicator) {
22632 p->level--;
22633 return NULL;
22634 }
22635 void * _res = NULL;
22636 int _mark = p->mark;
22637 { // name_or_attr '(' invalid_class_argument_pattern
22638 if (p->error_indicator) {
22639 p->level--;
22640 return NULL;
22641 }
22642 D(fprintf(stderr, "%*c> invalid_class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
22643 Token * _literal;
22644 asdl_pattern_seq* a;
22645 expr_ty name_or_attr_var;
22646 if (
22647 (name_or_attr_var = name_or_attr_rule(p)) // name_or_attr
22648 &&
22649 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22650 &&
22651 (a = invalid_class_argument_pattern_rule(p)) // invalid_class_argument_pattern
22652 )
22653 {
22654 D(fprintf(stderr, "%*c+ invalid_class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
22655 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( PyPegen_first_item ( a , pattern_ty ) , PyPegen_last_item ( a , pattern_ty ) , "positional patterns follow keyword patterns" );
22656 if (_res == NULL && PyErr_Occurred()) {
22657 p->error_indicator = 1;
22658 p->level--;
22659 return NULL;
22660 }
22661 goto done;
22662 }
22663 p->mark = _mark;
22664 D(fprintf(stderr, "%*c%s invalid_class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
22665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
22666 }
22667 _res = NULL;
22668 done:
22669 p->level--;
22670 return _res;
22671 }
22672
22673 // invalid_class_argument_pattern:
22674 // | [positional_patterns ','] keyword_patterns ',' positional_patterns
22675 static asdl_pattern_seq*
invalid_class_argument_pattern_rule(Parser * p)22676 invalid_class_argument_pattern_rule(Parser *p)
22677 {
22678 if (p->level++ == MAXSTACK) {
22679 p->error_indicator = 1;
22680 PyErr_NoMemory();
22681 }
22682 if (p->error_indicator) {
22683 p->level--;
22684 return NULL;
22685 }
22686 asdl_pattern_seq* _res = NULL;
22687 int _mark = p->mark;
22688 { // [positional_patterns ','] keyword_patterns ',' positional_patterns
22689 if (p->error_indicator) {
22690 p->level--;
22691 return NULL;
22692 }
22693 D(fprintf(stderr, "%*c> invalid_class_argument_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
22694 Token * _literal;
22695 void *_opt_var;
22696 UNUSED(_opt_var); // Silence compiler warnings
22697 asdl_pattern_seq* a;
22698 asdl_seq* keyword_patterns_var;
22699 if (
22700 (_opt_var = _tmp_214_rule(p), !p->error_indicator) // [positional_patterns ',']
22701 &&
22702 (keyword_patterns_var = keyword_patterns_rule(p)) // keyword_patterns
22703 &&
22704 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22705 &&
22706 (a = positional_patterns_rule(p)) // positional_patterns
22707 )
22708 {
22709 D(fprintf(stderr, "%*c+ invalid_class_argument_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
22710 _res = a;
22711 if (_res == NULL && PyErr_Occurred()) {
22712 p->error_indicator = 1;
22713 p->level--;
22714 return NULL;
22715 }
22716 goto done;
22717 }
22718 p->mark = _mark;
22719 D(fprintf(stderr, "%*c%s invalid_class_argument_pattern[%d-%d]: %s failed!\n", p->level, ' ',
22720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
22721 }
22722 _res = NULL;
22723 done:
22724 p->level--;
22725 return _res;
22726 }
22727
22728 // invalid_if_stmt:
22729 // | 'if' named_expression NEWLINE
22730 // | 'if' named_expression ':' NEWLINE !INDENT
22731 static void *
invalid_if_stmt_rule(Parser * p)22732 invalid_if_stmt_rule(Parser *p)
22733 {
22734 if (p->level++ == MAXSTACK) {
22735 p->error_indicator = 1;
22736 PyErr_NoMemory();
22737 }
22738 if (p->error_indicator) {
22739 p->level--;
22740 return NULL;
22741 }
22742 void * _res = NULL;
22743 int _mark = p->mark;
22744 { // 'if' named_expression NEWLINE
22745 if (p->error_indicator) {
22746 p->level--;
22747 return NULL;
22748 }
22749 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
22750 Token * _keyword;
22751 expr_ty named_expression_var;
22752 Token * newline_var;
22753 if (
22754 (_keyword = _PyPegen_expect_token(p, 639)) // token='if'
22755 &&
22756 (named_expression_var = named_expression_rule(p)) // named_expression
22757 &&
22758 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22759 )
22760 {
22761 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
22762 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
22763 if (_res == NULL && PyErr_Occurred()) {
22764 p->error_indicator = 1;
22765 p->level--;
22766 return NULL;
22767 }
22768 goto done;
22769 }
22770 p->mark = _mark;
22771 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
22772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
22773 }
22774 { // 'if' named_expression ':' NEWLINE !INDENT
22775 if (p->error_indicator) {
22776 p->level--;
22777 return NULL;
22778 }
22779 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
22780 Token * _literal;
22781 Token * a;
22782 expr_ty a_1;
22783 Token * newline_var;
22784 if (
22785 (a = _PyPegen_expect_token(p, 639)) // token='if'
22786 &&
22787 (a_1 = named_expression_rule(p)) // named_expression
22788 &&
22789 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
22790 &&
22791 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22792 &&
22793 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
22794 )
22795 {
22796 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
22797 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
22798 if (_res == NULL && PyErr_Occurred()) {
22799 p->error_indicator = 1;
22800 p->level--;
22801 return NULL;
22802 }
22803 goto done;
22804 }
22805 p->mark = _mark;
22806 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
22807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
22808 }
22809 _res = NULL;
22810 done:
22811 p->level--;
22812 return _res;
22813 }
22814
22815 // invalid_elif_stmt:
22816 // | 'elif' named_expression NEWLINE
22817 // | 'elif' named_expression ':' NEWLINE !INDENT
22818 static void *
invalid_elif_stmt_rule(Parser * p)22819 invalid_elif_stmt_rule(Parser *p)
22820 {
22821 if (p->level++ == MAXSTACK) {
22822 p->error_indicator = 1;
22823 PyErr_NoMemory();
22824 }
22825 if (p->error_indicator) {
22826 p->level--;
22827 return NULL;
22828 }
22829 void * _res = NULL;
22830 int _mark = p->mark;
22831 { // 'elif' named_expression NEWLINE
22832 if (p->error_indicator) {
22833 p->level--;
22834 return NULL;
22835 }
22836 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
22837 Token * _keyword;
22838 expr_ty named_expression_var;
22839 Token * newline_var;
22840 if (
22841 (_keyword = _PyPegen_expect_token(p, 641)) // token='elif'
22842 &&
22843 (named_expression_var = named_expression_rule(p)) // named_expression
22844 &&
22845 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22846 )
22847 {
22848 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
22849 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
22850 if (_res == NULL && PyErr_Occurred()) {
22851 p->error_indicator = 1;
22852 p->level--;
22853 return NULL;
22854 }
22855 goto done;
22856 }
22857 p->mark = _mark;
22858 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
22859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
22860 }
22861 { // 'elif' named_expression ':' NEWLINE !INDENT
22862 if (p->error_indicator) {
22863 p->level--;
22864 return NULL;
22865 }
22866 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
22867 Token * _literal;
22868 Token * a;
22869 expr_ty named_expression_var;
22870 Token * newline_var;
22871 if (
22872 (a = _PyPegen_expect_token(p, 641)) // token='elif'
22873 &&
22874 (named_expression_var = named_expression_rule(p)) // named_expression
22875 &&
22876 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
22877 &&
22878 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22879 &&
22880 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
22881 )
22882 {
22883 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
22884 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
22885 if (_res == NULL && PyErr_Occurred()) {
22886 p->error_indicator = 1;
22887 p->level--;
22888 return NULL;
22889 }
22890 goto done;
22891 }
22892 p->mark = _mark;
22893 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
22894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
22895 }
22896 _res = NULL;
22897 done:
22898 p->level--;
22899 return _res;
22900 }
22901
22902 // invalid_else_stmt: 'else' ':' NEWLINE !INDENT
22903 static void *
invalid_else_stmt_rule(Parser * p)22904 invalid_else_stmt_rule(Parser *p)
22905 {
22906 if (p->level++ == MAXSTACK) {
22907 p->error_indicator = 1;
22908 PyErr_NoMemory();
22909 }
22910 if (p->error_indicator) {
22911 p->level--;
22912 return NULL;
22913 }
22914 void * _res = NULL;
22915 int _mark = p->mark;
22916 { // 'else' ':' NEWLINE !INDENT
22917 if (p->error_indicator) {
22918 p->level--;
22919 return NULL;
22920 }
22921 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
22922 Token * _literal;
22923 Token * a;
22924 Token * newline_var;
22925 if (
22926 (a = _PyPegen_expect_token(p, 642)) // token='else'
22927 &&
22928 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
22929 &&
22930 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22931 &&
22932 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
22933 )
22934 {
22935 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
22936 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
22937 if (_res == NULL && PyErr_Occurred()) {
22938 p->error_indicator = 1;
22939 p->level--;
22940 return NULL;
22941 }
22942 goto done;
22943 }
22944 p->mark = _mark;
22945 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
22946 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
22947 }
22948 _res = NULL;
22949 done:
22950 p->level--;
22951 return _res;
22952 }
22953
22954 // invalid_while_stmt:
22955 // | 'while' named_expression NEWLINE
22956 // | 'while' named_expression ':' NEWLINE !INDENT
22957 static void *
invalid_while_stmt_rule(Parser * p)22958 invalid_while_stmt_rule(Parser *p)
22959 {
22960 if (p->level++ == MAXSTACK) {
22961 p->error_indicator = 1;
22962 PyErr_NoMemory();
22963 }
22964 if (p->error_indicator) {
22965 p->level--;
22966 return NULL;
22967 }
22968 void * _res = NULL;
22969 int _mark = p->mark;
22970 { // 'while' named_expression NEWLINE
22971 if (p->error_indicator) {
22972 p->level--;
22973 return NULL;
22974 }
22975 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
22976 Token * _keyword;
22977 expr_ty named_expression_var;
22978 Token * newline_var;
22979 if (
22980 (_keyword = _PyPegen_expect_token(p, 644)) // token='while'
22981 &&
22982 (named_expression_var = named_expression_rule(p)) // named_expression
22983 &&
22984 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22985 )
22986 {
22987 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
22988 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
22989 if (_res == NULL && PyErr_Occurred()) {
22990 p->error_indicator = 1;
22991 p->level--;
22992 return NULL;
22993 }
22994 goto done;
22995 }
22996 p->mark = _mark;
22997 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
22998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
22999 }
23000 { // 'while' named_expression ':' NEWLINE !INDENT
23001 if (p->error_indicator) {
23002 p->level--;
23003 return NULL;
23004 }
23005 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
23006 Token * _literal;
23007 Token * a;
23008 expr_ty named_expression_var;
23009 Token * newline_var;
23010 if (
23011 (a = _PyPegen_expect_token(p, 644)) // token='while'
23012 &&
23013 (named_expression_var = named_expression_rule(p)) // named_expression
23014 &&
23015 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23016 &&
23017 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
23018 &&
23019 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
23020 )
23021 {
23022 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
23023 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
23024 if (_res == NULL && PyErr_Occurred()) {
23025 p->error_indicator = 1;
23026 p->level--;
23027 return NULL;
23028 }
23029 goto done;
23030 }
23031 p->mark = _mark;
23032 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
23033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
23034 }
23035 _res = NULL;
23036 done:
23037 p->level--;
23038 return _res;
23039 }
23040
23041 // invalid_for_stmt:
23042 // | ASYNC? 'for' star_targets 'in' star_expressions NEWLINE
23043 // | ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
23044 static void *
invalid_for_stmt_rule(Parser * p)23045 invalid_for_stmt_rule(Parser *p)
23046 {
23047 if (p->level++ == MAXSTACK) {
23048 p->error_indicator = 1;
23049 PyErr_NoMemory();
23050 }
23051 if (p->error_indicator) {
23052 p->level--;
23053 return NULL;
23054 }
23055 void * _res = NULL;
23056 int _mark = p->mark;
23057 { // ASYNC? 'for' star_targets 'in' star_expressions NEWLINE
23058 if (p->error_indicator) {
23059 p->level--;
23060 return NULL;
23061 }
23062 D(fprintf(stderr, "%*c> invalid_for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions NEWLINE"));
23063 Token * _keyword;
23064 Token * _keyword_1;
23065 void *_opt_var;
23066 UNUSED(_opt_var); // Silence compiler warnings
23067 Token * newline_var;
23068 expr_ty star_expressions_var;
23069 expr_ty star_targets_var;
23070 if (
23071 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
23072 &&
23073 (_keyword = _PyPegen_expect_token(p, 647)) // token='for'
23074 &&
23075 (star_targets_var = star_targets_rule(p)) // star_targets
23076 &&
23077 (_keyword_1 = _PyPegen_expect_token(p, 648)) // token='in'
23078 &&
23079 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23080 &&
23081 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
23082 )
23083 {
23084 D(fprintf(stderr, "%*c+ invalid_for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions NEWLINE"));
23085 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
23086 if (_res == NULL && PyErr_Occurred()) {
23087 p->error_indicator = 1;
23088 p->level--;
23089 return NULL;
23090 }
23091 goto done;
23092 }
23093 p->mark = _mark;
23094 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
23095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions NEWLINE"));
23096 }
23097 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
23098 if (p->error_indicator) {
23099 p->level--;
23100 return NULL;
23101 }
23102 D(fprintf(stderr, "%*c> invalid_for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
23103 Token * _keyword;
23104 Token * _literal;
23105 void *_opt_var;
23106 UNUSED(_opt_var); // Silence compiler warnings
23107 Token * a;
23108 Token * newline_var;
23109 expr_ty star_expressions_var;
23110 expr_ty star_targets_var;
23111 if (
23112 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
23113 &&
23114 (a = _PyPegen_expect_token(p, 647)) // token='for'
23115 &&
23116 (star_targets_var = star_targets_rule(p)) // star_targets
23117 &&
23118 (_keyword = _PyPegen_expect_token(p, 648)) // token='in'
23119 &&
23120 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23121 &&
23122 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23123 &&
23124 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
23125 &&
23126 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
23127 )
23128 {
23129 D(fprintf(stderr, "%*c+ invalid_for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
23130 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
23131 if (_res == NULL && PyErr_Occurred()) {
23132 p->error_indicator = 1;
23133 p->level--;
23134 return NULL;
23135 }
23136 goto done;
23137 }
23138 p->mark = _mark;
23139 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
23140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
23141 }
23142 _res = NULL;
23143 done:
23144 p->level--;
23145 return _res;
23146 }
23147
23148 // invalid_def_raw:
23149 // | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
23150 static void *
invalid_def_raw_rule(Parser * p)23151 invalid_def_raw_rule(Parser *p)
23152 {
23153 if (p->level++ == MAXSTACK) {
23154 p->error_indicator = 1;
23155 PyErr_NoMemory();
23156 }
23157 if (p->error_indicator) {
23158 p->level--;
23159 return NULL;
23160 }
23161 void * _res = NULL;
23162 int _mark = p->mark;
23163 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
23164 if (p->error_indicator) {
23165 p->level--;
23166 return NULL;
23167 }
23168 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
23169 Token * _literal;
23170 Token * _literal_1;
23171 Token * _literal_2;
23172 void *_opt_var;
23173 UNUSED(_opt_var); // Silence compiler warnings
23174 void *_opt_var_1;
23175 UNUSED(_opt_var_1); // Silence compiler warnings
23176 void *_opt_var_2;
23177 UNUSED(_opt_var_2); // Silence compiler warnings
23178 Token * a;
23179 expr_ty name_var;
23180 Token * newline_var;
23181 if (
23182 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
23183 &&
23184 (a = _PyPegen_expect_token(p, 649)) // token='def'
23185 &&
23186 (name_var = _PyPegen_name_token(p)) // NAME
23187 &&
23188 (_literal = _PyPegen_expect_token(p, 7)) // token='('
23189 &&
23190 (_opt_var_1 = params_rule(p), !p->error_indicator) // params?
23191 &&
23192 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
23193 &&
23194 (_opt_var_2 = _tmp_215_rule(p), !p->error_indicator) // ['->' expression]
23195 &&
23196 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
23197 &&
23198 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
23199 &&
23200 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
23201 )
23202 {
23203 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
23204 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
23205 if (_res == NULL && PyErr_Occurred()) {
23206 p->error_indicator = 1;
23207 p->level--;
23208 return NULL;
23209 }
23210 goto done;
23211 }
23212 p->mark = _mark;
23213 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
23214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
23215 }
23216 _res = NULL;
23217 done:
23218 p->level--;
23219 return _res;
23220 }
23221
23222 // invalid_class_def_raw:
23223 // | 'class' NAME ['(' arguments? ')'] NEWLINE
23224 // | 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
23225 static void *
invalid_class_def_raw_rule(Parser * p)23226 invalid_class_def_raw_rule(Parser *p)
23227 {
23228 if (p->level++ == MAXSTACK) {
23229 p->error_indicator = 1;
23230 PyErr_NoMemory();
23231 }
23232 if (p->error_indicator) {
23233 p->level--;
23234 return NULL;
23235 }
23236 void * _res = NULL;
23237 int _mark = p->mark;
23238 { // 'class' NAME ['(' arguments? ')'] NEWLINE
23239 if (p->error_indicator) {
23240 p->level--;
23241 return NULL;
23242 }
23243 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] NEWLINE"));
23244 Token * _keyword;
23245 void *_opt_var;
23246 UNUSED(_opt_var); // Silence compiler warnings
23247 expr_ty name_var;
23248 Token * newline_var;
23249 if (
23250 (_keyword = _PyPegen_expect_token(p, 651)) // token='class'
23251 &&
23252 (name_var = _PyPegen_name_token(p)) // NAME
23253 &&
23254 (_opt_var = _tmp_216_rule(p), !p->error_indicator) // ['(' arguments? ')']
23255 &&
23256 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
23257 )
23258 {
23259 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] NEWLINE"));
23260 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
23261 if (_res == NULL && PyErr_Occurred()) {
23262 p->error_indicator = 1;
23263 p->level--;
23264 return NULL;
23265 }
23266 goto done;
23267 }
23268 p->mark = _mark;
23269 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
23270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] NEWLINE"));
23271 }
23272 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
23273 if (p->error_indicator) {
23274 p->level--;
23275 return NULL;
23276 }
23277 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
23278 Token * _literal;
23279 void *_opt_var;
23280 UNUSED(_opt_var); // Silence compiler warnings
23281 Token * a;
23282 expr_ty name_var;
23283 Token * newline_var;
23284 if (
23285 (a = _PyPegen_expect_token(p, 651)) // token='class'
23286 &&
23287 (name_var = _PyPegen_name_token(p)) // NAME
23288 &&
23289 (_opt_var = _tmp_217_rule(p), !p->error_indicator) // ['(' arguments? ')']
23290 &&
23291 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23292 &&
23293 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
23294 &&
23295 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
23296 )
23297 {
23298 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
23299 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
23300 if (_res == NULL && PyErr_Occurred()) {
23301 p->error_indicator = 1;
23302 p->level--;
23303 return NULL;
23304 }
23305 goto done;
23306 }
23307 p->mark = _mark;
23308 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
23309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
23310 }
23311 _res = NULL;
23312 done:
23313 p->level--;
23314 return _res;
23315 }
23316
23317 // invalid_double_starred_kvpairs:
23318 // | ','.double_starred_kvpair+ ',' invalid_kvpair
23319 // | expression ':' '*' bitwise_or
23320 // | expression ':' &('}' | ',')
23321 static void *
invalid_double_starred_kvpairs_rule(Parser * p)23322 invalid_double_starred_kvpairs_rule(Parser *p)
23323 {
23324 if (p->level++ == MAXSTACK) {
23325 p->error_indicator = 1;
23326 PyErr_NoMemory();
23327 }
23328 if (p->error_indicator) {
23329 p->level--;
23330 return NULL;
23331 }
23332 void * _res = NULL;
23333 int _mark = p->mark;
23334 { // ','.double_starred_kvpair+ ',' invalid_kvpair
23335 if (p->error_indicator) {
23336 p->level--;
23337 return NULL;
23338 }
23339 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
23340 asdl_seq * _gather_218_var;
23341 Token * _literal;
23342 void *invalid_kvpair_var;
23343 if (
23344 (_gather_218_var = _gather_218_rule(p)) // ','.double_starred_kvpair+
23345 &&
23346 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23347 &&
23348 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
23349 )
23350 {
23351 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
23352 _res = _PyPegen_dummy_name(p, _gather_218_var, _literal, invalid_kvpair_var);
23353 goto done;
23354 }
23355 p->mark = _mark;
23356 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
23357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
23358 }
23359 { // expression ':' '*' bitwise_or
23360 if (p->error_indicator) {
23361 p->level--;
23362 return NULL;
23363 }
23364 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
23365 Token * _literal;
23366 Token * a;
23367 expr_ty bitwise_or_var;
23368 expr_ty expression_var;
23369 if (
23370 (expression_var = expression_rule(p)) // expression
23371 &&
23372 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23373 &&
23374 (a = _PyPegen_expect_token(p, 16)) // token='*'
23375 &&
23376 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
23377 )
23378 {
23379 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
23380 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
23381 if (_res == NULL && PyErr_Occurred()) {
23382 p->error_indicator = 1;
23383 p->level--;
23384 return NULL;
23385 }
23386 goto done;
23387 }
23388 p->mark = _mark;
23389 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
23390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
23391 }
23392 { // expression ':' &('}' | ',')
23393 if (p->error_indicator) {
23394 p->level--;
23395 return NULL;
23396 }
23397 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
23398 Token * a;
23399 expr_ty expression_var;
23400 if (
23401 (expression_var = expression_rule(p)) // expression
23402 &&
23403 (a = _PyPegen_expect_token(p, 11)) // token=':'
23404 &&
23405 _PyPegen_lookahead(1, _tmp_220_rule, p)
23406 )
23407 {
23408 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
23409 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
23410 if (_res == NULL && PyErr_Occurred()) {
23411 p->error_indicator = 1;
23412 p->level--;
23413 return NULL;
23414 }
23415 goto done;
23416 }
23417 p->mark = _mark;
23418 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
23419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
23420 }
23421 _res = NULL;
23422 done:
23423 p->level--;
23424 return _res;
23425 }
23426
23427 // invalid_kvpair:
23428 // | expression !(':')
23429 // | expression ':' '*' bitwise_or
23430 // | expression ':' &('}' | ',')
23431 static void *
invalid_kvpair_rule(Parser * p)23432 invalid_kvpair_rule(Parser *p)
23433 {
23434 if (p->level++ == MAXSTACK) {
23435 p->error_indicator = 1;
23436 PyErr_NoMemory();
23437 }
23438 if (p->error_indicator) {
23439 p->level--;
23440 return NULL;
23441 }
23442 void * _res = NULL;
23443 int _mark = p->mark;
23444 { // expression !(':')
23445 if (p->error_indicator) {
23446 p->level--;
23447 return NULL;
23448 }
23449 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
23450 expr_ty a;
23451 if (
23452 (a = expression_rule(p)) // expression
23453 &&
23454 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
23455 )
23456 {
23457 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
23458 _res = RAISE_ERROR_KNOWN_LOCATION ( p , PyExc_SyntaxError , a -> lineno , a -> end_col_offset - 1 , a -> end_lineno , - 1 , "':' expected after dictionary key" );
23459 if (_res == NULL && PyErr_Occurred()) {
23460 p->error_indicator = 1;
23461 p->level--;
23462 return NULL;
23463 }
23464 goto done;
23465 }
23466 p->mark = _mark;
23467 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
23468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
23469 }
23470 { // expression ':' '*' bitwise_or
23471 if (p->error_indicator) {
23472 p->level--;
23473 return NULL;
23474 }
23475 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
23476 Token * _literal;
23477 Token * a;
23478 expr_ty bitwise_or_var;
23479 expr_ty expression_var;
23480 if (
23481 (expression_var = expression_rule(p)) // expression
23482 &&
23483 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23484 &&
23485 (a = _PyPegen_expect_token(p, 16)) // token='*'
23486 &&
23487 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
23488 )
23489 {
23490 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
23491 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
23492 if (_res == NULL && PyErr_Occurred()) {
23493 p->error_indicator = 1;
23494 p->level--;
23495 return NULL;
23496 }
23497 goto done;
23498 }
23499 p->mark = _mark;
23500 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
23501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
23502 }
23503 { // expression ':' &('}' | ',')
23504 if (p->error_indicator) {
23505 p->level--;
23506 return NULL;
23507 }
23508 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
23509 Token * a;
23510 expr_ty expression_var;
23511 if (
23512 (expression_var = expression_rule(p)) // expression
23513 &&
23514 (a = _PyPegen_expect_token(p, 11)) // token=':'
23515 &&
23516 _PyPegen_lookahead(1, _tmp_221_rule, p)
23517 )
23518 {
23519 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
23520 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
23521 if (_res == NULL && PyErr_Occurred()) {
23522 p->error_indicator = 1;
23523 p->level--;
23524 return NULL;
23525 }
23526 goto done;
23527 }
23528 p->mark = _mark;
23529 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
23530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
23531 }
23532 _res = NULL;
23533 done:
23534 p->level--;
23535 return _res;
23536 }
23537
23538 // _loop0_1: NEWLINE
23539 static asdl_seq *
_loop0_1_rule(Parser * p)23540 _loop0_1_rule(Parser *p)
23541 {
23542 if (p->level++ == MAXSTACK) {
23543 p->error_indicator = 1;
23544 PyErr_NoMemory();
23545 }
23546 if (p->error_indicator) {
23547 p->level--;
23548 return NULL;
23549 }
23550 void *_res = NULL;
23551 int _mark = p->mark;
23552 void **_children = PyMem_Malloc(sizeof(void *));
23553 if (!_children) {
23554 p->error_indicator = 1;
23555 PyErr_NoMemory();
23556 p->level--;
23557 return NULL;
23558 }
23559 Py_ssize_t _children_capacity = 1;
23560 Py_ssize_t _n = 0;
23561 { // NEWLINE
23562 if (p->error_indicator) {
23563 p->level--;
23564 return NULL;
23565 }
23566 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
23567 Token * newline_var;
23568 while (
23569 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
23570 )
23571 {
23572 _res = newline_var;
23573 if (_n == _children_capacity) {
23574 _children_capacity *= 2;
23575 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23576 if (!_new_children) {
23577 PyMem_Free(_children);
23578 p->error_indicator = 1;
23579 PyErr_NoMemory();
23580 p->level--;
23581 return NULL;
23582 }
23583 _children = _new_children;
23584 }
23585 _children[_n++] = _res;
23586 _mark = p->mark;
23587 }
23588 p->mark = _mark;
23589 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
23590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
23591 }
23592 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23593 if (!_seq) {
23594 PyMem_Free(_children);
23595 p->error_indicator = 1;
23596 PyErr_NoMemory();
23597 p->level--;
23598 return NULL;
23599 }
23600 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23601 PyMem_Free(_children);
23602 p->level--;
23603 return _seq;
23604 }
23605
23606 // _loop0_2: NEWLINE
23607 static asdl_seq *
_loop0_2_rule(Parser * p)23608 _loop0_2_rule(Parser *p)
23609 {
23610 if (p->level++ == MAXSTACK) {
23611 p->error_indicator = 1;
23612 PyErr_NoMemory();
23613 }
23614 if (p->error_indicator) {
23615 p->level--;
23616 return NULL;
23617 }
23618 void *_res = NULL;
23619 int _mark = p->mark;
23620 void **_children = PyMem_Malloc(sizeof(void *));
23621 if (!_children) {
23622 p->error_indicator = 1;
23623 PyErr_NoMemory();
23624 p->level--;
23625 return NULL;
23626 }
23627 Py_ssize_t _children_capacity = 1;
23628 Py_ssize_t _n = 0;
23629 { // NEWLINE
23630 if (p->error_indicator) {
23631 p->level--;
23632 return NULL;
23633 }
23634 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
23635 Token * newline_var;
23636 while (
23637 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
23638 )
23639 {
23640 _res = newline_var;
23641 if (_n == _children_capacity) {
23642 _children_capacity *= 2;
23643 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23644 if (!_new_children) {
23645 PyMem_Free(_children);
23646 p->error_indicator = 1;
23647 PyErr_NoMemory();
23648 p->level--;
23649 return NULL;
23650 }
23651 _children = _new_children;
23652 }
23653 _children[_n++] = _res;
23654 _mark = p->mark;
23655 }
23656 p->mark = _mark;
23657 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
23658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
23659 }
23660 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23661 if (!_seq) {
23662 PyMem_Free(_children);
23663 p->error_indicator = 1;
23664 PyErr_NoMemory();
23665 p->level--;
23666 return NULL;
23667 }
23668 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23669 PyMem_Free(_children);
23670 p->level--;
23671 return _seq;
23672 }
23673
23674 // _loop1_3: statement
23675 static asdl_seq *
_loop1_3_rule(Parser * p)23676 _loop1_3_rule(Parser *p)
23677 {
23678 if (p->level++ == MAXSTACK) {
23679 p->error_indicator = 1;
23680 PyErr_NoMemory();
23681 }
23682 if (p->error_indicator) {
23683 p->level--;
23684 return NULL;
23685 }
23686 void *_res = NULL;
23687 int _mark = p->mark;
23688 void **_children = PyMem_Malloc(sizeof(void *));
23689 if (!_children) {
23690 p->error_indicator = 1;
23691 PyErr_NoMemory();
23692 p->level--;
23693 return NULL;
23694 }
23695 Py_ssize_t _children_capacity = 1;
23696 Py_ssize_t _n = 0;
23697 { // statement
23698 if (p->error_indicator) {
23699 p->level--;
23700 return NULL;
23701 }
23702 D(fprintf(stderr, "%*c> _loop1_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
23703 asdl_stmt_seq* statement_var;
23704 while (
23705 (statement_var = statement_rule(p)) // statement
23706 )
23707 {
23708 _res = statement_var;
23709 if (_n == _children_capacity) {
23710 _children_capacity *= 2;
23711 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23712 if (!_new_children) {
23713 PyMem_Free(_children);
23714 p->error_indicator = 1;
23715 PyErr_NoMemory();
23716 p->level--;
23717 return NULL;
23718 }
23719 _children = _new_children;
23720 }
23721 _children[_n++] = _res;
23722 _mark = p->mark;
23723 }
23724 p->mark = _mark;
23725 D(fprintf(stderr, "%*c%s _loop1_3[%d-%d]: %s failed!\n", p->level, ' ',
23726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
23727 }
23728 if (_n == 0 || p->error_indicator) {
23729 PyMem_Free(_children);
23730 p->level--;
23731 return NULL;
23732 }
23733 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23734 if (!_seq) {
23735 PyMem_Free(_children);
23736 p->error_indicator = 1;
23737 PyErr_NoMemory();
23738 p->level--;
23739 return NULL;
23740 }
23741 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23742 PyMem_Free(_children);
23743 p->level--;
23744 return _seq;
23745 }
23746
23747 // _loop0_5: ';' simple_stmt
23748 static asdl_seq *
_loop0_5_rule(Parser * p)23749 _loop0_5_rule(Parser *p)
23750 {
23751 if (p->level++ == MAXSTACK) {
23752 p->error_indicator = 1;
23753 PyErr_NoMemory();
23754 }
23755 if (p->error_indicator) {
23756 p->level--;
23757 return NULL;
23758 }
23759 void *_res = NULL;
23760 int _mark = p->mark;
23761 void **_children = PyMem_Malloc(sizeof(void *));
23762 if (!_children) {
23763 p->error_indicator = 1;
23764 PyErr_NoMemory();
23765 p->level--;
23766 return NULL;
23767 }
23768 Py_ssize_t _children_capacity = 1;
23769 Py_ssize_t _n = 0;
23770 { // ';' simple_stmt
23771 if (p->error_indicator) {
23772 p->level--;
23773 return NULL;
23774 }
23775 D(fprintf(stderr, "%*c> _loop0_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
23776 Token * _literal;
23777 stmt_ty elem;
23778 while (
23779 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
23780 &&
23781 (elem = simple_stmt_rule(p)) // simple_stmt
23782 )
23783 {
23784 _res = elem;
23785 if (_res == NULL && PyErr_Occurred()) {
23786 p->error_indicator = 1;
23787 PyMem_Free(_children);
23788 p->level--;
23789 return NULL;
23790 }
23791 if (_n == _children_capacity) {
23792 _children_capacity *= 2;
23793 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23794 if (!_new_children) {
23795 PyMem_Free(_children);
23796 p->error_indicator = 1;
23797 PyErr_NoMemory();
23798 p->level--;
23799 return NULL;
23800 }
23801 _children = _new_children;
23802 }
23803 _children[_n++] = _res;
23804 _mark = p->mark;
23805 }
23806 p->mark = _mark;
23807 D(fprintf(stderr, "%*c%s _loop0_5[%d-%d]: %s failed!\n", p->level, ' ',
23808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
23809 }
23810 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23811 if (!_seq) {
23812 PyMem_Free(_children);
23813 p->error_indicator = 1;
23814 PyErr_NoMemory();
23815 p->level--;
23816 return NULL;
23817 }
23818 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23819 PyMem_Free(_children);
23820 p->level--;
23821 return _seq;
23822 }
23823
23824 // _gather_4: simple_stmt _loop0_5
23825 static asdl_seq *
_gather_4_rule(Parser * p)23826 _gather_4_rule(Parser *p)
23827 {
23828 if (p->level++ == MAXSTACK) {
23829 p->error_indicator = 1;
23830 PyErr_NoMemory();
23831 }
23832 if (p->error_indicator) {
23833 p->level--;
23834 return NULL;
23835 }
23836 asdl_seq * _res = NULL;
23837 int _mark = p->mark;
23838 { // simple_stmt _loop0_5
23839 if (p->error_indicator) {
23840 p->level--;
23841 return NULL;
23842 }
23843 D(fprintf(stderr, "%*c> _gather_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt _loop0_5"));
23844 stmt_ty elem;
23845 asdl_seq * seq;
23846 if (
23847 (elem = simple_stmt_rule(p)) // simple_stmt
23848 &&
23849 (seq = _loop0_5_rule(p)) // _loop0_5
23850 )
23851 {
23852 D(fprintf(stderr, "%*c+ _gather_4[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt _loop0_5"));
23853 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23854 goto done;
23855 }
23856 p->mark = _mark;
23857 D(fprintf(stderr, "%*c%s _gather_4[%d-%d]: %s failed!\n", p->level, ' ',
23858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_5"));
23859 }
23860 _res = NULL;
23861 done:
23862 p->level--;
23863 return _res;
23864 }
23865
23866 // _tmp_6: 'import' | 'from'
23867 static void *
_tmp_6_rule(Parser * p)23868 _tmp_6_rule(Parser *p)
23869 {
23870 if (p->level++ == MAXSTACK) {
23871 p->error_indicator = 1;
23872 PyErr_NoMemory();
23873 }
23874 if (p->error_indicator) {
23875 p->level--;
23876 return NULL;
23877 }
23878 void * _res = NULL;
23879 int _mark = p->mark;
23880 { // 'import'
23881 if (p->error_indicator) {
23882 p->level--;
23883 return NULL;
23884 }
23885 D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
23886 Token * _keyword;
23887 if (
23888 (_keyword = _PyPegen_expect_token(p, 531)) // token='import'
23889 )
23890 {
23891 D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
23892 _res = _keyword;
23893 goto done;
23894 }
23895 p->mark = _mark;
23896 D(fprintf(stderr, "%*c%s _tmp_6[%d-%d]: %s failed!\n", p->level, ' ',
23897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
23898 }
23899 { // 'from'
23900 if (p->error_indicator) {
23901 p->level--;
23902 return NULL;
23903 }
23904 D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
23905 Token * _keyword;
23906 if (
23907 (_keyword = _PyPegen_expect_token(p, 572)) // token='from'
23908 )
23909 {
23910 D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
23911 _res = _keyword;
23912 goto done;
23913 }
23914 p->mark = _mark;
23915 D(fprintf(stderr, "%*c%s _tmp_6[%d-%d]: %s failed!\n", p->level, ' ',
23916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
23917 }
23918 _res = NULL;
23919 done:
23920 p->level--;
23921 return _res;
23922 }
23923
23924 // _tmp_7: 'def' | '@' | ASYNC
23925 static void *
_tmp_7_rule(Parser * p)23926 _tmp_7_rule(Parser *p)
23927 {
23928 if (p->level++ == MAXSTACK) {
23929 p->error_indicator = 1;
23930 PyErr_NoMemory();
23931 }
23932 if (p->error_indicator) {
23933 p->level--;
23934 return NULL;
23935 }
23936 void * _res = NULL;
23937 int _mark = p->mark;
23938 { // 'def'
23939 if (p->error_indicator) {
23940 p->level--;
23941 return NULL;
23942 }
23943 D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
23944 Token * _keyword;
23945 if (
23946 (_keyword = _PyPegen_expect_token(p, 649)) // token='def'
23947 )
23948 {
23949 D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
23950 _res = _keyword;
23951 goto done;
23952 }
23953 p->mark = _mark;
23954 D(fprintf(stderr, "%*c%s _tmp_7[%d-%d]: %s failed!\n", p->level, ' ',
23955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
23956 }
23957 { // '@'
23958 if (p->error_indicator) {
23959 p->level--;
23960 return NULL;
23961 }
23962 D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
23963 Token * _literal;
23964 if (
23965 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
23966 )
23967 {
23968 D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
23969 _res = _literal;
23970 goto done;
23971 }
23972 p->mark = _mark;
23973 D(fprintf(stderr, "%*c%s _tmp_7[%d-%d]: %s failed!\n", p->level, ' ',
23974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
23975 }
23976 { // ASYNC
23977 if (p->error_indicator) {
23978 p->level--;
23979 return NULL;
23980 }
23981 D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
23982 Token * async_var;
23983 if (
23984 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
23985 )
23986 {
23987 D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
23988 _res = async_var;
23989 goto done;
23990 }
23991 p->mark = _mark;
23992 D(fprintf(stderr, "%*c%s _tmp_7[%d-%d]: %s failed!\n", p->level, ' ',
23993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
23994 }
23995 _res = NULL;
23996 done:
23997 p->level--;
23998 return _res;
23999 }
24000
24001 // _tmp_8: 'class' | '@'
24002 static void *
_tmp_8_rule(Parser * p)24003 _tmp_8_rule(Parser *p)
24004 {
24005 if (p->level++ == MAXSTACK) {
24006 p->error_indicator = 1;
24007 PyErr_NoMemory();
24008 }
24009 if (p->error_indicator) {
24010 p->level--;
24011 return NULL;
24012 }
24013 void * _res = NULL;
24014 int _mark = p->mark;
24015 { // 'class'
24016 if (p->error_indicator) {
24017 p->level--;
24018 return NULL;
24019 }
24020 D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
24021 Token * _keyword;
24022 if (
24023 (_keyword = _PyPegen_expect_token(p, 651)) // token='class'
24024 )
24025 {
24026 D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
24027 _res = _keyword;
24028 goto done;
24029 }
24030 p->mark = _mark;
24031 D(fprintf(stderr, "%*c%s _tmp_8[%d-%d]: %s failed!\n", p->level, ' ',
24032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
24033 }
24034 { // '@'
24035 if (p->error_indicator) {
24036 p->level--;
24037 return NULL;
24038 }
24039 D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
24040 Token * _literal;
24041 if (
24042 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
24043 )
24044 {
24045 D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
24046 _res = _literal;
24047 goto done;
24048 }
24049 p->mark = _mark;
24050 D(fprintf(stderr, "%*c%s _tmp_8[%d-%d]: %s failed!\n", p->level, ' ',
24051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
24052 }
24053 _res = NULL;
24054 done:
24055 p->level--;
24056 return _res;
24057 }
24058
24059 // _tmp_9: 'with' | ASYNC
24060 static void *
_tmp_9_rule(Parser * p)24061 _tmp_9_rule(Parser *p)
24062 {
24063 if (p->level++ == MAXSTACK) {
24064 p->error_indicator = 1;
24065 PyErr_NoMemory();
24066 }
24067 if (p->error_indicator) {
24068 p->level--;
24069 return NULL;
24070 }
24071 void * _res = NULL;
24072 int _mark = p->mark;
24073 { // 'with'
24074 if (p->error_indicator) {
24075 p->level--;
24076 return NULL;
24077 }
24078 D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
24079 Token * _keyword;
24080 if (
24081 (_keyword = _PyPegen_expect_token(p, 612)) // token='with'
24082 )
24083 {
24084 D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
24085 _res = _keyword;
24086 goto done;
24087 }
24088 p->mark = _mark;
24089 D(fprintf(stderr, "%*c%s _tmp_9[%d-%d]: %s failed!\n", p->level, ' ',
24090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
24091 }
24092 { // ASYNC
24093 if (p->error_indicator) {
24094 p->level--;
24095 return NULL;
24096 }
24097 D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
24098 Token * async_var;
24099 if (
24100 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
24101 )
24102 {
24103 D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
24104 _res = async_var;
24105 goto done;
24106 }
24107 p->mark = _mark;
24108 D(fprintf(stderr, "%*c%s _tmp_9[%d-%d]: %s failed!\n", p->level, ' ',
24109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
24110 }
24111 _res = NULL;
24112 done:
24113 p->level--;
24114 return _res;
24115 }
24116
24117 // _tmp_10: 'for' | ASYNC
24118 static void *
_tmp_10_rule(Parser * p)24119 _tmp_10_rule(Parser *p)
24120 {
24121 if (p->level++ == MAXSTACK) {
24122 p->error_indicator = 1;
24123 PyErr_NoMemory();
24124 }
24125 if (p->error_indicator) {
24126 p->level--;
24127 return NULL;
24128 }
24129 void * _res = NULL;
24130 int _mark = p->mark;
24131 { // 'for'
24132 if (p->error_indicator) {
24133 p->level--;
24134 return NULL;
24135 }
24136 D(fprintf(stderr, "%*c> _tmp_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
24137 Token * _keyword;
24138 if (
24139 (_keyword = _PyPegen_expect_token(p, 647)) // token='for'
24140 )
24141 {
24142 D(fprintf(stderr, "%*c+ _tmp_10[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
24143 _res = _keyword;
24144 goto done;
24145 }
24146 p->mark = _mark;
24147 D(fprintf(stderr, "%*c%s _tmp_10[%d-%d]: %s failed!\n", p->level, ' ',
24148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
24149 }
24150 { // ASYNC
24151 if (p->error_indicator) {
24152 p->level--;
24153 return NULL;
24154 }
24155 D(fprintf(stderr, "%*c> _tmp_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
24156 Token * async_var;
24157 if (
24158 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
24159 )
24160 {
24161 D(fprintf(stderr, "%*c+ _tmp_10[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
24162 _res = async_var;
24163 goto done;
24164 }
24165 p->mark = _mark;
24166 D(fprintf(stderr, "%*c%s _tmp_10[%d-%d]: %s failed!\n", p->level, ' ',
24167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
24168 }
24169 _res = NULL;
24170 done:
24171 p->level--;
24172 return _res;
24173 }
24174
24175 // _tmp_11: '=' annotated_rhs
24176 static void *
_tmp_11_rule(Parser * p)24177 _tmp_11_rule(Parser *p)
24178 {
24179 if (p->level++ == MAXSTACK) {
24180 p->error_indicator = 1;
24181 PyErr_NoMemory();
24182 }
24183 if (p->error_indicator) {
24184 p->level--;
24185 return NULL;
24186 }
24187 void * _res = NULL;
24188 int _mark = p->mark;
24189 { // '=' annotated_rhs
24190 if (p->error_indicator) {
24191 p->level--;
24192 return NULL;
24193 }
24194 D(fprintf(stderr, "%*c> _tmp_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
24195 Token * _literal;
24196 expr_ty d;
24197 if (
24198 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24199 &&
24200 (d = annotated_rhs_rule(p)) // annotated_rhs
24201 )
24202 {
24203 D(fprintf(stderr, "%*c+ _tmp_11[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
24204 _res = d;
24205 if (_res == NULL && PyErr_Occurred()) {
24206 p->error_indicator = 1;
24207 p->level--;
24208 return NULL;
24209 }
24210 goto done;
24211 }
24212 p->mark = _mark;
24213 D(fprintf(stderr, "%*c%s _tmp_11[%d-%d]: %s failed!\n", p->level, ' ',
24214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
24215 }
24216 _res = NULL;
24217 done:
24218 p->level--;
24219 return _res;
24220 }
24221
24222 // _tmp_12: '(' single_target ')' | single_subscript_attribute_target
24223 static void *
_tmp_12_rule(Parser * p)24224 _tmp_12_rule(Parser *p)
24225 {
24226 if (p->level++ == MAXSTACK) {
24227 p->error_indicator = 1;
24228 PyErr_NoMemory();
24229 }
24230 if (p->error_indicator) {
24231 p->level--;
24232 return NULL;
24233 }
24234 void * _res = NULL;
24235 int _mark = p->mark;
24236 { // '(' single_target ')'
24237 if (p->error_indicator) {
24238 p->level--;
24239 return NULL;
24240 }
24241 D(fprintf(stderr, "%*c> _tmp_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
24242 Token * _literal;
24243 Token * _literal_1;
24244 expr_ty b;
24245 if (
24246 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24247 &&
24248 (b = single_target_rule(p)) // single_target
24249 &&
24250 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
24251 )
24252 {
24253 D(fprintf(stderr, "%*c+ _tmp_12[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
24254 _res = b;
24255 if (_res == NULL && PyErr_Occurred()) {
24256 p->error_indicator = 1;
24257 p->level--;
24258 return NULL;
24259 }
24260 goto done;
24261 }
24262 p->mark = _mark;
24263 D(fprintf(stderr, "%*c%s _tmp_12[%d-%d]: %s failed!\n", p->level, ' ',
24264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
24265 }
24266 { // single_subscript_attribute_target
24267 if (p->error_indicator) {
24268 p->level--;
24269 return NULL;
24270 }
24271 D(fprintf(stderr, "%*c> _tmp_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
24272 expr_ty single_subscript_attribute_target_var;
24273 if (
24274 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
24275 )
24276 {
24277 D(fprintf(stderr, "%*c+ _tmp_12[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
24278 _res = single_subscript_attribute_target_var;
24279 goto done;
24280 }
24281 p->mark = _mark;
24282 D(fprintf(stderr, "%*c%s _tmp_12[%d-%d]: %s failed!\n", p->level, ' ',
24283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
24284 }
24285 _res = NULL;
24286 done:
24287 p->level--;
24288 return _res;
24289 }
24290
24291 // _tmp_13: '=' annotated_rhs
24292 static void *
_tmp_13_rule(Parser * p)24293 _tmp_13_rule(Parser *p)
24294 {
24295 if (p->level++ == MAXSTACK) {
24296 p->error_indicator = 1;
24297 PyErr_NoMemory();
24298 }
24299 if (p->error_indicator) {
24300 p->level--;
24301 return NULL;
24302 }
24303 void * _res = NULL;
24304 int _mark = p->mark;
24305 { // '=' annotated_rhs
24306 if (p->error_indicator) {
24307 p->level--;
24308 return NULL;
24309 }
24310 D(fprintf(stderr, "%*c> _tmp_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
24311 Token * _literal;
24312 expr_ty d;
24313 if (
24314 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24315 &&
24316 (d = annotated_rhs_rule(p)) // annotated_rhs
24317 )
24318 {
24319 D(fprintf(stderr, "%*c+ _tmp_13[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
24320 _res = d;
24321 if (_res == NULL && PyErr_Occurred()) {
24322 p->error_indicator = 1;
24323 p->level--;
24324 return NULL;
24325 }
24326 goto done;
24327 }
24328 p->mark = _mark;
24329 D(fprintf(stderr, "%*c%s _tmp_13[%d-%d]: %s failed!\n", p->level, ' ',
24330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
24331 }
24332 _res = NULL;
24333 done:
24334 p->level--;
24335 return _res;
24336 }
24337
24338 // _loop1_14: (star_targets '=')
24339 static asdl_seq *
_loop1_14_rule(Parser * p)24340 _loop1_14_rule(Parser *p)
24341 {
24342 if (p->level++ == MAXSTACK) {
24343 p->error_indicator = 1;
24344 PyErr_NoMemory();
24345 }
24346 if (p->error_indicator) {
24347 p->level--;
24348 return NULL;
24349 }
24350 void *_res = NULL;
24351 int _mark = p->mark;
24352 void **_children = PyMem_Malloc(sizeof(void *));
24353 if (!_children) {
24354 p->error_indicator = 1;
24355 PyErr_NoMemory();
24356 p->level--;
24357 return NULL;
24358 }
24359 Py_ssize_t _children_capacity = 1;
24360 Py_ssize_t _n = 0;
24361 { // (star_targets '=')
24362 if (p->error_indicator) {
24363 p->level--;
24364 return NULL;
24365 }
24366 D(fprintf(stderr, "%*c> _loop1_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
24367 void *_tmp_222_var;
24368 while (
24369 (_tmp_222_var = _tmp_222_rule(p)) // star_targets '='
24370 )
24371 {
24372 _res = _tmp_222_var;
24373 if (_n == _children_capacity) {
24374 _children_capacity *= 2;
24375 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24376 if (!_new_children) {
24377 PyMem_Free(_children);
24378 p->error_indicator = 1;
24379 PyErr_NoMemory();
24380 p->level--;
24381 return NULL;
24382 }
24383 _children = _new_children;
24384 }
24385 _children[_n++] = _res;
24386 _mark = p->mark;
24387 }
24388 p->mark = _mark;
24389 D(fprintf(stderr, "%*c%s _loop1_14[%d-%d]: %s failed!\n", p->level, ' ',
24390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
24391 }
24392 if (_n == 0 || p->error_indicator) {
24393 PyMem_Free(_children);
24394 p->level--;
24395 return NULL;
24396 }
24397 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24398 if (!_seq) {
24399 PyMem_Free(_children);
24400 p->error_indicator = 1;
24401 PyErr_NoMemory();
24402 p->level--;
24403 return NULL;
24404 }
24405 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24406 PyMem_Free(_children);
24407 p->level--;
24408 return _seq;
24409 }
24410
24411 // _tmp_15: yield_expr | star_expressions
24412 static void *
_tmp_15_rule(Parser * p)24413 _tmp_15_rule(Parser *p)
24414 {
24415 if (p->level++ == MAXSTACK) {
24416 p->error_indicator = 1;
24417 PyErr_NoMemory();
24418 }
24419 if (p->error_indicator) {
24420 p->level--;
24421 return NULL;
24422 }
24423 void * _res = NULL;
24424 int _mark = p->mark;
24425 { // yield_expr
24426 if (p->error_indicator) {
24427 p->level--;
24428 return NULL;
24429 }
24430 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
24431 expr_ty yield_expr_var;
24432 if (
24433 (yield_expr_var = yield_expr_rule(p)) // yield_expr
24434 )
24435 {
24436 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
24437 _res = yield_expr_var;
24438 goto done;
24439 }
24440 p->mark = _mark;
24441 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
24442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
24443 }
24444 { // star_expressions
24445 if (p->error_indicator) {
24446 p->level--;
24447 return NULL;
24448 }
24449 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
24450 expr_ty star_expressions_var;
24451 if (
24452 (star_expressions_var = star_expressions_rule(p)) // star_expressions
24453 )
24454 {
24455 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
24456 _res = star_expressions_var;
24457 goto done;
24458 }
24459 p->mark = _mark;
24460 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
24461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
24462 }
24463 _res = NULL;
24464 done:
24465 p->level--;
24466 return _res;
24467 }
24468
24469 // _tmp_16: yield_expr | star_expressions
24470 static void *
_tmp_16_rule(Parser * p)24471 _tmp_16_rule(Parser *p)
24472 {
24473 if (p->level++ == MAXSTACK) {
24474 p->error_indicator = 1;
24475 PyErr_NoMemory();
24476 }
24477 if (p->error_indicator) {
24478 p->level--;
24479 return NULL;
24480 }
24481 void * _res = NULL;
24482 int _mark = p->mark;
24483 { // yield_expr
24484 if (p->error_indicator) {
24485 p->level--;
24486 return NULL;
24487 }
24488 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
24489 expr_ty yield_expr_var;
24490 if (
24491 (yield_expr_var = yield_expr_rule(p)) // yield_expr
24492 )
24493 {
24494 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
24495 _res = yield_expr_var;
24496 goto done;
24497 }
24498 p->mark = _mark;
24499 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
24500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
24501 }
24502 { // star_expressions
24503 if (p->error_indicator) {
24504 p->level--;
24505 return NULL;
24506 }
24507 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
24508 expr_ty star_expressions_var;
24509 if (
24510 (star_expressions_var = star_expressions_rule(p)) // star_expressions
24511 )
24512 {
24513 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
24514 _res = star_expressions_var;
24515 goto done;
24516 }
24517 p->mark = _mark;
24518 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
24519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
24520 }
24521 _res = NULL;
24522 done:
24523 p->level--;
24524 return _res;
24525 }
24526
24527 // _tmp_17: 'from' expression
24528 static void *
_tmp_17_rule(Parser * p)24529 _tmp_17_rule(Parser *p)
24530 {
24531 if (p->level++ == MAXSTACK) {
24532 p->error_indicator = 1;
24533 PyErr_NoMemory();
24534 }
24535 if (p->error_indicator) {
24536 p->level--;
24537 return NULL;
24538 }
24539 void * _res = NULL;
24540 int _mark = p->mark;
24541 { // 'from' expression
24542 if (p->error_indicator) {
24543 p->level--;
24544 return NULL;
24545 }
24546 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
24547 Token * _keyword;
24548 expr_ty z;
24549 if (
24550 (_keyword = _PyPegen_expect_token(p, 572)) // token='from'
24551 &&
24552 (z = expression_rule(p)) // expression
24553 )
24554 {
24555 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' expression"));
24556 _res = z;
24557 if (_res == NULL && PyErr_Occurred()) {
24558 p->error_indicator = 1;
24559 p->level--;
24560 return NULL;
24561 }
24562 goto done;
24563 }
24564 p->mark = _mark;
24565 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
24566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
24567 }
24568 _res = NULL;
24569 done:
24570 p->level--;
24571 return _res;
24572 }
24573
24574 // _loop0_19: ',' NAME
24575 static asdl_seq *
_loop0_19_rule(Parser * p)24576 _loop0_19_rule(Parser *p)
24577 {
24578 if (p->level++ == MAXSTACK) {
24579 p->error_indicator = 1;
24580 PyErr_NoMemory();
24581 }
24582 if (p->error_indicator) {
24583 p->level--;
24584 return NULL;
24585 }
24586 void *_res = NULL;
24587 int _mark = p->mark;
24588 void **_children = PyMem_Malloc(sizeof(void *));
24589 if (!_children) {
24590 p->error_indicator = 1;
24591 PyErr_NoMemory();
24592 p->level--;
24593 return NULL;
24594 }
24595 Py_ssize_t _children_capacity = 1;
24596 Py_ssize_t _n = 0;
24597 { // ',' NAME
24598 if (p->error_indicator) {
24599 p->level--;
24600 return NULL;
24601 }
24602 D(fprintf(stderr, "%*c> _loop0_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
24603 Token * _literal;
24604 expr_ty elem;
24605 while (
24606 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24607 &&
24608 (elem = _PyPegen_name_token(p)) // NAME
24609 )
24610 {
24611 _res = elem;
24612 if (_res == NULL && PyErr_Occurred()) {
24613 p->error_indicator = 1;
24614 PyMem_Free(_children);
24615 p->level--;
24616 return NULL;
24617 }
24618 if (_n == _children_capacity) {
24619 _children_capacity *= 2;
24620 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24621 if (!_new_children) {
24622 PyMem_Free(_children);
24623 p->error_indicator = 1;
24624 PyErr_NoMemory();
24625 p->level--;
24626 return NULL;
24627 }
24628 _children = _new_children;
24629 }
24630 _children[_n++] = _res;
24631 _mark = p->mark;
24632 }
24633 p->mark = _mark;
24634 D(fprintf(stderr, "%*c%s _loop0_19[%d-%d]: %s failed!\n", p->level, ' ',
24635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
24636 }
24637 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24638 if (!_seq) {
24639 PyMem_Free(_children);
24640 p->error_indicator = 1;
24641 PyErr_NoMemory();
24642 p->level--;
24643 return NULL;
24644 }
24645 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24646 PyMem_Free(_children);
24647 p->level--;
24648 return _seq;
24649 }
24650
24651 // _gather_18: NAME _loop0_19
24652 static asdl_seq *
_gather_18_rule(Parser * p)24653 _gather_18_rule(Parser *p)
24654 {
24655 if (p->level++ == MAXSTACK) {
24656 p->error_indicator = 1;
24657 PyErr_NoMemory();
24658 }
24659 if (p->error_indicator) {
24660 p->level--;
24661 return NULL;
24662 }
24663 asdl_seq * _res = NULL;
24664 int _mark = p->mark;
24665 { // NAME _loop0_19
24666 if (p->error_indicator) {
24667 p->level--;
24668 return NULL;
24669 }
24670 D(fprintf(stderr, "%*c> _gather_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_19"));
24671 expr_ty elem;
24672 asdl_seq * seq;
24673 if (
24674 (elem = _PyPegen_name_token(p)) // NAME
24675 &&
24676 (seq = _loop0_19_rule(p)) // _loop0_19
24677 )
24678 {
24679 D(fprintf(stderr, "%*c+ _gather_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_19"));
24680 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24681 goto done;
24682 }
24683 p->mark = _mark;
24684 D(fprintf(stderr, "%*c%s _gather_18[%d-%d]: %s failed!\n", p->level, ' ',
24685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_19"));
24686 }
24687 _res = NULL;
24688 done:
24689 p->level--;
24690 return _res;
24691 }
24692
24693 // _loop0_21: ',' NAME
24694 static asdl_seq *
_loop0_21_rule(Parser * p)24695 _loop0_21_rule(Parser *p)
24696 {
24697 if (p->level++ == MAXSTACK) {
24698 p->error_indicator = 1;
24699 PyErr_NoMemory();
24700 }
24701 if (p->error_indicator) {
24702 p->level--;
24703 return NULL;
24704 }
24705 void *_res = NULL;
24706 int _mark = p->mark;
24707 void **_children = PyMem_Malloc(sizeof(void *));
24708 if (!_children) {
24709 p->error_indicator = 1;
24710 PyErr_NoMemory();
24711 p->level--;
24712 return NULL;
24713 }
24714 Py_ssize_t _children_capacity = 1;
24715 Py_ssize_t _n = 0;
24716 { // ',' NAME
24717 if (p->error_indicator) {
24718 p->level--;
24719 return NULL;
24720 }
24721 D(fprintf(stderr, "%*c> _loop0_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
24722 Token * _literal;
24723 expr_ty elem;
24724 while (
24725 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24726 &&
24727 (elem = _PyPegen_name_token(p)) // NAME
24728 )
24729 {
24730 _res = elem;
24731 if (_res == NULL && PyErr_Occurred()) {
24732 p->error_indicator = 1;
24733 PyMem_Free(_children);
24734 p->level--;
24735 return NULL;
24736 }
24737 if (_n == _children_capacity) {
24738 _children_capacity *= 2;
24739 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24740 if (!_new_children) {
24741 PyMem_Free(_children);
24742 p->error_indicator = 1;
24743 PyErr_NoMemory();
24744 p->level--;
24745 return NULL;
24746 }
24747 _children = _new_children;
24748 }
24749 _children[_n++] = _res;
24750 _mark = p->mark;
24751 }
24752 p->mark = _mark;
24753 D(fprintf(stderr, "%*c%s _loop0_21[%d-%d]: %s failed!\n", p->level, ' ',
24754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
24755 }
24756 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24757 if (!_seq) {
24758 PyMem_Free(_children);
24759 p->error_indicator = 1;
24760 PyErr_NoMemory();
24761 p->level--;
24762 return NULL;
24763 }
24764 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24765 PyMem_Free(_children);
24766 p->level--;
24767 return _seq;
24768 }
24769
24770 // _gather_20: NAME _loop0_21
24771 static asdl_seq *
_gather_20_rule(Parser * p)24772 _gather_20_rule(Parser *p)
24773 {
24774 if (p->level++ == MAXSTACK) {
24775 p->error_indicator = 1;
24776 PyErr_NoMemory();
24777 }
24778 if (p->error_indicator) {
24779 p->level--;
24780 return NULL;
24781 }
24782 asdl_seq * _res = NULL;
24783 int _mark = p->mark;
24784 { // NAME _loop0_21
24785 if (p->error_indicator) {
24786 p->level--;
24787 return NULL;
24788 }
24789 D(fprintf(stderr, "%*c> _gather_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_21"));
24790 expr_ty elem;
24791 asdl_seq * seq;
24792 if (
24793 (elem = _PyPegen_name_token(p)) // NAME
24794 &&
24795 (seq = _loop0_21_rule(p)) // _loop0_21
24796 )
24797 {
24798 D(fprintf(stderr, "%*c+ _gather_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_21"));
24799 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24800 goto done;
24801 }
24802 p->mark = _mark;
24803 D(fprintf(stderr, "%*c%s _gather_20[%d-%d]: %s failed!\n", p->level, ' ',
24804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_21"));
24805 }
24806 _res = NULL;
24807 done:
24808 p->level--;
24809 return _res;
24810 }
24811
24812 // _tmp_22: ';' | NEWLINE
24813 static void *
_tmp_22_rule(Parser * p)24814 _tmp_22_rule(Parser *p)
24815 {
24816 if (p->level++ == MAXSTACK) {
24817 p->error_indicator = 1;
24818 PyErr_NoMemory();
24819 }
24820 if (p->error_indicator) {
24821 p->level--;
24822 return NULL;
24823 }
24824 void * _res = NULL;
24825 int _mark = p->mark;
24826 { // ';'
24827 if (p->error_indicator) {
24828 p->level--;
24829 return NULL;
24830 }
24831 D(fprintf(stderr, "%*c> _tmp_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
24832 Token * _literal;
24833 if (
24834 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
24835 )
24836 {
24837 D(fprintf(stderr, "%*c+ _tmp_22[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
24838 _res = _literal;
24839 goto done;
24840 }
24841 p->mark = _mark;
24842 D(fprintf(stderr, "%*c%s _tmp_22[%d-%d]: %s failed!\n", p->level, ' ',
24843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
24844 }
24845 { // NEWLINE
24846 if (p->error_indicator) {
24847 p->level--;
24848 return NULL;
24849 }
24850 D(fprintf(stderr, "%*c> _tmp_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
24851 Token * newline_var;
24852 if (
24853 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
24854 )
24855 {
24856 D(fprintf(stderr, "%*c+ _tmp_22[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
24857 _res = newline_var;
24858 goto done;
24859 }
24860 p->mark = _mark;
24861 D(fprintf(stderr, "%*c%s _tmp_22[%d-%d]: %s failed!\n", p->level, ' ',
24862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
24863 }
24864 _res = NULL;
24865 done:
24866 p->level--;
24867 return _res;
24868 }
24869
24870 // _tmp_23: ',' expression
24871 static void *
_tmp_23_rule(Parser * p)24872 _tmp_23_rule(Parser *p)
24873 {
24874 if (p->level++ == MAXSTACK) {
24875 p->error_indicator = 1;
24876 PyErr_NoMemory();
24877 }
24878 if (p->error_indicator) {
24879 p->level--;
24880 return NULL;
24881 }
24882 void * _res = NULL;
24883 int _mark = p->mark;
24884 { // ',' expression
24885 if (p->error_indicator) {
24886 p->level--;
24887 return NULL;
24888 }
24889 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
24890 Token * _literal;
24891 expr_ty z;
24892 if (
24893 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24894 &&
24895 (z = expression_rule(p)) // expression
24896 )
24897 {
24898 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
24899 _res = z;
24900 if (_res == NULL && PyErr_Occurred()) {
24901 p->error_indicator = 1;
24902 p->level--;
24903 return NULL;
24904 }
24905 goto done;
24906 }
24907 p->mark = _mark;
24908 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
24909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
24910 }
24911 _res = NULL;
24912 done:
24913 p->level--;
24914 return _res;
24915 }
24916
24917 // _loop0_24: ('.' | '...')
24918 static asdl_seq *
_loop0_24_rule(Parser * p)24919 _loop0_24_rule(Parser *p)
24920 {
24921 if (p->level++ == MAXSTACK) {
24922 p->error_indicator = 1;
24923 PyErr_NoMemory();
24924 }
24925 if (p->error_indicator) {
24926 p->level--;
24927 return NULL;
24928 }
24929 void *_res = NULL;
24930 int _mark = p->mark;
24931 void **_children = PyMem_Malloc(sizeof(void *));
24932 if (!_children) {
24933 p->error_indicator = 1;
24934 PyErr_NoMemory();
24935 p->level--;
24936 return NULL;
24937 }
24938 Py_ssize_t _children_capacity = 1;
24939 Py_ssize_t _n = 0;
24940 { // ('.' | '...')
24941 if (p->error_indicator) {
24942 p->level--;
24943 return NULL;
24944 }
24945 D(fprintf(stderr, "%*c> _loop0_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
24946 void *_tmp_223_var;
24947 while (
24948 (_tmp_223_var = _tmp_223_rule(p)) // '.' | '...'
24949 )
24950 {
24951 _res = _tmp_223_var;
24952 if (_n == _children_capacity) {
24953 _children_capacity *= 2;
24954 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24955 if (!_new_children) {
24956 PyMem_Free(_children);
24957 p->error_indicator = 1;
24958 PyErr_NoMemory();
24959 p->level--;
24960 return NULL;
24961 }
24962 _children = _new_children;
24963 }
24964 _children[_n++] = _res;
24965 _mark = p->mark;
24966 }
24967 p->mark = _mark;
24968 D(fprintf(stderr, "%*c%s _loop0_24[%d-%d]: %s failed!\n", p->level, ' ',
24969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
24970 }
24971 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24972 if (!_seq) {
24973 PyMem_Free(_children);
24974 p->error_indicator = 1;
24975 PyErr_NoMemory();
24976 p->level--;
24977 return NULL;
24978 }
24979 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24980 PyMem_Free(_children);
24981 p->level--;
24982 return _seq;
24983 }
24984
24985 // _loop1_25: ('.' | '...')
24986 static asdl_seq *
_loop1_25_rule(Parser * p)24987 _loop1_25_rule(Parser *p)
24988 {
24989 if (p->level++ == MAXSTACK) {
24990 p->error_indicator = 1;
24991 PyErr_NoMemory();
24992 }
24993 if (p->error_indicator) {
24994 p->level--;
24995 return NULL;
24996 }
24997 void *_res = NULL;
24998 int _mark = p->mark;
24999 void **_children = PyMem_Malloc(sizeof(void *));
25000 if (!_children) {
25001 p->error_indicator = 1;
25002 PyErr_NoMemory();
25003 p->level--;
25004 return NULL;
25005 }
25006 Py_ssize_t _children_capacity = 1;
25007 Py_ssize_t _n = 0;
25008 { // ('.' | '...')
25009 if (p->error_indicator) {
25010 p->level--;
25011 return NULL;
25012 }
25013 D(fprintf(stderr, "%*c> _loop1_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
25014 void *_tmp_224_var;
25015 while (
25016 (_tmp_224_var = _tmp_224_rule(p)) // '.' | '...'
25017 )
25018 {
25019 _res = _tmp_224_var;
25020 if (_n == _children_capacity) {
25021 _children_capacity *= 2;
25022 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25023 if (!_new_children) {
25024 PyMem_Free(_children);
25025 p->error_indicator = 1;
25026 PyErr_NoMemory();
25027 p->level--;
25028 return NULL;
25029 }
25030 _children = _new_children;
25031 }
25032 _children[_n++] = _res;
25033 _mark = p->mark;
25034 }
25035 p->mark = _mark;
25036 D(fprintf(stderr, "%*c%s _loop1_25[%d-%d]: %s failed!\n", p->level, ' ',
25037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
25038 }
25039 if (_n == 0 || p->error_indicator) {
25040 PyMem_Free(_children);
25041 p->level--;
25042 return NULL;
25043 }
25044 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25045 if (!_seq) {
25046 PyMem_Free(_children);
25047 p->error_indicator = 1;
25048 PyErr_NoMemory();
25049 p->level--;
25050 return NULL;
25051 }
25052 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25053 PyMem_Free(_children);
25054 p->level--;
25055 return _seq;
25056 }
25057
25058 // _loop0_27: ',' import_from_as_name
25059 static asdl_seq *
_loop0_27_rule(Parser * p)25060 _loop0_27_rule(Parser *p)
25061 {
25062 if (p->level++ == MAXSTACK) {
25063 p->error_indicator = 1;
25064 PyErr_NoMemory();
25065 }
25066 if (p->error_indicator) {
25067 p->level--;
25068 return NULL;
25069 }
25070 void *_res = NULL;
25071 int _mark = p->mark;
25072 void **_children = PyMem_Malloc(sizeof(void *));
25073 if (!_children) {
25074 p->error_indicator = 1;
25075 PyErr_NoMemory();
25076 p->level--;
25077 return NULL;
25078 }
25079 Py_ssize_t _children_capacity = 1;
25080 Py_ssize_t _n = 0;
25081 { // ',' import_from_as_name
25082 if (p->error_indicator) {
25083 p->level--;
25084 return NULL;
25085 }
25086 D(fprintf(stderr, "%*c> _loop0_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' import_from_as_name"));
25087 Token * _literal;
25088 alias_ty elem;
25089 while (
25090 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25091 &&
25092 (elem = import_from_as_name_rule(p)) // import_from_as_name
25093 )
25094 {
25095 _res = elem;
25096 if (_res == NULL && PyErr_Occurred()) {
25097 p->error_indicator = 1;
25098 PyMem_Free(_children);
25099 p->level--;
25100 return NULL;
25101 }
25102 if (_n == _children_capacity) {
25103 _children_capacity *= 2;
25104 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25105 if (!_new_children) {
25106 PyMem_Free(_children);
25107 p->error_indicator = 1;
25108 PyErr_NoMemory();
25109 p->level--;
25110 return NULL;
25111 }
25112 _children = _new_children;
25113 }
25114 _children[_n++] = _res;
25115 _mark = p->mark;
25116 }
25117 p->mark = _mark;
25118 D(fprintf(stderr, "%*c%s _loop0_27[%d-%d]: %s failed!\n", p->level, ' ',
25119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
25120 }
25121 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25122 if (!_seq) {
25123 PyMem_Free(_children);
25124 p->error_indicator = 1;
25125 PyErr_NoMemory();
25126 p->level--;
25127 return NULL;
25128 }
25129 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25130 PyMem_Free(_children);
25131 p->level--;
25132 return _seq;
25133 }
25134
25135 // _gather_26: import_from_as_name _loop0_27
25136 static asdl_seq *
_gather_26_rule(Parser * p)25137 _gather_26_rule(Parser *p)
25138 {
25139 if (p->level++ == MAXSTACK) {
25140 p->error_indicator = 1;
25141 PyErr_NoMemory();
25142 }
25143 if (p->error_indicator) {
25144 p->level--;
25145 return NULL;
25146 }
25147 asdl_seq * _res = NULL;
25148 int _mark = p->mark;
25149 { // import_from_as_name _loop0_27
25150 if (p->error_indicator) {
25151 p->level--;
25152 return NULL;
25153 }
25154 D(fprintf(stderr, "%*c> _gather_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_27"));
25155 alias_ty elem;
25156 asdl_seq * seq;
25157 if (
25158 (elem = import_from_as_name_rule(p)) // import_from_as_name
25159 &&
25160 (seq = _loop0_27_rule(p)) // _loop0_27
25161 )
25162 {
25163 D(fprintf(stderr, "%*c+ _gather_26[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_27"));
25164 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25165 goto done;
25166 }
25167 p->mark = _mark;
25168 D(fprintf(stderr, "%*c%s _gather_26[%d-%d]: %s failed!\n", p->level, ' ',
25169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_27"));
25170 }
25171 _res = NULL;
25172 done:
25173 p->level--;
25174 return _res;
25175 }
25176
25177 // _tmp_28: 'as' NAME
25178 static void *
_tmp_28_rule(Parser * p)25179 _tmp_28_rule(Parser *p)
25180 {
25181 if (p->level++ == MAXSTACK) {
25182 p->error_indicator = 1;
25183 PyErr_NoMemory();
25184 }
25185 if (p->error_indicator) {
25186 p->level--;
25187 return NULL;
25188 }
25189 void * _res = NULL;
25190 int _mark = p->mark;
25191 { // 'as' NAME
25192 if (p->error_indicator) {
25193 p->level--;
25194 return NULL;
25195 }
25196 D(fprintf(stderr, "%*c> _tmp_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
25197 Token * _keyword;
25198 expr_ty z;
25199 if (
25200 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
25201 &&
25202 (z = _PyPegen_name_token(p)) // NAME
25203 )
25204 {
25205 D(fprintf(stderr, "%*c+ _tmp_28[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
25206 _res = z;
25207 if (_res == NULL && PyErr_Occurred()) {
25208 p->error_indicator = 1;
25209 p->level--;
25210 return NULL;
25211 }
25212 goto done;
25213 }
25214 p->mark = _mark;
25215 D(fprintf(stderr, "%*c%s _tmp_28[%d-%d]: %s failed!\n", p->level, ' ',
25216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
25217 }
25218 _res = NULL;
25219 done:
25220 p->level--;
25221 return _res;
25222 }
25223
25224 // _loop0_30: ',' dotted_as_name
25225 static asdl_seq *
_loop0_30_rule(Parser * p)25226 _loop0_30_rule(Parser *p)
25227 {
25228 if (p->level++ == MAXSTACK) {
25229 p->error_indicator = 1;
25230 PyErr_NoMemory();
25231 }
25232 if (p->error_indicator) {
25233 p->level--;
25234 return NULL;
25235 }
25236 void *_res = NULL;
25237 int _mark = p->mark;
25238 void **_children = PyMem_Malloc(sizeof(void *));
25239 if (!_children) {
25240 p->error_indicator = 1;
25241 PyErr_NoMemory();
25242 p->level--;
25243 return NULL;
25244 }
25245 Py_ssize_t _children_capacity = 1;
25246 Py_ssize_t _n = 0;
25247 { // ',' dotted_as_name
25248 if (p->error_indicator) {
25249 p->level--;
25250 return NULL;
25251 }
25252 D(fprintf(stderr, "%*c> _loop0_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_as_name"));
25253 Token * _literal;
25254 alias_ty elem;
25255 while (
25256 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25257 &&
25258 (elem = dotted_as_name_rule(p)) // dotted_as_name
25259 )
25260 {
25261 _res = elem;
25262 if (_res == NULL && PyErr_Occurred()) {
25263 p->error_indicator = 1;
25264 PyMem_Free(_children);
25265 p->level--;
25266 return NULL;
25267 }
25268 if (_n == _children_capacity) {
25269 _children_capacity *= 2;
25270 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25271 if (!_new_children) {
25272 PyMem_Free(_children);
25273 p->error_indicator = 1;
25274 PyErr_NoMemory();
25275 p->level--;
25276 return NULL;
25277 }
25278 _children = _new_children;
25279 }
25280 _children[_n++] = _res;
25281 _mark = p->mark;
25282 }
25283 p->mark = _mark;
25284 D(fprintf(stderr, "%*c%s _loop0_30[%d-%d]: %s failed!\n", p->level, ' ',
25285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
25286 }
25287 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25288 if (!_seq) {
25289 PyMem_Free(_children);
25290 p->error_indicator = 1;
25291 PyErr_NoMemory();
25292 p->level--;
25293 return NULL;
25294 }
25295 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25296 PyMem_Free(_children);
25297 p->level--;
25298 return _seq;
25299 }
25300
25301 // _gather_29: dotted_as_name _loop0_30
25302 static asdl_seq *
_gather_29_rule(Parser * p)25303 _gather_29_rule(Parser *p)
25304 {
25305 if (p->level++ == MAXSTACK) {
25306 p->error_indicator = 1;
25307 PyErr_NoMemory();
25308 }
25309 if (p->error_indicator) {
25310 p->level--;
25311 return NULL;
25312 }
25313 asdl_seq * _res = NULL;
25314 int _mark = p->mark;
25315 { // dotted_as_name _loop0_30
25316 if (p->error_indicator) {
25317 p->level--;
25318 return NULL;
25319 }
25320 D(fprintf(stderr, "%*c> _gather_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_30"));
25321 alias_ty elem;
25322 asdl_seq * seq;
25323 if (
25324 (elem = dotted_as_name_rule(p)) // dotted_as_name
25325 &&
25326 (seq = _loop0_30_rule(p)) // _loop0_30
25327 )
25328 {
25329 D(fprintf(stderr, "%*c+ _gather_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_30"));
25330 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25331 goto done;
25332 }
25333 p->mark = _mark;
25334 D(fprintf(stderr, "%*c%s _gather_29[%d-%d]: %s failed!\n", p->level, ' ',
25335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_30"));
25336 }
25337 _res = NULL;
25338 done:
25339 p->level--;
25340 return _res;
25341 }
25342
25343 // _tmp_31: 'as' NAME
25344 static void *
_tmp_31_rule(Parser * p)25345 _tmp_31_rule(Parser *p)
25346 {
25347 if (p->level++ == MAXSTACK) {
25348 p->error_indicator = 1;
25349 PyErr_NoMemory();
25350 }
25351 if (p->error_indicator) {
25352 p->level--;
25353 return NULL;
25354 }
25355 void * _res = NULL;
25356 int _mark = p->mark;
25357 { // 'as' NAME
25358 if (p->error_indicator) {
25359 p->level--;
25360 return NULL;
25361 }
25362 D(fprintf(stderr, "%*c> _tmp_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
25363 Token * _keyword;
25364 expr_ty z;
25365 if (
25366 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
25367 &&
25368 (z = _PyPegen_name_token(p)) // NAME
25369 )
25370 {
25371 D(fprintf(stderr, "%*c+ _tmp_31[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
25372 _res = z;
25373 if (_res == NULL && PyErr_Occurred()) {
25374 p->error_indicator = 1;
25375 p->level--;
25376 return NULL;
25377 }
25378 goto done;
25379 }
25380 p->mark = _mark;
25381 D(fprintf(stderr, "%*c%s _tmp_31[%d-%d]: %s failed!\n", p->level, ' ',
25382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
25383 }
25384 _res = NULL;
25385 done:
25386 p->level--;
25387 return _res;
25388 }
25389
25390 // _loop1_32: ('@' named_expression NEWLINE)
25391 static asdl_seq *
_loop1_32_rule(Parser * p)25392 _loop1_32_rule(Parser *p)
25393 {
25394 if (p->level++ == MAXSTACK) {
25395 p->error_indicator = 1;
25396 PyErr_NoMemory();
25397 }
25398 if (p->error_indicator) {
25399 p->level--;
25400 return NULL;
25401 }
25402 void *_res = NULL;
25403 int _mark = p->mark;
25404 void **_children = PyMem_Malloc(sizeof(void *));
25405 if (!_children) {
25406 p->error_indicator = 1;
25407 PyErr_NoMemory();
25408 p->level--;
25409 return NULL;
25410 }
25411 Py_ssize_t _children_capacity = 1;
25412 Py_ssize_t _n = 0;
25413 { // ('@' named_expression NEWLINE)
25414 if (p->error_indicator) {
25415 p->level--;
25416 return NULL;
25417 }
25418 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
25419 void *_tmp_225_var;
25420 while (
25421 (_tmp_225_var = _tmp_225_rule(p)) // '@' named_expression NEWLINE
25422 )
25423 {
25424 _res = _tmp_225_var;
25425 if (_n == _children_capacity) {
25426 _children_capacity *= 2;
25427 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25428 if (!_new_children) {
25429 PyMem_Free(_children);
25430 p->error_indicator = 1;
25431 PyErr_NoMemory();
25432 p->level--;
25433 return NULL;
25434 }
25435 _children = _new_children;
25436 }
25437 _children[_n++] = _res;
25438 _mark = p->mark;
25439 }
25440 p->mark = _mark;
25441 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
25442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
25443 }
25444 if (_n == 0 || p->error_indicator) {
25445 PyMem_Free(_children);
25446 p->level--;
25447 return NULL;
25448 }
25449 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25450 if (!_seq) {
25451 PyMem_Free(_children);
25452 p->error_indicator = 1;
25453 PyErr_NoMemory();
25454 p->level--;
25455 return NULL;
25456 }
25457 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25458 PyMem_Free(_children);
25459 p->level--;
25460 return _seq;
25461 }
25462
25463 // _tmp_33: '(' arguments? ')'
25464 static void *
_tmp_33_rule(Parser * p)25465 _tmp_33_rule(Parser *p)
25466 {
25467 if (p->level++ == MAXSTACK) {
25468 p->error_indicator = 1;
25469 PyErr_NoMemory();
25470 }
25471 if (p->error_indicator) {
25472 p->level--;
25473 return NULL;
25474 }
25475 void * _res = NULL;
25476 int _mark = p->mark;
25477 { // '(' arguments? ')'
25478 if (p->error_indicator) {
25479 p->level--;
25480 return NULL;
25481 }
25482 D(fprintf(stderr, "%*c> _tmp_33[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
25483 Token * _literal;
25484 Token * _literal_1;
25485 void *z;
25486 if (
25487 (_literal = _PyPegen_expect_token(p, 7)) // token='('
25488 &&
25489 (z = arguments_rule(p), !p->error_indicator) // arguments?
25490 &&
25491 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
25492 )
25493 {
25494 D(fprintf(stderr, "%*c+ _tmp_33[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
25495 _res = z;
25496 if (_res == NULL && PyErr_Occurred()) {
25497 p->error_indicator = 1;
25498 p->level--;
25499 return NULL;
25500 }
25501 goto done;
25502 }
25503 p->mark = _mark;
25504 D(fprintf(stderr, "%*c%s _tmp_33[%d-%d]: %s failed!\n", p->level, ' ',
25505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
25506 }
25507 _res = NULL;
25508 done:
25509 p->level--;
25510 return _res;
25511 }
25512
25513 // _tmp_34: '->' expression
25514 static void *
_tmp_34_rule(Parser * p)25515 _tmp_34_rule(Parser *p)
25516 {
25517 if (p->level++ == MAXSTACK) {
25518 p->error_indicator = 1;
25519 PyErr_NoMemory();
25520 }
25521 if (p->error_indicator) {
25522 p->level--;
25523 return NULL;
25524 }
25525 void * _res = NULL;
25526 int _mark = p->mark;
25527 { // '->' expression
25528 if (p->error_indicator) {
25529 p->level--;
25530 return NULL;
25531 }
25532 D(fprintf(stderr, "%*c> _tmp_34[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
25533 Token * _literal;
25534 expr_ty z;
25535 if (
25536 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25537 &&
25538 (z = expression_rule(p)) // expression
25539 )
25540 {
25541 D(fprintf(stderr, "%*c+ _tmp_34[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
25542 _res = z;
25543 if (_res == NULL && PyErr_Occurred()) {
25544 p->error_indicator = 1;
25545 p->level--;
25546 return NULL;
25547 }
25548 goto done;
25549 }
25550 p->mark = _mark;
25551 D(fprintf(stderr, "%*c%s _tmp_34[%d-%d]: %s failed!\n", p->level, ' ',
25552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25553 }
25554 _res = NULL;
25555 done:
25556 p->level--;
25557 return _res;
25558 }
25559
25560 // _tmp_35: '->' expression
25561 static void *
_tmp_35_rule(Parser * p)25562 _tmp_35_rule(Parser *p)
25563 {
25564 if (p->level++ == MAXSTACK) {
25565 p->error_indicator = 1;
25566 PyErr_NoMemory();
25567 }
25568 if (p->error_indicator) {
25569 p->level--;
25570 return NULL;
25571 }
25572 void * _res = NULL;
25573 int _mark = p->mark;
25574 { // '->' expression
25575 if (p->error_indicator) {
25576 p->level--;
25577 return NULL;
25578 }
25579 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
25580 Token * _literal;
25581 expr_ty z;
25582 if (
25583 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25584 &&
25585 (z = expression_rule(p)) // expression
25586 )
25587 {
25588 D(fprintf(stderr, "%*c+ _tmp_35[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
25589 _res = z;
25590 if (_res == NULL && PyErr_Occurred()) {
25591 p->error_indicator = 1;
25592 p->level--;
25593 return NULL;
25594 }
25595 goto done;
25596 }
25597 p->mark = _mark;
25598 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
25599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25600 }
25601 _res = NULL;
25602 done:
25603 p->level--;
25604 return _res;
25605 }
25606
25607 // _loop0_36: param_no_default
25608 static asdl_seq *
_loop0_36_rule(Parser * p)25609 _loop0_36_rule(Parser *p)
25610 {
25611 if (p->level++ == MAXSTACK) {
25612 p->error_indicator = 1;
25613 PyErr_NoMemory();
25614 }
25615 if (p->error_indicator) {
25616 p->level--;
25617 return NULL;
25618 }
25619 void *_res = NULL;
25620 int _mark = p->mark;
25621 void **_children = PyMem_Malloc(sizeof(void *));
25622 if (!_children) {
25623 p->error_indicator = 1;
25624 PyErr_NoMemory();
25625 p->level--;
25626 return NULL;
25627 }
25628 Py_ssize_t _children_capacity = 1;
25629 Py_ssize_t _n = 0;
25630 { // param_no_default
25631 if (p->error_indicator) {
25632 p->level--;
25633 return NULL;
25634 }
25635 D(fprintf(stderr, "%*c> _loop0_36[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
25636 arg_ty param_no_default_var;
25637 while (
25638 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25639 )
25640 {
25641 _res = param_no_default_var;
25642 if (_n == _children_capacity) {
25643 _children_capacity *= 2;
25644 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25645 if (!_new_children) {
25646 PyMem_Free(_children);
25647 p->error_indicator = 1;
25648 PyErr_NoMemory();
25649 p->level--;
25650 return NULL;
25651 }
25652 _children = _new_children;
25653 }
25654 _children[_n++] = _res;
25655 _mark = p->mark;
25656 }
25657 p->mark = _mark;
25658 D(fprintf(stderr, "%*c%s _loop0_36[%d-%d]: %s failed!\n", p->level, ' ',
25659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25660 }
25661 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25662 if (!_seq) {
25663 PyMem_Free(_children);
25664 p->error_indicator = 1;
25665 PyErr_NoMemory();
25666 p->level--;
25667 return NULL;
25668 }
25669 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25670 PyMem_Free(_children);
25671 p->level--;
25672 return _seq;
25673 }
25674
25675 // _loop0_37: param_with_default
25676 static asdl_seq *
_loop0_37_rule(Parser * p)25677 _loop0_37_rule(Parser *p)
25678 {
25679 if (p->level++ == MAXSTACK) {
25680 p->error_indicator = 1;
25681 PyErr_NoMemory();
25682 }
25683 if (p->error_indicator) {
25684 p->level--;
25685 return NULL;
25686 }
25687 void *_res = NULL;
25688 int _mark = p->mark;
25689 void **_children = PyMem_Malloc(sizeof(void *));
25690 if (!_children) {
25691 p->error_indicator = 1;
25692 PyErr_NoMemory();
25693 p->level--;
25694 return NULL;
25695 }
25696 Py_ssize_t _children_capacity = 1;
25697 Py_ssize_t _n = 0;
25698 { // param_with_default
25699 if (p->error_indicator) {
25700 p->level--;
25701 return NULL;
25702 }
25703 D(fprintf(stderr, "%*c> _loop0_37[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
25704 NameDefaultPair* param_with_default_var;
25705 while (
25706 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25707 )
25708 {
25709 _res = param_with_default_var;
25710 if (_n == _children_capacity) {
25711 _children_capacity *= 2;
25712 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25713 if (!_new_children) {
25714 PyMem_Free(_children);
25715 p->error_indicator = 1;
25716 PyErr_NoMemory();
25717 p->level--;
25718 return NULL;
25719 }
25720 _children = _new_children;
25721 }
25722 _children[_n++] = _res;
25723 _mark = p->mark;
25724 }
25725 p->mark = _mark;
25726 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
25727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25728 }
25729 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25730 if (!_seq) {
25731 PyMem_Free(_children);
25732 p->error_indicator = 1;
25733 PyErr_NoMemory();
25734 p->level--;
25735 return NULL;
25736 }
25737 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25738 PyMem_Free(_children);
25739 p->level--;
25740 return _seq;
25741 }
25742
25743 // _loop0_38: param_with_default
25744 static asdl_seq *
_loop0_38_rule(Parser * p)25745 _loop0_38_rule(Parser *p)
25746 {
25747 if (p->level++ == MAXSTACK) {
25748 p->error_indicator = 1;
25749 PyErr_NoMemory();
25750 }
25751 if (p->error_indicator) {
25752 p->level--;
25753 return NULL;
25754 }
25755 void *_res = NULL;
25756 int _mark = p->mark;
25757 void **_children = PyMem_Malloc(sizeof(void *));
25758 if (!_children) {
25759 p->error_indicator = 1;
25760 PyErr_NoMemory();
25761 p->level--;
25762 return NULL;
25763 }
25764 Py_ssize_t _children_capacity = 1;
25765 Py_ssize_t _n = 0;
25766 { // param_with_default
25767 if (p->error_indicator) {
25768 p->level--;
25769 return NULL;
25770 }
25771 D(fprintf(stderr, "%*c> _loop0_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
25772 NameDefaultPair* param_with_default_var;
25773 while (
25774 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25775 )
25776 {
25777 _res = param_with_default_var;
25778 if (_n == _children_capacity) {
25779 _children_capacity *= 2;
25780 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25781 if (!_new_children) {
25782 PyMem_Free(_children);
25783 p->error_indicator = 1;
25784 PyErr_NoMemory();
25785 p->level--;
25786 return NULL;
25787 }
25788 _children = _new_children;
25789 }
25790 _children[_n++] = _res;
25791 _mark = p->mark;
25792 }
25793 p->mark = _mark;
25794 D(fprintf(stderr, "%*c%s _loop0_38[%d-%d]: %s failed!\n", p->level, ' ',
25795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25796 }
25797 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25798 if (!_seq) {
25799 PyMem_Free(_children);
25800 p->error_indicator = 1;
25801 PyErr_NoMemory();
25802 p->level--;
25803 return NULL;
25804 }
25805 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25806 PyMem_Free(_children);
25807 p->level--;
25808 return _seq;
25809 }
25810
25811 // _loop1_39: param_no_default
25812 static asdl_seq *
_loop1_39_rule(Parser * p)25813 _loop1_39_rule(Parser *p)
25814 {
25815 if (p->level++ == MAXSTACK) {
25816 p->error_indicator = 1;
25817 PyErr_NoMemory();
25818 }
25819 if (p->error_indicator) {
25820 p->level--;
25821 return NULL;
25822 }
25823 void *_res = NULL;
25824 int _mark = p->mark;
25825 void **_children = PyMem_Malloc(sizeof(void *));
25826 if (!_children) {
25827 p->error_indicator = 1;
25828 PyErr_NoMemory();
25829 p->level--;
25830 return NULL;
25831 }
25832 Py_ssize_t _children_capacity = 1;
25833 Py_ssize_t _n = 0;
25834 { // param_no_default
25835 if (p->error_indicator) {
25836 p->level--;
25837 return NULL;
25838 }
25839 D(fprintf(stderr, "%*c> _loop1_39[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
25840 arg_ty param_no_default_var;
25841 while (
25842 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25843 )
25844 {
25845 _res = param_no_default_var;
25846 if (_n == _children_capacity) {
25847 _children_capacity *= 2;
25848 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25849 if (!_new_children) {
25850 PyMem_Free(_children);
25851 p->error_indicator = 1;
25852 PyErr_NoMemory();
25853 p->level--;
25854 return NULL;
25855 }
25856 _children = _new_children;
25857 }
25858 _children[_n++] = _res;
25859 _mark = p->mark;
25860 }
25861 p->mark = _mark;
25862 D(fprintf(stderr, "%*c%s _loop1_39[%d-%d]: %s failed!\n", p->level, ' ',
25863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25864 }
25865 if (_n == 0 || p->error_indicator) {
25866 PyMem_Free(_children);
25867 p->level--;
25868 return NULL;
25869 }
25870 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25871 if (!_seq) {
25872 PyMem_Free(_children);
25873 p->error_indicator = 1;
25874 PyErr_NoMemory();
25875 p->level--;
25876 return NULL;
25877 }
25878 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25879 PyMem_Free(_children);
25880 p->level--;
25881 return _seq;
25882 }
25883
25884 // _loop0_40: param_with_default
25885 static asdl_seq *
_loop0_40_rule(Parser * p)25886 _loop0_40_rule(Parser *p)
25887 {
25888 if (p->level++ == MAXSTACK) {
25889 p->error_indicator = 1;
25890 PyErr_NoMemory();
25891 }
25892 if (p->error_indicator) {
25893 p->level--;
25894 return NULL;
25895 }
25896 void *_res = NULL;
25897 int _mark = p->mark;
25898 void **_children = PyMem_Malloc(sizeof(void *));
25899 if (!_children) {
25900 p->error_indicator = 1;
25901 PyErr_NoMemory();
25902 p->level--;
25903 return NULL;
25904 }
25905 Py_ssize_t _children_capacity = 1;
25906 Py_ssize_t _n = 0;
25907 { // param_with_default
25908 if (p->error_indicator) {
25909 p->level--;
25910 return NULL;
25911 }
25912 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
25913 NameDefaultPair* param_with_default_var;
25914 while (
25915 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25916 )
25917 {
25918 _res = param_with_default_var;
25919 if (_n == _children_capacity) {
25920 _children_capacity *= 2;
25921 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25922 if (!_new_children) {
25923 PyMem_Free(_children);
25924 p->error_indicator = 1;
25925 PyErr_NoMemory();
25926 p->level--;
25927 return NULL;
25928 }
25929 _children = _new_children;
25930 }
25931 _children[_n++] = _res;
25932 _mark = p->mark;
25933 }
25934 p->mark = _mark;
25935 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
25936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25937 }
25938 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25939 if (!_seq) {
25940 PyMem_Free(_children);
25941 p->error_indicator = 1;
25942 PyErr_NoMemory();
25943 p->level--;
25944 return NULL;
25945 }
25946 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25947 PyMem_Free(_children);
25948 p->level--;
25949 return _seq;
25950 }
25951
25952 // _loop1_41: param_with_default
25953 static asdl_seq *
_loop1_41_rule(Parser * p)25954 _loop1_41_rule(Parser *p)
25955 {
25956 if (p->level++ == MAXSTACK) {
25957 p->error_indicator = 1;
25958 PyErr_NoMemory();
25959 }
25960 if (p->error_indicator) {
25961 p->level--;
25962 return NULL;
25963 }
25964 void *_res = NULL;
25965 int _mark = p->mark;
25966 void **_children = PyMem_Malloc(sizeof(void *));
25967 if (!_children) {
25968 p->error_indicator = 1;
25969 PyErr_NoMemory();
25970 p->level--;
25971 return NULL;
25972 }
25973 Py_ssize_t _children_capacity = 1;
25974 Py_ssize_t _n = 0;
25975 { // param_with_default
25976 if (p->error_indicator) {
25977 p->level--;
25978 return NULL;
25979 }
25980 D(fprintf(stderr, "%*c> _loop1_41[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
25981 NameDefaultPair* param_with_default_var;
25982 while (
25983 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25984 )
25985 {
25986 _res = param_with_default_var;
25987 if (_n == _children_capacity) {
25988 _children_capacity *= 2;
25989 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25990 if (!_new_children) {
25991 PyMem_Free(_children);
25992 p->error_indicator = 1;
25993 PyErr_NoMemory();
25994 p->level--;
25995 return NULL;
25996 }
25997 _children = _new_children;
25998 }
25999 _children[_n++] = _res;
26000 _mark = p->mark;
26001 }
26002 p->mark = _mark;
26003 D(fprintf(stderr, "%*c%s _loop1_41[%d-%d]: %s failed!\n", p->level, ' ',
26004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
26005 }
26006 if (_n == 0 || p->error_indicator) {
26007 PyMem_Free(_children);
26008 p->level--;
26009 return NULL;
26010 }
26011 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26012 if (!_seq) {
26013 PyMem_Free(_children);
26014 p->error_indicator = 1;
26015 PyErr_NoMemory();
26016 p->level--;
26017 return NULL;
26018 }
26019 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26020 PyMem_Free(_children);
26021 p->level--;
26022 return _seq;
26023 }
26024
26025 // _loop1_42: param_no_default
26026 static asdl_seq *
_loop1_42_rule(Parser * p)26027 _loop1_42_rule(Parser *p)
26028 {
26029 if (p->level++ == MAXSTACK) {
26030 p->error_indicator = 1;
26031 PyErr_NoMemory();
26032 }
26033 if (p->error_indicator) {
26034 p->level--;
26035 return NULL;
26036 }
26037 void *_res = NULL;
26038 int _mark = p->mark;
26039 void **_children = PyMem_Malloc(sizeof(void *));
26040 if (!_children) {
26041 p->error_indicator = 1;
26042 PyErr_NoMemory();
26043 p->level--;
26044 return NULL;
26045 }
26046 Py_ssize_t _children_capacity = 1;
26047 Py_ssize_t _n = 0;
26048 { // param_no_default
26049 if (p->error_indicator) {
26050 p->level--;
26051 return NULL;
26052 }
26053 D(fprintf(stderr, "%*c> _loop1_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
26054 arg_ty param_no_default_var;
26055 while (
26056 (param_no_default_var = param_no_default_rule(p)) // param_no_default
26057 )
26058 {
26059 _res = param_no_default_var;
26060 if (_n == _children_capacity) {
26061 _children_capacity *= 2;
26062 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26063 if (!_new_children) {
26064 PyMem_Free(_children);
26065 p->error_indicator = 1;
26066 PyErr_NoMemory();
26067 p->level--;
26068 return NULL;
26069 }
26070 _children = _new_children;
26071 }
26072 _children[_n++] = _res;
26073 _mark = p->mark;
26074 }
26075 p->mark = _mark;
26076 D(fprintf(stderr, "%*c%s _loop1_42[%d-%d]: %s failed!\n", p->level, ' ',
26077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
26078 }
26079 if (_n == 0 || p->error_indicator) {
26080 PyMem_Free(_children);
26081 p->level--;
26082 return NULL;
26083 }
26084 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26085 if (!_seq) {
26086 PyMem_Free(_children);
26087 p->error_indicator = 1;
26088 PyErr_NoMemory();
26089 p->level--;
26090 return NULL;
26091 }
26092 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26093 PyMem_Free(_children);
26094 p->level--;
26095 return _seq;
26096 }
26097
26098 // _loop1_43: param_no_default
26099 static asdl_seq *
_loop1_43_rule(Parser * p)26100 _loop1_43_rule(Parser *p)
26101 {
26102 if (p->level++ == MAXSTACK) {
26103 p->error_indicator = 1;
26104 PyErr_NoMemory();
26105 }
26106 if (p->error_indicator) {
26107 p->level--;
26108 return NULL;
26109 }
26110 void *_res = NULL;
26111 int _mark = p->mark;
26112 void **_children = PyMem_Malloc(sizeof(void *));
26113 if (!_children) {
26114 p->error_indicator = 1;
26115 PyErr_NoMemory();
26116 p->level--;
26117 return NULL;
26118 }
26119 Py_ssize_t _children_capacity = 1;
26120 Py_ssize_t _n = 0;
26121 { // param_no_default
26122 if (p->error_indicator) {
26123 p->level--;
26124 return NULL;
26125 }
26126 D(fprintf(stderr, "%*c> _loop1_43[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
26127 arg_ty param_no_default_var;
26128 while (
26129 (param_no_default_var = param_no_default_rule(p)) // param_no_default
26130 )
26131 {
26132 _res = param_no_default_var;
26133 if (_n == _children_capacity) {
26134 _children_capacity *= 2;
26135 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26136 if (!_new_children) {
26137 PyMem_Free(_children);
26138 p->error_indicator = 1;
26139 PyErr_NoMemory();
26140 p->level--;
26141 return NULL;
26142 }
26143 _children = _new_children;
26144 }
26145 _children[_n++] = _res;
26146 _mark = p->mark;
26147 }
26148 p->mark = _mark;
26149 D(fprintf(stderr, "%*c%s _loop1_43[%d-%d]: %s failed!\n", p->level, ' ',
26150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
26151 }
26152 if (_n == 0 || p->error_indicator) {
26153 PyMem_Free(_children);
26154 p->level--;
26155 return NULL;
26156 }
26157 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26158 if (!_seq) {
26159 PyMem_Free(_children);
26160 p->error_indicator = 1;
26161 PyErr_NoMemory();
26162 p->level--;
26163 return NULL;
26164 }
26165 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26166 PyMem_Free(_children);
26167 p->level--;
26168 return _seq;
26169 }
26170
26171 // _loop0_44: param_no_default
26172 static asdl_seq *
_loop0_44_rule(Parser * p)26173 _loop0_44_rule(Parser *p)
26174 {
26175 if (p->level++ == MAXSTACK) {
26176 p->error_indicator = 1;
26177 PyErr_NoMemory();
26178 }
26179 if (p->error_indicator) {
26180 p->level--;
26181 return NULL;
26182 }
26183 void *_res = NULL;
26184 int _mark = p->mark;
26185 void **_children = PyMem_Malloc(sizeof(void *));
26186 if (!_children) {
26187 p->error_indicator = 1;
26188 PyErr_NoMemory();
26189 p->level--;
26190 return NULL;
26191 }
26192 Py_ssize_t _children_capacity = 1;
26193 Py_ssize_t _n = 0;
26194 { // param_no_default
26195 if (p->error_indicator) {
26196 p->level--;
26197 return NULL;
26198 }
26199 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
26200 arg_ty param_no_default_var;
26201 while (
26202 (param_no_default_var = param_no_default_rule(p)) // param_no_default
26203 )
26204 {
26205 _res = param_no_default_var;
26206 if (_n == _children_capacity) {
26207 _children_capacity *= 2;
26208 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26209 if (!_new_children) {
26210 PyMem_Free(_children);
26211 p->error_indicator = 1;
26212 PyErr_NoMemory();
26213 p->level--;
26214 return NULL;
26215 }
26216 _children = _new_children;
26217 }
26218 _children[_n++] = _res;
26219 _mark = p->mark;
26220 }
26221 p->mark = _mark;
26222 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
26223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
26224 }
26225 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26226 if (!_seq) {
26227 PyMem_Free(_children);
26228 p->error_indicator = 1;
26229 PyErr_NoMemory();
26230 p->level--;
26231 return NULL;
26232 }
26233 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26234 PyMem_Free(_children);
26235 p->level--;
26236 return _seq;
26237 }
26238
26239 // _loop1_45: param_with_default
26240 static asdl_seq *
_loop1_45_rule(Parser * p)26241 _loop1_45_rule(Parser *p)
26242 {
26243 if (p->level++ == MAXSTACK) {
26244 p->error_indicator = 1;
26245 PyErr_NoMemory();
26246 }
26247 if (p->error_indicator) {
26248 p->level--;
26249 return NULL;
26250 }
26251 void *_res = NULL;
26252 int _mark = p->mark;
26253 void **_children = PyMem_Malloc(sizeof(void *));
26254 if (!_children) {
26255 p->error_indicator = 1;
26256 PyErr_NoMemory();
26257 p->level--;
26258 return NULL;
26259 }
26260 Py_ssize_t _children_capacity = 1;
26261 Py_ssize_t _n = 0;
26262 { // param_with_default
26263 if (p->error_indicator) {
26264 p->level--;
26265 return NULL;
26266 }
26267 D(fprintf(stderr, "%*c> _loop1_45[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
26268 NameDefaultPair* param_with_default_var;
26269 while (
26270 (param_with_default_var = param_with_default_rule(p)) // param_with_default
26271 )
26272 {
26273 _res = param_with_default_var;
26274 if (_n == _children_capacity) {
26275 _children_capacity *= 2;
26276 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26277 if (!_new_children) {
26278 PyMem_Free(_children);
26279 p->error_indicator = 1;
26280 PyErr_NoMemory();
26281 p->level--;
26282 return NULL;
26283 }
26284 _children = _new_children;
26285 }
26286 _children[_n++] = _res;
26287 _mark = p->mark;
26288 }
26289 p->mark = _mark;
26290 D(fprintf(stderr, "%*c%s _loop1_45[%d-%d]: %s failed!\n", p->level, ' ',
26291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
26292 }
26293 if (_n == 0 || p->error_indicator) {
26294 PyMem_Free(_children);
26295 p->level--;
26296 return NULL;
26297 }
26298 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26299 if (!_seq) {
26300 PyMem_Free(_children);
26301 p->error_indicator = 1;
26302 PyErr_NoMemory();
26303 p->level--;
26304 return NULL;
26305 }
26306 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26307 PyMem_Free(_children);
26308 p->level--;
26309 return _seq;
26310 }
26311
26312 // _loop0_46: param_no_default
26313 static asdl_seq *
_loop0_46_rule(Parser * p)26314 _loop0_46_rule(Parser *p)
26315 {
26316 if (p->level++ == MAXSTACK) {
26317 p->error_indicator = 1;
26318 PyErr_NoMemory();
26319 }
26320 if (p->error_indicator) {
26321 p->level--;
26322 return NULL;
26323 }
26324 void *_res = NULL;
26325 int _mark = p->mark;
26326 void **_children = PyMem_Malloc(sizeof(void *));
26327 if (!_children) {
26328 p->error_indicator = 1;
26329 PyErr_NoMemory();
26330 p->level--;
26331 return NULL;
26332 }
26333 Py_ssize_t _children_capacity = 1;
26334 Py_ssize_t _n = 0;
26335 { // param_no_default
26336 if (p->error_indicator) {
26337 p->level--;
26338 return NULL;
26339 }
26340 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
26341 arg_ty param_no_default_var;
26342 while (
26343 (param_no_default_var = param_no_default_rule(p)) // param_no_default
26344 )
26345 {
26346 _res = param_no_default_var;
26347 if (_n == _children_capacity) {
26348 _children_capacity *= 2;
26349 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26350 if (!_new_children) {
26351 PyMem_Free(_children);
26352 p->error_indicator = 1;
26353 PyErr_NoMemory();
26354 p->level--;
26355 return NULL;
26356 }
26357 _children = _new_children;
26358 }
26359 _children[_n++] = _res;
26360 _mark = p->mark;
26361 }
26362 p->mark = _mark;
26363 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
26364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
26365 }
26366 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26367 if (!_seq) {
26368 PyMem_Free(_children);
26369 p->error_indicator = 1;
26370 PyErr_NoMemory();
26371 p->level--;
26372 return NULL;
26373 }
26374 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26375 PyMem_Free(_children);
26376 p->level--;
26377 return _seq;
26378 }
26379
26380 // _loop1_47: param_with_default
26381 static asdl_seq *
_loop1_47_rule(Parser * p)26382 _loop1_47_rule(Parser *p)
26383 {
26384 if (p->level++ == MAXSTACK) {
26385 p->error_indicator = 1;
26386 PyErr_NoMemory();
26387 }
26388 if (p->error_indicator) {
26389 p->level--;
26390 return NULL;
26391 }
26392 void *_res = NULL;
26393 int _mark = p->mark;
26394 void **_children = PyMem_Malloc(sizeof(void *));
26395 if (!_children) {
26396 p->error_indicator = 1;
26397 PyErr_NoMemory();
26398 p->level--;
26399 return NULL;
26400 }
26401 Py_ssize_t _children_capacity = 1;
26402 Py_ssize_t _n = 0;
26403 { // param_with_default
26404 if (p->error_indicator) {
26405 p->level--;
26406 return NULL;
26407 }
26408 D(fprintf(stderr, "%*c> _loop1_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
26409 NameDefaultPair* param_with_default_var;
26410 while (
26411 (param_with_default_var = param_with_default_rule(p)) // param_with_default
26412 )
26413 {
26414 _res = param_with_default_var;
26415 if (_n == _children_capacity) {
26416 _children_capacity *= 2;
26417 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26418 if (!_new_children) {
26419 PyMem_Free(_children);
26420 p->error_indicator = 1;
26421 PyErr_NoMemory();
26422 p->level--;
26423 return NULL;
26424 }
26425 _children = _new_children;
26426 }
26427 _children[_n++] = _res;
26428 _mark = p->mark;
26429 }
26430 p->mark = _mark;
26431 D(fprintf(stderr, "%*c%s _loop1_47[%d-%d]: %s failed!\n", p->level, ' ',
26432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
26433 }
26434 if (_n == 0 || p->error_indicator) {
26435 PyMem_Free(_children);
26436 p->level--;
26437 return NULL;
26438 }
26439 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26440 if (!_seq) {
26441 PyMem_Free(_children);
26442 p->error_indicator = 1;
26443 PyErr_NoMemory();
26444 p->level--;
26445 return NULL;
26446 }
26447 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26448 PyMem_Free(_children);
26449 p->level--;
26450 return _seq;
26451 }
26452
26453 // _loop0_48: param_maybe_default
26454 static asdl_seq *
_loop0_48_rule(Parser * p)26455 _loop0_48_rule(Parser *p)
26456 {
26457 if (p->level++ == MAXSTACK) {
26458 p->error_indicator = 1;
26459 PyErr_NoMemory();
26460 }
26461 if (p->error_indicator) {
26462 p->level--;
26463 return NULL;
26464 }
26465 void *_res = NULL;
26466 int _mark = p->mark;
26467 void **_children = PyMem_Malloc(sizeof(void *));
26468 if (!_children) {
26469 p->error_indicator = 1;
26470 PyErr_NoMemory();
26471 p->level--;
26472 return NULL;
26473 }
26474 Py_ssize_t _children_capacity = 1;
26475 Py_ssize_t _n = 0;
26476 { // param_maybe_default
26477 if (p->error_indicator) {
26478 p->level--;
26479 return NULL;
26480 }
26481 D(fprintf(stderr, "%*c> _loop0_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
26482 NameDefaultPair* param_maybe_default_var;
26483 while (
26484 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26485 )
26486 {
26487 _res = param_maybe_default_var;
26488 if (_n == _children_capacity) {
26489 _children_capacity *= 2;
26490 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26491 if (!_new_children) {
26492 PyMem_Free(_children);
26493 p->error_indicator = 1;
26494 PyErr_NoMemory();
26495 p->level--;
26496 return NULL;
26497 }
26498 _children = _new_children;
26499 }
26500 _children[_n++] = _res;
26501 _mark = p->mark;
26502 }
26503 p->mark = _mark;
26504 D(fprintf(stderr, "%*c%s _loop0_48[%d-%d]: %s failed!\n", p->level, ' ',
26505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26506 }
26507 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26508 if (!_seq) {
26509 PyMem_Free(_children);
26510 p->error_indicator = 1;
26511 PyErr_NoMemory();
26512 p->level--;
26513 return NULL;
26514 }
26515 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26516 PyMem_Free(_children);
26517 p->level--;
26518 return _seq;
26519 }
26520
26521 // _loop0_49: param_maybe_default
26522 static asdl_seq *
_loop0_49_rule(Parser * p)26523 _loop0_49_rule(Parser *p)
26524 {
26525 if (p->level++ == MAXSTACK) {
26526 p->error_indicator = 1;
26527 PyErr_NoMemory();
26528 }
26529 if (p->error_indicator) {
26530 p->level--;
26531 return NULL;
26532 }
26533 void *_res = NULL;
26534 int _mark = p->mark;
26535 void **_children = PyMem_Malloc(sizeof(void *));
26536 if (!_children) {
26537 p->error_indicator = 1;
26538 PyErr_NoMemory();
26539 p->level--;
26540 return NULL;
26541 }
26542 Py_ssize_t _children_capacity = 1;
26543 Py_ssize_t _n = 0;
26544 { // param_maybe_default
26545 if (p->error_indicator) {
26546 p->level--;
26547 return NULL;
26548 }
26549 D(fprintf(stderr, "%*c> _loop0_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
26550 NameDefaultPair* param_maybe_default_var;
26551 while (
26552 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26553 )
26554 {
26555 _res = param_maybe_default_var;
26556 if (_n == _children_capacity) {
26557 _children_capacity *= 2;
26558 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26559 if (!_new_children) {
26560 PyMem_Free(_children);
26561 p->error_indicator = 1;
26562 PyErr_NoMemory();
26563 p->level--;
26564 return NULL;
26565 }
26566 _children = _new_children;
26567 }
26568 _children[_n++] = _res;
26569 _mark = p->mark;
26570 }
26571 p->mark = _mark;
26572 D(fprintf(stderr, "%*c%s _loop0_49[%d-%d]: %s failed!\n", p->level, ' ',
26573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26574 }
26575 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26576 if (!_seq) {
26577 PyMem_Free(_children);
26578 p->error_indicator = 1;
26579 PyErr_NoMemory();
26580 p->level--;
26581 return NULL;
26582 }
26583 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26584 PyMem_Free(_children);
26585 p->level--;
26586 return _seq;
26587 }
26588
26589 // _loop1_50: param_maybe_default
26590 static asdl_seq *
_loop1_50_rule(Parser * p)26591 _loop1_50_rule(Parser *p)
26592 {
26593 if (p->level++ == MAXSTACK) {
26594 p->error_indicator = 1;
26595 PyErr_NoMemory();
26596 }
26597 if (p->error_indicator) {
26598 p->level--;
26599 return NULL;
26600 }
26601 void *_res = NULL;
26602 int _mark = p->mark;
26603 void **_children = PyMem_Malloc(sizeof(void *));
26604 if (!_children) {
26605 p->error_indicator = 1;
26606 PyErr_NoMemory();
26607 p->level--;
26608 return NULL;
26609 }
26610 Py_ssize_t _children_capacity = 1;
26611 Py_ssize_t _n = 0;
26612 { // param_maybe_default
26613 if (p->error_indicator) {
26614 p->level--;
26615 return NULL;
26616 }
26617 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
26618 NameDefaultPair* param_maybe_default_var;
26619 while (
26620 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26621 )
26622 {
26623 _res = param_maybe_default_var;
26624 if (_n == _children_capacity) {
26625 _children_capacity *= 2;
26626 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26627 if (!_new_children) {
26628 PyMem_Free(_children);
26629 p->error_indicator = 1;
26630 PyErr_NoMemory();
26631 p->level--;
26632 return NULL;
26633 }
26634 _children = _new_children;
26635 }
26636 _children[_n++] = _res;
26637 _mark = p->mark;
26638 }
26639 p->mark = _mark;
26640 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
26641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26642 }
26643 if (_n == 0 || p->error_indicator) {
26644 PyMem_Free(_children);
26645 p->level--;
26646 return NULL;
26647 }
26648 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26649 if (!_seq) {
26650 PyMem_Free(_children);
26651 p->error_indicator = 1;
26652 PyErr_NoMemory();
26653 p->level--;
26654 return NULL;
26655 }
26656 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26657 PyMem_Free(_children);
26658 p->level--;
26659 return _seq;
26660 }
26661
26662 // _loop0_52: ',' with_item
26663 static asdl_seq *
_loop0_52_rule(Parser * p)26664 _loop0_52_rule(Parser *p)
26665 {
26666 if (p->level++ == MAXSTACK) {
26667 p->error_indicator = 1;
26668 PyErr_NoMemory();
26669 }
26670 if (p->error_indicator) {
26671 p->level--;
26672 return NULL;
26673 }
26674 void *_res = NULL;
26675 int _mark = p->mark;
26676 void **_children = PyMem_Malloc(sizeof(void *));
26677 if (!_children) {
26678 p->error_indicator = 1;
26679 PyErr_NoMemory();
26680 p->level--;
26681 return NULL;
26682 }
26683 Py_ssize_t _children_capacity = 1;
26684 Py_ssize_t _n = 0;
26685 { // ',' with_item
26686 if (p->error_indicator) {
26687 p->level--;
26688 return NULL;
26689 }
26690 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
26691 Token * _literal;
26692 withitem_ty elem;
26693 while (
26694 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26695 &&
26696 (elem = with_item_rule(p)) // with_item
26697 )
26698 {
26699 _res = elem;
26700 if (_res == NULL && PyErr_Occurred()) {
26701 p->error_indicator = 1;
26702 PyMem_Free(_children);
26703 p->level--;
26704 return NULL;
26705 }
26706 if (_n == _children_capacity) {
26707 _children_capacity *= 2;
26708 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26709 if (!_new_children) {
26710 PyMem_Free(_children);
26711 p->error_indicator = 1;
26712 PyErr_NoMemory();
26713 p->level--;
26714 return NULL;
26715 }
26716 _children = _new_children;
26717 }
26718 _children[_n++] = _res;
26719 _mark = p->mark;
26720 }
26721 p->mark = _mark;
26722 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
26723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
26724 }
26725 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26726 if (!_seq) {
26727 PyMem_Free(_children);
26728 p->error_indicator = 1;
26729 PyErr_NoMemory();
26730 p->level--;
26731 return NULL;
26732 }
26733 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26734 PyMem_Free(_children);
26735 p->level--;
26736 return _seq;
26737 }
26738
26739 // _gather_51: with_item _loop0_52
26740 static asdl_seq *
_gather_51_rule(Parser * p)26741 _gather_51_rule(Parser *p)
26742 {
26743 if (p->level++ == MAXSTACK) {
26744 p->error_indicator = 1;
26745 PyErr_NoMemory();
26746 }
26747 if (p->error_indicator) {
26748 p->level--;
26749 return NULL;
26750 }
26751 asdl_seq * _res = NULL;
26752 int _mark = p->mark;
26753 { // with_item _loop0_52
26754 if (p->error_indicator) {
26755 p->level--;
26756 return NULL;
26757 }
26758 D(fprintf(stderr, "%*c> _gather_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_52"));
26759 withitem_ty elem;
26760 asdl_seq * seq;
26761 if (
26762 (elem = with_item_rule(p)) // with_item
26763 &&
26764 (seq = _loop0_52_rule(p)) // _loop0_52
26765 )
26766 {
26767 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_52"));
26768 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26769 goto done;
26770 }
26771 p->mark = _mark;
26772 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
26773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_52"));
26774 }
26775 _res = NULL;
26776 done:
26777 p->level--;
26778 return _res;
26779 }
26780
26781 // _loop0_54: ',' with_item
26782 static asdl_seq *
_loop0_54_rule(Parser * p)26783 _loop0_54_rule(Parser *p)
26784 {
26785 if (p->level++ == MAXSTACK) {
26786 p->error_indicator = 1;
26787 PyErr_NoMemory();
26788 }
26789 if (p->error_indicator) {
26790 p->level--;
26791 return NULL;
26792 }
26793 void *_res = NULL;
26794 int _mark = p->mark;
26795 void **_children = PyMem_Malloc(sizeof(void *));
26796 if (!_children) {
26797 p->error_indicator = 1;
26798 PyErr_NoMemory();
26799 p->level--;
26800 return NULL;
26801 }
26802 Py_ssize_t _children_capacity = 1;
26803 Py_ssize_t _n = 0;
26804 { // ',' with_item
26805 if (p->error_indicator) {
26806 p->level--;
26807 return NULL;
26808 }
26809 D(fprintf(stderr, "%*c> _loop0_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
26810 Token * _literal;
26811 withitem_ty elem;
26812 while (
26813 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26814 &&
26815 (elem = with_item_rule(p)) // with_item
26816 )
26817 {
26818 _res = elem;
26819 if (_res == NULL && PyErr_Occurred()) {
26820 p->error_indicator = 1;
26821 PyMem_Free(_children);
26822 p->level--;
26823 return NULL;
26824 }
26825 if (_n == _children_capacity) {
26826 _children_capacity *= 2;
26827 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26828 if (!_new_children) {
26829 PyMem_Free(_children);
26830 p->error_indicator = 1;
26831 PyErr_NoMemory();
26832 p->level--;
26833 return NULL;
26834 }
26835 _children = _new_children;
26836 }
26837 _children[_n++] = _res;
26838 _mark = p->mark;
26839 }
26840 p->mark = _mark;
26841 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
26842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
26843 }
26844 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26845 if (!_seq) {
26846 PyMem_Free(_children);
26847 p->error_indicator = 1;
26848 PyErr_NoMemory();
26849 p->level--;
26850 return NULL;
26851 }
26852 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26853 PyMem_Free(_children);
26854 p->level--;
26855 return _seq;
26856 }
26857
26858 // _gather_53: with_item _loop0_54
26859 static asdl_seq *
_gather_53_rule(Parser * p)26860 _gather_53_rule(Parser *p)
26861 {
26862 if (p->level++ == MAXSTACK) {
26863 p->error_indicator = 1;
26864 PyErr_NoMemory();
26865 }
26866 if (p->error_indicator) {
26867 p->level--;
26868 return NULL;
26869 }
26870 asdl_seq * _res = NULL;
26871 int _mark = p->mark;
26872 { // with_item _loop0_54
26873 if (p->error_indicator) {
26874 p->level--;
26875 return NULL;
26876 }
26877 D(fprintf(stderr, "%*c> _gather_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_54"));
26878 withitem_ty elem;
26879 asdl_seq * seq;
26880 if (
26881 (elem = with_item_rule(p)) // with_item
26882 &&
26883 (seq = _loop0_54_rule(p)) // _loop0_54
26884 )
26885 {
26886 D(fprintf(stderr, "%*c+ _gather_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_54"));
26887 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26888 goto done;
26889 }
26890 p->mark = _mark;
26891 D(fprintf(stderr, "%*c%s _gather_53[%d-%d]: %s failed!\n", p->level, ' ',
26892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_54"));
26893 }
26894 _res = NULL;
26895 done:
26896 p->level--;
26897 return _res;
26898 }
26899
26900 // _loop0_56: ',' with_item
26901 static asdl_seq *
_loop0_56_rule(Parser * p)26902 _loop0_56_rule(Parser *p)
26903 {
26904 if (p->level++ == MAXSTACK) {
26905 p->error_indicator = 1;
26906 PyErr_NoMemory();
26907 }
26908 if (p->error_indicator) {
26909 p->level--;
26910 return NULL;
26911 }
26912 void *_res = NULL;
26913 int _mark = p->mark;
26914 void **_children = PyMem_Malloc(sizeof(void *));
26915 if (!_children) {
26916 p->error_indicator = 1;
26917 PyErr_NoMemory();
26918 p->level--;
26919 return NULL;
26920 }
26921 Py_ssize_t _children_capacity = 1;
26922 Py_ssize_t _n = 0;
26923 { // ',' with_item
26924 if (p->error_indicator) {
26925 p->level--;
26926 return NULL;
26927 }
26928 D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
26929 Token * _literal;
26930 withitem_ty elem;
26931 while (
26932 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26933 &&
26934 (elem = with_item_rule(p)) // with_item
26935 )
26936 {
26937 _res = elem;
26938 if (_res == NULL && PyErr_Occurred()) {
26939 p->error_indicator = 1;
26940 PyMem_Free(_children);
26941 p->level--;
26942 return NULL;
26943 }
26944 if (_n == _children_capacity) {
26945 _children_capacity *= 2;
26946 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26947 if (!_new_children) {
26948 PyMem_Free(_children);
26949 p->error_indicator = 1;
26950 PyErr_NoMemory();
26951 p->level--;
26952 return NULL;
26953 }
26954 _children = _new_children;
26955 }
26956 _children[_n++] = _res;
26957 _mark = p->mark;
26958 }
26959 p->mark = _mark;
26960 D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
26961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
26962 }
26963 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26964 if (!_seq) {
26965 PyMem_Free(_children);
26966 p->error_indicator = 1;
26967 PyErr_NoMemory();
26968 p->level--;
26969 return NULL;
26970 }
26971 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26972 PyMem_Free(_children);
26973 p->level--;
26974 return _seq;
26975 }
26976
26977 // _gather_55: with_item _loop0_56
26978 static asdl_seq *
_gather_55_rule(Parser * p)26979 _gather_55_rule(Parser *p)
26980 {
26981 if (p->level++ == MAXSTACK) {
26982 p->error_indicator = 1;
26983 PyErr_NoMemory();
26984 }
26985 if (p->error_indicator) {
26986 p->level--;
26987 return NULL;
26988 }
26989 asdl_seq * _res = NULL;
26990 int _mark = p->mark;
26991 { // with_item _loop0_56
26992 if (p->error_indicator) {
26993 p->level--;
26994 return NULL;
26995 }
26996 D(fprintf(stderr, "%*c> _gather_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_56"));
26997 withitem_ty elem;
26998 asdl_seq * seq;
26999 if (
27000 (elem = with_item_rule(p)) // with_item
27001 &&
27002 (seq = _loop0_56_rule(p)) // _loop0_56
27003 )
27004 {
27005 D(fprintf(stderr, "%*c+ _gather_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_56"));
27006 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27007 goto done;
27008 }
27009 p->mark = _mark;
27010 D(fprintf(stderr, "%*c%s _gather_55[%d-%d]: %s failed!\n", p->level, ' ',
27011 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_56"));
27012 }
27013 _res = NULL;
27014 done:
27015 p->level--;
27016 return _res;
27017 }
27018
27019 // _loop0_58: ',' with_item
27020 static asdl_seq *
_loop0_58_rule(Parser * p)27021 _loop0_58_rule(Parser *p)
27022 {
27023 if (p->level++ == MAXSTACK) {
27024 p->error_indicator = 1;
27025 PyErr_NoMemory();
27026 }
27027 if (p->error_indicator) {
27028 p->level--;
27029 return NULL;
27030 }
27031 void *_res = NULL;
27032 int _mark = p->mark;
27033 void **_children = PyMem_Malloc(sizeof(void *));
27034 if (!_children) {
27035 p->error_indicator = 1;
27036 PyErr_NoMemory();
27037 p->level--;
27038 return NULL;
27039 }
27040 Py_ssize_t _children_capacity = 1;
27041 Py_ssize_t _n = 0;
27042 { // ',' with_item
27043 if (p->error_indicator) {
27044 p->level--;
27045 return NULL;
27046 }
27047 D(fprintf(stderr, "%*c> _loop0_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
27048 Token * _literal;
27049 withitem_ty elem;
27050 while (
27051 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27052 &&
27053 (elem = with_item_rule(p)) // with_item
27054 )
27055 {
27056 _res = elem;
27057 if (_res == NULL && PyErr_Occurred()) {
27058 p->error_indicator = 1;
27059 PyMem_Free(_children);
27060 p->level--;
27061 return NULL;
27062 }
27063 if (_n == _children_capacity) {
27064 _children_capacity *= 2;
27065 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27066 if (!_new_children) {
27067 PyMem_Free(_children);
27068 p->error_indicator = 1;
27069 PyErr_NoMemory();
27070 p->level--;
27071 return NULL;
27072 }
27073 _children = _new_children;
27074 }
27075 _children[_n++] = _res;
27076 _mark = p->mark;
27077 }
27078 p->mark = _mark;
27079 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
27080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
27081 }
27082 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27083 if (!_seq) {
27084 PyMem_Free(_children);
27085 p->error_indicator = 1;
27086 PyErr_NoMemory();
27087 p->level--;
27088 return NULL;
27089 }
27090 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27091 PyMem_Free(_children);
27092 p->level--;
27093 return _seq;
27094 }
27095
27096 // _gather_57: with_item _loop0_58
27097 static asdl_seq *
_gather_57_rule(Parser * p)27098 _gather_57_rule(Parser *p)
27099 {
27100 if (p->level++ == MAXSTACK) {
27101 p->error_indicator = 1;
27102 PyErr_NoMemory();
27103 }
27104 if (p->error_indicator) {
27105 p->level--;
27106 return NULL;
27107 }
27108 asdl_seq * _res = NULL;
27109 int _mark = p->mark;
27110 { // with_item _loop0_58
27111 if (p->error_indicator) {
27112 p->level--;
27113 return NULL;
27114 }
27115 D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_58"));
27116 withitem_ty elem;
27117 asdl_seq * seq;
27118 if (
27119 (elem = with_item_rule(p)) // with_item
27120 &&
27121 (seq = _loop0_58_rule(p)) // _loop0_58
27122 )
27123 {
27124 D(fprintf(stderr, "%*c+ _gather_57[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_58"));
27125 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27126 goto done;
27127 }
27128 p->mark = _mark;
27129 D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ',
27130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_58"));
27131 }
27132 _res = NULL;
27133 done:
27134 p->level--;
27135 return _res;
27136 }
27137
27138 // _tmp_59: ',' | ')' | ':'
27139 static void *
_tmp_59_rule(Parser * p)27140 _tmp_59_rule(Parser *p)
27141 {
27142 if (p->level++ == MAXSTACK) {
27143 p->error_indicator = 1;
27144 PyErr_NoMemory();
27145 }
27146 if (p->error_indicator) {
27147 p->level--;
27148 return NULL;
27149 }
27150 void * _res = NULL;
27151 int _mark = p->mark;
27152 { // ','
27153 if (p->error_indicator) {
27154 p->level--;
27155 return NULL;
27156 }
27157 D(fprintf(stderr, "%*c> _tmp_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
27158 Token * _literal;
27159 if (
27160 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27161 )
27162 {
27163 D(fprintf(stderr, "%*c+ _tmp_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
27164 _res = _literal;
27165 goto done;
27166 }
27167 p->mark = _mark;
27168 D(fprintf(stderr, "%*c%s _tmp_59[%d-%d]: %s failed!\n", p->level, ' ',
27169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
27170 }
27171 { // ')'
27172 if (p->error_indicator) {
27173 p->level--;
27174 return NULL;
27175 }
27176 D(fprintf(stderr, "%*c> _tmp_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
27177 Token * _literal;
27178 if (
27179 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
27180 )
27181 {
27182 D(fprintf(stderr, "%*c+ _tmp_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
27183 _res = _literal;
27184 goto done;
27185 }
27186 p->mark = _mark;
27187 D(fprintf(stderr, "%*c%s _tmp_59[%d-%d]: %s failed!\n", p->level, ' ',
27188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
27189 }
27190 { // ':'
27191 if (p->error_indicator) {
27192 p->level--;
27193 return NULL;
27194 }
27195 D(fprintf(stderr, "%*c> _tmp_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
27196 Token * _literal;
27197 if (
27198 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27199 )
27200 {
27201 D(fprintf(stderr, "%*c+ _tmp_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
27202 _res = _literal;
27203 goto done;
27204 }
27205 p->mark = _mark;
27206 D(fprintf(stderr, "%*c%s _tmp_59[%d-%d]: %s failed!\n", p->level, ' ',
27207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
27208 }
27209 _res = NULL;
27210 done:
27211 p->level--;
27212 return _res;
27213 }
27214
27215 // _loop1_60: except_block
27216 static asdl_seq *
_loop1_60_rule(Parser * p)27217 _loop1_60_rule(Parser *p)
27218 {
27219 if (p->level++ == MAXSTACK) {
27220 p->error_indicator = 1;
27221 PyErr_NoMemory();
27222 }
27223 if (p->error_indicator) {
27224 p->level--;
27225 return NULL;
27226 }
27227 void *_res = NULL;
27228 int _mark = p->mark;
27229 void **_children = PyMem_Malloc(sizeof(void *));
27230 if (!_children) {
27231 p->error_indicator = 1;
27232 PyErr_NoMemory();
27233 p->level--;
27234 return NULL;
27235 }
27236 Py_ssize_t _children_capacity = 1;
27237 Py_ssize_t _n = 0;
27238 { // except_block
27239 if (p->error_indicator) {
27240 p->level--;
27241 return NULL;
27242 }
27243 D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
27244 excepthandler_ty except_block_var;
27245 while (
27246 (except_block_var = except_block_rule(p)) // except_block
27247 )
27248 {
27249 _res = except_block_var;
27250 if (_n == _children_capacity) {
27251 _children_capacity *= 2;
27252 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27253 if (!_new_children) {
27254 PyMem_Free(_children);
27255 p->error_indicator = 1;
27256 PyErr_NoMemory();
27257 p->level--;
27258 return NULL;
27259 }
27260 _children = _new_children;
27261 }
27262 _children[_n++] = _res;
27263 _mark = p->mark;
27264 }
27265 p->mark = _mark;
27266 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
27267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
27268 }
27269 if (_n == 0 || p->error_indicator) {
27270 PyMem_Free(_children);
27271 p->level--;
27272 return NULL;
27273 }
27274 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27275 if (!_seq) {
27276 PyMem_Free(_children);
27277 p->error_indicator = 1;
27278 PyErr_NoMemory();
27279 p->level--;
27280 return NULL;
27281 }
27282 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27283 PyMem_Free(_children);
27284 p->level--;
27285 return _seq;
27286 }
27287
27288 // _loop1_61: except_star_block
27289 static asdl_seq *
_loop1_61_rule(Parser * p)27290 _loop1_61_rule(Parser *p)
27291 {
27292 if (p->level++ == MAXSTACK) {
27293 p->error_indicator = 1;
27294 PyErr_NoMemory();
27295 }
27296 if (p->error_indicator) {
27297 p->level--;
27298 return NULL;
27299 }
27300 void *_res = NULL;
27301 int _mark = p->mark;
27302 void **_children = PyMem_Malloc(sizeof(void *));
27303 if (!_children) {
27304 p->error_indicator = 1;
27305 PyErr_NoMemory();
27306 p->level--;
27307 return NULL;
27308 }
27309 Py_ssize_t _children_capacity = 1;
27310 Py_ssize_t _n = 0;
27311 { // except_star_block
27312 if (p->error_indicator) {
27313 p->level--;
27314 return NULL;
27315 }
27316 D(fprintf(stderr, "%*c> _loop1_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block"));
27317 excepthandler_ty except_star_block_var;
27318 while (
27319 (except_star_block_var = except_star_block_rule(p)) // except_star_block
27320 )
27321 {
27322 _res = except_star_block_var;
27323 if (_n == _children_capacity) {
27324 _children_capacity *= 2;
27325 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27326 if (!_new_children) {
27327 PyMem_Free(_children);
27328 p->error_indicator = 1;
27329 PyErr_NoMemory();
27330 p->level--;
27331 return NULL;
27332 }
27333 _children = _new_children;
27334 }
27335 _children[_n++] = _res;
27336 _mark = p->mark;
27337 }
27338 p->mark = _mark;
27339 D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
27340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block"));
27341 }
27342 if (_n == 0 || p->error_indicator) {
27343 PyMem_Free(_children);
27344 p->level--;
27345 return NULL;
27346 }
27347 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27348 if (!_seq) {
27349 PyMem_Free(_children);
27350 p->error_indicator = 1;
27351 PyErr_NoMemory();
27352 p->level--;
27353 return NULL;
27354 }
27355 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27356 PyMem_Free(_children);
27357 p->level--;
27358 return _seq;
27359 }
27360
27361 // _tmp_62: 'as' NAME
27362 static void *
_tmp_62_rule(Parser * p)27363 _tmp_62_rule(Parser *p)
27364 {
27365 if (p->level++ == MAXSTACK) {
27366 p->error_indicator = 1;
27367 PyErr_NoMemory();
27368 }
27369 if (p->error_indicator) {
27370 p->level--;
27371 return NULL;
27372 }
27373 void * _res = NULL;
27374 int _mark = p->mark;
27375 { // 'as' NAME
27376 if (p->error_indicator) {
27377 p->level--;
27378 return NULL;
27379 }
27380 D(fprintf(stderr, "%*c> _tmp_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
27381 Token * _keyword;
27382 expr_ty z;
27383 if (
27384 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
27385 &&
27386 (z = _PyPegen_name_token(p)) // NAME
27387 )
27388 {
27389 D(fprintf(stderr, "%*c+ _tmp_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
27390 _res = z;
27391 if (_res == NULL && PyErr_Occurred()) {
27392 p->error_indicator = 1;
27393 p->level--;
27394 return NULL;
27395 }
27396 goto done;
27397 }
27398 p->mark = _mark;
27399 D(fprintf(stderr, "%*c%s _tmp_62[%d-%d]: %s failed!\n", p->level, ' ',
27400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
27401 }
27402 _res = NULL;
27403 done:
27404 p->level--;
27405 return _res;
27406 }
27407
27408 // _tmp_63: 'as' NAME
27409 static void *
_tmp_63_rule(Parser * p)27410 _tmp_63_rule(Parser *p)
27411 {
27412 if (p->level++ == MAXSTACK) {
27413 p->error_indicator = 1;
27414 PyErr_NoMemory();
27415 }
27416 if (p->error_indicator) {
27417 p->level--;
27418 return NULL;
27419 }
27420 void * _res = NULL;
27421 int _mark = p->mark;
27422 { // 'as' NAME
27423 if (p->error_indicator) {
27424 p->level--;
27425 return NULL;
27426 }
27427 D(fprintf(stderr, "%*c> _tmp_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
27428 Token * _keyword;
27429 expr_ty z;
27430 if (
27431 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
27432 &&
27433 (z = _PyPegen_name_token(p)) // NAME
27434 )
27435 {
27436 D(fprintf(stderr, "%*c+ _tmp_63[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
27437 _res = z;
27438 if (_res == NULL && PyErr_Occurred()) {
27439 p->error_indicator = 1;
27440 p->level--;
27441 return NULL;
27442 }
27443 goto done;
27444 }
27445 p->mark = _mark;
27446 D(fprintf(stderr, "%*c%s _tmp_63[%d-%d]: %s failed!\n", p->level, ' ',
27447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
27448 }
27449 _res = NULL;
27450 done:
27451 p->level--;
27452 return _res;
27453 }
27454
27455 // _loop1_64: case_block
27456 static asdl_seq *
_loop1_64_rule(Parser * p)27457 _loop1_64_rule(Parser *p)
27458 {
27459 if (p->level++ == MAXSTACK) {
27460 p->error_indicator = 1;
27461 PyErr_NoMemory();
27462 }
27463 if (p->error_indicator) {
27464 p->level--;
27465 return NULL;
27466 }
27467 void *_res = NULL;
27468 int _mark = p->mark;
27469 void **_children = PyMem_Malloc(sizeof(void *));
27470 if (!_children) {
27471 p->error_indicator = 1;
27472 PyErr_NoMemory();
27473 p->level--;
27474 return NULL;
27475 }
27476 Py_ssize_t _children_capacity = 1;
27477 Py_ssize_t _n = 0;
27478 { // case_block
27479 if (p->error_indicator) {
27480 p->level--;
27481 return NULL;
27482 }
27483 D(fprintf(stderr, "%*c> _loop1_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
27484 match_case_ty case_block_var;
27485 while (
27486 (case_block_var = case_block_rule(p)) // case_block
27487 )
27488 {
27489 _res = case_block_var;
27490 if (_n == _children_capacity) {
27491 _children_capacity *= 2;
27492 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27493 if (!_new_children) {
27494 PyMem_Free(_children);
27495 p->error_indicator = 1;
27496 PyErr_NoMemory();
27497 p->level--;
27498 return NULL;
27499 }
27500 _children = _new_children;
27501 }
27502 _children[_n++] = _res;
27503 _mark = p->mark;
27504 }
27505 p->mark = _mark;
27506 D(fprintf(stderr, "%*c%s _loop1_64[%d-%d]: %s failed!\n", p->level, ' ',
27507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
27508 }
27509 if (_n == 0 || p->error_indicator) {
27510 PyMem_Free(_children);
27511 p->level--;
27512 return NULL;
27513 }
27514 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27515 if (!_seq) {
27516 PyMem_Free(_children);
27517 p->error_indicator = 1;
27518 PyErr_NoMemory();
27519 p->level--;
27520 return NULL;
27521 }
27522 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27523 PyMem_Free(_children);
27524 p->level--;
27525 return _seq;
27526 }
27527
27528 // _loop0_66: '|' closed_pattern
27529 static asdl_seq *
_loop0_66_rule(Parser * p)27530 _loop0_66_rule(Parser *p)
27531 {
27532 if (p->level++ == MAXSTACK) {
27533 p->error_indicator = 1;
27534 PyErr_NoMemory();
27535 }
27536 if (p->error_indicator) {
27537 p->level--;
27538 return NULL;
27539 }
27540 void *_res = NULL;
27541 int _mark = p->mark;
27542 void **_children = PyMem_Malloc(sizeof(void *));
27543 if (!_children) {
27544 p->error_indicator = 1;
27545 PyErr_NoMemory();
27546 p->level--;
27547 return NULL;
27548 }
27549 Py_ssize_t _children_capacity = 1;
27550 Py_ssize_t _n = 0;
27551 { // '|' closed_pattern
27552 if (p->error_indicator) {
27553 p->level--;
27554 return NULL;
27555 }
27556 D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
27557 Token * _literal;
27558 pattern_ty elem;
27559 while (
27560 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
27561 &&
27562 (elem = closed_pattern_rule(p)) // closed_pattern
27563 )
27564 {
27565 _res = elem;
27566 if (_res == NULL && PyErr_Occurred()) {
27567 p->error_indicator = 1;
27568 PyMem_Free(_children);
27569 p->level--;
27570 return NULL;
27571 }
27572 if (_n == _children_capacity) {
27573 _children_capacity *= 2;
27574 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27575 if (!_new_children) {
27576 PyMem_Free(_children);
27577 p->error_indicator = 1;
27578 PyErr_NoMemory();
27579 p->level--;
27580 return NULL;
27581 }
27582 _children = _new_children;
27583 }
27584 _children[_n++] = _res;
27585 _mark = p->mark;
27586 }
27587 p->mark = _mark;
27588 D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
27589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
27590 }
27591 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27592 if (!_seq) {
27593 PyMem_Free(_children);
27594 p->error_indicator = 1;
27595 PyErr_NoMemory();
27596 p->level--;
27597 return NULL;
27598 }
27599 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27600 PyMem_Free(_children);
27601 p->level--;
27602 return _seq;
27603 }
27604
27605 // _gather_65: closed_pattern _loop0_66
27606 static asdl_seq *
_gather_65_rule(Parser * p)27607 _gather_65_rule(Parser *p)
27608 {
27609 if (p->level++ == MAXSTACK) {
27610 p->error_indicator = 1;
27611 PyErr_NoMemory();
27612 }
27613 if (p->error_indicator) {
27614 p->level--;
27615 return NULL;
27616 }
27617 asdl_seq * _res = NULL;
27618 int _mark = p->mark;
27619 { // closed_pattern _loop0_66
27620 if (p->error_indicator) {
27621 p->level--;
27622 return NULL;
27623 }
27624 D(fprintf(stderr, "%*c> _gather_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_66"));
27625 pattern_ty elem;
27626 asdl_seq * seq;
27627 if (
27628 (elem = closed_pattern_rule(p)) // closed_pattern
27629 &&
27630 (seq = _loop0_66_rule(p)) // _loop0_66
27631 )
27632 {
27633 D(fprintf(stderr, "%*c+ _gather_65[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_66"));
27634 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27635 goto done;
27636 }
27637 p->mark = _mark;
27638 D(fprintf(stderr, "%*c%s _gather_65[%d-%d]: %s failed!\n", p->level, ' ',
27639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_66"));
27640 }
27641 _res = NULL;
27642 done:
27643 p->level--;
27644 return _res;
27645 }
27646
27647 // _tmp_67: '+' | '-'
27648 static void *
_tmp_67_rule(Parser * p)27649 _tmp_67_rule(Parser *p)
27650 {
27651 if (p->level++ == MAXSTACK) {
27652 p->error_indicator = 1;
27653 PyErr_NoMemory();
27654 }
27655 if (p->error_indicator) {
27656 p->level--;
27657 return NULL;
27658 }
27659 void * _res = NULL;
27660 int _mark = p->mark;
27661 { // '+'
27662 if (p->error_indicator) {
27663 p->level--;
27664 return NULL;
27665 }
27666 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
27667 Token * _literal;
27668 if (
27669 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
27670 )
27671 {
27672 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
27673 _res = _literal;
27674 goto done;
27675 }
27676 p->mark = _mark;
27677 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
27678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
27679 }
27680 { // '-'
27681 if (p->error_indicator) {
27682 p->level--;
27683 return NULL;
27684 }
27685 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
27686 Token * _literal;
27687 if (
27688 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
27689 )
27690 {
27691 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
27692 _res = _literal;
27693 goto done;
27694 }
27695 p->mark = _mark;
27696 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
27697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
27698 }
27699 _res = NULL;
27700 done:
27701 p->level--;
27702 return _res;
27703 }
27704
27705 // _tmp_68: '+' | '-'
27706 static void *
_tmp_68_rule(Parser * p)27707 _tmp_68_rule(Parser *p)
27708 {
27709 if (p->level++ == MAXSTACK) {
27710 p->error_indicator = 1;
27711 PyErr_NoMemory();
27712 }
27713 if (p->error_indicator) {
27714 p->level--;
27715 return NULL;
27716 }
27717 void * _res = NULL;
27718 int _mark = p->mark;
27719 { // '+'
27720 if (p->error_indicator) {
27721 p->level--;
27722 return NULL;
27723 }
27724 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
27725 Token * _literal;
27726 if (
27727 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
27728 )
27729 {
27730 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
27731 _res = _literal;
27732 goto done;
27733 }
27734 p->mark = _mark;
27735 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
27736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
27737 }
27738 { // '-'
27739 if (p->error_indicator) {
27740 p->level--;
27741 return NULL;
27742 }
27743 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
27744 Token * _literal;
27745 if (
27746 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
27747 )
27748 {
27749 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
27750 _res = _literal;
27751 goto done;
27752 }
27753 p->mark = _mark;
27754 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
27755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
27756 }
27757 _res = NULL;
27758 done:
27759 p->level--;
27760 return _res;
27761 }
27762
27763 // _tmp_69: '.' | '(' | '='
27764 static void *
_tmp_69_rule(Parser * p)27765 _tmp_69_rule(Parser *p)
27766 {
27767 if (p->level++ == MAXSTACK) {
27768 p->error_indicator = 1;
27769 PyErr_NoMemory();
27770 }
27771 if (p->error_indicator) {
27772 p->level--;
27773 return NULL;
27774 }
27775 void * _res = NULL;
27776 int _mark = p->mark;
27777 { // '.'
27778 if (p->error_indicator) {
27779 p->level--;
27780 return NULL;
27781 }
27782 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
27783 Token * _literal;
27784 if (
27785 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
27786 )
27787 {
27788 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
27789 _res = _literal;
27790 goto done;
27791 }
27792 p->mark = _mark;
27793 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
27794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
27795 }
27796 { // '('
27797 if (p->error_indicator) {
27798 p->level--;
27799 return NULL;
27800 }
27801 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
27802 Token * _literal;
27803 if (
27804 (_literal = _PyPegen_expect_token(p, 7)) // token='('
27805 )
27806 {
27807 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
27808 _res = _literal;
27809 goto done;
27810 }
27811 p->mark = _mark;
27812 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
27813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
27814 }
27815 { // '='
27816 if (p->error_indicator) {
27817 p->level--;
27818 return NULL;
27819 }
27820 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
27821 Token * _literal;
27822 if (
27823 (_literal = _PyPegen_expect_token(p, 22)) // token='='
27824 )
27825 {
27826 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
27827 _res = _literal;
27828 goto done;
27829 }
27830 p->mark = _mark;
27831 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
27832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
27833 }
27834 _res = NULL;
27835 done:
27836 p->level--;
27837 return _res;
27838 }
27839
27840 // _tmp_70: '.' | '(' | '='
27841 static void *
_tmp_70_rule(Parser * p)27842 _tmp_70_rule(Parser *p)
27843 {
27844 if (p->level++ == MAXSTACK) {
27845 p->error_indicator = 1;
27846 PyErr_NoMemory();
27847 }
27848 if (p->error_indicator) {
27849 p->level--;
27850 return NULL;
27851 }
27852 void * _res = NULL;
27853 int _mark = p->mark;
27854 { // '.'
27855 if (p->error_indicator) {
27856 p->level--;
27857 return NULL;
27858 }
27859 D(fprintf(stderr, "%*c> _tmp_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
27860 Token * _literal;
27861 if (
27862 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
27863 )
27864 {
27865 D(fprintf(stderr, "%*c+ _tmp_70[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
27866 _res = _literal;
27867 goto done;
27868 }
27869 p->mark = _mark;
27870 D(fprintf(stderr, "%*c%s _tmp_70[%d-%d]: %s failed!\n", p->level, ' ',
27871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
27872 }
27873 { // '('
27874 if (p->error_indicator) {
27875 p->level--;
27876 return NULL;
27877 }
27878 D(fprintf(stderr, "%*c> _tmp_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
27879 Token * _literal;
27880 if (
27881 (_literal = _PyPegen_expect_token(p, 7)) // token='('
27882 )
27883 {
27884 D(fprintf(stderr, "%*c+ _tmp_70[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
27885 _res = _literal;
27886 goto done;
27887 }
27888 p->mark = _mark;
27889 D(fprintf(stderr, "%*c%s _tmp_70[%d-%d]: %s failed!\n", p->level, ' ',
27890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
27891 }
27892 { // '='
27893 if (p->error_indicator) {
27894 p->level--;
27895 return NULL;
27896 }
27897 D(fprintf(stderr, "%*c> _tmp_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
27898 Token * _literal;
27899 if (
27900 (_literal = _PyPegen_expect_token(p, 22)) // token='='
27901 )
27902 {
27903 D(fprintf(stderr, "%*c+ _tmp_70[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
27904 _res = _literal;
27905 goto done;
27906 }
27907 p->mark = _mark;
27908 D(fprintf(stderr, "%*c%s _tmp_70[%d-%d]: %s failed!\n", p->level, ' ',
27909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
27910 }
27911 _res = NULL;
27912 done:
27913 p->level--;
27914 return _res;
27915 }
27916
27917 // _loop0_72: ',' maybe_star_pattern
27918 static asdl_seq *
_loop0_72_rule(Parser * p)27919 _loop0_72_rule(Parser *p)
27920 {
27921 if (p->level++ == MAXSTACK) {
27922 p->error_indicator = 1;
27923 PyErr_NoMemory();
27924 }
27925 if (p->error_indicator) {
27926 p->level--;
27927 return NULL;
27928 }
27929 void *_res = NULL;
27930 int _mark = p->mark;
27931 void **_children = PyMem_Malloc(sizeof(void *));
27932 if (!_children) {
27933 p->error_indicator = 1;
27934 PyErr_NoMemory();
27935 p->level--;
27936 return NULL;
27937 }
27938 Py_ssize_t _children_capacity = 1;
27939 Py_ssize_t _n = 0;
27940 { // ',' maybe_star_pattern
27941 if (p->error_indicator) {
27942 p->level--;
27943 return NULL;
27944 }
27945 D(fprintf(stderr, "%*c> _loop0_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern"));
27946 Token * _literal;
27947 pattern_ty elem;
27948 while (
27949 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27950 &&
27951 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
27952 )
27953 {
27954 _res = elem;
27955 if (_res == NULL && PyErr_Occurred()) {
27956 p->error_indicator = 1;
27957 PyMem_Free(_children);
27958 p->level--;
27959 return NULL;
27960 }
27961 if (_n == _children_capacity) {
27962 _children_capacity *= 2;
27963 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27964 if (!_new_children) {
27965 PyMem_Free(_children);
27966 p->error_indicator = 1;
27967 PyErr_NoMemory();
27968 p->level--;
27969 return NULL;
27970 }
27971 _children = _new_children;
27972 }
27973 _children[_n++] = _res;
27974 _mark = p->mark;
27975 }
27976 p->mark = _mark;
27977 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
27978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
27979 }
27980 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27981 if (!_seq) {
27982 PyMem_Free(_children);
27983 p->error_indicator = 1;
27984 PyErr_NoMemory();
27985 p->level--;
27986 return NULL;
27987 }
27988 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27989 PyMem_Free(_children);
27990 p->level--;
27991 return _seq;
27992 }
27993
27994 // _gather_71: maybe_star_pattern _loop0_72
27995 static asdl_seq *
_gather_71_rule(Parser * p)27996 _gather_71_rule(Parser *p)
27997 {
27998 if (p->level++ == MAXSTACK) {
27999 p->error_indicator = 1;
28000 PyErr_NoMemory();
28001 }
28002 if (p->error_indicator) {
28003 p->level--;
28004 return NULL;
28005 }
28006 asdl_seq * _res = NULL;
28007 int _mark = p->mark;
28008 { // maybe_star_pattern _loop0_72
28009 if (p->error_indicator) {
28010 p->level--;
28011 return NULL;
28012 }
28013 D(fprintf(stderr, "%*c> _gather_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_72"));
28014 pattern_ty elem;
28015 asdl_seq * seq;
28016 if (
28017 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
28018 &&
28019 (seq = _loop0_72_rule(p)) // _loop0_72
28020 )
28021 {
28022 D(fprintf(stderr, "%*c+ _gather_71[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_72"));
28023 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28024 goto done;
28025 }
28026 p->mark = _mark;
28027 D(fprintf(stderr, "%*c%s _gather_71[%d-%d]: %s failed!\n", p->level, ' ',
28028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_72"));
28029 }
28030 _res = NULL;
28031 done:
28032 p->level--;
28033 return _res;
28034 }
28035
28036 // _loop0_74: ',' key_value_pattern
28037 static asdl_seq *
_loop0_74_rule(Parser * p)28038 _loop0_74_rule(Parser *p)
28039 {
28040 if (p->level++ == MAXSTACK) {
28041 p->error_indicator = 1;
28042 PyErr_NoMemory();
28043 }
28044 if (p->error_indicator) {
28045 p->level--;
28046 return NULL;
28047 }
28048 void *_res = NULL;
28049 int _mark = p->mark;
28050 void **_children = PyMem_Malloc(sizeof(void *));
28051 if (!_children) {
28052 p->error_indicator = 1;
28053 PyErr_NoMemory();
28054 p->level--;
28055 return NULL;
28056 }
28057 Py_ssize_t _children_capacity = 1;
28058 Py_ssize_t _n = 0;
28059 { // ',' key_value_pattern
28060 if (p->error_indicator) {
28061 p->level--;
28062 return NULL;
28063 }
28064 D(fprintf(stderr, "%*c> _loop0_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
28065 Token * _literal;
28066 KeyPatternPair* elem;
28067 while (
28068 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28069 &&
28070 (elem = key_value_pattern_rule(p)) // key_value_pattern
28071 )
28072 {
28073 _res = elem;
28074 if (_res == NULL && PyErr_Occurred()) {
28075 p->error_indicator = 1;
28076 PyMem_Free(_children);
28077 p->level--;
28078 return NULL;
28079 }
28080 if (_n == _children_capacity) {
28081 _children_capacity *= 2;
28082 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28083 if (!_new_children) {
28084 PyMem_Free(_children);
28085 p->error_indicator = 1;
28086 PyErr_NoMemory();
28087 p->level--;
28088 return NULL;
28089 }
28090 _children = _new_children;
28091 }
28092 _children[_n++] = _res;
28093 _mark = p->mark;
28094 }
28095 p->mark = _mark;
28096 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
28097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
28098 }
28099 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28100 if (!_seq) {
28101 PyMem_Free(_children);
28102 p->error_indicator = 1;
28103 PyErr_NoMemory();
28104 p->level--;
28105 return NULL;
28106 }
28107 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28108 PyMem_Free(_children);
28109 p->level--;
28110 return _seq;
28111 }
28112
28113 // _gather_73: key_value_pattern _loop0_74
28114 static asdl_seq *
_gather_73_rule(Parser * p)28115 _gather_73_rule(Parser *p)
28116 {
28117 if (p->level++ == MAXSTACK) {
28118 p->error_indicator = 1;
28119 PyErr_NoMemory();
28120 }
28121 if (p->error_indicator) {
28122 p->level--;
28123 return NULL;
28124 }
28125 asdl_seq * _res = NULL;
28126 int _mark = p->mark;
28127 { // key_value_pattern _loop0_74
28128 if (p->error_indicator) {
28129 p->level--;
28130 return NULL;
28131 }
28132 D(fprintf(stderr, "%*c> _gather_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_74"));
28133 KeyPatternPair* elem;
28134 asdl_seq * seq;
28135 if (
28136 (elem = key_value_pattern_rule(p)) // key_value_pattern
28137 &&
28138 (seq = _loop0_74_rule(p)) // _loop0_74
28139 )
28140 {
28141 D(fprintf(stderr, "%*c+ _gather_73[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_74"));
28142 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28143 goto done;
28144 }
28145 p->mark = _mark;
28146 D(fprintf(stderr, "%*c%s _gather_73[%d-%d]: %s failed!\n", p->level, ' ',
28147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_74"));
28148 }
28149 _res = NULL;
28150 done:
28151 p->level--;
28152 return _res;
28153 }
28154
28155 // _tmp_75: literal_expr | attr
28156 static void *
_tmp_75_rule(Parser * p)28157 _tmp_75_rule(Parser *p)
28158 {
28159 if (p->level++ == MAXSTACK) {
28160 p->error_indicator = 1;
28161 PyErr_NoMemory();
28162 }
28163 if (p->error_indicator) {
28164 p->level--;
28165 return NULL;
28166 }
28167 void * _res = NULL;
28168 int _mark = p->mark;
28169 { // literal_expr
28170 if (p->error_indicator) {
28171 p->level--;
28172 return NULL;
28173 }
28174 D(fprintf(stderr, "%*c> _tmp_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
28175 expr_ty literal_expr_var;
28176 if (
28177 (literal_expr_var = literal_expr_rule(p)) // literal_expr
28178 )
28179 {
28180 D(fprintf(stderr, "%*c+ _tmp_75[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
28181 _res = literal_expr_var;
28182 goto done;
28183 }
28184 p->mark = _mark;
28185 D(fprintf(stderr, "%*c%s _tmp_75[%d-%d]: %s failed!\n", p->level, ' ',
28186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
28187 }
28188 { // attr
28189 if (p->error_indicator) {
28190 p->level--;
28191 return NULL;
28192 }
28193 D(fprintf(stderr, "%*c> _tmp_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
28194 expr_ty attr_var;
28195 if (
28196 (attr_var = attr_rule(p)) // attr
28197 )
28198 {
28199 D(fprintf(stderr, "%*c+ _tmp_75[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
28200 _res = attr_var;
28201 goto done;
28202 }
28203 p->mark = _mark;
28204 D(fprintf(stderr, "%*c%s _tmp_75[%d-%d]: %s failed!\n", p->level, ' ',
28205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
28206 }
28207 _res = NULL;
28208 done:
28209 p->level--;
28210 return _res;
28211 }
28212
28213 // _loop0_77: ',' pattern
28214 static asdl_seq *
_loop0_77_rule(Parser * p)28215 _loop0_77_rule(Parser *p)
28216 {
28217 if (p->level++ == MAXSTACK) {
28218 p->error_indicator = 1;
28219 PyErr_NoMemory();
28220 }
28221 if (p->error_indicator) {
28222 p->level--;
28223 return NULL;
28224 }
28225 void *_res = NULL;
28226 int _mark = p->mark;
28227 void **_children = PyMem_Malloc(sizeof(void *));
28228 if (!_children) {
28229 p->error_indicator = 1;
28230 PyErr_NoMemory();
28231 p->level--;
28232 return NULL;
28233 }
28234 Py_ssize_t _children_capacity = 1;
28235 Py_ssize_t _n = 0;
28236 { // ',' pattern
28237 if (p->error_indicator) {
28238 p->level--;
28239 return NULL;
28240 }
28241 D(fprintf(stderr, "%*c> _loop0_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
28242 Token * _literal;
28243 pattern_ty elem;
28244 while (
28245 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28246 &&
28247 (elem = pattern_rule(p)) // pattern
28248 )
28249 {
28250 _res = elem;
28251 if (_res == NULL && PyErr_Occurred()) {
28252 p->error_indicator = 1;
28253 PyMem_Free(_children);
28254 p->level--;
28255 return NULL;
28256 }
28257 if (_n == _children_capacity) {
28258 _children_capacity *= 2;
28259 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28260 if (!_new_children) {
28261 PyMem_Free(_children);
28262 p->error_indicator = 1;
28263 PyErr_NoMemory();
28264 p->level--;
28265 return NULL;
28266 }
28267 _children = _new_children;
28268 }
28269 _children[_n++] = _res;
28270 _mark = p->mark;
28271 }
28272 p->mark = _mark;
28273 D(fprintf(stderr, "%*c%s _loop0_77[%d-%d]: %s failed!\n", p->level, ' ',
28274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
28275 }
28276 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28277 if (!_seq) {
28278 PyMem_Free(_children);
28279 p->error_indicator = 1;
28280 PyErr_NoMemory();
28281 p->level--;
28282 return NULL;
28283 }
28284 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28285 PyMem_Free(_children);
28286 p->level--;
28287 return _seq;
28288 }
28289
28290 // _gather_76: pattern _loop0_77
28291 static asdl_seq *
_gather_76_rule(Parser * p)28292 _gather_76_rule(Parser *p)
28293 {
28294 if (p->level++ == MAXSTACK) {
28295 p->error_indicator = 1;
28296 PyErr_NoMemory();
28297 }
28298 if (p->error_indicator) {
28299 p->level--;
28300 return NULL;
28301 }
28302 asdl_seq * _res = NULL;
28303 int _mark = p->mark;
28304 { // pattern _loop0_77
28305 if (p->error_indicator) {
28306 p->level--;
28307 return NULL;
28308 }
28309 D(fprintf(stderr, "%*c> _gather_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_77"));
28310 pattern_ty elem;
28311 asdl_seq * seq;
28312 if (
28313 (elem = pattern_rule(p)) // pattern
28314 &&
28315 (seq = _loop0_77_rule(p)) // _loop0_77
28316 )
28317 {
28318 D(fprintf(stderr, "%*c+ _gather_76[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_77"));
28319 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28320 goto done;
28321 }
28322 p->mark = _mark;
28323 D(fprintf(stderr, "%*c%s _gather_76[%d-%d]: %s failed!\n", p->level, ' ',
28324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_77"));
28325 }
28326 _res = NULL;
28327 done:
28328 p->level--;
28329 return _res;
28330 }
28331
28332 // _loop0_79: ',' keyword_pattern
28333 static asdl_seq *
_loop0_79_rule(Parser * p)28334 _loop0_79_rule(Parser *p)
28335 {
28336 if (p->level++ == MAXSTACK) {
28337 p->error_indicator = 1;
28338 PyErr_NoMemory();
28339 }
28340 if (p->error_indicator) {
28341 p->level--;
28342 return NULL;
28343 }
28344 void *_res = NULL;
28345 int _mark = p->mark;
28346 void **_children = PyMem_Malloc(sizeof(void *));
28347 if (!_children) {
28348 p->error_indicator = 1;
28349 PyErr_NoMemory();
28350 p->level--;
28351 return NULL;
28352 }
28353 Py_ssize_t _children_capacity = 1;
28354 Py_ssize_t _n = 0;
28355 { // ',' keyword_pattern
28356 if (p->error_indicator) {
28357 p->level--;
28358 return NULL;
28359 }
28360 D(fprintf(stderr, "%*c> _loop0_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
28361 Token * _literal;
28362 KeyPatternPair* elem;
28363 while (
28364 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28365 &&
28366 (elem = keyword_pattern_rule(p)) // keyword_pattern
28367 )
28368 {
28369 _res = elem;
28370 if (_res == NULL && PyErr_Occurred()) {
28371 p->error_indicator = 1;
28372 PyMem_Free(_children);
28373 p->level--;
28374 return NULL;
28375 }
28376 if (_n == _children_capacity) {
28377 _children_capacity *= 2;
28378 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28379 if (!_new_children) {
28380 PyMem_Free(_children);
28381 p->error_indicator = 1;
28382 PyErr_NoMemory();
28383 p->level--;
28384 return NULL;
28385 }
28386 _children = _new_children;
28387 }
28388 _children[_n++] = _res;
28389 _mark = p->mark;
28390 }
28391 p->mark = _mark;
28392 D(fprintf(stderr, "%*c%s _loop0_79[%d-%d]: %s failed!\n", p->level, ' ',
28393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
28394 }
28395 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28396 if (!_seq) {
28397 PyMem_Free(_children);
28398 p->error_indicator = 1;
28399 PyErr_NoMemory();
28400 p->level--;
28401 return NULL;
28402 }
28403 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28404 PyMem_Free(_children);
28405 p->level--;
28406 return _seq;
28407 }
28408
28409 // _gather_78: keyword_pattern _loop0_79
28410 static asdl_seq *
_gather_78_rule(Parser * p)28411 _gather_78_rule(Parser *p)
28412 {
28413 if (p->level++ == MAXSTACK) {
28414 p->error_indicator = 1;
28415 PyErr_NoMemory();
28416 }
28417 if (p->error_indicator) {
28418 p->level--;
28419 return NULL;
28420 }
28421 asdl_seq * _res = NULL;
28422 int _mark = p->mark;
28423 { // keyword_pattern _loop0_79
28424 if (p->error_indicator) {
28425 p->level--;
28426 return NULL;
28427 }
28428 D(fprintf(stderr, "%*c> _gather_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_79"));
28429 KeyPatternPair* elem;
28430 asdl_seq * seq;
28431 if (
28432 (elem = keyword_pattern_rule(p)) // keyword_pattern
28433 &&
28434 (seq = _loop0_79_rule(p)) // _loop0_79
28435 )
28436 {
28437 D(fprintf(stderr, "%*c+ _gather_78[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_79"));
28438 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28439 goto done;
28440 }
28441 p->mark = _mark;
28442 D(fprintf(stderr, "%*c%s _gather_78[%d-%d]: %s failed!\n", p->level, ' ',
28443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_79"));
28444 }
28445 _res = NULL;
28446 done:
28447 p->level--;
28448 return _res;
28449 }
28450
28451 // _loop1_80: (',' expression)
28452 static asdl_seq *
_loop1_80_rule(Parser * p)28453 _loop1_80_rule(Parser *p)
28454 {
28455 if (p->level++ == MAXSTACK) {
28456 p->error_indicator = 1;
28457 PyErr_NoMemory();
28458 }
28459 if (p->error_indicator) {
28460 p->level--;
28461 return NULL;
28462 }
28463 void *_res = NULL;
28464 int _mark = p->mark;
28465 void **_children = PyMem_Malloc(sizeof(void *));
28466 if (!_children) {
28467 p->error_indicator = 1;
28468 PyErr_NoMemory();
28469 p->level--;
28470 return NULL;
28471 }
28472 Py_ssize_t _children_capacity = 1;
28473 Py_ssize_t _n = 0;
28474 { // (',' expression)
28475 if (p->error_indicator) {
28476 p->level--;
28477 return NULL;
28478 }
28479 D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
28480 void *_tmp_226_var;
28481 while (
28482 (_tmp_226_var = _tmp_226_rule(p)) // ',' expression
28483 )
28484 {
28485 _res = _tmp_226_var;
28486 if (_n == _children_capacity) {
28487 _children_capacity *= 2;
28488 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28489 if (!_new_children) {
28490 PyMem_Free(_children);
28491 p->error_indicator = 1;
28492 PyErr_NoMemory();
28493 p->level--;
28494 return NULL;
28495 }
28496 _children = _new_children;
28497 }
28498 _children[_n++] = _res;
28499 _mark = p->mark;
28500 }
28501 p->mark = _mark;
28502 D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ',
28503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
28504 }
28505 if (_n == 0 || p->error_indicator) {
28506 PyMem_Free(_children);
28507 p->level--;
28508 return NULL;
28509 }
28510 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28511 if (!_seq) {
28512 PyMem_Free(_children);
28513 p->error_indicator = 1;
28514 PyErr_NoMemory();
28515 p->level--;
28516 return NULL;
28517 }
28518 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28519 PyMem_Free(_children);
28520 p->level--;
28521 return _seq;
28522 }
28523
28524 // _loop1_81: (',' star_expression)
28525 static asdl_seq *
_loop1_81_rule(Parser * p)28526 _loop1_81_rule(Parser *p)
28527 {
28528 if (p->level++ == MAXSTACK) {
28529 p->error_indicator = 1;
28530 PyErr_NoMemory();
28531 }
28532 if (p->error_indicator) {
28533 p->level--;
28534 return NULL;
28535 }
28536 void *_res = NULL;
28537 int _mark = p->mark;
28538 void **_children = PyMem_Malloc(sizeof(void *));
28539 if (!_children) {
28540 p->error_indicator = 1;
28541 PyErr_NoMemory();
28542 p->level--;
28543 return NULL;
28544 }
28545 Py_ssize_t _children_capacity = 1;
28546 Py_ssize_t _n = 0;
28547 { // (',' star_expression)
28548 if (p->error_indicator) {
28549 p->level--;
28550 return NULL;
28551 }
28552 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
28553 void *_tmp_227_var;
28554 while (
28555 (_tmp_227_var = _tmp_227_rule(p)) // ',' star_expression
28556 )
28557 {
28558 _res = _tmp_227_var;
28559 if (_n == _children_capacity) {
28560 _children_capacity *= 2;
28561 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28562 if (!_new_children) {
28563 PyMem_Free(_children);
28564 p->error_indicator = 1;
28565 PyErr_NoMemory();
28566 p->level--;
28567 return NULL;
28568 }
28569 _children = _new_children;
28570 }
28571 _children[_n++] = _res;
28572 _mark = p->mark;
28573 }
28574 p->mark = _mark;
28575 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
28576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
28577 }
28578 if (_n == 0 || p->error_indicator) {
28579 PyMem_Free(_children);
28580 p->level--;
28581 return NULL;
28582 }
28583 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28584 if (!_seq) {
28585 PyMem_Free(_children);
28586 p->error_indicator = 1;
28587 PyErr_NoMemory();
28588 p->level--;
28589 return NULL;
28590 }
28591 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28592 PyMem_Free(_children);
28593 p->level--;
28594 return _seq;
28595 }
28596
28597 // _loop0_83: ',' star_named_expression
28598 static asdl_seq *
_loop0_83_rule(Parser * p)28599 _loop0_83_rule(Parser *p)
28600 {
28601 if (p->level++ == MAXSTACK) {
28602 p->error_indicator = 1;
28603 PyErr_NoMemory();
28604 }
28605 if (p->error_indicator) {
28606 p->level--;
28607 return NULL;
28608 }
28609 void *_res = NULL;
28610 int _mark = p->mark;
28611 void **_children = PyMem_Malloc(sizeof(void *));
28612 if (!_children) {
28613 p->error_indicator = 1;
28614 PyErr_NoMemory();
28615 p->level--;
28616 return NULL;
28617 }
28618 Py_ssize_t _children_capacity = 1;
28619 Py_ssize_t _n = 0;
28620 { // ',' star_named_expression
28621 if (p->error_indicator) {
28622 p->level--;
28623 return NULL;
28624 }
28625 D(fprintf(stderr, "%*c> _loop0_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression"));
28626 Token * _literal;
28627 expr_ty elem;
28628 while (
28629 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28630 &&
28631 (elem = star_named_expression_rule(p)) // star_named_expression
28632 )
28633 {
28634 _res = elem;
28635 if (_res == NULL && PyErr_Occurred()) {
28636 p->error_indicator = 1;
28637 PyMem_Free(_children);
28638 p->level--;
28639 return NULL;
28640 }
28641 if (_n == _children_capacity) {
28642 _children_capacity *= 2;
28643 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28644 if (!_new_children) {
28645 PyMem_Free(_children);
28646 p->error_indicator = 1;
28647 PyErr_NoMemory();
28648 p->level--;
28649 return NULL;
28650 }
28651 _children = _new_children;
28652 }
28653 _children[_n++] = _res;
28654 _mark = p->mark;
28655 }
28656 p->mark = _mark;
28657 D(fprintf(stderr, "%*c%s _loop0_83[%d-%d]: %s failed!\n", p->level, ' ',
28658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
28659 }
28660 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28661 if (!_seq) {
28662 PyMem_Free(_children);
28663 p->error_indicator = 1;
28664 PyErr_NoMemory();
28665 p->level--;
28666 return NULL;
28667 }
28668 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28669 PyMem_Free(_children);
28670 p->level--;
28671 return _seq;
28672 }
28673
28674 // _gather_82: star_named_expression _loop0_83
28675 static asdl_seq *
_gather_82_rule(Parser * p)28676 _gather_82_rule(Parser *p)
28677 {
28678 if (p->level++ == MAXSTACK) {
28679 p->error_indicator = 1;
28680 PyErr_NoMemory();
28681 }
28682 if (p->error_indicator) {
28683 p->level--;
28684 return NULL;
28685 }
28686 asdl_seq * _res = NULL;
28687 int _mark = p->mark;
28688 { // star_named_expression _loop0_83
28689 if (p->error_indicator) {
28690 p->level--;
28691 return NULL;
28692 }
28693 D(fprintf(stderr, "%*c> _gather_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_83"));
28694 expr_ty elem;
28695 asdl_seq * seq;
28696 if (
28697 (elem = star_named_expression_rule(p)) // star_named_expression
28698 &&
28699 (seq = _loop0_83_rule(p)) // _loop0_83
28700 )
28701 {
28702 D(fprintf(stderr, "%*c+ _gather_82[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_83"));
28703 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28704 goto done;
28705 }
28706 p->mark = _mark;
28707 D(fprintf(stderr, "%*c%s _gather_82[%d-%d]: %s failed!\n", p->level, ' ',
28708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_83"));
28709 }
28710 _res = NULL;
28711 done:
28712 p->level--;
28713 return _res;
28714 }
28715
28716 // _loop1_84: ('or' conjunction)
28717 static asdl_seq *
_loop1_84_rule(Parser * p)28718 _loop1_84_rule(Parser *p)
28719 {
28720 if (p->level++ == MAXSTACK) {
28721 p->error_indicator = 1;
28722 PyErr_NoMemory();
28723 }
28724 if (p->error_indicator) {
28725 p->level--;
28726 return NULL;
28727 }
28728 void *_res = NULL;
28729 int _mark = p->mark;
28730 void **_children = PyMem_Malloc(sizeof(void *));
28731 if (!_children) {
28732 p->error_indicator = 1;
28733 PyErr_NoMemory();
28734 p->level--;
28735 return NULL;
28736 }
28737 Py_ssize_t _children_capacity = 1;
28738 Py_ssize_t _n = 0;
28739 { // ('or' conjunction)
28740 if (p->error_indicator) {
28741 p->level--;
28742 return NULL;
28743 }
28744 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
28745 void *_tmp_228_var;
28746 while (
28747 (_tmp_228_var = _tmp_228_rule(p)) // 'or' conjunction
28748 )
28749 {
28750 _res = _tmp_228_var;
28751 if (_n == _children_capacity) {
28752 _children_capacity *= 2;
28753 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28754 if (!_new_children) {
28755 PyMem_Free(_children);
28756 p->error_indicator = 1;
28757 PyErr_NoMemory();
28758 p->level--;
28759 return NULL;
28760 }
28761 _children = _new_children;
28762 }
28763 _children[_n++] = _res;
28764 _mark = p->mark;
28765 }
28766 p->mark = _mark;
28767 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
28768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
28769 }
28770 if (_n == 0 || p->error_indicator) {
28771 PyMem_Free(_children);
28772 p->level--;
28773 return NULL;
28774 }
28775 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28776 if (!_seq) {
28777 PyMem_Free(_children);
28778 p->error_indicator = 1;
28779 PyErr_NoMemory();
28780 p->level--;
28781 return NULL;
28782 }
28783 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28784 PyMem_Free(_children);
28785 p->level--;
28786 return _seq;
28787 }
28788
28789 // _loop1_85: ('and' inversion)
28790 static asdl_seq *
_loop1_85_rule(Parser * p)28791 _loop1_85_rule(Parser *p)
28792 {
28793 if (p->level++ == MAXSTACK) {
28794 p->error_indicator = 1;
28795 PyErr_NoMemory();
28796 }
28797 if (p->error_indicator) {
28798 p->level--;
28799 return NULL;
28800 }
28801 void *_res = NULL;
28802 int _mark = p->mark;
28803 void **_children = PyMem_Malloc(sizeof(void *));
28804 if (!_children) {
28805 p->error_indicator = 1;
28806 PyErr_NoMemory();
28807 p->level--;
28808 return NULL;
28809 }
28810 Py_ssize_t _children_capacity = 1;
28811 Py_ssize_t _n = 0;
28812 { // ('and' inversion)
28813 if (p->error_indicator) {
28814 p->level--;
28815 return NULL;
28816 }
28817 D(fprintf(stderr, "%*c> _loop1_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
28818 void *_tmp_229_var;
28819 while (
28820 (_tmp_229_var = _tmp_229_rule(p)) // 'and' inversion
28821 )
28822 {
28823 _res = _tmp_229_var;
28824 if (_n == _children_capacity) {
28825 _children_capacity *= 2;
28826 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28827 if (!_new_children) {
28828 PyMem_Free(_children);
28829 p->error_indicator = 1;
28830 PyErr_NoMemory();
28831 p->level--;
28832 return NULL;
28833 }
28834 _children = _new_children;
28835 }
28836 _children[_n++] = _res;
28837 _mark = p->mark;
28838 }
28839 p->mark = _mark;
28840 D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
28841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
28842 }
28843 if (_n == 0 || p->error_indicator) {
28844 PyMem_Free(_children);
28845 p->level--;
28846 return NULL;
28847 }
28848 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28849 if (!_seq) {
28850 PyMem_Free(_children);
28851 p->error_indicator = 1;
28852 PyErr_NoMemory();
28853 p->level--;
28854 return NULL;
28855 }
28856 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28857 PyMem_Free(_children);
28858 p->level--;
28859 return _seq;
28860 }
28861
28862 // _loop1_86: compare_op_bitwise_or_pair
28863 static asdl_seq *
_loop1_86_rule(Parser * p)28864 _loop1_86_rule(Parser *p)
28865 {
28866 if (p->level++ == MAXSTACK) {
28867 p->error_indicator = 1;
28868 PyErr_NoMemory();
28869 }
28870 if (p->error_indicator) {
28871 p->level--;
28872 return NULL;
28873 }
28874 void *_res = NULL;
28875 int _mark = p->mark;
28876 void **_children = PyMem_Malloc(sizeof(void *));
28877 if (!_children) {
28878 p->error_indicator = 1;
28879 PyErr_NoMemory();
28880 p->level--;
28881 return NULL;
28882 }
28883 Py_ssize_t _children_capacity = 1;
28884 Py_ssize_t _n = 0;
28885 { // compare_op_bitwise_or_pair
28886 if (p->error_indicator) {
28887 p->level--;
28888 return NULL;
28889 }
28890 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair"));
28891 CmpopExprPair* compare_op_bitwise_or_pair_var;
28892 while (
28893 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
28894 )
28895 {
28896 _res = compare_op_bitwise_or_pair_var;
28897 if (_n == _children_capacity) {
28898 _children_capacity *= 2;
28899 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28900 if (!_new_children) {
28901 PyMem_Free(_children);
28902 p->error_indicator = 1;
28903 PyErr_NoMemory();
28904 p->level--;
28905 return NULL;
28906 }
28907 _children = _new_children;
28908 }
28909 _children[_n++] = _res;
28910 _mark = p->mark;
28911 }
28912 p->mark = _mark;
28913 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
28914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
28915 }
28916 if (_n == 0 || p->error_indicator) {
28917 PyMem_Free(_children);
28918 p->level--;
28919 return NULL;
28920 }
28921 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28922 if (!_seq) {
28923 PyMem_Free(_children);
28924 p->error_indicator = 1;
28925 PyErr_NoMemory();
28926 p->level--;
28927 return NULL;
28928 }
28929 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28930 PyMem_Free(_children);
28931 p->level--;
28932 return _seq;
28933 }
28934
28935 // _tmp_87: '!='
28936 static void *
_tmp_87_rule(Parser * p)28937 _tmp_87_rule(Parser *p)
28938 {
28939 if (p->level++ == MAXSTACK) {
28940 p->error_indicator = 1;
28941 PyErr_NoMemory();
28942 }
28943 if (p->error_indicator) {
28944 p->level--;
28945 return NULL;
28946 }
28947 void * _res = NULL;
28948 int _mark = p->mark;
28949 { // '!='
28950 if (p->error_indicator) {
28951 p->level--;
28952 return NULL;
28953 }
28954 D(fprintf(stderr, "%*c> _tmp_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
28955 Token * tok;
28956 if (
28957 (tok = _PyPegen_expect_token(p, 28)) // token='!='
28958 )
28959 {
28960 D(fprintf(stderr, "%*c+ _tmp_87[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
28961 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
28962 if (_res == NULL && PyErr_Occurred()) {
28963 p->error_indicator = 1;
28964 p->level--;
28965 return NULL;
28966 }
28967 goto done;
28968 }
28969 p->mark = _mark;
28970 D(fprintf(stderr, "%*c%s _tmp_87[%d-%d]: %s failed!\n", p->level, ' ',
28971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
28972 }
28973 _res = NULL;
28974 done:
28975 p->level--;
28976 return _res;
28977 }
28978
28979 // _loop0_89: ',' (slice | starred_expression)
28980 static asdl_seq *
_loop0_89_rule(Parser * p)28981 _loop0_89_rule(Parser *p)
28982 {
28983 if (p->level++ == MAXSTACK) {
28984 p->error_indicator = 1;
28985 PyErr_NoMemory();
28986 }
28987 if (p->error_indicator) {
28988 p->level--;
28989 return NULL;
28990 }
28991 void *_res = NULL;
28992 int _mark = p->mark;
28993 void **_children = PyMem_Malloc(sizeof(void *));
28994 if (!_children) {
28995 p->error_indicator = 1;
28996 PyErr_NoMemory();
28997 p->level--;
28998 return NULL;
28999 }
29000 Py_ssize_t _children_capacity = 1;
29001 Py_ssize_t _n = 0;
29002 { // ',' (slice | starred_expression)
29003 if (p->error_indicator) {
29004 p->level--;
29005 return NULL;
29006 }
29007 D(fprintf(stderr, "%*c> _loop0_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (slice | starred_expression)"));
29008 Token * _literal;
29009 void *elem;
29010 while (
29011 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29012 &&
29013 (elem = _tmp_230_rule(p)) // slice | starred_expression
29014 )
29015 {
29016 _res = elem;
29017 if (_res == NULL && PyErr_Occurred()) {
29018 p->error_indicator = 1;
29019 PyMem_Free(_children);
29020 p->level--;
29021 return NULL;
29022 }
29023 if (_n == _children_capacity) {
29024 _children_capacity *= 2;
29025 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29026 if (!_new_children) {
29027 PyMem_Free(_children);
29028 p->error_indicator = 1;
29029 PyErr_NoMemory();
29030 p->level--;
29031 return NULL;
29032 }
29033 _children = _new_children;
29034 }
29035 _children[_n++] = _res;
29036 _mark = p->mark;
29037 }
29038 p->mark = _mark;
29039 D(fprintf(stderr, "%*c%s _loop0_89[%d-%d]: %s failed!\n", p->level, ' ',
29040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (slice | starred_expression)"));
29041 }
29042 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29043 if (!_seq) {
29044 PyMem_Free(_children);
29045 p->error_indicator = 1;
29046 PyErr_NoMemory();
29047 p->level--;
29048 return NULL;
29049 }
29050 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29051 PyMem_Free(_children);
29052 p->level--;
29053 return _seq;
29054 }
29055
29056 // _gather_88: (slice | starred_expression) _loop0_89
29057 static asdl_seq *
_gather_88_rule(Parser * p)29058 _gather_88_rule(Parser *p)
29059 {
29060 if (p->level++ == MAXSTACK) {
29061 p->error_indicator = 1;
29062 PyErr_NoMemory();
29063 }
29064 if (p->error_indicator) {
29065 p->level--;
29066 return NULL;
29067 }
29068 asdl_seq * _res = NULL;
29069 int _mark = p->mark;
29070 { // (slice | starred_expression) _loop0_89
29071 if (p->error_indicator) {
29072 p->level--;
29073 return NULL;
29074 }
29075 D(fprintf(stderr, "%*c> _gather_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(slice | starred_expression) _loop0_89"));
29076 void *elem;
29077 asdl_seq * seq;
29078 if (
29079 (elem = _tmp_230_rule(p)) // slice | starred_expression
29080 &&
29081 (seq = _loop0_89_rule(p)) // _loop0_89
29082 )
29083 {
29084 D(fprintf(stderr, "%*c+ _gather_88[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(slice | starred_expression) _loop0_89"));
29085 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29086 goto done;
29087 }
29088 p->mark = _mark;
29089 D(fprintf(stderr, "%*c%s _gather_88[%d-%d]: %s failed!\n", p->level, ' ',
29090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(slice | starred_expression) _loop0_89"));
29091 }
29092 _res = NULL;
29093 done:
29094 p->level--;
29095 return _res;
29096 }
29097
29098 // _tmp_90: ':' expression?
29099 static void *
_tmp_90_rule(Parser * p)29100 _tmp_90_rule(Parser *p)
29101 {
29102 if (p->level++ == MAXSTACK) {
29103 p->error_indicator = 1;
29104 PyErr_NoMemory();
29105 }
29106 if (p->error_indicator) {
29107 p->level--;
29108 return NULL;
29109 }
29110 void * _res = NULL;
29111 int _mark = p->mark;
29112 { // ':' expression?
29113 if (p->error_indicator) {
29114 p->level--;
29115 return NULL;
29116 }
29117 D(fprintf(stderr, "%*c> _tmp_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
29118 Token * _literal;
29119 void *d;
29120 if (
29121 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
29122 &&
29123 (d = expression_rule(p), !p->error_indicator) // expression?
29124 )
29125 {
29126 D(fprintf(stderr, "%*c+ _tmp_90[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
29127 _res = d;
29128 if (_res == NULL && PyErr_Occurred()) {
29129 p->error_indicator = 1;
29130 p->level--;
29131 return NULL;
29132 }
29133 goto done;
29134 }
29135 p->mark = _mark;
29136 D(fprintf(stderr, "%*c%s _tmp_90[%d-%d]: %s failed!\n", p->level, ' ',
29137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
29138 }
29139 _res = NULL;
29140 done:
29141 p->level--;
29142 return _res;
29143 }
29144
29145 // _tmp_91: tuple | group | genexp
29146 static void *
_tmp_91_rule(Parser * p)29147 _tmp_91_rule(Parser *p)
29148 {
29149 if (p->level++ == MAXSTACK) {
29150 p->error_indicator = 1;
29151 PyErr_NoMemory();
29152 }
29153 if (p->error_indicator) {
29154 p->level--;
29155 return NULL;
29156 }
29157 void * _res = NULL;
29158 int _mark = p->mark;
29159 { // tuple
29160 if (p->error_indicator) {
29161 p->level--;
29162 return NULL;
29163 }
29164 D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
29165 expr_ty tuple_var;
29166 if (
29167 (tuple_var = tuple_rule(p)) // tuple
29168 )
29169 {
29170 D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
29171 _res = tuple_var;
29172 goto done;
29173 }
29174 p->mark = _mark;
29175 D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
29176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
29177 }
29178 { // group
29179 if (p->error_indicator) {
29180 p->level--;
29181 return NULL;
29182 }
29183 D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
29184 expr_ty group_var;
29185 if (
29186 (group_var = group_rule(p)) // group
29187 )
29188 {
29189 D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
29190 _res = group_var;
29191 goto done;
29192 }
29193 p->mark = _mark;
29194 D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
29195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
29196 }
29197 { // genexp
29198 if (p->error_indicator) {
29199 p->level--;
29200 return NULL;
29201 }
29202 D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
29203 expr_ty genexp_var;
29204 if (
29205 (genexp_var = genexp_rule(p)) // genexp
29206 )
29207 {
29208 D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
29209 _res = genexp_var;
29210 goto done;
29211 }
29212 p->mark = _mark;
29213 D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
29214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
29215 }
29216 _res = NULL;
29217 done:
29218 p->level--;
29219 return _res;
29220 }
29221
29222 // _tmp_92: list | listcomp
29223 static void *
_tmp_92_rule(Parser * p)29224 _tmp_92_rule(Parser *p)
29225 {
29226 if (p->level++ == MAXSTACK) {
29227 p->error_indicator = 1;
29228 PyErr_NoMemory();
29229 }
29230 if (p->error_indicator) {
29231 p->level--;
29232 return NULL;
29233 }
29234 void * _res = NULL;
29235 int _mark = p->mark;
29236 { // list
29237 if (p->error_indicator) {
29238 p->level--;
29239 return NULL;
29240 }
29241 D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
29242 expr_ty list_var;
29243 if (
29244 (list_var = list_rule(p)) // list
29245 )
29246 {
29247 D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
29248 _res = list_var;
29249 goto done;
29250 }
29251 p->mark = _mark;
29252 D(fprintf(stderr, "%*c%s _tmp_92[%d-%d]: %s failed!\n", p->level, ' ',
29253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
29254 }
29255 { // listcomp
29256 if (p->error_indicator) {
29257 p->level--;
29258 return NULL;
29259 }
29260 D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
29261 expr_ty listcomp_var;
29262 if (
29263 (listcomp_var = listcomp_rule(p)) // listcomp
29264 )
29265 {
29266 D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
29267 _res = listcomp_var;
29268 goto done;
29269 }
29270 p->mark = _mark;
29271 D(fprintf(stderr, "%*c%s _tmp_92[%d-%d]: %s failed!\n", p->level, ' ',
29272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
29273 }
29274 _res = NULL;
29275 done:
29276 p->level--;
29277 return _res;
29278 }
29279
29280 // _tmp_93: dict | set | dictcomp | setcomp
29281 static void *
_tmp_93_rule(Parser * p)29282 _tmp_93_rule(Parser *p)
29283 {
29284 if (p->level++ == MAXSTACK) {
29285 p->error_indicator = 1;
29286 PyErr_NoMemory();
29287 }
29288 if (p->error_indicator) {
29289 p->level--;
29290 return NULL;
29291 }
29292 void * _res = NULL;
29293 int _mark = p->mark;
29294 { // dict
29295 if (p->error_indicator) {
29296 p->level--;
29297 return NULL;
29298 }
29299 D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
29300 expr_ty dict_var;
29301 if (
29302 (dict_var = dict_rule(p)) // dict
29303 )
29304 {
29305 D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
29306 _res = dict_var;
29307 goto done;
29308 }
29309 p->mark = _mark;
29310 D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
29311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
29312 }
29313 { // set
29314 if (p->error_indicator) {
29315 p->level--;
29316 return NULL;
29317 }
29318 D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
29319 expr_ty set_var;
29320 if (
29321 (set_var = set_rule(p)) // set
29322 )
29323 {
29324 D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
29325 _res = set_var;
29326 goto done;
29327 }
29328 p->mark = _mark;
29329 D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
29330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
29331 }
29332 { // dictcomp
29333 if (p->error_indicator) {
29334 p->level--;
29335 return NULL;
29336 }
29337 D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
29338 expr_ty dictcomp_var;
29339 if (
29340 (dictcomp_var = dictcomp_rule(p)) // dictcomp
29341 )
29342 {
29343 D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
29344 _res = dictcomp_var;
29345 goto done;
29346 }
29347 p->mark = _mark;
29348 D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
29349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
29350 }
29351 { // setcomp
29352 if (p->error_indicator) {
29353 p->level--;
29354 return NULL;
29355 }
29356 D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
29357 expr_ty setcomp_var;
29358 if (
29359 (setcomp_var = setcomp_rule(p)) // setcomp
29360 )
29361 {
29362 D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
29363 _res = setcomp_var;
29364 goto done;
29365 }
29366 p->mark = _mark;
29367 D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
29368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
29369 }
29370 _res = NULL;
29371 done:
29372 p->level--;
29373 return _res;
29374 }
29375
29376 // _tmp_94: yield_expr | named_expression
29377 static void *
_tmp_94_rule(Parser * p)29378 _tmp_94_rule(Parser *p)
29379 {
29380 if (p->level++ == MAXSTACK) {
29381 p->error_indicator = 1;
29382 PyErr_NoMemory();
29383 }
29384 if (p->error_indicator) {
29385 p->level--;
29386 return NULL;
29387 }
29388 void * _res = NULL;
29389 int _mark = p->mark;
29390 { // yield_expr
29391 if (p->error_indicator) {
29392 p->level--;
29393 return NULL;
29394 }
29395 D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
29396 expr_ty yield_expr_var;
29397 if (
29398 (yield_expr_var = yield_expr_rule(p)) // yield_expr
29399 )
29400 {
29401 D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
29402 _res = yield_expr_var;
29403 goto done;
29404 }
29405 p->mark = _mark;
29406 D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ',
29407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
29408 }
29409 { // named_expression
29410 if (p->error_indicator) {
29411 p->level--;
29412 return NULL;
29413 }
29414 D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
29415 expr_ty named_expression_var;
29416 if (
29417 (named_expression_var = named_expression_rule(p)) // named_expression
29418 )
29419 {
29420 D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
29421 _res = named_expression_var;
29422 goto done;
29423 }
29424 p->mark = _mark;
29425 D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ',
29426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
29427 }
29428 _res = NULL;
29429 done:
29430 p->level--;
29431 return _res;
29432 }
29433
29434 // _loop0_95: lambda_param_no_default
29435 static asdl_seq *
_loop0_95_rule(Parser * p)29436 _loop0_95_rule(Parser *p)
29437 {
29438 if (p->level++ == MAXSTACK) {
29439 p->error_indicator = 1;
29440 PyErr_NoMemory();
29441 }
29442 if (p->error_indicator) {
29443 p->level--;
29444 return NULL;
29445 }
29446 void *_res = NULL;
29447 int _mark = p->mark;
29448 void **_children = PyMem_Malloc(sizeof(void *));
29449 if (!_children) {
29450 p->error_indicator = 1;
29451 PyErr_NoMemory();
29452 p->level--;
29453 return NULL;
29454 }
29455 Py_ssize_t _children_capacity = 1;
29456 Py_ssize_t _n = 0;
29457 { // lambda_param_no_default
29458 if (p->error_indicator) {
29459 p->level--;
29460 return NULL;
29461 }
29462 D(fprintf(stderr, "%*c> _loop0_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
29463 arg_ty lambda_param_no_default_var;
29464 while (
29465 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
29466 )
29467 {
29468 _res = lambda_param_no_default_var;
29469 if (_n == _children_capacity) {
29470 _children_capacity *= 2;
29471 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29472 if (!_new_children) {
29473 PyMem_Free(_children);
29474 p->error_indicator = 1;
29475 PyErr_NoMemory();
29476 p->level--;
29477 return NULL;
29478 }
29479 _children = _new_children;
29480 }
29481 _children[_n++] = _res;
29482 _mark = p->mark;
29483 }
29484 p->mark = _mark;
29485 D(fprintf(stderr, "%*c%s _loop0_95[%d-%d]: %s failed!\n", p->level, ' ',
29486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
29487 }
29488 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29489 if (!_seq) {
29490 PyMem_Free(_children);
29491 p->error_indicator = 1;
29492 PyErr_NoMemory();
29493 p->level--;
29494 return NULL;
29495 }
29496 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29497 PyMem_Free(_children);
29498 p->level--;
29499 return _seq;
29500 }
29501
29502 // _loop0_96: lambda_param_with_default
29503 static asdl_seq *
_loop0_96_rule(Parser * p)29504 _loop0_96_rule(Parser *p)
29505 {
29506 if (p->level++ == MAXSTACK) {
29507 p->error_indicator = 1;
29508 PyErr_NoMemory();
29509 }
29510 if (p->error_indicator) {
29511 p->level--;
29512 return NULL;
29513 }
29514 void *_res = NULL;
29515 int _mark = p->mark;
29516 void **_children = PyMem_Malloc(sizeof(void *));
29517 if (!_children) {
29518 p->error_indicator = 1;
29519 PyErr_NoMemory();
29520 p->level--;
29521 return NULL;
29522 }
29523 Py_ssize_t _children_capacity = 1;
29524 Py_ssize_t _n = 0;
29525 { // lambda_param_with_default
29526 if (p->error_indicator) {
29527 p->level--;
29528 return NULL;
29529 }
29530 D(fprintf(stderr, "%*c> _loop0_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
29531 NameDefaultPair* lambda_param_with_default_var;
29532 while (
29533 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
29534 )
29535 {
29536 _res = lambda_param_with_default_var;
29537 if (_n == _children_capacity) {
29538 _children_capacity *= 2;
29539 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29540 if (!_new_children) {
29541 PyMem_Free(_children);
29542 p->error_indicator = 1;
29543 PyErr_NoMemory();
29544 p->level--;
29545 return NULL;
29546 }
29547 _children = _new_children;
29548 }
29549 _children[_n++] = _res;
29550 _mark = p->mark;
29551 }
29552 p->mark = _mark;
29553 D(fprintf(stderr, "%*c%s _loop0_96[%d-%d]: %s failed!\n", p->level, ' ',
29554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
29555 }
29556 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29557 if (!_seq) {
29558 PyMem_Free(_children);
29559 p->error_indicator = 1;
29560 PyErr_NoMemory();
29561 p->level--;
29562 return NULL;
29563 }
29564 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29565 PyMem_Free(_children);
29566 p->level--;
29567 return _seq;
29568 }
29569
29570 // _loop0_97: lambda_param_with_default
29571 static asdl_seq *
_loop0_97_rule(Parser * p)29572 _loop0_97_rule(Parser *p)
29573 {
29574 if (p->level++ == MAXSTACK) {
29575 p->error_indicator = 1;
29576 PyErr_NoMemory();
29577 }
29578 if (p->error_indicator) {
29579 p->level--;
29580 return NULL;
29581 }
29582 void *_res = NULL;
29583 int _mark = p->mark;
29584 void **_children = PyMem_Malloc(sizeof(void *));
29585 if (!_children) {
29586 p->error_indicator = 1;
29587 PyErr_NoMemory();
29588 p->level--;
29589 return NULL;
29590 }
29591 Py_ssize_t _children_capacity = 1;
29592 Py_ssize_t _n = 0;
29593 { // lambda_param_with_default
29594 if (p->error_indicator) {
29595 p->level--;
29596 return NULL;
29597 }
29598 D(fprintf(stderr, "%*c> _loop0_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
29599 NameDefaultPair* lambda_param_with_default_var;
29600 while (
29601 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
29602 )
29603 {
29604 _res = lambda_param_with_default_var;
29605 if (_n == _children_capacity) {
29606 _children_capacity *= 2;
29607 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29608 if (!_new_children) {
29609 PyMem_Free(_children);
29610 p->error_indicator = 1;
29611 PyErr_NoMemory();
29612 p->level--;
29613 return NULL;
29614 }
29615 _children = _new_children;
29616 }
29617 _children[_n++] = _res;
29618 _mark = p->mark;
29619 }
29620 p->mark = _mark;
29621 D(fprintf(stderr, "%*c%s _loop0_97[%d-%d]: %s failed!\n", p->level, ' ',
29622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
29623 }
29624 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29625 if (!_seq) {
29626 PyMem_Free(_children);
29627 p->error_indicator = 1;
29628 PyErr_NoMemory();
29629 p->level--;
29630 return NULL;
29631 }
29632 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29633 PyMem_Free(_children);
29634 p->level--;
29635 return _seq;
29636 }
29637
29638 // _loop1_98: lambda_param_no_default
29639 static asdl_seq *
_loop1_98_rule(Parser * p)29640 _loop1_98_rule(Parser *p)
29641 {
29642 if (p->level++ == MAXSTACK) {
29643 p->error_indicator = 1;
29644 PyErr_NoMemory();
29645 }
29646 if (p->error_indicator) {
29647 p->level--;
29648 return NULL;
29649 }
29650 void *_res = NULL;
29651 int _mark = p->mark;
29652 void **_children = PyMem_Malloc(sizeof(void *));
29653 if (!_children) {
29654 p->error_indicator = 1;
29655 PyErr_NoMemory();
29656 p->level--;
29657 return NULL;
29658 }
29659 Py_ssize_t _children_capacity = 1;
29660 Py_ssize_t _n = 0;
29661 { // lambda_param_no_default
29662 if (p->error_indicator) {
29663 p->level--;
29664 return NULL;
29665 }
29666 D(fprintf(stderr, "%*c> _loop1_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
29667 arg_ty lambda_param_no_default_var;
29668 while (
29669 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
29670 )
29671 {
29672 _res = lambda_param_no_default_var;
29673 if (_n == _children_capacity) {
29674 _children_capacity *= 2;
29675 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29676 if (!_new_children) {
29677 PyMem_Free(_children);
29678 p->error_indicator = 1;
29679 PyErr_NoMemory();
29680 p->level--;
29681 return NULL;
29682 }
29683 _children = _new_children;
29684 }
29685 _children[_n++] = _res;
29686 _mark = p->mark;
29687 }
29688 p->mark = _mark;
29689 D(fprintf(stderr, "%*c%s _loop1_98[%d-%d]: %s failed!\n", p->level, ' ',
29690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
29691 }
29692 if (_n == 0 || p->error_indicator) {
29693 PyMem_Free(_children);
29694 p->level--;
29695 return NULL;
29696 }
29697 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29698 if (!_seq) {
29699 PyMem_Free(_children);
29700 p->error_indicator = 1;
29701 PyErr_NoMemory();
29702 p->level--;
29703 return NULL;
29704 }
29705 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29706 PyMem_Free(_children);
29707 p->level--;
29708 return _seq;
29709 }
29710
29711 // _loop0_99: lambda_param_with_default
29712 static asdl_seq *
_loop0_99_rule(Parser * p)29713 _loop0_99_rule(Parser *p)
29714 {
29715 if (p->level++ == MAXSTACK) {
29716 p->error_indicator = 1;
29717 PyErr_NoMemory();
29718 }
29719 if (p->error_indicator) {
29720 p->level--;
29721 return NULL;
29722 }
29723 void *_res = NULL;
29724 int _mark = p->mark;
29725 void **_children = PyMem_Malloc(sizeof(void *));
29726 if (!_children) {
29727 p->error_indicator = 1;
29728 PyErr_NoMemory();
29729 p->level--;
29730 return NULL;
29731 }
29732 Py_ssize_t _children_capacity = 1;
29733 Py_ssize_t _n = 0;
29734 { // lambda_param_with_default
29735 if (p->error_indicator) {
29736 p->level--;
29737 return NULL;
29738 }
29739 D(fprintf(stderr, "%*c> _loop0_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
29740 NameDefaultPair* lambda_param_with_default_var;
29741 while (
29742 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
29743 )
29744 {
29745 _res = lambda_param_with_default_var;
29746 if (_n == _children_capacity) {
29747 _children_capacity *= 2;
29748 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29749 if (!_new_children) {
29750 PyMem_Free(_children);
29751 p->error_indicator = 1;
29752 PyErr_NoMemory();
29753 p->level--;
29754 return NULL;
29755 }
29756 _children = _new_children;
29757 }
29758 _children[_n++] = _res;
29759 _mark = p->mark;
29760 }
29761 p->mark = _mark;
29762 D(fprintf(stderr, "%*c%s _loop0_99[%d-%d]: %s failed!\n", p->level, ' ',
29763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
29764 }
29765 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29766 if (!_seq) {
29767 PyMem_Free(_children);
29768 p->error_indicator = 1;
29769 PyErr_NoMemory();
29770 p->level--;
29771 return NULL;
29772 }
29773 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29774 PyMem_Free(_children);
29775 p->level--;
29776 return _seq;
29777 }
29778
29779 // _loop1_100: lambda_param_with_default
29780 static asdl_seq *
_loop1_100_rule(Parser * p)29781 _loop1_100_rule(Parser *p)
29782 {
29783 if (p->level++ == MAXSTACK) {
29784 p->error_indicator = 1;
29785 PyErr_NoMemory();
29786 }
29787 if (p->error_indicator) {
29788 p->level--;
29789 return NULL;
29790 }
29791 void *_res = NULL;
29792 int _mark = p->mark;
29793 void **_children = PyMem_Malloc(sizeof(void *));
29794 if (!_children) {
29795 p->error_indicator = 1;
29796 PyErr_NoMemory();
29797 p->level--;
29798 return NULL;
29799 }
29800 Py_ssize_t _children_capacity = 1;
29801 Py_ssize_t _n = 0;
29802 { // lambda_param_with_default
29803 if (p->error_indicator) {
29804 p->level--;
29805 return NULL;
29806 }
29807 D(fprintf(stderr, "%*c> _loop1_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
29808 NameDefaultPair* lambda_param_with_default_var;
29809 while (
29810 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
29811 )
29812 {
29813 _res = lambda_param_with_default_var;
29814 if (_n == _children_capacity) {
29815 _children_capacity *= 2;
29816 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29817 if (!_new_children) {
29818 PyMem_Free(_children);
29819 p->error_indicator = 1;
29820 PyErr_NoMemory();
29821 p->level--;
29822 return NULL;
29823 }
29824 _children = _new_children;
29825 }
29826 _children[_n++] = _res;
29827 _mark = p->mark;
29828 }
29829 p->mark = _mark;
29830 D(fprintf(stderr, "%*c%s _loop1_100[%d-%d]: %s failed!\n", p->level, ' ',
29831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
29832 }
29833 if (_n == 0 || p->error_indicator) {
29834 PyMem_Free(_children);
29835 p->level--;
29836 return NULL;
29837 }
29838 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29839 if (!_seq) {
29840 PyMem_Free(_children);
29841 p->error_indicator = 1;
29842 PyErr_NoMemory();
29843 p->level--;
29844 return NULL;
29845 }
29846 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29847 PyMem_Free(_children);
29848 p->level--;
29849 return _seq;
29850 }
29851
29852 // _loop1_101: lambda_param_no_default
29853 static asdl_seq *
_loop1_101_rule(Parser * p)29854 _loop1_101_rule(Parser *p)
29855 {
29856 if (p->level++ == MAXSTACK) {
29857 p->error_indicator = 1;
29858 PyErr_NoMemory();
29859 }
29860 if (p->error_indicator) {
29861 p->level--;
29862 return NULL;
29863 }
29864 void *_res = NULL;
29865 int _mark = p->mark;
29866 void **_children = PyMem_Malloc(sizeof(void *));
29867 if (!_children) {
29868 p->error_indicator = 1;
29869 PyErr_NoMemory();
29870 p->level--;
29871 return NULL;
29872 }
29873 Py_ssize_t _children_capacity = 1;
29874 Py_ssize_t _n = 0;
29875 { // lambda_param_no_default
29876 if (p->error_indicator) {
29877 p->level--;
29878 return NULL;
29879 }
29880 D(fprintf(stderr, "%*c> _loop1_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
29881 arg_ty lambda_param_no_default_var;
29882 while (
29883 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
29884 )
29885 {
29886 _res = lambda_param_no_default_var;
29887 if (_n == _children_capacity) {
29888 _children_capacity *= 2;
29889 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29890 if (!_new_children) {
29891 PyMem_Free(_children);
29892 p->error_indicator = 1;
29893 PyErr_NoMemory();
29894 p->level--;
29895 return NULL;
29896 }
29897 _children = _new_children;
29898 }
29899 _children[_n++] = _res;
29900 _mark = p->mark;
29901 }
29902 p->mark = _mark;
29903 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
29904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
29905 }
29906 if (_n == 0 || p->error_indicator) {
29907 PyMem_Free(_children);
29908 p->level--;
29909 return NULL;
29910 }
29911 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29912 if (!_seq) {
29913 PyMem_Free(_children);
29914 p->error_indicator = 1;
29915 PyErr_NoMemory();
29916 p->level--;
29917 return NULL;
29918 }
29919 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29920 PyMem_Free(_children);
29921 p->level--;
29922 return _seq;
29923 }
29924
29925 // _loop1_102: lambda_param_no_default
29926 static asdl_seq *
_loop1_102_rule(Parser * p)29927 _loop1_102_rule(Parser *p)
29928 {
29929 if (p->level++ == MAXSTACK) {
29930 p->error_indicator = 1;
29931 PyErr_NoMemory();
29932 }
29933 if (p->error_indicator) {
29934 p->level--;
29935 return NULL;
29936 }
29937 void *_res = NULL;
29938 int _mark = p->mark;
29939 void **_children = PyMem_Malloc(sizeof(void *));
29940 if (!_children) {
29941 p->error_indicator = 1;
29942 PyErr_NoMemory();
29943 p->level--;
29944 return NULL;
29945 }
29946 Py_ssize_t _children_capacity = 1;
29947 Py_ssize_t _n = 0;
29948 { // lambda_param_no_default
29949 if (p->error_indicator) {
29950 p->level--;
29951 return NULL;
29952 }
29953 D(fprintf(stderr, "%*c> _loop1_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
29954 arg_ty lambda_param_no_default_var;
29955 while (
29956 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
29957 )
29958 {
29959 _res = lambda_param_no_default_var;
29960 if (_n == _children_capacity) {
29961 _children_capacity *= 2;
29962 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29963 if (!_new_children) {
29964 PyMem_Free(_children);
29965 p->error_indicator = 1;
29966 PyErr_NoMemory();
29967 p->level--;
29968 return NULL;
29969 }
29970 _children = _new_children;
29971 }
29972 _children[_n++] = _res;
29973 _mark = p->mark;
29974 }
29975 p->mark = _mark;
29976 D(fprintf(stderr, "%*c%s _loop1_102[%d-%d]: %s failed!\n", p->level, ' ',
29977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
29978 }
29979 if (_n == 0 || p->error_indicator) {
29980 PyMem_Free(_children);
29981 p->level--;
29982 return NULL;
29983 }
29984 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29985 if (!_seq) {
29986 PyMem_Free(_children);
29987 p->error_indicator = 1;
29988 PyErr_NoMemory();
29989 p->level--;
29990 return NULL;
29991 }
29992 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29993 PyMem_Free(_children);
29994 p->level--;
29995 return _seq;
29996 }
29997
29998 // _loop0_103: lambda_param_no_default
29999 static asdl_seq *
_loop0_103_rule(Parser * p)30000 _loop0_103_rule(Parser *p)
30001 {
30002 if (p->level++ == MAXSTACK) {
30003 p->error_indicator = 1;
30004 PyErr_NoMemory();
30005 }
30006 if (p->error_indicator) {
30007 p->level--;
30008 return NULL;
30009 }
30010 void *_res = NULL;
30011 int _mark = p->mark;
30012 void **_children = PyMem_Malloc(sizeof(void *));
30013 if (!_children) {
30014 p->error_indicator = 1;
30015 PyErr_NoMemory();
30016 p->level--;
30017 return NULL;
30018 }
30019 Py_ssize_t _children_capacity = 1;
30020 Py_ssize_t _n = 0;
30021 { // lambda_param_no_default
30022 if (p->error_indicator) {
30023 p->level--;
30024 return NULL;
30025 }
30026 D(fprintf(stderr, "%*c> _loop0_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
30027 arg_ty lambda_param_no_default_var;
30028 while (
30029 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
30030 )
30031 {
30032 _res = lambda_param_no_default_var;
30033 if (_n == _children_capacity) {
30034 _children_capacity *= 2;
30035 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30036 if (!_new_children) {
30037 PyMem_Free(_children);
30038 p->error_indicator = 1;
30039 PyErr_NoMemory();
30040 p->level--;
30041 return NULL;
30042 }
30043 _children = _new_children;
30044 }
30045 _children[_n++] = _res;
30046 _mark = p->mark;
30047 }
30048 p->mark = _mark;
30049 D(fprintf(stderr, "%*c%s _loop0_103[%d-%d]: %s failed!\n", p->level, ' ',
30050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
30051 }
30052 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30053 if (!_seq) {
30054 PyMem_Free(_children);
30055 p->error_indicator = 1;
30056 PyErr_NoMemory();
30057 p->level--;
30058 return NULL;
30059 }
30060 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30061 PyMem_Free(_children);
30062 p->level--;
30063 return _seq;
30064 }
30065
30066 // _loop1_104: lambda_param_with_default
30067 static asdl_seq *
_loop1_104_rule(Parser * p)30068 _loop1_104_rule(Parser *p)
30069 {
30070 if (p->level++ == MAXSTACK) {
30071 p->error_indicator = 1;
30072 PyErr_NoMemory();
30073 }
30074 if (p->error_indicator) {
30075 p->level--;
30076 return NULL;
30077 }
30078 void *_res = NULL;
30079 int _mark = p->mark;
30080 void **_children = PyMem_Malloc(sizeof(void *));
30081 if (!_children) {
30082 p->error_indicator = 1;
30083 PyErr_NoMemory();
30084 p->level--;
30085 return NULL;
30086 }
30087 Py_ssize_t _children_capacity = 1;
30088 Py_ssize_t _n = 0;
30089 { // lambda_param_with_default
30090 if (p->error_indicator) {
30091 p->level--;
30092 return NULL;
30093 }
30094 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
30095 NameDefaultPair* lambda_param_with_default_var;
30096 while (
30097 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
30098 )
30099 {
30100 _res = lambda_param_with_default_var;
30101 if (_n == _children_capacity) {
30102 _children_capacity *= 2;
30103 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30104 if (!_new_children) {
30105 PyMem_Free(_children);
30106 p->error_indicator = 1;
30107 PyErr_NoMemory();
30108 p->level--;
30109 return NULL;
30110 }
30111 _children = _new_children;
30112 }
30113 _children[_n++] = _res;
30114 _mark = p->mark;
30115 }
30116 p->mark = _mark;
30117 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
30118 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
30119 }
30120 if (_n == 0 || p->error_indicator) {
30121 PyMem_Free(_children);
30122 p->level--;
30123 return NULL;
30124 }
30125 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30126 if (!_seq) {
30127 PyMem_Free(_children);
30128 p->error_indicator = 1;
30129 PyErr_NoMemory();
30130 p->level--;
30131 return NULL;
30132 }
30133 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30134 PyMem_Free(_children);
30135 p->level--;
30136 return _seq;
30137 }
30138
30139 // _loop0_105: lambda_param_no_default
30140 static asdl_seq *
_loop0_105_rule(Parser * p)30141 _loop0_105_rule(Parser *p)
30142 {
30143 if (p->level++ == MAXSTACK) {
30144 p->error_indicator = 1;
30145 PyErr_NoMemory();
30146 }
30147 if (p->error_indicator) {
30148 p->level--;
30149 return NULL;
30150 }
30151 void *_res = NULL;
30152 int _mark = p->mark;
30153 void **_children = PyMem_Malloc(sizeof(void *));
30154 if (!_children) {
30155 p->error_indicator = 1;
30156 PyErr_NoMemory();
30157 p->level--;
30158 return NULL;
30159 }
30160 Py_ssize_t _children_capacity = 1;
30161 Py_ssize_t _n = 0;
30162 { // lambda_param_no_default
30163 if (p->error_indicator) {
30164 p->level--;
30165 return NULL;
30166 }
30167 D(fprintf(stderr, "%*c> _loop0_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
30168 arg_ty lambda_param_no_default_var;
30169 while (
30170 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
30171 )
30172 {
30173 _res = lambda_param_no_default_var;
30174 if (_n == _children_capacity) {
30175 _children_capacity *= 2;
30176 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30177 if (!_new_children) {
30178 PyMem_Free(_children);
30179 p->error_indicator = 1;
30180 PyErr_NoMemory();
30181 p->level--;
30182 return NULL;
30183 }
30184 _children = _new_children;
30185 }
30186 _children[_n++] = _res;
30187 _mark = p->mark;
30188 }
30189 p->mark = _mark;
30190 D(fprintf(stderr, "%*c%s _loop0_105[%d-%d]: %s failed!\n", p->level, ' ',
30191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
30192 }
30193 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30194 if (!_seq) {
30195 PyMem_Free(_children);
30196 p->error_indicator = 1;
30197 PyErr_NoMemory();
30198 p->level--;
30199 return NULL;
30200 }
30201 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30202 PyMem_Free(_children);
30203 p->level--;
30204 return _seq;
30205 }
30206
30207 // _loop1_106: lambda_param_with_default
30208 static asdl_seq *
_loop1_106_rule(Parser * p)30209 _loop1_106_rule(Parser *p)
30210 {
30211 if (p->level++ == MAXSTACK) {
30212 p->error_indicator = 1;
30213 PyErr_NoMemory();
30214 }
30215 if (p->error_indicator) {
30216 p->level--;
30217 return NULL;
30218 }
30219 void *_res = NULL;
30220 int _mark = p->mark;
30221 void **_children = PyMem_Malloc(sizeof(void *));
30222 if (!_children) {
30223 p->error_indicator = 1;
30224 PyErr_NoMemory();
30225 p->level--;
30226 return NULL;
30227 }
30228 Py_ssize_t _children_capacity = 1;
30229 Py_ssize_t _n = 0;
30230 { // lambda_param_with_default
30231 if (p->error_indicator) {
30232 p->level--;
30233 return NULL;
30234 }
30235 D(fprintf(stderr, "%*c> _loop1_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
30236 NameDefaultPair* lambda_param_with_default_var;
30237 while (
30238 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
30239 )
30240 {
30241 _res = lambda_param_with_default_var;
30242 if (_n == _children_capacity) {
30243 _children_capacity *= 2;
30244 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30245 if (!_new_children) {
30246 PyMem_Free(_children);
30247 p->error_indicator = 1;
30248 PyErr_NoMemory();
30249 p->level--;
30250 return NULL;
30251 }
30252 _children = _new_children;
30253 }
30254 _children[_n++] = _res;
30255 _mark = p->mark;
30256 }
30257 p->mark = _mark;
30258 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
30259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
30260 }
30261 if (_n == 0 || p->error_indicator) {
30262 PyMem_Free(_children);
30263 p->level--;
30264 return NULL;
30265 }
30266 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30267 if (!_seq) {
30268 PyMem_Free(_children);
30269 p->error_indicator = 1;
30270 PyErr_NoMemory();
30271 p->level--;
30272 return NULL;
30273 }
30274 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30275 PyMem_Free(_children);
30276 p->level--;
30277 return _seq;
30278 }
30279
30280 // _loop0_107: lambda_param_maybe_default
30281 static asdl_seq *
_loop0_107_rule(Parser * p)30282 _loop0_107_rule(Parser *p)
30283 {
30284 if (p->level++ == MAXSTACK) {
30285 p->error_indicator = 1;
30286 PyErr_NoMemory();
30287 }
30288 if (p->error_indicator) {
30289 p->level--;
30290 return NULL;
30291 }
30292 void *_res = NULL;
30293 int _mark = p->mark;
30294 void **_children = PyMem_Malloc(sizeof(void *));
30295 if (!_children) {
30296 p->error_indicator = 1;
30297 PyErr_NoMemory();
30298 p->level--;
30299 return NULL;
30300 }
30301 Py_ssize_t _children_capacity = 1;
30302 Py_ssize_t _n = 0;
30303 { // lambda_param_maybe_default
30304 if (p->error_indicator) {
30305 p->level--;
30306 return NULL;
30307 }
30308 D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
30309 NameDefaultPair* lambda_param_maybe_default_var;
30310 while (
30311 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
30312 )
30313 {
30314 _res = lambda_param_maybe_default_var;
30315 if (_n == _children_capacity) {
30316 _children_capacity *= 2;
30317 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30318 if (!_new_children) {
30319 PyMem_Free(_children);
30320 p->error_indicator = 1;
30321 PyErr_NoMemory();
30322 p->level--;
30323 return NULL;
30324 }
30325 _children = _new_children;
30326 }
30327 _children[_n++] = _res;
30328 _mark = p->mark;
30329 }
30330 p->mark = _mark;
30331 D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
30332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
30333 }
30334 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30335 if (!_seq) {
30336 PyMem_Free(_children);
30337 p->error_indicator = 1;
30338 PyErr_NoMemory();
30339 p->level--;
30340 return NULL;
30341 }
30342 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30343 PyMem_Free(_children);
30344 p->level--;
30345 return _seq;
30346 }
30347
30348 // _loop1_108: lambda_param_maybe_default
30349 static asdl_seq *
_loop1_108_rule(Parser * p)30350 _loop1_108_rule(Parser *p)
30351 {
30352 if (p->level++ == MAXSTACK) {
30353 p->error_indicator = 1;
30354 PyErr_NoMemory();
30355 }
30356 if (p->error_indicator) {
30357 p->level--;
30358 return NULL;
30359 }
30360 void *_res = NULL;
30361 int _mark = p->mark;
30362 void **_children = PyMem_Malloc(sizeof(void *));
30363 if (!_children) {
30364 p->error_indicator = 1;
30365 PyErr_NoMemory();
30366 p->level--;
30367 return NULL;
30368 }
30369 Py_ssize_t _children_capacity = 1;
30370 Py_ssize_t _n = 0;
30371 { // lambda_param_maybe_default
30372 if (p->error_indicator) {
30373 p->level--;
30374 return NULL;
30375 }
30376 D(fprintf(stderr, "%*c> _loop1_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
30377 NameDefaultPair* lambda_param_maybe_default_var;
30378 while (
30379 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
30380 )
30381 {
30382 _res = lambda_param_maybe_default_var;
30383 if (_n == _children_capacity) {
30384 _children_capacity *= 2;
30385 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30386 if (!_new_children) {
30387 PyMem_Free(_children);
30388 p->error_indicator = 1;
30389 PyErr_NoMemory();
30390 p->level--;
30391 return NULL;
30392 }
30393 _children = _new_children;
30394 }
30395 _children[_n++] = _res;
30396 _mark = p->mark;
30397 }
30398 p->mark = _mark;
30399 D(fprintf(stderr, "%*c%s _loop1_108[%d-%d]: %s failed!\n", p->level, ' ',
30400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
30401 }
30402 if (_n == 0 || p->error_indicator) {
30403 PyMem_Free(_children);
30404 p->level--;
30405 return NULL;
30406 }
30407 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30408 if (!_seq) {
30409 PyMem_Free(_children);
30410 p->error_indicator = 1;
30411 PyErr_NoMemory();
30412 p->level--;
30413 return NULL;
30414 }
30415 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30416 PyMem_Free(_children);
30417 p->level--;
30418 return _seq;
30419 }
30420
30421 // _loop1_109: STRING
30422 static asdl_seq *
_loop1_109_rule(Parser * p)30423 _loop1_109_rule(Parser *p)
30424 {
30425 if (p->level++ == MAXSTACK) {
30426 p->error_indicator = 1;
30427 PyErr_NoMemory();
30428 }
30429 if (p->error_indicator) {
30430 p->level--;
30431 return NULL;
30432 }
30433 void *_res = NULL;
30434 int _mark = p->mark;
30435 void **_children = PyMem_Malloc(sizeof(void *));
30436 if (!_children) {
30437 p->error_indicator = 1;
30438 PyErr_NoMemory();
30439 p->level--;
30440 return NULL;
30441 }
30442 Py_ssize_t _children_capacity = 1;
30443 Py_ssize_t _n = 0;
30444 { // STRING
30445 if (p->error_indicator) {
30446 p->level--;
30447 return NULL;
30448 }
30449 D(fprintf(stderr, "%*c> _loop1_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
30450 expr_ty string_var;
30451 while (
30452 (string_var = _PyPegen_string_token(p)) // STRING
30453 )
30454 {
30455 _res = string_var;
30456 if (_n == _children_capacity) {
30457 _children_capacity *= 2;
30458 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30459 if (!_new_children) {
30460 PyMem_Free(_children);
30461 p->error_indicator = 1;
30462 PyErr_NoMemory();
30463 p->level--;
30464 return NULL;
30465 }
30466 _children = _new_children;
30467 }
30468 _children[_n++] = _res;
30469 _mark = p->mark;
30470 }
30471 p->mark = _mark;
30472 D(fprintf(stderr, "%*c%s _loop1_109[%d-%d]: %s failed!\n", p->level, ' ',
30473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
30474 }
30475 if (_n == 0 || p->error_indicator) {
30476 PyMem_Free(_children);
30477 p->level--;
30478 return NULL;
30479 }
30480 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30481 if (!_seq) {
30482 PyMem_Free(_children);
30483 p->error_indicator = 1;
30484 PyErr_NoMemory();
30485 p->level--;
30486 return NULL;
30487 }
30488 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30489 PyMem_Free(_children);
30490 p->level--;
30491 return _seq;
30492 }
30493
30494 // _tmp_110: star_named_expression ',' star_named_expressions?
30495 static void *
_tmp_110_rule(Parser * p)30496 _tmp_110_rule(Parser *p)
30497 {
30498 if (p->level++ == MAXSTACK) {
30499 p->error_indicator = 1;
30500 PyErr_NoMemory();
30501 }
30502 if (p->error_indicator) {
30503 p->level--;
30504 return NULL;
30505 }
30506 void * _res = NULL;
30507 int _mark = p->mark;
30508 { // star_named_expression ',' star_named_expressions?
30509 if (p->error_indicator) {
30510 p->level--;
30511 return NULL;
30512 }
30513 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
30514 Token * _literal;
30515 expr_ty y;
30516 void *z;
30517 if (
30518 (y = star_named_expression_rule(p)) // star_named_expression
30519 &&
30520 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30521 &&
30522 (z = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
30523 )
30524 {
30525 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
30526 _res = _PyPegen_seq_insert_in_front ( p , y , z );
30527 if (_res == NULL && PyErr_Occurred()) {
30528 p->error_indicator = 1;
30529 p->level--;
30530 return NULL;
30531 }
30532 goto done;
30533 }
30534 p->mark = _mark;
30535 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
30536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
30537 }
30538 _res = NULL;
30539 done:
30540 p->level--;
30541 return _res;
30542 }
30543
30544 // _loop0_112: ',' double_starred_kvpair
30545 static asdl_seq *
_loop0_112_rule(Parser * p)30546 _loop0_112_rule(Parser *p)
30547 {
30548 if (p->level++ == MAXSTACK) {
30549 p->error_indicator = 1;
30550 PyErr_NoMemory();
30551 }
30552 if (p->error_indicator) {
30553 p->level--;
30554 return NULL;
30555 }
30556 void *_res = NULL;
30557 int _mark = p->mark;
30558 void **_children = PyMem_Malloc(sizeof(void *));
30559 if (!_children) {
30560 p->error_indicator = 1;
30561 PyErr_NoMemory();
30562 p->level--;
30563 return NULL;
30564 }
30565 Py_ssize_t _children_capacity = 1;
30566 Py_ssize_t _n = 0;
30567 { // ',' double_starred_kvpair
30568 if (p->error_indicator) {
30569 p->level--;
30570 return NULL;
30571 }
30572 D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
30573 Token * _literal;
30574 KeyValuePair* elem;
30575 while (
30576 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30577 &&
30578 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
30579 )
30580 {
30581 _res = elem;
30582 if (_res == NULL && PyErr_Occurred()) {
30583 p->error_indicator = 1;
30584 PyMem_Free(_children);
30585 p->level--;
30586 return NULL;
30587 }
30588 if (_n == _children_capacity) {
30589 _children_capacity *= 2;
30590 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30591 if (!_new_children) {
30592 PyMem_Free(_children);
30593 p->error_indicator = 1;
30594 PyErr_NoMemory();
30595 p->level--;
30596 return NULL;
30597 }
30598 _children = _new_children;
30599 }
30600 _children[_n++] = _res;
30601 _mark = p->mark;
30602 }
30603 p->mark = _mark;
30604 D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
30605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
30606 }
30607 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30608 if (!_seq) {
30609 PyMem_Free(_children);
30610 p->error_indicator = 1;
30611 PyErr_NoMemory();
30612 p->level--;
30613 return NULL;
30614 }
30615 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30616 PyMem_Free(_children);
30617 p->level--;
30618 return _seq;
30619 }
30620
30621 // _gather_111: double_starred_kvpair _loop0_112
30622 static asdl_seq *
_gather_111_rule(Parser * p)30623 _gather_111_rule(Parser *p)
30624 {
30625 if (p->level++ == MAXSTACK) {
30626 p->error_indicator = 1;
30627 PyErr_NoMemory();
30628 }
30629 if (p->error_indicator) {
30630 p->level--;
30631 return NULL;
30632 }
30633 asdl_seq * _res = NULL;
30634 int _mark = p->mark;
30635 { // double_starred_kvpair _loop0_112
30636 if (p->error_indicator) {
30637 p->level--;
30638 return NULL;
30639 }
30640 D(fprintf(stderr, "%*c> _gather_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_112"));
30641 KeyValuePair* elem;
30642 asdl_seq * seq;
30643 if (
30644 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
30645 &&
30646 (seq = _loop0_112_rule(p)) // _loop0_112
30647 )
30648 {
30649 D(fprintf(stderr, "%*c+ _gather_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_112"));
30650 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30651 goto done;
30652 }
30653 p->mark = _mark;
30654 D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
30655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_112"));
30656 }
30657 _res = NULL;
30658 done:
30659 p->level--;
30660 return _res;
30661 }
30662
30663 // _loop1_113: for_if_clause
30664 static asdl_seq *
_loop1_113_rule(Parser * p)30665 _loop1_113_rule(Parser *p)
30666 {
30667 if (p->level++ == MAXSTACK) {
30668 p->error_indicator = 1;
30669 PyErr_NoMemory();
30670 }
30671 if (p->error_indicator) {
30672 p->level--;
30673 return NULL;
30674 }
30675 void *_res = NULL;
30676 int _mark = p->mark;
30677 void **_children = PyMem_Malloc(sizeof(void *));
30678 if (!_children) {
30679 p->error_indicator = 1;
30680 PyErr_NoMemory();
30681 p->level--;
30682 return NULL;
30683 }
30684 Py_ssize_t _children_capacity = 1;
30685 Py_ssize_t _n = 0;
30686 { // for_if_clause
30687 if (p->error_indicator) {
30688 p->level--;
30689 return NULL;
30690 }
30691 D(fprintf(stderr, "%*c> _loop1_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
30692 comprehension_ty for_if_clause_var;
30693 while (
30694 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
30695 )
30696 {
30697 _res = for_if_clause_var;
30698 if (_n == _children_capacity) {
30699 _children_capacity *= 2;
30700 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30701 if (!_new_children) {
30702 PyMem_Free(_children);
30703 p->error_indicator = 1;
30704 PyErr_NoMemory();
30705 p->level--;
30706 return NULL;
30707 }
30708 _children = _new_children;
30709 }
30710 _children[_n++] = _res;
30711 _mark = p->mark;
30712 }
30713 p->mark = _mark;
30714 D(fprintf(stderr, "%*c%s _loop1_113[%d-%d]: %s failed!\n", p->level, ' ',
30715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
30716 }
30717 if (_n == 0 || p->error_indicator) {
30718 PyMem_Free(_children);
30719 p->level--;
30720 return NULL;
30721 }
30722 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30723 if (!_seq) {
30724 PyMem_Free(_children);
30725 p->error_indicator = 1;
30726 PyErr_NoMemory();
30727 p->level--;
30728 return NULL;
30729 }
30730 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30731 PyMem_Free(_children);
30732 p->level--;
30733 return _seq;
30734 }
30735
30736 // _loop0_114: ('if' disjunction)
30737 static asdl_seq *
_loop0_114_rule(Parser * p)30738 _loop0_114_rule(Parser *p)
30739 {
30740 if (p->level++ == MAXSTACK) {
30741 p->error_indicator = 1;
30742 PyErr_NoMemory();
30743 }
30744 if (p->error_indicator) {
30745 p->level--;
30746 return NULL;
30747 }
30748 void *_res = NULL;
30749 int _mark = p->mark;
30750 void **_children = PyMem_Malloc(sizeof(void *));
30751 if (!_children) {
30752 p->error_indicator = 1;
30753 PyErr_NoMemory();
30754 p->level--;
30755 return NULL;
30756 }
30757 Py_ssize_t _children_capacity = 1;
30758 Py_ssize_t _n = 0;
30759 { // ('if' disjunction)
30760 if (p->error_indicator) {
30761 p->level--;
30762 return NULL;
30763 }
30764 D(fprintf(stderr, "%*c> _loop0_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
30765 void *_tmp_231_var;
30766 while (
30767 (_tmp_231_var = _tmp_231_rule(p)) // 'if' disjunction
30768 )
30769 {
30770 _res = _tmp_231_var;
30771 if (_n == _children_capacity) {
30772 _children_capacity *= 2;
30773 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30774 if (!_new_children) {
30775 PyMem_Free(_children);
30776 p->error_indicator = 1;
30777 PyErr_NoMemory();
30778 p->level--;
30779 return NULL;
30780 }
30781 _children = _new_children;
30782 }
30783 _children[_n++] = _res;
30784 _mark = p->mark;
30785 }
30786 p->mark = _mark;
30787 D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
30788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
30789 }
30790 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30791 if (!_seq) {
30792 PyMem_Free(_children);
30793 p->error_indicator = 1;
30794 PyErr_NoMemory();
30795 p->level--;
30796 return NULL;
30797 }
30798 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30799 PyMem_Free(_children);
30800 p->level--;
30801 return _seq;
30802 }
30803
30804 // _loop0_115: ('if' disjunction)
30805 static asdl_seq *
_loop0_115_rule(Parser * p)30806 _loop0_115_rule(Parser *p)
30807 {
30808 if (p->level++ == MAXSTACK) {
30809 p->error_indicator = 1;
30810 PyErr_NoMemory();
30811 }
30812 if (p->error_indicator) {
30813 p->level--;
30814 return NULL;
30815 }
30816 void *_res = NULL;
30817 int _mark = p->mark;
30818 void **_children = PyMem_Malloc(sizeof(void *));
30819 if (!_children) {
30820 p->error_indicator = 1;
30821 PyErr_NoMemory();
30822 p->level--;
30823 return NULL;
30824 }
30825 Py_ssize_t _children_capacity = 1;
30826 Py_ssize_t _n = 0;
30827 { // ('if' disjunction)
30828 if (p->error_indicator) {
30829 p->level--;
30830 return NULL;
30831 }
30832 D(fprintf(stderr, "%*c> _loop0_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
30833 void *_tmp_232_var;
30834 while (
30835 (_tmp_232_var = _tmp_232_rule(p)) // 'if' disjunction
30836 )
30837 {
30838 _res = _tmp_232_var;
30839 if (_n == _children_capacity) {
30840 _children_capacity *= 2;
30841 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30842 if (!_new_children) {
30843 PyMem_Free(_children);
30844 p->error_indicator = 1;
30845 PyErr_NoMemory();
30846 p->level--;
30847 return NULL;
30848 }
30849 _children = _new_children;
30850 }
30851 _children[_n++] = _res;
30852 _mark = p->mark;
30853 }
30854 p->mark = _mark;
30855 D(fprintf(stderr, "%*c%s _loop0_115[%d-%d]: %s failed!\n", p->level, ' ',
30856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
30857 }
30858 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30859 if (!_seq) {
30860 PyMem_Free(_children);
30861 p->error_indicator = 1;
30862 PyErr_NoMemory();
30863 p->level--;
30864 return NULL;
30865 }
30866 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30867 PyMem_Free(_children);
30868 p->level--;
30869 return _seq;
30870 }
30871
30872 // _tmp_116: assignment_expression | expression !':='
30873 static void *
_tmp_116_rule(Parser * p)30874 _tmp_116_rule(Parser *p)
30875 {
30876 if (p->level++ == MAXSTACK) {
30877 p->error_indicator = 1;
30878 PyErr_NoMemory();
30879 }
30880 if (p->error_indicator) {
30881 p->level--;
30882 return NULL;
30883 }
30884 void * _res = NULL;
30885 int _mark = p->mark;
30886 { // assignment_expression
30887 if (p->error_indicator) {
30888 p->level--;
30889 return NULL;
30890 }
30891 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
30892 expr_ty assignment_expression_var;
30893 if (
30894 (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression
30895 )
30896 {
30897 D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
30898 _res = assignment_expression_var;
30899 goto done;
30900 }
30901 p->mark = _mark;
30902 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
30903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
30904 }
30905 { // expression !':='
30906 if (p->error_indicator) {
30907 p->level--;
30908 return NULL;
30909 }
30910 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
30911 expr_ty expression_var;
30912 if (
30913 (expression_var = expression_rule(p)) // expression
30914 &&
30915 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
30916 )
30917 {
30918 D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
30919 _res = expression_var;
30920 goto done;
30921 }
30922 p->mark = _mark;
30923 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
30924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
30925 }
30926 _res = NULL;
30927 done:
30928 p->level--;
30929 return _res;
30930 }
30931
30932 // _loop0_118: ',' (starred_expression | (assignment_expression | expression !':=') !'=')
30933 static asdl_seq *
_loop0_118_rule(Parser * p)30934 _loop0_118_rule(Parser *p)
30935 {
30936 if (p->level++ == MAXSTACK) {
30937 p->error_indicator = 1;
30938 PyErr_NoMemory();
30939 }
30940 if (p->error_indicator) {
30941 p->level--;
30942 return NULL;
30943 }
30944 void *_res = NULL;
30945 int _mark = p->mark;
30946 void **_children = PyMem_Malloc(sizeof(void *));
30947 if (!_children) {
30948 p->error_indicator = 1;
30949 PyErr_NoMemory();
30950 p->level--;
30951 return NULL;
30952 }
30953 Py_ssize_t _children_capacity = 1;
30954 Py_ssize_t _n = 0;
30955 { // ',' (starred_expression | (assignment_expression | expression !':=') !'=')
30956 if (p->error_indicator) {
30957 p->level--;
30958 return NULL;
30959 }
30960 D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
30961 Token * _literal;
30962 void *elem;
30963 while (
30964 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30965 &&
30966 (elem = _tmp_233_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'='
30967 )
30968 {
30969 _res = elem;
30970 if (_res == NULL && PyErr_Occurred()) {
30971 p->error_indicator = 1;
30972 PyMem_Free(_children);
30973 p->level--;
30974 return NULL;
30975 }
30976 if (_n == _children_capacity) {
30977 _children_capacity *= 2;
30978 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30979 if (!_new_children) {
30980 PyMem_Free(_children);
30981 p->error_indicator = 1;
30982 PyErr_NoMemory();
30983 p->level--;
30984 return NULL;
30985 }
30986 _children = _new_children;
30987 }
30988 _children[_n++] = _res;
30989 _mark = p->mark;
30990 }
30991 p->mark = _mark;
30992 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
30993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
30994 }
30995 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30996 if (!_seq) {
30997 PyMem_Free(_children);
30998 p->error_indicator = 1;
30999 PyErr_NoMemory();
31000 p->level--;
31001 return NULL;
31002 }
31003 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31004 PyMem_Free(_children);
31005 p->level--;
31006 return _seq;
31007 }
31008
31009 // _gather_117:
31010 // | (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118
31011 static asdl_seq *
_gather_117_rule(Parser * p)31012 _gather_117_rule(Parser *p)
31013 {
31014 if (p->level++ == MAXSTACK) {
31015 p->error_indicator = 1;
31016 PyErr_NoMemory();
31017 }
31018 if (p->error_indicator) {
31019 p->level--;
31020 return NULL;
31021 }
31022 asdl_seq * _res = NULL;
31023 int _mark = p->mark;
31024 { // (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118
31025 if (p->error_indicator) {
31026 p->level--;
31027 return NULL;
31028 }
31029 D(fprintf(stderr, "%*c> _gather_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118"));
31030 void *elem;
31031 asdl_seq * seq;
31032 if (
31033 (elem = _tmp_233_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'='
31034 &&
31035 (seq = _loop0_118_rule(p)) // _loop0_118
31036 )
31037 {
31038 D(fprintf(stderr, "%*c+ _gather_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118"));
31039 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31040 goto done;
31041 }
31042 p->mark = _mark;
31043 D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
31044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118"));
31045 }
31046 _res = NULL;
31047 done:
31048 p->level--;
31049 return _res;
31050 }
31051
31052 // _tmp_119: ',' kwargs
31053 static void *
_tmp_119_rule(Parser * p)31054 _tmp_119_rule(Parser *p)
31055 {
31056 if (p->level++ == MAXSTACK) {
31057 p->error_indicator = 1;
31058 PyErr_NoMemory();
31059 }
31060 if (p->error_indicator) {
31061 p->level--;
31062 return NULL;
31063 }
31064 void * _res = NULL;
31065 int _mark = p->mark;
31066 { // ',' kwargs
31067 if (p->error_indicator) {
31068 p->level--;
31069 return NULL;
31070 }
31071 D(fprintf(stderr, "%*c> _tmp_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
31072 Token * _literal;
31073 asdl_seq* k;
31074 if (
31075 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31076 &&
31077 (k = kwargs_rule(p)) // kwargs
31078 )
31079 {
31080 D(fprintf(stderr, "%*c+ _tmp_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
31081 _res = k;
31082 if (_res == NULL && PyErr_Occurred()) {
31083 p->error_indicator = 1;
31084 p->level--;
31085 return NULL;
31086 }
31087 goto done;
31088 }
31089 p->mark = _mark;
31090 D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ',
31091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
31092 }
31093 _res = NULL;
31094 done:
31095 p->level--;
31096 return _res;
31097 }
31098
31099 // _loop0_121: ',' kwarg_or_starred
31100 static asdl_seq *
_loop0_121_rule(Parser * p)31101 _loop0_121_rule(Parser *p)
31102 {
31103 if (p->level++ == MAXSTACK) {
31104 p->error_indicator = 1;
31105 PyErr_NoMemory();
31106 }
31107 if (p->error_indicator) {
31108 p->level--;
31109 return NULL;
31110 }
31111 void *_res = NULL;
31112 int _mark = p->mark;
31113 void **_children = PyMem_Malloc(sizeof(void *));
31114 if (!_children) {
31115 p->error_indicator = 1;
31116 PyErr_NoMemory();
31117 p->level--;
31118 return NULL;
31119 }
31120 Py_ssize_t _children_capacity = 1;
31121 Py_ssize_t _n = 0;
31122 { // ',' kwarg_or_starred
31123 if (p->error_indicator) {
31124 p->level--;
31125 return NULL;
31126 }
31127 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
31128 Token * _literal;
31129 KeywordOrStarred* elem;
31130 while (
31131 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31132 &&
31133 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
31134 )
31135 {
31136 _res = elem;
31137 if (_res == NULL && PyErr_Occurred()) {
31138 p->error_indicator = 1;
31139 PyMem_Free(_children);
31140 p->level--;
31141 return NULL;
31142 }
31143 if (_n == _children_capacity) {
31144 _children_capacity *= 2;
31145 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31146 if (!_new_children) {
31147 PyMem_Free(_children);
31148 p->error_indicator = 1;
31149 PyErr_NoMemory();
31150 p->level--;
31151 return NULL;
31152 }
31153 _children = _new_children;
31154 }
31155 _children[_n++] = _res;
31156 _mark = p->mark;
31157 }
31158 p->mark = _mark;
31159 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
31160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
31161 }
31162 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31163 if (!_seq) {
31164 PyMem_Free(_children);
31165 p->error_indicator = 1;
31166 PyErr_NoMemory();
31167 p->level--;
31168 return NULL;
31169 }
31170 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31171 PyMem_Free(_children);
31172 p->level--;
31173 return _seq;
31174 }
31175
31176 // _gather_120: kwarg_or_starred _loop0_121
31177 static asdl_seq *
_gather_120_rule(Parser * p)31178 _gather_120_rule(Parser *p)
31179 {
31180 if (p->level++ == MAXSTACK) {
31181 p->error_indicator = 1;
31182 PyErr_NoMemory();
31183 }
31184 if (p->error_indicator) {
31185 p->level--;
31186 return NULL;
31187 }
31188 asdl_seq * _res = NULL;
31189 int _mark = p->mark;
31190 { // kwarg_or_starred _loop0_121
31191 if (p->error_indicator) {
31192 p->level--;
31193 return NULL;
31194 }
31195 D(fprintf(stderr, "%*c> _gather_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_121"));
31196 KeywordOrStarred* elem;
31197 asdl_seq * seq;
31198 if (
31199 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
31200 &&
31201 (seq = _loop0_121_rule(p)) // _loop0_121
31202 )
31203 {
31204 D(fprintf(stderr, "%*c+ _gather_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_121"));
31205 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31206 goto done;
31207 }
31208 p->mark = _mark;
31209 D(fprintf(stderr, "%*c%s _gather_120[%d-%d]: %s failed!\n", p->level, ' ',
31210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_121"));
31211 }
31212 _res = NULL;
31213 done:
31214 p->level--;
31215 return _res;
31216 }
31217
31218 // _loop0_123: ',' kwarg_or_double_starred
31219 static asdl_seq *
_loop0_123_rule(Parser * p)31220 _loop0_123_rule(Parser *p)
31221 {
31222 if (p->level++ == MAXSTACK) {
31223 p->error_indicator = 1;
31224 PyErr_NoMemory();
31225 }
31226 if (p->error_indicator) {
31227 p->level--;
31228 return NULL;
31229 }
31230 void *_res = NULL;
31231 int _mark = p->mark;
31232 void **_children = PyMem_Malloc(sizeof(void *));
31233 if (!_children) {
31234 p->error_indicator = 1;
31235 PyErr_NoMemory();
31236 p->level--;
31237 return NULL;
31238 }
31239 Py_ssize_t _children_capacity = 1;
31240 Py_ssize_t _n = 0;
31241 { // ',' kwarg_or_double_starred
31242 if (p->error_indicator) {
31243 p->level--;
31244 return NULL;
31245 }
31246 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
31247 Token * _literal;
31248 KeywordOrStarred* elem;
31249 while (
31250 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31251 &&
31252 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
31253 )
31254 {
31255 _res = elem;
31256 if (_res == NULL && PyErr_Occurred()) {
31257 p->error_indicator = 1;
31258 PyMem_Free(_children);
31259 p->level--;
31260 return NULL;
31261 }
31262 if (_n == _children_capacity) {
31263 _children_capacity *= 2;
31264 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31265 if (!_new_children) {
31266 PyMem_Free(_children);
31267 p->error_indicator = 1;
31268 PyErr_NoMemory();
31269 p->level--;
31270 return NULL;
31271 }
31272 _children = _new_children;
31273 }
31274 _children[_n++] = _res;
31275 _mark = p->mark;
31276 }
31277 p->mark = _mark;
31278 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
31279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
31280 }
31281 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31282 if (!_seq) {
31283 PyMem_Free(_children);
31284 p->error_indicator = 1;
31285 PyErr_NoMemory();
31286 p->level--;
31287 return NULL;
31288 }
31289 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31290 PyMem_Free(_children);
31291 p->level--;
31292 return _seq;
31293 }
31294
31295 // _gather_122: kwarg_or_double_starred _loop0_123
31296 static asdl_seq *
_gather_122_rule(Parser * p)31297 _gather_122_rule(Parser *p)
31298 {
31299 if (p->level++ == MAXSTACK) {
31300 p->error_indicator = 1;
31301 PyErr_NoMemory();
31302 }
31303 if (p->error_indicator) {
31304 p->level--;
31305 return NULL;
31306 }
31307 asdl_seq * _res = NULL;
31308 int _mark = p->mark;
31309 { // kwarg_or_double_starred _loop0_123
31310 if (p->error_indicator) {
31311 p->level--;
31312 return NULL;
31313 }
31314 D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_123"));
31315 KeywordOrStarred* elem;
31316 asdl_seq * seq;
31317 if (
31318 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
31319 &&
31320 (seq = _loop0_123_rule(p)) // _loop0_123
31321 )
31322 {
31323 D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_123"));
31324 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31325 goto done;
31326 }
31327 p->mark = _mark;
31328 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
31329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_123"));
31330 }
31331 _res = NULL;
31332 done:
31333 p->level--;
31334 return _res;
31335 }
31336
31337 // _loop0_125: ',' kwarg_or_starred
31338 static asdl_seq *
_loop0_125_rule(Parser * p)31339 _loop0_125_rule(Parser *p)
31340 {
31341 if (p->level++ == MAXSTACK) {
31342 p->error_indicator = 1;
31343 PyErr_NoMemory();
31344 }
31345 if (p->error_indicator) {
31346 p->level--;
31347 return NULL;
31348 }
31349 void *_res = NULL;
31350 int _mark = p->mark;
31351 void **_children = PyMem_Malloc(sizeof(void *));
31352 if (!_children) {
31353 p->error_indicator = 1;
31354 PyErr_NoMemory();
31355 p->level--;
31356 return NULL;
31357 }
31358 Py_ssize_t _children_capacity = 1;
31359 Py_ssize_t _n = 0;
31360 { // ',' kwarg_or_starred
31361 if (p->error_indicator) {
31362 p->level--;
31363 return NULL;
31364 }
31365 D(fprintf(stderr, "%*c> _loop0_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
31366 Token * _literal;
31367 KeywordOrStarred* elem;
31368 while (
31369 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31370 &&
31371 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
31372 )
31373 {
31374 _res = elem;
31375 if (_res == NULL && PyErr_Occurred()) {
31376 p->error_indicator = 1;
31377 PyMem_Free(_children);
31378 p->level--;
31379 return NULL;
31380 }
31381 if (_n == _children_capacity) {
31382 _children_capacity *= 2;
31383 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31384 if (!_new_children) {
31385 PyMem_Free(_children);
31386 p->error_indicator = 1;
31387 PyErr_NoMemory();
31388 p->level--;
31389 return NULL;
31390 }
31391 _children = _new_children;
31392 }
31393 _children[_n++] = _res;
31394 _mark = p->mark;
31395 }
31396 p->mark = _mark;
31397 D(fprintf(stderr, "%*c%s _loop0_125[%d-%d]: %s failed!\n", p->level, ' ',
31398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
31399 }
31400 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31401 if (!_seq) {
31402 PyMem_Free(_children);
31403 p->error_indicator = 1;
31404 PyErr_NoMemory();
31405 p->level--;
31406 return NULL;
31407 }
31408 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31409 PyMem_Free(_children);
31410 p->level--;
31411 return _seq;
31412 }
31413
31414 // _gather_124: kwarg_or_starred _loop0_125
31415 static asdl_seq *
_gather_124_rule(Parser * p)31416 _gather_124_rule(Parser *p)
31417 {
31418 if (p->level++ == MAXSTACK) {
31419 p->error_indicator = 1;
31420 PyErr_NoMemory();
31421 }
31422 if (p->error_indicator) {
31423 p->level--;
31424 return NULL;
31425 }
31426 asdl_seq * _res = NULL;
31427 int _mark = p->mark;
31428 { // kwarg_or_starred _loop0_125
31429 if (p->error_indicator) {
31430 p->level--;
31431 return NULL;
31432 }
31433 D(fprintf(stderr, "%*c> _gather_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_125"));
31434 KeywordOrStarred* elem;
31435 asdl_seq * seq;
31436 if (
31437 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
31438 &&
31439 (seq = _loop0_125_rule(p)) // _loop0_125
31440 )
31441 {
31442 D(fprintf(stderr, "%*c+ _gather_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_125"));
31443 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31444 goto done;
31445 }
31446 p->mark = _mark;
31447 D(fprintf(stderr, "%*c%s _gather_124[%d-%d]: %s failed!\n", p->level, ' ',
31448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_125"));
31449 }
31450 _res = NULL;
31451 done:
31452 p->level--;
31453 return _res;
31454 }
31455
31456 // _loop0_127: ',' kwarg_or_double_starred
31457 static asdl_seq *
_loop0_127_rule(Parser * p)31458 _loop0_127_rule(Parser *p)
31459 {
31460 if (p->level++ == MAXSTACK) {
31461 p->error_indicator = 1;
31462 PyErr_NoMemory();
31463 }
31464 if (p->error_indicator) {
31465 p->level--;
31466 return NULL;
31467 }
31468 void *_res = NULL;
31469 int _mark = p->mark;
31470 void **_children = PyMem_Malloc(sizeof(void *));
31471 if (!_children) {
31472 p->error_indicator = 1;
31473 PyErr_NoMemory();
31474 p->level--;
31475 return NULL;
31476 }
31477 Py_ssize_t _children_capacity = 1;
31478 Py_ssize_t _n = 0;
31479 { // ',' kwarg_or_double_starred
31480 if (p->error_indicator) {
31481 p->level--;
31482 return NULL;
31483 }
31484 D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
31485 Token * _literal;
31486 KeywordOrStarred* elem;
31487 while (
31488 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31489 &&
31490 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
31491 )
31492 {
31493 _res = elem;
31494 if (_res == NULL && PyErr_Occurred()) {
31495 p->error_indicator = 1;
31496 PyMem_Free(_children);
31497 p->level--;
31498 return NULL;
31499 }
31500 if (_n == _children_capacity) {
31501 _children_capacity *= 2;
31502 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31503 if (!_new_children) {
31504 PyMem_Free(_children);
31505 p->error_indicator = 1;
31506 PyErr_NoMemory();
31507 p->level--;
31508 return NULL;
31509 }
31510 _children = _new_children;
31511 }
31512 _children[_n++] = _res;
31513 _mark = p->mark;
31514 }
31515 p->mark = _mark;
31516 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
31517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
31518 }
31519 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31520 if (!_seq) {
31521 PyMem_Free(_children);
31522 p->error_indicator = 1;
31523 PyErr_NoMemory();
31524 p->level--;
31525 return NULL;
31526 }
31527 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31528 PyMem_Free(_children);
31529 p->level--;
31530 return _seq;
31531 }
31532
31533 // _gather_126: kwarg_or_double_starred _loop0_127
31534 static asdl_seq *
_gather_126_rule(Parser * p)31535 _gather_126_rule(Parser *p)
31536 {
31537 if (p->level++ == MAXSTACK) {
31538 p->error_indicator = 1;
31539 PyErr_NoMemory();
31540 }
31541 if (p->error_indicator) {
31542 p->level--;
31543 return NULL;
31544 }
31545 asdl_seq * _res = NULL;
31546 int _mark = p->mark;
31547 { // kwarg_or_double_starred _loop0_127
31548 if (p->error_indicator) {
31549 p->level--;
31550 return NULL;
31551 }
31552 D(fprintf(stderr, "%*c> _gather_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_127"));
31553 KeywordOrStarred* elem;
31554 asdl_seq * seq;
31555 if (
31556 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
31557 &&
31558 (seq = _loop0_127_rule(p)) // _loop0_127
31559 )
31560 {
31561 D(fprintf(stderr, "%*c+ _gather_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_127"));
31562 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31563 goto done;
31564 }
31565 p->mark = _mark;
31566 D(fprintf(stderr, "%*c%s _gather_126[%d-%d]: %s failed!\n", p->level, ' ',
31567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_127"));
31568 }
31569 _res = NULL;
31570 done:
31571 p->level--;
31572 return _res;
31573 }
31574
31575 // _loop0_128: (',' star_target)
31576 static asdl_seq *
_loop0_128_rule(Parser * p)31577 _loop0_128_rule(Parser *p)
31578 {
31579 if (p->level++ == MAXSTACK) {
31580 p->error_indicator = 1;
31581 PyErr_NoMemory();
31582 }
31583 if (p->error_indicator) {
31584 p->level--;
31585 return NULL;
31586 }
31587 void *_res = NULL;
31588 int _mark = p->mark;
31589 void **_children = PyMem_Malloc(sizeof(void *));
31590 if (!_children) {
31591 p->error_indicator = 1;
31592 PyErr_NoMemory();
31593 p->level--;
31594 return NULL;
31595 }
31596 Py_ssize_t _children_capacity = 1;
31597 Py_ssize_t _n = 0;
31598 { // (',' star_target)
31599 if (p->error_indicator) {
31600 p->level--;
31601 return NULL;
31602 }
31603 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
31604 void *_tmp_234_var;
31605 while (
31606 (_tmp_234_var = _tmp_234_rule(p)) // ',' star_target
31607 )
31608 {
31609 _res = _tmp_234_var;
31610 if (_n == _children_capacity) {
31611 _children_capacity *= 2;
31612 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31613 if (!_new_children) {
31614 PyMem_Free(_children);
31615 p->error_indicator = 1;
31616 PyErr_NoMemory();
31617 p->level--;
31618 return NULL;
31619 }
31620 _children = _new_children;
31621 }
31622 _children[_n++] = _res;
31623 _mark = p->mark;
31624 }
31625 p->mark = _mark;
31626 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
31627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
31628 }
31629 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31630 if (!_seq) {
31631 PyMem_Free(_children);
31632 p->error_indicator = 1;
31633 PyErr_NoMemory();
31634 p->level--;
31635 return NULL;
31636 }
31637 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31638 PyMem_Free(_children);
31639 p->level--;
31640 return _seq;
31641 }
31642
31643 // _loop0_130: ',' star_target
31644 static asdl_seq *
_loop0_130_rule(Parser * p)31645 _loop0_130_rule(Parser *p)
31646 {
31647 if (p->level++ == MAXSTACK) {
31648 p->error_indicator = 1;
31649 PyErr_NoMemory();
31650 }
31651 if (p->error_indicator) {
31652 p->level--;
31653 return NULL;
31654 }
31655 void *_res = NULL;
31656 int _mark = p->mark;
31657 void **_children = PyMem_Malloc(sizeof(void *));
31658 if (!_children) {
31659 p->error_indicator = 1;
31660 PyErr_NoMemory();
31661 p->level--;
31662 return NULL;
31663 }
31664 Py_ssize_t _children_capacity = 1;
31665 Py_ssize_t _n = 0;
31666 { // ',' star_target
31667 if (p->error_indicator) {
31668 p->level--;
31669 return NULL;
31670 }
31671 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
31672 Token * _literal;
31673 expr_ty elem;
31674 while (
31675 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31676 &&
31677 (elem = star_target_rule(p)) // star_target
31678 )
31679 {
31680 _res = elem;
31681 if (_res == NULL && PyErr_Occurred()) {
31682 p->error_indicator = 1;
31683 PyMem_Free(_children);
31684 p->level--;
31685 return NULL;
31686 }
31687 if (_n == _children_capacity) {
31688 _children_capacity *= 2;
31689 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31690 if (!_new_children) {
31691 PyMem_Free(_children);
31692 p->error_indicator = 1;
31693 PyErr_NoMemory();
31694 p->level--;
31695 return NULL;
31696 }
31697 _children = _new_children;
31698 }
31699 _children[_n++] = _res;
31700 _mark = p->mark;
31701 }
31702 p->mark = _mark;
31703 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
31704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
31705 }
31706 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31707 if (!_seq) {
31708 PyMem_Free(_children);
31709 p->error_indicator = 1;
31710 PyErr_NoMemory();
31711 p->level--;
31712 return NULL;
31713 }
31714 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31715 PyMem_Free(_children);
31716 p->level--;
31717 return _seq;
31718 }
31719
31720 // _gather_129: star_target _loop0_130
31721 static asdl_seq *
_gather_129_rule(Parser * p)31722 _gather_129_rule(Parser *p)
31723 {
31724 if (p->level++ == MAXSTACK) {
31725 p->error_indicator = 1;
31726 PyErr_NoMemory();
31727 }
31728 if (p->error_indicator) {
31729 p->level--;
31730 return NULL;
31731 }
31732 asdl_seq * _res = NULL;
31733 int _mark = p->mark;
31734 { // star_target _loop0_130
31735 if (p->error_indicator) {
31736 p->level--;
31737 return NULL;
31738 }
31739 D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_130"));
31740 expr_ty elem;
31741 asdl_seq * seq;
31742 if (
31743 (elem = star_target_rule(p)) // star_target
31744 &&
31745 (seq = _loop0_130_rule(p)) // _loop0_130
31746 )
31747 {
31748 D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_130"));
31749 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31750 goto done;
31751 }
31752 p->mark = _mark;
31753 D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ',
31754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_130"));
31755 }
31756 _res = NULL;
31757 done:
31758 p->level--;
31759 return _res;
31760 }
31761
31762 // _loop1_131: (',' star_target)
31763 static asdl_seq *
_loop1_131_rule(Parser * p)31764 _loop1_131_rule(Parser *p)
31765 {
31766 if (p->level++ == MAXSTACK) {
31767 p->error_indicator = 1;
31768 PyErr_NoMemory();
31769 }
31770 if (p->error_indicator) {
31771 p->level--;
31772 return NULL;
31773 }
31774 void *_res = NULL;
31775 int _mark = p->mark;
31776 void **_children = PyMem_Malloc(sizeof(void *));
31777 if (!_children) {
31778 p->error_indicator = 1;
31779 PyErr_NoMemory();
31780 p->level--;
31781 return NULL;
31782 }
31783 Py_ssize_t _children_capacity = 1;
31784 Py_ssize_t _n = 0;
31785 { // (',' star_target)
31786 if (p->error_indicator) {
31787 p->level--;
31788 return NULL;
31789 }
31790 D(fprintf(stderr, "%*c> _loop1_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
31791 void *_tmp_235_var;
31792 while (
31793 (_tmp_235_var = _tmp_235_rule(p)) // ',' star_target
31794 )
31795 {
31796 _res = _tmp_235_var;
31797 if (_n == _children_capacity) {
31798 _children_capacity *= 2;
31799 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31800 if (!_new_children) {
31801 PyMem_Free(_children);
31802 p->error_indicator = 1;
31803 PyErr_NoMemory();
31804 p->level--;
31805 return NULL;
31806 }
31807 _children = _new_children;
31808 }
31809 _children[_n++] = _res;
31810 _mark = p->mark;
31811 }
31812 p->mark = _mark;
31813 D(fprintf(stderr, "%*c%s _loop1_131[%d-%d]: %s failed!\n", p->level, ' ',
31814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
31815 }
31816 if (_n == 0 || p->error_indicator) {
31817 PyMem_Free(_children);
31818 p->level--;
31819 return NULL;
31820 }
31821 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31822 if (!_seq) {
31823 PyMem_Free(_children);
31824 p->error_indicator = 1;
31825 PyErr_NoMemory();
31826 p->level--;
31827 return NULL;
31828 }
31829 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31830 PyMem_Free(_children);
31831 p->level--;
31832 return _seq;
31833 }
31834
31835 // _tmp_132: !'*' star_target
31836 static void *
_tmp_132_rule(Parser * p)31837 _tmp_132_rule(Parser *p)
31838 {
31839 if (p->level++ == MAXSTACK) {
31840 p->error_indicator = 1;
31841 PyErr_NoMemory();
31842 }
31843 if (p->error_indicator) {
31844 p->level--;
31845 return NULL;
31846 }
31847 void * _res = NULL;
31848 int _mark = p->mark;
31849 { // !'*' star_target
31850 if (p->error_indicator) {
31851 p->level--;
31852 return NULL;
31853 }
31854 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
31855 expr_ty star_target_var;
31856 if (
31857 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
31858 &&
31859 (star_target_var = star_target_rule(p)) // star_target
31860 )
31861 {
31862 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
31863 _res = star_target_var;
31864 goto done;
31865 }
31866 p->mark = _mark;
31867 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
31868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
31869 }
31870 _res = NULL;
31871 done:
31872 p->level--;
31873 return _res;
31874 }
31875
31876 // _loop0_134: ',' del_target
31877 static asdl_seq *
_loop0_134_rule(Parser * p)31878 _loop0_134_rule(Parser *p)
31879 {
31880 if (p->level++ == MAXSTACK) {
31881 p->error_indicator = 1;
31882 PyErr_NoMemory();
31883 }
31884 if (p->error_indicator) {
31885 p->level--;
31886 return NULL;
31887 }
31888 void *_res = NULL;
31889 int _mark = p->mark;
31890 void **_children = PyMem_Malloc(sizeof(void *));
31891 if (!_children) {
31892 p->error_indicator = 1;
31893 PyErr_NoMemory();
31894 p->level--;
31895 return NULL;
31896 }
31897 Py_ssize_t _children_capacity = 1;
31898 Py_ssize_t _n = 0;
31899 { // ',' del_target
31900 if (p->error_indicator) {
31901 p->level--;
31902 return NULL;
31903 }
31904 D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
31905 Token * _literal;
31906 expr_ty elem;
31907 while (
31908 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31909 &&
31910 (elem = del_target_rule(p)) // del_target
31911 )
31912 {
31913 _res = elem;
31914 if (_res == NULL && PyErr_Occurred()) {
31915 p->error_indicator = 1;
31916 PyMem_Free(_children);
31917 p->level--;
31918 return NULL;
31919 }
31920 if (_n == _children_capacity) {
31921 _children_capacity *= 2;
31922 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31923 if (!_new_children) {
31924 PyMem_Free(_children);
31925 p->error_indicator = 1;
31926 PyErr_NoMemory();
31927 p->level--;
31928 return NULL;
31929 }
31930 _children = _new_children;
31931 }
31932 _children[_n++] = _res;
31933 _mark = p->mark;
31934 }
31935 p->mark = _mark;
31936 D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
31937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
31938 }
31939 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31940 if (!_seq) {
31941 PyMem_Free(_children);
31942 p->error_indicator = 1;
31943 PyErr_NoMemory();
31944 p->level--;
31945 return NULL;
31946 }
31947 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31948 PyMem_Free(_children);
31949 p->level--;
31950 return _seq;
31951 }
31952
31953 // _gather_133: del_target _loop0_134
31954 static asdl_seq *
_gather_133_rule(Parser * p)31955 _gather_133_rule(Parser *p)
31956 {
31957 if (p->level++ == MAXSTACK) {
31958 p->error_indicator = 1;
31959 PyErr_NoMemory();
31960 }
31961 if (p->error_indicator) {
31962 p->level--;
31963 return NULL;
31964 }
31965 asdl_seq * _res = NULL;
31966 int _mark = p->mark;
31967 { // del_target _loop0_134
31968 if (p->error_indicator) {
31969 p->level--;
31970 return NULL;
31971 }
31972 D(fprintf(stderr, "%*c> _gather_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_134"));
31973 expr_ty elem;
31974 asdl_seq * seq;
31975 if (
31976 (elem = del_target_rule(p)) // del_target
31977 &&
31978 (seq = _loop0_134_rule(p)) // _loop0_134
31979 )
31980 {
31981 D(fprintf(stderr, "%*c+ _gather_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_134"));
31982 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31983 goto done;
31984 }
31985 p->mark = _mark;
31986 D(fprintf(stderr, "%*c%s _gather_133[%d-%d]: %s failed!\n", p->level, ' ',
31987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_134"));
31988 }
31989 _res = NULL;
31990 done:
31991 p->level--;
31992 return _res;
31993 }
31994
31995 // _loop0_136: ',' expression
31996 static asdl_seq *
_loop0_136_rule(Parser * p)31997 _loop0_136_rule(Parser *p)
31998 {
31999 if (p->level++ == MAXSTACK) {
32000 p->error_indicator = 1;
32001 PyErr_NoMemory();
32002 }
32003 if (p->error_indicator) {
32004 p->level--;
32005 return NULL;
32006 }
32007 void *_res = NULL;
32008 int _mark = p->mark;
32009 void **_children = PyMem_Malloc(sizeof(void *));
32010 if (!_children) {
32011 p->error_indicator = 1;
32012 PyErr_NoMemory();
32013 p->level--;
32014 return NULL;
32015 }
32016 Py_ssize_t _children_capacity = 1;
32017 Py_ssize_t _n = 0;
32018 { // ',' expression
32019 if (p->error_indicator) {
32020 p->level--;
32021 return NULL;
32022 }
32023 D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
32024 Token * _literal;
32025 expr_ty elem;
32026 while (
32027 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32028 &&
32029 (elem = expression_rule(p)) // expression
32030 )
32031 {
32032 _res = elem;
32033 if (_res == NULL && PyErr_Occurred()) {
32034 p->error_indicator = 1;
32035 PyMem_Free(_children);
32036 p->level--;
32037 return NULL;
32038 }
32039 if (_n == _children_capacity) {
32040 _children_capacity *= 2;
32041 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
32042 if (!_new_children) {
32043 PyMem_Free(_children);
32044 p->error_indicator = 1;
32045 PyErr_NoMemory();
32046 p->level--;
32047 return NULL;
32048 }
32049 _children = _new_children;
32050 }
32051 _children[_n++] = _res;
32052 _mark = p->mark;
32053 }
32054 p->mark = _mark;
32055 D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ',
32056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
32057 }
32058 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
32059 if (!_seq) {
32060 PyMem_Free(_children);
32061 p->error_indicator = 1;
32062 PyErr_NoMemory();
32063 p->level--;
32064 return NULL;
32065 }
32066 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
32067 PyMem_Free(_children);
32068 p->level--;
32069 return _seq;
32070 }
32071
32072 // _gather_135: expression _loop0_136
32073 static asdl_seq *
_gather_135_rule(Parser * p)32074 _gather_135_rule(Parser *p)
32075 {
32076 if (p->level++ == MAXSTACK) {
32077 p->error_indicator = 1;
32078 PyErr_NoMemory();
32079 }
32080 if (p->error_indicator) {
32081 p->level--;
32082 return NULL;
32083 }
32084 asdl_seq * _res = NULL;
32085 int _mark = p->mark;
32086 { // expression _loop0_136
32087 if (p->error_indicator) {
32088 p->level--;
32089 return NULL;
32090 }
32091 D(fprintf(stderr, "%*c> _gather_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_136"));
32092 expr_ty elem;
32093 asdl_seq * seq;
32094 if (
32095 (elem = expression_rule(p)) // expression
32096 &&
32097 (seq = _loop0_136_rule(p)) // _loop0_136
32098 )
32099 {
32100 D(fprintf(stderr, "%*c+ _gather_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_136"));
32101 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
32102 goto done;
32103 }
32104 p->mark = _mark;
32105 D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ',
32106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_136"));
32107 }
32108 _res = NULL;
32109 done:
32110 p->level--;
32111 return _res;
32112 }
32113
32114 // _loop0_138: ',' expression
32115 static asdl_seq *
_loop0_138_rule(Parser * p)32116 _loop0_138_rule(Parser *p)
32117 {
32118 if (p->level++ == MAXSTACK) {
32119 p->error_indicator = 1;
32120 PyErr_NoMemory();
32121 }
32122 if (p->error_indicator) {
32123 p->level--;
32124 return NULL;
32125 }
32126 void *_res = NULL;
32127 int _mark = p->mark;
32128 void **_children = PyMem_Malloc(sizeof(void *));
32129 if (!_children) {
32130 p->error_indicator = 1;
32131 PyErr_NoMemory();
32132 p->level--;
32133 return NULL;
32134 }
32135 Py_ssize_t _children_capacity = 1;
32136 Py_ssize_t _n = 0;
32137 { // ',' expression
32138 if (p->error_indicator) {
32139 p->level--;
32140 return NULL;
32141 }
32142 D(fprintf(stderr, "%*c> _loop0_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
32143 Token * _literal;
32144 expr_ty elem;
32145 while (
32146 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32147 &&
32148 (elem = expression_rule(p)) // expression
32149 )
32150 {
32151 _res = elem;
32152 if (_res == NULL && PyErr_Occurred()) {
32153 p->error_indicator = 1;
32154 PyMem_Free(_children);
32155 p->level--;
32156 return NULL;
32157 }
32158 if (_n == _children_capacity) {
32159 _children_capacity *= 2;
32160 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
32161 if (!_new_children) {
32162 PyMem_Free(_children);
32163 p->error_indicator = 1;
32164 PyErr_NoMemory();
32165 p->level--;
32166 return NULL;
32167 }
32168 _children = _new_children;
32169 }
32170 _children[_n++] = _res;
32171 _mark = p->mark;
32172 }
32173 p->mark = _mark;
32174 D(fprintf(stderr, "%*c%s _loop0_138[%d-%d]: %s failed!\n", p->level, ' ',
32175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
32176 }
32177 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
32178 if (!_seq) {
32179 PyMem_Free(_children);
32180 p->error_indicator = 1;
32181 PyErr_NoMemory();
32182 p->level--;
32183 return NULL;
32184 }
32185 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
32186 PyMem_Free(_children);
32187 p->level--;
32188 return _seq;
32189 }
32190
32191 // _gather_137: expression _loop0_138
32192 static asdl_seq *
_gather_137_rule(Parser * p)32193 _gather_137_rule(Parser *p)
32194 {
32195 if (p->level++ == MAXSTACK) {
32196 p->error_indicator = 1;
32197 PyErr_NoMemory();
32198 }
32199 if (p->error_indicator) {
32200 p->level--;
32201 return NULL;
32202 }
32203 asdl_seq * _res = NULL;
32204 int _mark = p->mark;
32205 { // expression _loop0_138
32206 if (p->error_indicator) {
32207 p->level--;
32208 return NULL;
32209 }
32210 D(fprintf(stderr, "%*c> _gather_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_138"));
32211 expr_ty elem;
32212 asdl_seq * seq;
32213 if (
32214 (elem = expression_rule(p)) // expression
32215 &&
32216 (seq = _loop0_138_rule(p)) // _loop0_138
32217 )
32218 {
32219 D(fprintf(stderr, "%*c+ _gather_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_138"));
32220 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
32221 goto done;
32222 }
32223 p->mark = _mark;
32224 D(fprintf(stderr, "%*c%s _gather_137[%d-%d]: %s failed!\n", p->level, ' ',
32225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_138"));
32226 }
32227 _res = NULL;
32228 done:
32229 p->level--;
32230 return _res;
32231 }
32232
32233 // _loop0_140: ',' expression
32234 static asdl_seq *
_loop0_140_rule(Parser * p)32235 _loop0_140_rule(Parser *p)
32236 {
32237 if (p->level++ == MAXSTACK) {
32238 p->error_indicator = 1;
32239 PyErr_NoMemory();
32240 }
32241 if (p->error_indicator) {
32242 p->level--;
32243 return NULL;
32244 }
32245 void *_res = NULL;
32246 int _mark = p->mark;
32247 void **_children = PyMem_Malloc(sizeof(void *));
32248 if (!_children) {
32249 p->error_indicator = 1;
32250 PyErr_NoMemory();
32251 p->level--;
32252 return NULL;
32253 }
32254 Py_ssize_t _children_capacity = 1;
32255 Py_ssize_t _n = 0;
32256 { // ',' expression
32257 if (p->error_indicator) {
32258 p->level--;
32259 return NULL;
32260 }
32261 D(fprintf(stderr, "%*c> _loop0_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
32262 Token * _literal;
32263 expr_ty elem;
32264 while (
32265 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32266 &&
32267 (elem = expression_rule(p)) // expression
32268 )
32269 {
32270 _res = elem;
32271 if (_res == NULL && PyErr_Occurred()) {
32272 p->error_indicator = 1;
32273 PyMem_Free(_children);
32274 p->level--;
32275 return NULL;
32276 }
32277 if (_n == _children_capacity) {
32278 _children_capacity *= 2;
32279 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
32280 if (!_new_children) {
32281 PyMem_Free(_children);
32282 p->error_indicator = 1;
32283 PyErr_NoMemory();
32284 p->level--;
32285 return NULL;
32286 }
32287 _children = _new_children;
32288 }
32289 _children[_n++] = _res;
32290 _mark = p->mark;
32291 }
32292 p->mark = _mark;
32293 D(fprintf(stderr, "%*c%s _loop0_140[%d-%d]: %s failed!\n", p->level, ' ',
32294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
32295 }
32296 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
32297 if (!_seq) {
32298 PyMem_Free(_children);
32299 p->error_indicator = 1;
32300 PyErr_NoMemory();
32301 p->level--;
32302 return NULL;
32303 }
32304 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
32305 PyMem_Free(_children);
32306 p->level--;
32307 return _seq;
32308 }
32309
32310 // _gather_139: expression _loop0_140
32311 static asdl_seq *
_gather_139_rule(Parser * p)32312 _gather_139_rule(Parser *p)
32313 {
32314 if (p->level++ == MAXSTACK) {
32315 p->error_indicator = 1;
32316 PyErr_NoMemory();
32317 }
32318 if (p->error_indicator) {
32319 p->level--;
32320 return NULL;
32321 }
32322 asdl_seq * _res = NULL;
32323 int _mark = p->mark;
32324 { // expression _loop0_140
32325 if (p->error_indicator) {
32326 p->level--;
32327 return NULL;
32328 }
32329 D(fprintf(stderr, "%*c> _gather_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_140"));
32330 expr_ty elem;
32331 asdl_seq * seq;
32332 if (
32333 (elem = expression_rule(p)) // expression
32334 &&
32335 (seq = _loop0_140_rule(p)) // _loop0_140
32336 )
32337 {
32338 D(fprintf(stderr, "%*c+ _gather_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_140"));
32339 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
32340 goto done;
32341 }
32342 p->mark = _mark;
32343 D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ',
32344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_140"));
32345 }
32346 _res = NULL;
32347 done:
32348 p->level--;
32349 return _res;
32350 }
32351
32352 // _loop0_142: ',' expression
32353 static asdl_seq *
_loop0_142_rule(Parser * p)32354 _loop0_142_rule(Parser *p)
32355 {
32356 if (p->level++ == MAXSTACK) {
32357 p->error_indicator = 1;
32358 PyErr_NoMemory();
32359 }
32360 if (p->error_indicator) {
32361 p->level--;
32362 return NULL;
32363 }
32364 void *_res = NULL;
32365 int _mark = p->mark;
32366 void **_children = PyMem_Malloc(sizeof(void *));
32367 if (!_children) {
32368 p->error_indicator = 1;
32369 PyErr_NoMemory();
32370 p->level--;
32371 return NULL;
32372 }
32373 Py_ssize_t _children_capacity = 1;
32374 Py_ssize_t _n = 0;
32375 { // ',' expression
32376 if (p->error_indicator) {
32377 p->level--;
32378 return NULL;
32379 }
32380 D(fprintf(stderr, "%*c> _loop0_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
32381 Token * _literal;
32382 expr_ty elem;
32383 while (
32384 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32385 &&
32386 (elem = expression_rule(p)) // expression
32387 )
32388 {
32389 _res = elem;
32390 if (_res == NULL && PyErr_Occurred()) {
32391 p->error_indicator = 1;
32392 PyMem_Free(_children);
32393 p->level--;
32394 return NULL;
32395 }
32396 if (_n == _children_capacity) {
32397 _children_capacity *= 2;
32398 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
32399 if (!_new_children) {
32400 PyMem_Free(_children);
32401 p->error_indicator = 1;
32402 PyErr_NoMemory();
32403 p->level--;
32404 return NULL;
32405 }
32406 _children = _new_children;
32407 }
32408 _children[_n++] = _res;
32409 _mark = p->mark;
32410 }
32411 p->mark = _mark;
32412 D(fprintf(stderr, "%*c%s _loop0_142[%d-%d]: %s failed!\n", p->level, ' ',
32413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
32414 }
32415 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
32416 if (!_seq) {
32417 PyMem_Free(_children);
32418 p->error_indicator = 1;
32419 PyErr_NoMemory();
32420 p->level--;
32421 return NULL;
32422 }
32423 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
32424 PyMem_Free(_children);
32425 p->level--;
32426 return _seq;
32427 }
32428
32429 // _gather_141: expression _loop0_142
32430 static asdl_seq *
_gather_141_rule(Parser * p)32431 _gather_141_rule(Parser *p)
32432 {
32433 if (p->level++ == MAXSTACK) {
32434 p->error_indicator = 1;
32435 PyErr_NoMemory();
32436 }
32437 if (p->error_indicator) {
32438 p->level--;
32439 return NULL;
32440 }
32441 asdl_seq * _res = NULL;
32442 int _mark = p->mark;
32443 { // expression _loop0_142
32444 if (p->error_indicator) {
32445 p->level--;
32446 return NULL;
32447 }
32448 D(fprintf(stderr, "%*c> _gather_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_142"));
32449 expr_ty elem;
32450 asdl_seq * seq;
32451 if (
32452 (elem = expression_rule(p)) // expression
32453 &&
32454 (seq = _loop0_142_rule(p)) // _loop0_142
32455 )
32456 {
32457 D(fprintf(stderr, "%*c+ _gather_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_142"));
32458 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
32459 goto done;
32460 }
32461 p->mark = _mark;
32462 D(fprintf(stderr, "%*c%s _gather_141[%d-%d]: %s failed!\n", p->level, ' ',
32463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_142"));
32464 }
32465 _res = NULL;
32466 done:
32467 p->level--;
32468 return _res;
32469 }
32470
32471 // _tmp_143: NEWLINE INDENT
32472 static void *
_tmp_143_rule(Parser * p)32473 _tmp_143_rule(Parser *p)
32474 {
32475 if (p->level++ == MAXSTACK) {
32476 p->error_indicator = 1;
32477 PyErr_NoMemory();
32478 }
32479 if (p->error_indicator) {
32480 p->level--;
32481 return NULL;
32482 }
32483 void * _res = NULL;
32484 int _mark = p->mark;
32485 { // NEWLINE INDENT
32486 if (p->error_indicator) {
32487 p->level--;
32488 return NULL;
32489 }
32490 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
32491 Token * indent_var;
32492 Token * newline_var;
32493 if (
32494 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
32495 &&
32496 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
32497 )
32498 {
32499 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
32500 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
32501 goto done;
32502 }
32503 p->mark = _mark;
32504 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
32505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
32506 }
32507 _res = NULL;
32508 done:
32509 p->level--;
32510 return _res;
32511 }
32512
32513 // _tmp_144: args | expression for_if_clauses
32514 static void *
_tmp_144_rule(Parser * p)32515 _tmp_144_rule(Parser *p)
32516 {
32517 if (p->level++ == MAXSTACK) {
32518 p->error_indicator = 1;
32519 PyErr_NoMemory();
32520 }
32521 if (p->error_indicator) {
32522 p->level--;
32523 return NULL;
32524 }
32525 void * _res = NULL;
32526 int _mark = p->mark;
32527 { // args
32528 if (p->error_indicator) {
32529 p->level--;
32530 return NULL;
32531 }
32532 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
32533 expr_ty args_var;
32534 if (
32535 (args_var = args_rule(p)) // args
32536 )
32537 {
32538 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
32539 _res = args_var;
32540 goto done;
32541 }
32542 p->mark = _mark;
32543 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
32544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
32545 }
32546 { // expression for_if_clauses
32547 if (p->error_indicator) {
32548 p->level--;
32549 return NULL;
32550 }
32551 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
32552 expr_ty expression_var;
32553 asdl_comprehension_seq* for_if_clauses_var;
32554 if (
32555 (expression_var = expression_rule(p)) // expression
32556 &&
32557 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
32558 )
32559 {
32560 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
32561 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
32562 goto done;
32563 }
32564 p->mark = _mark;
32565 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
32566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
32567 }
32568 _res = NULL;
32569 done:
32570 p->level--;
32571 return _res;
32572 }
32573
32574 // _tmp_145: 'True' | 'False' | 'None'
32575 static void *
_tmp_145_rule(Parser * p)32576 _tmp_145_rule(Parser *p)
32577 {
32578 if (p->level++ == MAXSTACK) {
32579 p->error_indicator = 1;
32580 PyErr_NoMemory();
32581 }
32582 if (p->error_indicator) {
32583 p->level--;
32584 return NULL;
32585 }
32586 void * _res = NULL;
32587 int _mark = p->mark;
32588 { // 'True'
32589 if (p->error_indicator) {
32590 p->level--;
32591 return NULL;
32592 }
32593 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
32594 Token * _keyword;
32595 if (
32596 (_keyword = _PyPegen_expect_token(p, 600)) // token='True'
32597 )
32598 {
32599 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
32600 _res = _keyword;
32601 goto done;
32602 }
32603 p->mark = _mark;
32604 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
32605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
32606 }
32607 { // 'False'
32608 if (p->error_indicator) {
32609 p->level--;
32610 return NULL;
32611 }
32612 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
32613 Token * _keyword;
32614 if (
32615 (_keyword = _PyPegen_expect_token(p, 602)) // token='False'
32616 )
32617 {
32618 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
32619 _res = _keyword;
32620 goto done;
32621 }
32622 p->mark = _mark;
32623 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
32624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
32625 }
32626 { // 'None'
32627 if (p->error_indicator) {
32628 p->level--;
32629 return NULL;
32630 }
32631 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
32632 Token * _keyword;
32633 if (
32634 (_keyword = _PyPegen_expect_token(p, 601)) // token='None'
32635 )
32636 {
32637 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
32638 _res = _keyword;
32639 goto done;
32640 }
32641 p->mark = _mark;
32642 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
32643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
32644 }
32645 _res = NULL;
32646 done:
32647 p->level--;
32648 return _res;
32649 }
32650
32651 // _tmp_146: NAME '='
32652 static void *
_tmp_146_rule(Parser * p)32653 _tmp_146_rule(Parser *p)
32654 {
32655 if (p->level++ == MAXSTACK) {
32656 p->error_indicator = 1;
32657 PyErr_NoMemory();
32658 }
32659 if (p->error_indicator) {
32660 p->level--;
32661 return NULL;
32662 }
32663 void * _res = NULL;
32664 int _mark = p->mark;
32665 { // NAME '='
32666 if (p->error_indicator) {
32667 p->level--;
32668 return NULL;
32669 }
32670 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
32671 Token * _literal;
32672 expr_ty name_var;
32673 if (
32674 (name_var = _PyPegen_name_token(p)) // NAME
32675 &&
32676 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32677 )
32678 {
32679 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
32680 _res = _PyPegen_dummy_name(p, name_var, _literal);
32681 goto done;
32682 }
32683 p->mark = _mark;
32684 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
32685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
32686 }
32687 _res = NULL;
32688 done:
32689 p->level--;
32690 return _res;
32691 }
32692
32693 // _tmp_147: NAME STRING | SOFT_KEYWORD
32694 static void *
_tmp_147_rule(Parser * p)32695 _tmp_147_rule(Parser *p)
32696 {
32697 if (p->level++ == MAXSTACK) {
32698 p->error_indicator = 1;
32699 PyErr_NoMemory();
32700 }
32701 if (p->error_indicator) {
32702 p->level--;
32703 return NULL;
32704 }
32705 void * _res = NULL;
32706 int _mark = p->mark;
32707 { // NAME STRING
32708 if (p->error_indicator) {
32709 p->level--;
32710 return NULL;
32711 }
32712 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
32713 expr_ty name_var;
32714 expr_ty string_var;
32715 if (
32716 (name_var = _PyPegen_name_token(p)) // NAME
32717 &&
32718 (string_var = _PyPegen_string_token(p)) // STRING
32719 )
32720 {
32721 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
32722 _res = _PyPegen_dummy_name(p, name_var, string_var);
32723 goto done;
32724 }
32725 p->mark = _mark;
32726 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
32727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
32728 }
32729 { // SOFT_KEYWORD
32730 if (p->error_indicator) {
32731 p->level--;
32732 return NULL;
32733 }
32734 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
32735 expr_ty soft_keyword_var;
32736 if (
32737 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
32738 )
32739 {
32740 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
32741 _res = soft_keyword_var;
32742 goto done;
32743 }
32744 p->mark = _mark;
32745 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
32746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
32747 }
32748 _res = NULL;
32749 done:
32750 p->level--;
32751 return _res;
32752 }
32753
32754 // _tmp_148: 'else' | ':'
32755 static void *
_tmp_148_rule(Parser * p)32756 _tmp_148_rule(Parser *p)
32757 {
32758 if (p->level++ == MAXSTACK) {
32759 p->error_indicator = 1;
32760 PyErr_NoMemory();
32761 }
32762 if (p->error_indicator) {
32763 p->level--;
32764 return NULL;
32765 }
32766 void * _res = NULL;
32767 int _mark = p->mark;
32768 { // 'else'
32769 if (p->error_indicator) {
32770 p->level--;
32771 return NULL;
32772 }
32773 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'"));
32774 Token * _keyword;
32775 if (
32776 (_keyword = _PyPegen_expect_token(p, 642)) // token='else'
32777 )
32778 {
32779 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'"));
32780 _res = _keyword;
32781 goto done;
32782 }
32783 p->mark = _mark;
32784 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
32785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else'"));
32786 }
32787 { // ':'
32788 if (p->error_indicator) {
32789 p->level--;
32790 return NULL;
32791 }
32792 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
32793 Token * _literal;
32794 if (
32795 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
32796 )
32797 {
32798 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
32799 _res = _literal;
32800 goto done;
32801 }
32802 p->mark = _mark;
32803 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
32804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
32805 }
32806 _res = NULL;
32807 done:
32808 p->level--;
32809 return _res;
32810 }
32811
32812 // _tmp_149: '=' | ':='
32813 static void *
_tmp_149_rule(Parser * p)32814 _tmp_149_rule(Parser *p)
32815 {
32816 if (p->level++ == MAXSTACK) {
32817 p->error_indicator = 1;
32818 PyErr_NoMemory();
32819 }
32820 if (p->error_indicator) {
32821 p->level--;
32822 return NULL;
32823 }
32824 void * _res = NULL;
32825 int _mark = p->mark;
32826 { // '='
32827 if (p->error_indicator) {
32828 p->level--;
32829 return NULL;
32830 }
32831 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
32832 Token * _literal;
32833 if (
32834 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32835 )
32836 {
32837 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
32838 _res = _literal;
32839 goto done;
32840 }
32841 p->mark = _mark;
32842 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
32843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
32844 }
32845 { // ':='
32846 if (p->error_indicator) {
32847 p->level--;
32848 return NULL;
32849 }
32850 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
32851 Token * _literal;
32852 if (
32853 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
32854 )
32855 {
32856 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
32857 _res = _literal;
32858 goto done;
32859 }
32860 p->mark = _mark;
32861 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
32862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
32863 }
32864 _res = NULL;
32865 done:
32866 p->level--;
32867 return _res;
32868 }
32869
32870 // _tmp_150: list | tuple | genexp | 'True' | 'None' | 'False'
32871 static void *
_tmp_150_rule(Parser * p)32872 _tmp_150_rule(Parser *p)
32873 {
32874 if (p->level++ == MAXSTACK) {
32875 p->error_indicator = 1;
32876 PyErr_NoMemory();
32877 }
32878 if (p->error_indicator) {
32879 p->level--;
32880 return NULL;
32881 }
32882 void * _res = NULL;
32883 int _mark = p->mark;
32884 { // list
32885 if (p->error_indicator) {
32886 p->level--;
32887 return NULL;
32888 }
32889 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
32890 expr_ty list_var;
32891 if (
32892 (list_var = list_rule(p)) // list
32893 )
32894 {
32895 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
32896 _res = list_var;
32897 goto done;
32898 }
32899 p->mark = _mark;
32900 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
32901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
32902 }
32903 { // tuple
32904 if (p->error_indicator) {
32905 p->level--;
32906 return NULL;
32907 }
32908 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
32909 expr_ty tuple_var;
32910 if (
32911 (tuple_var = tuple_rule(p)) // tuple
32912 )
32913 {
32914 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
32915 _res = tuple_var;
32916 goto done;
32917 }
32918 p->mark = _mark;
32919 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
32920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
32921 }
32922 { // genexp
32923 if (p->error_indicator) {
32924 p->level--;
32925 return NULL;
32926 }
32927 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
32928 expr_ty genexp_var;
32929 if (
32930 (genexp_var = genexp_rule(p)) // genexp
32931 )
32932 {
32933 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
32934 _res = genexp_var;
32935 goto done;
32936 }
32937 p->mark = _mark;
32938 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
32939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
32940 }
32941 { // 'True'
32942 if (p->error_indicator) {
32943 p->level--;
32944 return NULL;
32945 }
32946 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
32947 Token * _keyword;
32948 if (
32949 (_keyword = _PyPegen_expect_token(p, 600)) // token='True'
32950 )
32951 {
32952 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
32953 _res = _keyword;
32954 goto done;
32955 }
32956 p->mark = _mark;
32957 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
32958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
32959 }
32960 { // 'None'
32961 if (p->error_indicator) {
32962 p->level--;
32963 return NULL;
32964 }
32965 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
32966 Token * _keyword;
32967 if (
32968 (_keyword = _PyPegen_expect_token(p, 601)) // token='None'
32969 )
32970 {
32971 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
32972 _res = _keyword;
32973 goto done;
32974 }
32975 p->mark = _mark;
32976 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
32977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
32978 }
32979 { // 'False'
32980 if (p->error_indicator) {
32981 p->level--;
32982 return NULL;
32983 }
32984 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
32985 Token * _keyword;
32986 if (
32987 (_keyword = _PyPegen_expect_token(p, 602)) // token='False'
32988 )
32989 {
32990 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
32991 _res = _keyword;
32992 goto done;
32993 }
32994 p->mark = _mark;
32995 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
32996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
32997 }
32998 _res = NULL;
32999 done:
33000 p->level--;
33001 return _res;
33002 }
33003
33004 // _tmp_151: '=' | ':='
33005 static void *
_tmp_151_rule(Parser * p)33006 _tmp_151_rule(Parser *p)
33007 {
33008 if (p->level++ == MAXSTACK) {
33009 p->error_indicator = 1;
33010 PyErr_NoMemory();
33011 }
33012 if (p->error_indicator) {
33013 p->level--;
33014 return NULL;
33015 }
33016 void * _res = NULL;
33017 int _mark = p->mark;
33018 { // '='
33019 if (p->error_indicator) {
33020 p->level--;
33021 return NULL;
33022 }
33023 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
33024 Token * _literal;
33025 if (
33026 (_literal = _PyPegen_expect_token(p, 22)) // token='='
33027 )
33028 {
33029 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
33030 _res = _literal;
33031 goto done;
33032 }
33033 p->mark = _mark;
33034 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
33035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
33036 }
33037 { // ':='
33038 if (p->error_indicator) {
33039 p->level--;
33040 return NULL;
33041 }
33042 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
33043 Token * _literal;
33044 if (
33045 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
33046 )
33047 {
33048 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
33049 _res = _literal;
33050 goto done;
33051 }
33052 p->mark = _mark;
33053 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
33054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
33055 }
33056 _res = NULL;
33057 done:
33058 p->level--;
33059 return _res;
33060 }
33061
33062 // _loop0_152: star_named_expressions
33063 static asdl_seq *
_loop0_152_rule(Parser * p)33064 _loop0_152_rule(Parser *p)
33065 {
33066 if (p->level++ == MAXSTACK) {
33067 p->error_indicator = 1;
33068 PyErr_NoMemory();
33069 }
33070 if (p->error_indicator) {
33071 p->level--;
33072 return NULL;
33073 }
33074 void *_res = NULL;
33075 int _mark = p->mark;
33076 void **_children = PyMem_Malloc(sizeof(void *));
33077 if (!_children) {
33078 p->error_indicator = 1;
33079 PyErr_NoMemory();
33080 p->level--;
33081 return NULL;
33082 }
33083 Py_ssize_t _children_capacity = 1;
33084 Py_ssize_t _n = 0;
33085 { // star_named_expressions
33086 if (p->error_indicator) {
33087 p->level--;
33088 return NULL;
33089 }
33090 D(fprintf(stderr, "%*c> _loop0_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
33091 asdl_expr_seq* star_named_expressions_var;
33092 while (
33093 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
33094 )
33095 {
33096 _res = star_named_expressions_var;
33097 if (_n == _children_capacity) {
33098 _children_capacity *= 2;
33099 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
33100 if (!_new_children) {
33101 PyMem_Free(_children);
33102 p->error_indicator = 1;
33103 PyErr_NoMemory();
33104 p->level--;
33105 return NULL;
33106 }
33107 _children = _new_children;
33108 }
33109 _children[_n++] = _res;
33110 _mark = p->mark;
33111 }
33112 p->mark = _mark;
33113 D(fprintf(stderr, "%*c%s _loop0_152[%d-%d]: %s failed!\n", p->level, ' ',
33114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
33115 }
33116 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
33117 if (!_seq) {
33118 PyMem_Free(_children);
33119 p->error_indicator = 1;
33120 PyErr_NoMemory();
33121 p->level--;
33122 return NULL;
33123 }
33124 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
33125 PyMem_Free(_children);
33126 p->level--;
33127 return _seq;
33128 }
33129
33130 // _loop0_153: (star_targets '=')
33131 static asdl_seq *
_loop0_153_rule(Parser * p)33132 _loop0_153_rule(Parser *p)
33133 {
33134 if (p->level++ == MAXSTACK) {
33135 p->error_indicator = 1;
33136 PyErr_NoMemory();
33137 }
33138 if (p->error_indicator) {
33139 p->level--;
33140 return NULL;
33141 }
33142 void *_res = NULL;
33143 int _mark = p->mark;
33144 void **_children = PyMem_Malloc(sizeof(void *));
33145 if (!_children) {
33146 p->error_indicator = 1;
33147 PyErr_NoMemory();
33148 p->level--;
33149 return NULL;
33150 }
33151 Py_ssize_t _children_capacity = 1;
33152 Py_ssize_t _n = 0;
33153 { // (star_targets '=')
33154 if (p->error_indicator) {
33155 p->level--;
33156 return NULL;
33157 }
33158 D(fprintf(stderr, "%*c> _loop0_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
33159 void *_tmp_236_var;
33160 while (
33161 (_tmp_236_var = _tmp_236_rule(p)) // star_targets '='
33162 )
33163 {
33164 _res = _tmp_236_var;
33165 if (_n == _children_capacity) {
33166 _children_capacity *= 2;
33167 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
33168 if (!_new_children) {
33169 PyMem_Free(_children);
33170 p->error_indicator = 1;
33171 PyErr_NoMemory();
33172 p->level--;
33173 return NULL;
33174 }
33175 _children = _new_children;
33176 }
33177 _children[_n++] = _res;
33178 _mark = p->mark;
33179 }
33180 p->mark = _mark;
33181 D(fprintf(stderr, "%*c%s _loop0_153[%d-%d]: %s failed!\n", p->level, ' ',
33182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
33183 }
33184 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
33185 if (!_seq) {
33186 PyMem_Free(_children);
33187 p->error_indicator = 1;
33188 PyErr_NoMemory();
33189 p->level--;
33190 return NULL;
33191 }
33192 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
33193 PyMem_Free(_children);
33194 p->level--;
33195 return _seq;
33196 }
33197
33198 // _loop0_154: (star_targets '=')
33199 static asdl_seq *
_loop0_154_rule(Parser * p)33200 _loop0_154_rule(Parser *p)
33201 {
33202 if (p->level++ == MAXSTACK) {
33203 p->error_indicator = 1;
33204 PyErr_NoMemory();
33205 }
33206 if (p->error_indicator) {
33207 p->level--;
33208 return NULL;
33209 }
33210 void *_res = NULL;
33211 int _mark = p->mark;
33212 void **_children = PyMem_Malloc(sizeof(void *));
33213 if (!_children) {
33214 p->error_indicator = 1;
33215 PyErr_NoMemory();
33216 p->level--;
33217 return NULL;
33218 }
33219 Py_ssize_t _children_capacity = 1;
33220 Py_ssize_t _n = 0;
33221 { // (star_targets '=')
33222 if (p->error_indicator) {
33223 p->level--;
33224 return NULL;
33225 }
33226 D(fprintf(stderr, "%*c> _loop0_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
33227 void *_tmp_237_var;
33228 while (
33229 (_tmp_237_var = _tmp_237_rule(p)) // star_targets '='
33230 )
33231 {
33232 _res = _tmp_237_var;
33233 if (_n == _children_capacity) {
33234 _children_capacity *= 2;
33235 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
33236 if (!_new_children) {
33237 PyMem_Free(_children);
33238 p->error_indicator = 1;
33239 PyErr_NoMemory();
33240 p->level--;
33241 return NULL;
33242 }
33243 _children = _new_children;
33244 }
33245 _children[_n++] = _res;
33246 _mark = p->mark;
33247 }
33248 p->mark = _mark;
33249 D(fprintf(stderr, "%*c%s _loop0_154[%d-%d]: %s failed!\n", p->level, ' ',
33250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
33251 }
33252 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
33253 if (!_seq) {
33254 PyMem_Free(_children);
33255 p->error_indicator = 1;
33256 PyErr_NoMemory();
33257 p->level--;
33258 return NULL;
33259 }
33260 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
33261 PyMem_Free(_children);
33262 p->level--;
33263 return _seq;
33264 }
33265
33266 // _tmp_155: yield_expr | star_expressions
33267 static void *
_tmp_155_rule(Parser * p)33268 _tmp_155_rule(Parser *p)
33269 {
33270 if (p->level++ == MAXSTACK) {
33271 p->error_indicator = 1;
33272 PyErr_NoMemory();
33273 }
33274 if (p->error_indicator) {
33275 p->level--;
33276 return NULL;
33277 }
33278 void * _res = NULL;
33279 int _mark = p->mark;
33280 { // yield_expr
33281 if (p->error_indicator) {
33282 p->level--;
33283 return NULL;
33284 }
33285 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
33286 expr_ty yield_expr_var;
33287 if (
33288 (yield_expr_var = yield_expr_rule(p)) // yield_expr
33289 )
33290 {
33291 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
33292 _res = yield_expr_var;
33293 goto done;
33294 }
33295 p->mark = _mark;
33296 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
33297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
33298 }
33299 { // star_expressions
33300 if (p->error_indicator) {
33301 p->level--;
33302 return NULL;
33303 }
33304 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
33305 expr_ty star_expressions_var;
33306 if (
33307 (star_expressions_var = star_expressions_rule(p)) // star_expressions
33308 )
33309 {
33310 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
33311 _res = star_expressions_var;
33312 goto done;
33313 }
33314 p->mark = _mark;
33315 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
33316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
33317 }
33318 _res = NULL;
33319 done:
33320 p->level--;
33321 return _res;
33322 }
33323
33324 // _tmp_156: '[' | '(' | '{'
33325 static void *
_tmp_156_rule(Parser * p)33326 _tmp_156_rule(Parser *p)
33327 {
33328 if (p->level++ == MAXSTACK) {
33329 p->error_indicator = 1;
33330 PyErr_NoMemory();
33331 }
33332 if (p->error_indicator) {
33333 p->level--;
33334 return NULL;
33335 }
33336 void * _res = NULL;
33337 int _mark = p->mark;
33338 { // '['
33339 if (p->error_indicator) {
33340 p->level--;
33341 return NULL;
33342 }
33343 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
33344 Token * _literal;
33345 if (
33346 (_literal = _PyPegen_expect_token(p, 9)) // token='['
33347 )
33348 {
33349 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
33350 _res = _literal;
33351 goto done;
33352 }
33353 p->mark = _mark;
33354 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
33355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
33356 }
33357 { // '('
33358 if (p->error_indicator) {
33359 p->level--;
33360 return NULL;
33361 }
33362 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
33363 Token * _literal;
33364 if (
33365 (_literal = _PyPegen_expect_token(p, 7)) // token='('
33366 )
33367 {
33368 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
33369 _res = _literal;
33370 goto done;
33371 }
33372 p->mark = _mark;
33373 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
33374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
33375 }
33376 { // '{'
33377 if (p->error_indicator) {
33378 p->level--;
33379 return NULL;
33380 }
33381 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
33382 Token * _literal;
33383 if (
33384 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
33385 )
33386 {
33387 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
33388 _res = _literal;
33389 goto done;
33390 }
33391 p->mark = _mark;
33392 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
33393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
33394 }
33395 _res = NULL;
33396 done:
33397 p->level--;
33398 return _res;
33399 }
33400
33401 // _tmp_157: '[' | '{'
33402 static void *
_tmp_157_rule(Parser * p)33403 _tmp_157_rule(Parser *p)
33404 {
33405 if (p->level++ == MAXSTACK) {
33406 p->error_indicator = 1;
33407 PyErr_NoMemory();
33408 }
33409 if (p->error_indicator) {
33410 p->level--;
33411 return NULL;
33412 }
33413 void * _res = NULL;
33414 int _mark = p->mark;
33415 { // '['
33416 if (p->error_indicator) {
33417 p->level--;
33418 return NULL;
33419 }
33420 D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
33421 Token * _literal;
33422 if (
33423 (_literal = _PyPegen_expect_token(p, 9)) // token='['
33424 )
33425 {
33426 D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
33427 _res = _literal;
33428 goto done;
33429 }
33430 p->mark = _mark;
33431 D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
33432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
33433 }
33434 { // '{'
33435 if (p->error_indicator) {
33436 p->level--;
33437 return NULL;
33438 }
33439 D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
33440 Token * _literal;
33441 if (
33442 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
33443 )
33444 {
33445 D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
33446 _res = _literal;
33447 goto done;
33448 }
33449 p->mark = _mark;
33450 D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
33451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
33452 }
33453 _res = NULL;
33454 done:
33455 p->level--;
33456 return _res;
33457 }
33458
33459 // _tmp_158: '[' | '{'
33460 static void *
_tmp_158_rule(Parser * p)33461 _tmp_158_rule(Parser *p)
33462 {
33463 if (p->level++ == MAXSTACK) {
33464 p->error_indicator = 1;
33465 PyErr_NoMemory();
33466 }
33467 if (p->error_indicator) {
33468 p->level--;
33469 return NULL;
33470 }
33471 void * _res = NULL;
33472 int _mark = p->mark;
33473 { // '['
33474 if (p->error_indicator) {
33475 p->level--;
33476 return NULL;
33477 }
33478 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
33479 Token * _literal;
33480 if (
33481 (_literal = _PyPegen_expect_token(p, 9)) // token='['
33482 )
33483 {
33484 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
33485 _res = _literal;
33486 goto done;
33487 }
33488 p->mark = _mark;
33489 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
33490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
33491 }
33492 { // '{'
33493 if (p->error_indicator) {
33494 p->level--;
33495 return NULL;
33496 }
33497 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
33498 Token * _literal;
33499 if (
33500 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
33501 )
33502 {
33503 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
33504 _res = _literal;
33505 goto done;
33506 }
33507 p->mark = _mark;
33508 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
33509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
33510 }
33511 _res = NULL;
33512 done:
33513 p->level--;
33514 return _res;
33515 }
33516
33517 // _loop0_159: param_no_default
33518 static asdl_seq *
_loop0_159_rule(Parser * p)33519 _loop0_159_rule(Parser *p)
33520 {
33521 if (p->level++ == MAXSTACK) {
33522 p->error_indicator = 1;
33523 PyErr_NoMemory();
33524 }
33525 if (p->error_indicator) {
33526 p->level--;
33527 return NULL;
33528 }
33529 void *_res = NULL;
33530 int _mark = p->mark;
33531 void **_children = PyMem_Malloc(sizeof(void *));
33532 if (!_children) {
33533 p->error_indicator = 1;
33534 PyErr_NoMemory();
33535 p->level--;
33536 return NULL;
33537 }
33538 Py_ssize_t _children_capacity = 1;
33539 Py_ssize_t _n = 0;
33540 { // param_no_default
33541 if (p->error_indicator) {
33542 p->level--;
33543 return NULL;
33544 }
33545 D(fprintf(stderr, "%*c> _loop0_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
33546 arg_ty param_no_default_var;
33547 while (
33548 (param_no_default_var = param_no_default_rule(p)) // param_no_default
33549 )
33550 {
33551 _res = param_no_default_var;
33552 if (_n == _children_capacity) {
33553 _children_capacity *= 2;
33554 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
33555 if (!_new_children) {
33556 PyMem_Free(_children);
33557 p->error_indicator = 1;
33558 PyErr_NoMemory();
33559 p->level--;
33560 return NULL;
33561 }
33562 _children = _new_children;
33563 }
33564 _children[_n++] = _res;
33565 _mark = p->mark;
33566 }
33567 p->mark = _mark;
33568 D(fprintf(stderr, "%*c%s _loop0_159[%d-%d]: %s failed!\n", p->level, ' ',
33569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
33570 }
33571 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
33572 if (!_seq) {
33573 PyMem_Free(_children);
33574 p->error_indicator = 1;
33575 PyErr_NoMemory();
33576 p->level--;
33577 return NULL;
33578 }
33579 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
33580 PyMem_Free(_children);
33581 p->level--;
33582 return _seq;
33583 }
33584
33585 // _loop0_160: param_no_default
33586 static asdl_seq *
_loop0_160_rule(Parser * p)33587 _loop0_160_rule(Parser *p)
33588 {
33589 if (p->level++ == MAXSTACK) {
33590 p->error_indicator = 1;
33591 PyErr_NoMemory();
33592 }
33593 if (p->error_indicator) {
33594 p->level--;
33595 return NULL;
33596 }
33597 void *_res = NULL;
33598 int _mark = p->mark;
33599 void **_children = PyMem_Malloc(sizeof(void *));
33600 if (!_children) {
33601 p->error_indicator = 1;
33602 PyErr_NoMemory();
33603 p->level--;
33604 return NULL;
33605 }
33606 Py_ssize_t _children_capacity = 1;
33607 Py_ssize_t _n = 0;
33608 { // param_no_default
33609 if (p->error_indicator) {
33610 p->level--;
33611 return NULL;
33612 }
33613 D(fprintf(stderr, "%*c> _loop0_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
33614 arg_ty param_no_default_var;
33615 while (
33616 (param_no_default_var = param_no_default_rule(p)) // param_no_default
33617 )
33618 {
33619 _res = param_no_default_var;
33620 if (_n == _children_capacity) {
33621 _children_capacity *= 2;
33622 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
33623 if (!_new_children) {
33624 PyMem_Free(_children);
33625 p->error_indicator = 1;
33626 PyErr_NoMemory();
33627 p->level--;
33628 return NULL;
33629 }
33630 _children = _new_children;
33631 }
33632 _children[_n++] = _res;
33633 _mark = p->mark;
33634 }
33635 p->mark = _mark;
33636 D(fprintf(stderr, "%*c%s _loop0_160[%d-%d]: %s failed!\n", p->level, ' ',
33637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
33638 }
33639 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
33640 if (!_seq) {
33641 PyMem_Free(_children);
33642 p->error_indicator = 1;
33643 PyErr_NoMemory();
33644 p->level--;
33645 return NULL;
33646 }
33647 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
33648 PyMem_Free(_children);
33649 p->level--;
33650 return _seq;
33651 }
33652
33653 // _loop1_161: param_no_default
33654 static asdl_seq *
_loop1_161_rule(Parser * p)33655 _loop1_161_rule(Parser *p)
33656 {
33657 if (p->level++ == MAXSTACK) {
33658 p->error_indicator = 1;
33659 PyErr_NoMemory();
33660 }
33661 if (p->error_indicator) {
33662 p->level--;
33663 return NULL;
33664 }
33665 void *_res = NULL;
33666 int _mark = p->mark;
33667 void **_children = PyMem_Malloc(sizeof(void *));
33668 if (!_children) {
33669 p->error_indicator = 1;
33670 PyErr_NoMemory();
33671 p->level--;
33672 return NULL;
33673 }
33674 Py_ssize_t _children_capacity = 1;
33675 Py_ssize_t _n = 0;
33676 { // param_no_default
33677 if (p->error_indicator) {
33678 p->level--;
33679 return NULL;
33680 }
33681 D(fprintf(stderr, "%*c> _loop1_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
33682 arg_ty param_no_default_var;
33683 while (
33684 (param_no_default_var = param_no_default_rule(p)) // param_no_default
33685 )
33686 {
33687 _res = param_no_default_var;
33688 if (_n == _children_capacity) {
33689 _children_capacity *= 2;
33690 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
33691 if (!_new_children) {
33692 PyMem_Free(_children);
33693 p->error_indicator = 1;
33694 PyErr_NoMemory();
33695 p->level--;
33696 return NULL;
33697 }
33698 _children = _new_children;
33699 }
33700 _children[_n++] = _res;
33701 _mark = p->mark;
33702 }
33703 p->mark = _mark;
33704 D(fprintf(stderr, "%*c%s _loop1_161[%d-%d]: %s failed!\n", p->level, ' ',
33705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
33706 }
33707 if (_n == 0 || p->error_indicator) {
33708 PyMem_Free(_children);
33709 p->level--;
33710 return NULL;
33711 }
33712 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
33713 if (!_seq) {
33714 PyMem_Free(_children);
33715 p->error_indicator = 1;
33716 PyErr_NoMemory();
33717 p->level--;
33718 return NULL;
33719 }
33720 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
33721 PyMem_Free(_children);
33722 p->level--;
33723 return _seq;
33724 }
33725
33726 // _tmp_162: slash_no_default | slash_with_default
33727 static void *
_tmp_162_rule(Parser * p)33728 _tmp_162_rule(Parser *p)
33729 {
33730 if (p->level++ == MAXSTACK) {
33731 p->error_indicator = 1;
33732 PyErr_NoMemory();
33733 }
33734 if (p->error_indicator) {
33735 p->level--;
33736 return NULL;
33737 }
33738 void * _res = NULL;
33739 int _mark = p->mark;
33740 { // slash_no_default
33741 if (p->error_indicator) {
33742 p->level--;
33743 return NULL;
33744 }
33745 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default"));
33746 asdl_arg_seq* slash_no_default_var;
33747 if (
33748 (slash_no_default_var = slash_no_default_rule(p)) // slash_no_default
33749 )
33750 {
33751 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default"));
33752 _res = slash_no_default_var;
33753 goto done;
33754 }
33755 p->mark = _mark;
33756 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
33757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default"));
33758 }
33759 { // slash_with_default
33760 if (p->error_indicator) {
33761 p->level--;
33762 return NULL;
33763 }
33764 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
33765 SlashWithDefault* slash_with_default_var;
33766 if (
33767 (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default
33768 )
33769 {
33770 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
33771 _res = slash_with_default_var;
33772 goto done;
33773 }
33774 p->mark = _mark;
33775 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
33776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
33777 }
33778 _res = NULL;
33779 done:
33780 p->level--;
33781 return _res;
33782 }
33783
33784 // _loop0_163: param_maybe_default
33785 static asdl_seq *
_loop0_163_rule(Parser * p)33786 _loop0_163_rule(Parser *p)
33787 {
33788 if (p->level++ == MAXSTACK) {
33789 p->error_indicator = 1;
33790 PyErr_NoMemory();
33791 }
33792 if (p->error_indicator) {
33793 p->level--;
33794 return NULL;
33795 }
33796 void *_res = NULL;
33797 int _mark = p->mark;
33798 void **_children = PyMem_Malloc(sizeof(void *));
33799 if (!_children) {
33800 p->error_indicator = 1;
33801 PyErr_NoMemory();
33802 p->level--;
33803 return NULL;
33804 }
33805 Py_ssize_t _children_capacity = 1;
33806 Py_ssize_t _n = 0;
33807 { // param_maybe_default
33808 if (p->error_indicator) {
33809 p->level--;
33810 return NULL;
33811 }
33812 D(fprintf(stderr, "%*c> _loop0_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
33813 NameDefaultPair* param_maybe_default_var;
33814 while (
33815 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
33816 )
33817 {
33818 _res = param_maybe_default_var;
33819 if (_n == _children_capacity) {
33820 _children_capacity *= 2;
33821 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
33822 if (!_new_children) {
33823 PyMem_Free(_children);
33824 p->error_indicator = 1;
33825 PyErr_NoMemory();
33826 p->level--;
33827 return NULL;
33828 }
33829 _children = _new_children;
33830 }
33831 _children[_n++] = _res;
33832 _mark = p->mark;
33833 }
33834 p->mark = _mark;
33835 D(fprintf(stderr, "%*c%s _loop0_163[%d-%d]: %s failed!\n", p->level, ' ',
33836 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
33837 }
33838 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
33839 if (!_seq) {
33840 PyMem_Free(_children);
33841 p->error_indicator = 1;
33842 PyErr_NoMemory();
33843 p->level--;
33844 return NULL;
33845 }
33846 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
33847 PyMem_Free(_children);
33848 p->level--;
33849 return _seq;
33850 }
33851
33852 // _tmp_164: slash_no_default | slash_with_default
33853 static void *
_tmp_164_rule(Parser * p)33854 _tmp_164_rule(Parser *p)
33855 {
33856 if (p->level++ == MAXSTACK) {
33857 p->error_indicator = 1;
33858 PyErr_NoMemory();
33859 }
33860 if (p->error_indicator) {
33861 p->level--;
33862 return NULL;
33863 }
33864 void * _res = NULL;
33865 int _mark = p->mark;
33866 { // slash_no_default
33867 if (p->error_indicator) {
33868 p->level--;
33869 return NULL;
33870 }
33871 D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default"));
33872 asdl_arg_seq* slash_no_default_var;
33873 if (
33874 (slash_no_default_var = slash_no_default_rule(p)) // slash_no_default
33875 )
33876 {
33877 D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default"));
33878 _res = slash_no_default_var;
33879 goto done;
33880 }
33881 p->mark = _mark;
33882 D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
33883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default"));
33884 }
33885 { // slash_with_default
33886 if (p->error_indicator) {
33887 p->level--;
33888 return NULL;
33889 }
33890 D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
33891 SlashWithDefault* slash_with_default_var;
33892 if (
33893 (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default
33894 )
33895 {
33896 D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
33897 _res = slash_with_default_var;
33898 goto done;
33899 }
33900 p->mark = _mark;
33901 D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
33902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
33903 }
33904 _res = NULL;
33905 done:
33906 p->level--;
33907 return _res;
33908 }
33909
33910 // _loop0_165: param_maybe_default
33911 static asdl_seq *
_loop0_165_rule(Parser * p)33912 _loop0_165_rule(Parser *p)
33913 {
33914 if (p->level++ == MAXSTACK) {
33915 p->error_indicator = 1;
33916 PyErr_NoMemory();
33917 }
33918 if (p->error_indicator) {
33919 p->level--;
33920 return NULL;
33921 }
33922 void *_res = NULL;
33923 int _mark = p->mark;
33924 void **_children = PyMem_Malloc(sizeof(void *));
33925 if (!_children) {
33926 p->error_indicator = 1;
33927 PyErr_NoMemory();
33928 p->level--;
33929 return NULL;
33930 }
33931 Py_ssize_t _children_capacity = 1;
33932 Py_ssize_t _n = 0;
33933 { // param_maybe_default
33934 if (p->error_indicator) {
33935 p->level--;
33936 return NULL;
33937 }
33938 D(fprintf(stderr, "%*c> _loop0_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
33939 NameDefaultPair* param_maybe_default_var;
33940 while (
33941 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
33942 )
33943 {
33944 _res = param_maybe_default_var;
33945 if (_n == _children_capacity) {
33946 _children_capacity *= 2;
33947 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
33948 if (!_new_children) {
33949 PyMem_Free(_children);
33950 p->error_indicator = 1;
33951 PyErr_NoMemory();
33952 p->level--;
33953 return NULL;
33954 }
33955 _children = _new_children;
33956 }
33957 _children[_n++] = _res;
33958 _mark = p->mark;
33959 }
33960 p->mark = _mark;
33961 D(fprintf(stderr, "%*c%s _loop0_165[%d-%d]: %s failed!\n", p->level, ' ',
33962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
33963 }
33964 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
33965 if (!_seq) {
33966 PyMem_Free(_children);
33967 p->error_indicator = 1;
33968 PyErr_NoMemory();
33969 p->level--;
33970 return NULL;
33971 }
33972 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
33973 PyMem_Free(_children);
33974 p->level--;
33975 return _seq;
33976 }
33977
33978 // _tmp_166: ',' | param_no_default
33979 static void *
_tmp_166_rule(Parser * p)33980 _tmp_166_rule(Parser *p)
33981 {
33982 if (p->level++ == MAXSTACK) {
33983 p->error_indicator = 1;
33984 PyErr_NoMemory();
33985 }
33986 if (p->error_indicator) {
33987 p->level--;
33988 return NULL;
33989 }
33990 void * _res = NULL;
33991 int _mark = p->mark;
33992 { // ','
33993 if (p->error_indicator) {
33994 p->level--;
33995 return NULL;
33996 }
33997 D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
33998 Token * _literal;
33999 if (
34000 (_literal = _PyPegen_expect_token(p, 12)) // token=','
34001 )
34002 {
34003 D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
34004 _res = _literal;
34005 goto done;
34006 }
34007 p->mark = _mark;
34008 D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ',
34009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
34010 }
34011 { // param_no_default
34012 if (p->error_indicator) {
34013 p->level--;
34014 return NULL;
34015 }
34016 D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
34017 arg_ty param_no_default_var;
34018 if (
34019 (param_no_default_var = param_no_default_rule(p)) // param_no_default
34020 )
34021 {
34022 D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default"));
34023 _res = param_no_default_var;
34024 goto done;
34025 }
34026 p->mark = _mark;
34027 D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ',
34028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
34029 }
34030 _res = NULL;
34031 done:
34032 p->level--;
34033 return _res;
34034 }
34035
34036 // _loop0_167: param_maybe_default
34037 static asdl_seq *
_loop0_167_rule(Parser * p)34038 _loop0_167_rule(Parser *p)
34039 {
34040 if (p->level++ == MAXSTACK) {
34041 p->error_indicator = 1;
34042 PyErr_NoMemory();
34043 }
34044 if (p->error_indicator) {
34045 p->level--;
34046 return NULL;
34047 }
34048 void *_res = NULL;
34049 int _mark = p->mark;
34050 void **_children = PyMem_Malloc(sizeof(void *));
34051 if (!_children) {
34052 p->error_indicator = 1;
34053 PyErr_NoMemory();
34054 p->level--;
34055 return NULL;
34056 }
34057 Py_ssize_t _children_capacity = 1;
34058 Py_ssize_t _n = 0;
34059 { // param_maybe_default
34060 if (p->error_indicator) {
34061 p->level--;
34062 return NULL;
34063 }
34064 D(fprintf(stderr, "%*c> _loop0_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
34065 NameDefaultPair* param_maybe_default_var;
34066 while (
34067 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
34068 )
34069 {
34070 _res = param_maybe_default_var;
34071 if (_n == _children_capacity) {
34072 _children_capacity *= 2;
34073 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
34074 if (!_new_children) {
34075 PyMem_Free(_children);
34076 p->error_indicator = 1;
34077 PyErr_NoMemory();
34078 p->level--;
34079 return NULL;
34080 }
34081 _children = _new_children;
34082 }
34083 _children[_n++] = _res;
34084 _mark = p->mark;
34085 }
34086 p->mark = _mark;
34087 D(fprintf(stderr, "%*c%s _loop0_167[%d-%d]: %s failed!\n", p->level, ' ',
34088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
34089 }
34090 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
34091 if (!_seq) {
34092 PyMem_Free(_children);
34093 p->error_indicator = 1;
34094 PyErr_NoMemory();
34095 p->level--;
34096 return NULL;
34097 }
34098 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
34099 PyMem_Free(_children);
34100 p->level--;
34101 return _seq;
34102 }
34103
34104 // _loop1_168: param_maybe_default
34105 static asdl_seq *
_loop1_168_rule(Parser * p)34106 _loop1_168_rule(Parser *p)
34107 {
34108 if (p->level++ == MAXSTACK) {
34109 p->error_indicator = 1;
34110 PyErr_NoMemory();
34111 }
34112 if (p->error_indicator) {
34113 p->level--;
34114 return NULL;
34115 }
34116 void *_res = NULL;
34117 int _mark = p->mark;
34118 void **_children = PyMem_Malloc(sizeof(void *));
34119 if (!_children) {
34120 p->error_indicator = 1;
34121 PyErr_NoMemory();
34122 p->level--;
34123 return NULL;
34124 }
34125 Py_ssize_t _children_capacity = 1;
34126 Py_ssize_t _n = 0;
34127 { // param_maybe_default
34128 if (p->error_indicator) {
34129 p->level--;
34130 return NULL;
34131 }
34132 D(fprintf(stderr, "%*c> _loop1_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
34133 NameDefaultPair* param_maybe_default_var;
34134 while (
34135 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
34136 )
34137 {
34138 _res = param_maybe_default_var;
34139 if (_n == _children_capacity) {
34140 _children_capacity *= 2;
34141 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
34142 if (!_new_children) {
34143 PyMem_Free(_children);
34144 p->error_indicator = 1;
34145 PyErr_NoMemory();
34146 p->level--;
34147 return NULL;
34148 }
34149 _children = _new_children;
34150 }
34151 _children[_n++] = _res;
34152 _mark = p->mark;
34153 }
34154 p->mark = _mark;
34155 D(fprintf(stderr, "%*c%s _loop1_168[%d-%d]: %s failed!\n", p->level, ' ',
34156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
34157 }
34158 if (_n == 0 || p->error_indicator) {
34159 PyMem_Free(_children);
34160 p->level--;
34161 return NULL;
34162 }
34163 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
34164 if (!_seq) {
34165 PyMem_Free(_children);
34166 p->error_indicator = 1;
34167 PyErr_NoMemory();
34168 p->level--;
34169 return NULL;
34170 }
34171 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
34172 PyMem_Free(_children);
34173 p->level--;
34174 return _seq;
34175 }
34176
34177 // _tmp_169: ')' | ','
34178 static void *
_tmp_169_rule(Parser * p)34179 _tmp_169_rule(Parser *p)
34180 {
34181 if (p->level++ == MAXSTACK) {
34182 p->error_indicator = 1;
34183 PyErr_NoMemory();
34184 }
34185 if (p->error_indicator) {
34186 p->level--;
34187 return NULL;
34188 }
34189 void * _res = NULL;
34190 int _mark = p->mark;
34191 { // ')'
34192 if (p->error_indicator) {
34193 p->level--;
34194 return NULL;
34195 }
34196 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
34197 Token * _literal;
34198 if (
34199 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
34200 )
34201 {
34202 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
34203 _res = _literal;
34204 goto done;
34205 }
34206 p->mark = _mark;
34207 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
34208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
34209 }
34210 { // ','
34211 if (p->error_indicator) {
34212 p->level--;
34213 return NULL;
34214 }
34215 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
34216 Token * _literal;
34217 if (
34218 (_literal = _PyPegen_expect_token(p, 12)) // token=','
34219 )
34220 {
34221 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
34222 _res = _literal;
34223 goto done;
34224 }
34225 p->mark = _mark;
34226 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
34227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
34228 }
34229 _res = NULL;
34230 done:
34231 p->level--;
34232 return _res;
34233 }
34234
34235 // _tmp_170: ')' | ',' (')' | '**')
34236 static void *
_tmp_170_rule(Parser * p)34237 _tmp_170_rule(Parser *p)
34238 {
34239 if (p->level++ == MAXSTACK) {
34240 p->error_indicator = 1;
34241 PyErr_NoMemory();
34242 }
34243 if (p->error_indicator) {
34244 p->level--;
34245 return NULL;
34246 }
34247 void * _res = NULL;
34248 int _mark = p->mark;
34249 { // ')'
34250 if (p->error_indicator) {
34251 p->level--;
34252 return NULL;
34253 }
34254 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
34255 Token * _literal;
34256 if (
34257 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
34258 )
34259 {
34260 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
34261 _res = _literal;
34262 goto done;
34263 }
34264 p->mark = _mark;
34265 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
34266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
34267 }
34268 { // ',' (')' | '**')
34269 if (p->error_indicator) {
34270 p->level--;
34271 return NULL;
34272 }
34273 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
34274 Token * _literal;
34275 void *_tmp_238_var;
34276 if (
34277 (_literal = _PyPegen_expect_token(p, 12)) // token=','
34278 &&
34279 (_tmp_238_var = _tmp_238_rule(p)) // ')' | '**'
34280 )
34281 {
34282 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
34283 _res = _PyPegen_dummy_name(p, _literal, _tmp_238_var);
34284 goto done;
34285 }
34286 p->mark = _mark;
34287 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
34288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
34289 }
34290 _res = NULL;
34291 done:
34292 p->level--;
34293 return _res;
34294 }
34295
34296 // _tmp_171: param_no_default | ','
34297 static void *
_tmp_171_rule(Parser * p)34298 _tmp_171_rule(Parser *p)
34299 {
34300 if (p->level++ == MAXSTACK) {
34301 p->error_indicator = 1;
34302 PyErr_NoMemory();
34303 }
34304 if (p->error_indicator) {
34305 p->level--;
34306 return NULL;
34307 }
34308 void * _res = NULL;
34309 int _mark = p->mark;
34310 { // param_no_default
34311 if (p->error_indicator) {
34312 p->level--;
34313 return NULL;
34314 }
34315 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
34316 arg_ty param_no_default_var;
34317 if (
34318 (param_no_default_var = param_no_default_rule(p)) // param_no_default
34319 )
34320 {
34321 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default"));
34322 _res = param_no_default_var;
34323 goto done;
34324 }
34325 p->mark = _mark;
34326 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
34327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
34328 }
34329 { // ','
34330 if (p->error_indicator) {
34331 p->level--;
34332 return NULL;
34333 }
34334 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
34335 Token * _literal;
34336 if (
34337 (_literal = _PyPegen_expect_token(p, 12)) // token=','
34338 )
34339 {
34340 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
34341 _res = _literal;
34342 goto done;
34343 }
34344 p->mark = _mark;
34345 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
34346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
34347 }
34348 _res = NULL;
34349 done:
34350 p->level--;
34351 return _res;
34352 }
34353
34354 // _loop0_172: param_maybe_default
34355 static asdl_seq *
_loop0_172_rule(Parser * p)34356 _loop0_172_rule(Parser *p)
34357 {
34358 if (p->level++ == MAXSTACK) {
34359 p->error_indicator = 1;
34360 PyErr_NoMemory();
34361 }
34362 if (p->error_indicator) {
34363 p->level--;
34364 return NULL;
34365 }
34366 void *_res = NULL;
34367 int _mark = p->mark;
34368 void **_children = PyMem_Malloc(sizeof(void *));
34369 if (!_children) {
34370 p->error_indicator = 1;
34371 PyErr_NoMemory();
34372 p->level--;
34373 return NULL;
34374 }
34375 Py_ssize_t _children_capacity = 1;
34376 Py_ssize_t _n = 0;
34377 { // param_maybe_default
34378 if (p->error_indicator) {
34379 p->level--;
34380 return NULL;
34381 }
34382 D(fprintf(stderr, "%*c> _loop0_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
34383 NameDefaultPair* param_maybe_default_var;
34384 while (
34385 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
34386 )
34387 {
34388 _res = param_maybe_default_var;
34389 if (_n == _children_capacity) {
34390 _children_capacity *= 2;
34391 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
34392 if (!_new_children) {
34393 PyMem_Free(_children);
34394 p->error_indicator = 1;
34395 PyErr_NoMemory();
34396 p->level--;
34397 return NULL;
34398 }
34399 _children = _new_children;
34400 }
34401 _children[_n++] = _res;
34402 _mark = p->mark;
34403 }
34404 p->mark = _mark;
34405 D(fprintf(stderr, "%*c%s _loop0_172[%d-%d]: %s failed!\n", p->level, ' ',
34406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
34407 }
34408 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
34409 if (!_seq) {
34410 PyMem_Free(_children);
34411 p->error_indicator = 1;
34412 PyErr_NoMemory();
34413 p->level--;
34414 return NULL;
34415 }
34416 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
34417 PyMem_Free(_children);
34418 p->level--;
34419 return _seq;
34420 }
34421
34422 // _tmp_173: param_no_default | ','
34423 static void *
_tmp_173_rule(Parser * p)34424 _tmp_173_rule(Parser *p)
34425 {
34426 if (p->level++ == MAXSTACK) {
34427 p->error_indicator = 1;
34428 PyErr_NoMemory();
34429 }
34430 if (p->error_indicator) {
34431 p->level--;
34432 return NULL;
34433 }
34434 void * _res = NULL;
34435 int _mark = p->mark;
34436 { // param_no_default
34437 if (p->error_indicator) {
34438 p->level--;
34439 return NULL;
34440 }
34441 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
34442 arg_ty param_no_default_var;
34443 if (
34444 (param_no_default_var = param_no_default_rule(p)) // param_no_default
34445 )
34446 {
34447 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default"));
34448 _res = param_no_default_var;
34449 goto done;
34450 }
34451 p->mark = _mark;
34452 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
34453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
34454 }
34455 { // ','
34456 if (p->error_indicator) {
34457 p->level--;
34458 return NULL;
34459 }
34460 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
34461 Token * _literal;
34462 if (
34463 (_literal = _PyPegen_expect_token(p, 12)) // token=','
34464 )
34465 {
34466 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
34467 _res = _literal;
34468 goto done;
34469 }
34470 p->mark = _mark;
34471 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
34472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
34473 }
34474 _res = NULL;
34475 done:
34476 p->level--;
34477 return _res;
34478 }
34479
34480 // _tmp_174: '*' | '**' | '/'
34481 static void *
_tmp_174_rule(Parser * p)34482 _tmp_174_rule(Parser *p)
34483 {
34484 if (p->level++ == MAXSTACK) {
34485 p->error_indicator = 1;
34486 PyErr_NoMemory();
34487 }
34488 if (p->error_indicator) {
34489 p->level--;
34490 return NULL;
34491 }
34492 void * _res = NULL;
34493 int _mark = p->mark;
34494 { // '*'
34495 if (p->error_indicator) {
34496 p->level--;
34497 return NULL;
34498 }
34499 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
34500 Token * _literal;
34501 if (
34502 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
34503 )
34504 {
34505 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
34506 _res = _literal;
34507 goto done;
34508 }
34509 p->mark = _mark;
34510 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
34511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
34512 }
34513 { // '**'
34514 if (p->error_indicator) {
34515 p->level--;
34516 return NULL;
34517 }
34518 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
34519 Token * _literal;
34520 if (
34521 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
34522 )
34523 {
34524 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
34525 _res = _literal;
34526 goto done;
34527 }
34528 p->mark = _mark;
34529 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
34530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
34531 }
34532 { // '/'
34533 if (p->error_indicator) {
34534 p->level--;
34535 return NULL;
34536 }
34537 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'"));
34538 Token * _literal;
34539 if (
34540 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
34541 )
34542 {
34543 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'"));
34544 _res = _literal;
34545 goto done;
34546 }
34547 p->mark = _mark;
34548 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
34549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'"));
34550 }
34551 _res = NULL;
34552 done:
34553 p->level--;
34554 return _res;
34555 }
34556
34557 // _loop1_175: param_with_default
34558 static asdl_seq *
_loop1_175_rule(Parser * p)34559 _loop1_175_rule(Parser *p)
34560 {
34561 if (p->level++ == MAXSTACK) {
34562 p->error_indicator = 1;
34563 PyErr_NoMemory();
34564 }
34565 if (p->error_indicator) {
34566 p->level--;
34567 return NULL;
34568 }
34569 void *_res = NULL;
34570 int _mark = p->mark;
34571 void **_children = PyMem_Malloc(sizeof(void *));
34572 if (!_children) {
34573 p->error_indicator = 1;
34574 PyErr_NoMemory();
34575 p->level--;
34576 return NULL;
34577 }
34578 Py_ssize_t _children_capacity = 1;
34579 Py_ssize_t _n = 0;
34580 { // param_with_default
34581 if (p->error_indicator) {
34582 p->level--;
34583 return NULL;
34584 }
34585 D(fprintf(stderr, "%*c> _loop1_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
34586 NameDefaultPair* param_with_default_var;
34587 while (
34588 (param_with_default_var = param_with_default_rule(p)) // param_with_default
34589 )
34590 {
34591 _res = param_with_default_var;
34592 if (_n == _children_capacity) {
34593 _children_capacity *= 2;
34594 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
34595 if (!_new_children) {
34596 PyMem_Free(_children);
34597 p->error_indicator = 1;
34598 PyErr_NoMemory();
34599 p->level--;
34600 return NULL;
34601 }
34602 _children = _new_children;
34603 }
34604 _children[_n++] = _res;
34605 _mark = p->mark;
34606 }
34607 p->mark = _mark;
34608 D(fprintf(stderr, "%*c%s _loop1_175[%d-%d]: %s failed!\n", p->level, ' ',
34609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
34610 }
34611 if (_n == 0 || p->error_indicator) {
34612 PyMem_Free(_children);
34613 p->level--;
34614 return NULL;
34615 }
34616 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
34617 if (!_seq) {
34618 PyMem_Free(_children);
34619 p->error_indicator = 1;
34620 PyErr_NoMemory();
34621 p->level--;
34622 return NULL;
34623 }
34624 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
34625 PyMem_Free(_children);
34626 p->level--;
34627 return _seq;
34628 }
34629
34630 // _loop0_176: lambda_param_no_default
34631 static asdl_seq *
_loop0_176_rule(Parser * p)34632 _loop0_176_rule(Parser *p)
34633 {
34634 if (p->level++ == MAXSTACK) {
34635 p->error_indicator = 1;
34636 PyErr_NoMemory();
34637 }
34638 if (p->error_indicator) {
34639 p->level--;
34640 return NULL;
34641 }
34642 void *_res = NULL;
34643 int _mark = p->mark;
34644 void **_children = PyMem_Malloc(sizeof(void *));
34645 if (!_children) {
34646 p->error_indicator = 1;
34647 PyErr_NoMemory();
34648 p->level--;
34649 return NULL;
34650 }
34651 Py_ssize_t _children_capacity = 1;
34652 Py_ssize_t _n = 0;
34653 { // lambda_param_no_default
34654 if (p->error_indicator) {
34655 p->level--;
34656 return NULL;
34657 }
34658 D(fprintf(stderr, "%*c> _loop0_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
34659 arg_ty lambda_param_no_default_var;
34660 while (
34661 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
34662 )
34663 {
34664 _res = lambda_param_no_default_var;
34665 if (_n == _children_capacity) {
34666 _children_capacity *= 2;
34667 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
34668 if (!_new_children) {
34669 PyMem_Free(_children);
34670 p->error_indicator = 1;
34671 PyErr_NoMemory();
34672 p->level--;
34673 return NULL;
34674 }
34675 _children = _new_children;
34676 }
34677 _children[_n++] = _res;
34678 _mark = p->mark;
34679 }
34680 p->mark = _mark;
34681 D(fprintf(stderr, "%*c%s _loop0_176[%d-%d]: %s failed!\n", p->level, ' ',
34682 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
34683 }
34684 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
34685 if (!_seq) {
34686 PyMem_Free(_children);
34687 p->error_indicator = 1;
34688 PyErr_NoMemory();
34689 p->level--;
34690 return NULL;
34691 }
34692 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
34693 PyMem_Free(_children);
34694 p->level--;
34695 return _seq;
34696 }
34697
34698 // _loop0_177: lambda_param_no_default
34699 static asdl_seq *
_loop0_177_rule(Parser * p)34700 _loop0_177_rule(Parser *p)
34701 {
34702 if (p->level++ == MAXSTACK) {
34703 p->error_indicator = 1;
34704 PyErr_NoMemory();
34705 }
34706 if (p->error_indicator) {
34707 p->level--;
34708 return NULL;
34709 }
34710 void *_res = NULL;
34711 int _mark = p->mark;
34712 void **_children = PyMem_Malloc(sizeof(void *));
34713 if (!_children) {
34714 p->error_indicator = 1;
34715 PyErr_NoMemory();
34716 p->level--;
34717 return NULL;
34718 }
34719 Py_ssize_t _children_capacity = 1;
34720 Py_ssize_t _n = 0;
34721 { // lambda_param_no_default
34722 if (p->error_indicator) {
34723 p->level--;
34724 return NULL;
34725 }
34726 D(fprintf(stderr, "%*c> _loop0_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
34727 arg_ty lambda_param_no_default_var;
34728 while (
34729 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
34730 )
34731 {
34732 _res = lambda_param_no_default_var;
34733 if (_n == _children_capacity) {
34734 _children_capacity *= 2;
34735 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
34736 if (!_new_children) {
34737 PyMem_Free(_children);
34738 p->error_indicator = 1;
34739 PyErr_NoMemory();
34740 p->level--;
34741 return NULL;
34742 }
34743 _children = _new_children;
34744 }
34745 _children[_n++] = _res;
34746 _mark = p->mark;
34747 }
34748 p->mark = _mark;
34749 D(fprintf(stderr, "%*c%s _loop0_177[%d-%d]: %s failed!\n", p->level, ' ',
34750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
34751 }
34752 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
34753 if (!_seq) {
34754 PyMem_Free(_children);
34755 p->error_indicator = 1;
34756 PyErr_NoMemory();
34757 p->level--;
34758 return NULL;
34759 }
34760 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
34761 PyMem_Free(_children);
34762 p->level--;
34763 return _seq;
34764 }
34765
34766 // _loop0_179: ',' lambda_param
34767 static asdl_seq *
_loop0_179_rule(Parser * p)34768 _loop0_179_rule(Parser *p)
34769 {
34770 if (p->level++ == MAXSTACK) {
34771 p->error_indicator = 1;
34772 PyErr_NoMemory();
34773 }
34774 if (p->error_indicator) {
34775 p->level--;
34776 return NULL;
34777 }
34778 void *_res = NULL;
34779 int _mark = p->mark;
34780 void **_children = PyMem_Malloc(sizeof(void *));
34781 if (!_children) {
34782 p->error_indicator = 1;
34783 PyErr_NoMemory();
34784 p->level--;
34785 return NULL;
34786 }
34787 Py_ssize_t _children_capacity = 1;
34788 Py_ssize_t _n = 0;
34789 { // ',' lambda_param
34790 if (p->error_indicator) {
34791 p->level--;
34792 return NULL;
34793 }
34794 D(fprintf(stderr, "%*c> _loop0_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' lambda_param"));
34795 Token * _literal;
34796 arg_ty elem;
34797 while (
34798 (_literal = _PyPegen_expect_token(p, 12)) // token=','
34799 &&
34800 (elem = lambda_param_rule(p)) // lambda_param
34801 )
34802 {
34803 _res = elem;
34804 if (_res == NULL && PyErr_Occurred()) {
34805 p->error_indicator = 1;
34806 PyMem_Free(_children);
34807 p->level--;
34808 return NULL;
34809 }
34810 if (_n == _children_capacity) {
34811 _children_capacity *= 2;
34812 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
34813 if (!_new_children) {
34814 PyMem_Free(_children);
34815 p->error_indicator = 1;
34816 PyErr_NoMemory();
34817 p->level--;
34818 return NULL;
34819 }
34820 _children = _new_children;
34821 }
34822 _children[_n++] = _res;
34823 _mark = p->mark;
34824 }
34825 p->mark = _mark;
34826 D(fprintf(stderr, "%*c%s _loop0_179[%d-%d]: %s failed!\n", p->level, ' ',
34827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' lambda_param"));
34828 }
34829 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
34830 if (!_seq) {
34831 PyMem_Free(_children);
34832 p->error_indicator = 1;
34833 PyErr_NoMemory();
34834 p->level--;
34835 return NULL;
34836 }
34837 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
34838 PyMem_Free(_children);
34839 p->level--;
34840 return _seq;
34841 }
34842
34843 // _gather_178: lambda_param _loop0_179
34844 static asdl_seq *
_gather_178_rule(Parser * p)34845 _gather_178_rule(Parser *p)
34846 {
34847 if (p->level++ == MAXSTACK) {
34848 p->error_indicator = 1;
34849 PyErr_NoMemory();
34850 }
34851 if (p->error_indicator) {
34852 p->level--;
34853 return NULL;
34854 }
34855 asdl_seq * _res = NULL;
34856 int _mark = p->mark;
34857 { // lambda_param _loop0_179
34858 if (p->error_indicator) {
34859 p->level--;
34860 return NULL;
34861 }
34862 D(fprintf(stderr, "%*c> _gather_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_179"));
34863 arg_ty elem;
34864 asdl_seq * seq;
34865 if (
34866 (elem = lambda_param_rule(p)) // lambda_param
34867 &&
34868 (seq = _loop0_179_rule(p)) // _loop0_179
34869 )
34870 {
34871 D(fprintf(stderr, "%*c+ _gather_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_179"));
34872 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
34873 goto done;
34874 }
34875 p->mark = _mark;
34876 D(fprintf(stderr, "%*c%s _gather_178[%d-%d]: %s failed!\n", p->level, ' ',
34877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param _loop0_179"));
34878 }
34879 _res = NULL;
34880 done:
34881 p->level--;
34882 return _res;
34883 }
34884
34885 // _tmp_180: lambda_slash_no_default | lambda_slash_with_default
34886 static void *
_tmp_180_rule(Parser * p)34887 _tmp_180_rule(Parser *p)
34888 {
34889 if (p->level++ == MAXSTACK) {
34890 p->error_indicator = 1;
34891 PyErr_NoMemory();
34892 }
34893 if (p->error_indicator) {
34894 p->level--;
34895 return NULL;
34896 }
34897 void * _res = NULL;
34898 int _mark = p->mark;
34899 { // lambda_slash_no_default
34900 if (p->error_indicator) {
34901 p->level--;
34902 return NULL;
34903 }
34904 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default"));
34905 asdl_arg_seq* lambda_slash_no_default_var;
34906 if (
34907 (lambda_slash_no_default_var = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
34908 )
34909 {
34910 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default"));
34911 _res = lambda_slash_no_default_var;
34912 goto done;
34913 }
34914 p->mark = _mark;
34915 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
34916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default"));
34917 }
34918 { // lambda_slash_with_default
34919 if (p->error_indicator) {
34920 p->level--;
34921 return NULL;
34922 }
34923 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
34924 SlashWithDefault* lambda_slash_with_default_var;
34925 if (
34926 (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
34927 )
34928 {
34929 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
34930 _res = lambda_slash_with_default_var;
34931 goto done;
34932 }
34933 p->mark = _mark;
34934 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
34935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
34936 }
34937 _res = NULL;
34938 done:
34939 p->level--;
34940 return _res;
34941 }
34942
34943 // _loop0_181: lambda_param_maybe_default
34944 static asdl_seq *
_loop0_181_rule(Parser * p)34945 _loop0_181_rule(Parser *p)
34946 {
34947 if (p->level++ == MAXSTACK) {
34948 p->error_indicator = 1;
34949 PyErr_NoMemory();
34950 }
34951 if (p->error_indicator) {
34952 p->level--;
34953 return NULL;
34954 }
34955 void *_res = NULL;
34956 int _mark = p->mark;
34957 void **_children = PyMem_Malloc(sizeof(void *));
34958 if (!_children) {
34959 p->error_indicator = 1;
34960 PyErr_NoMemory();
34961 p->level--;
34962 return NULL;
34963 }
34964 Py_ssize_t _children_capacity = 1;
34965 Py_ssize_t _n = 0;
34966 { // lambda_param_maybe_default
34967 if (p->error_indicator) {
34968 p->level--;
34969 return NULL;
34970 }
34971 D(fprintf(stderr, "%*c> _loop0_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
34972 NameDefaultPair* lambda_param_maybe_default_var;
34973 while (
34974 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
34975 )
34976 {
34977 _res = lambda_param_maybe_default_var;
34978 if (_n == _children_capacity) {
34979 _children_capacity *= 2;
34980 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
34981 if (!_new_children) {
34982 PyMem_Free(_children);
34983 p->error_indicator = 1;
34984 PyErr_NoMemory();
34985 p->level--;
34986 return NULL;
34987 }
34988 _children = _new_children;
34989 }
34990 _children[_n++] = _res;
34991 _mark = p->mark;
34992 }
34993 p->mark = _mark;
34994 D(fprintf(stderr, "%*c%s _loop0_181[%d-%d]: %s failed!\n", p->level, ' ',
34995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
34996 }
34997 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
34998 if (!_seq) {
34999 PyMem_Free(_children);
35000 p->error_indicator = 1;
35001 PyErr_NoMemory();
35002 p->level--;
35003 return NULL;
35004 }
35005 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
35006 PyMem_Free(_children);
35007 p->level--;
35008 return _seq;
35009 }
35010
35011 // _tmp_182: lambda_slash_no_default | lambda_slash_with_default
35012 static void *
_tmp_182_rule(Parser * p)35013 _tmp_182_rule(Parser *p)
35014 {
35015 if (p->level++ == MAXSTACK) {
35016 p->error_indicator = 1;
35017 PyErr_NoMemory();
35018 }
35019 if (p->error_indicator) {
35020 p->level--;
35021 return NULL;
35022 }
35023 void * _res = NULL;
35024 int _mark = p->mark;
35025 { // lambda_slash_no_default
35026 if (p->error_indicator) {
35027 p->level--;
35028 return NULL;
35029 }
35030 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default"));
35031 asdl_arg_seq* lambda_slash_no_default_var;
35032 if (
35033 (lambda_slash_no_default_var = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
35034 )
35035 {
35036 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default"));
35037 _res = lambda_slash_no_default_var;
35038 goto done;
35039 }
35040 p->mark = _mark;
35041 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
35042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default"));
35043 }
35044 { // lambda_slash_with_default
35045 if (p->error_indicator) {
35046 p->level--;
35047 return NULL;
35048 }
35049 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
35050 SlashWithDefault* lambda_slash_with_default_var;
35051 if (
35052 (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
35053 )
35054 {
35055 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
35056 _res = lambda_slash_with_default_var;
35057 goto done;
35058 }
35059 p->mark = _mark;
35060 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
35061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
35062 }
35063 _res = NULL;
35064 done:
35065 p->level--;
35066 return _res;
35067 }
35068
35069 // _loop0_183: lambda_param_maybe_default
35070 static asdl_seq *
_loop0_183_rule(Parser * p)35071 _loop0_183_rule(Parser *p)
35072 {
35073 if (p->level++ == MAXSTACK) {
35074 p->error_indicator = 1;
35075 PyErr_NoMemory();
35076 }
35077 if (p->error_indicator) {
35078 p->level--;
35079 return NULL;
35080 }
35081 void *_res = NULL;
35082 int _mark = p->mark;
35083 void **_children = PyMem_Malloc(sizeof(void *));
35084 if (!_children) {
35085 p->error_indicator = 1;
35086 PyErr_NoMemory();
35087 p->level--;
35088 return NULL;
35089 }
35090 Py_ssize_t _children_capacity = 1;
35091 Py_ssize_t _n = 0;
35092 { // lambda_param_maybe_default
35093 if (p->error_indicator) {
35094 p->level--;
35095 return NULL;
35096 }
35097 D(fprintf(stderr, "%*c> _loop0_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
35098 NameDefaultPair* lambda_param_maybe_default_var;
35099 while (
35100 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
35101 )
35102 {
35103 _res = lambda_param_maybe_default_var;
35104 if (_n == _children_capacity) {
35105 _children_capacity *= 2;
35106 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
35107 if (!_new_children) {
35108 PyMem_Free(_children);
35109 p->error_indicator = 1;
35110 PyErr_NoMemory();
35111 p->level--;
35112 return NULL;
35113 }
35114 _children = _new_children;
35115 }
35116 _children[_n++] = _res;
35117 _mark = p->mark;
35118 }
35119 p->mark = _mark;
35120 D(fprintf(stderr, "%*c%s _loop0_183[%d-%d]: %s failed!\n", p->level, ' ',
35121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
35122 }
35123 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
35124 if (!_seq) {
35125 PyMem_Free(_children);
35126 p->error_indicator = 1;
35127 PyErr_NoMemory();
35128 p->level--;
35129 return NULL;
35130 }
35131 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
35132 PyMem_Free(_children);
35133 p->level--;
35134 return _seq;
35135 }
35136
35137 // _tmp_184: ',' | lambda_param_no_default
35138 static void *
_tmp_184_rule(Parser * p)35139 _tmp_184_rule(Parser *p)
35140 {
35141 if (p->level++ == MAXSTACK) {
35142 p->error_indicator = 1;
35143 PyErr_NoMemory();
35144 }
35145 if (p->error_indicator) {
35146 p->level--;
35147 return NULL;
35148 }
35149 void * _res = NULL;
35150 int _mark = p->mark;
35151 { // ','
35152 if (p->error_indicator) {
35153 p->level--;
35154 return NULL;
35155 }
35156 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
35157 Token * _literal;
35158 if (
35159 (_literal = _PyPegen_expect_token(p, 12)) // token=','
35160 )
35161 {
35162 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
35163 _res = _literal;
35164 goto done;
35165 }
35166 p->mark = _mark;
35167 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
35168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
35169 }
35170 { // lambda_param_no_default
35171 if (p->error_indicator) {
35172 p->level--;
35173 return NULL;
35174 }
35175 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
35176 arg_ty lambda_param_no_default_var;
35177 if (
35178 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
35179 )
35180 {
35181 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
35182 _res = lambda_param_no_default_var;
35183 goto done;
35184 }
35185 p->mark = _mark;
35186 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
35187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
35188 }
35189 _res = NULL;
35190 done:
35191 p->level--;
35192 return _res;
35193 }
35194
35195 // _loop0_185: lambda_param_maybe_default
35196 static asdl_seq *
_loop0_185_rule(Parser * p)35197 _loop0_185_rule(Parser *p)
35198 {
35199 if (p->level++ == MAXSTACK) {
35200 p->error_indicator = 1;
35201 PyErr_NoMemory();
35202 }
35203 if (p->error_indicator) {
35204 p->level--;
35205 return NULL;
35206 }
35207 void *_res = NULL;
35208 int _mark = p->mark;
35209 void **_children = PyMem_Malloc(sizeof(void *));
35210 if (!_children) {
35211 p->error_indicator = 1;
35212 PyErr_NoMemory();
35213 p->level--;
35214 return NULL;
35215 }
35216 Py_ssize_t _children_capacity = 1;
35217 Py_ssize_t _n = 0;
35218 { // lambda_param_maybe_default
35219 if (p->error_indicator) {
35220 p->level--;
35221 return NULL;
35222 }
35223 D(fprintf(stderr, "%*c> _loop0_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
35224 NameDefaultPair* lambda_param_maybe_default_var;
35225 while (
35226 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
35227 )
35228 {
35229 _res = lambda_param_maybe_default_var;
35230 if (_n == _children_capacity) {
35231 _children_capacity *= 2;
35232 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
35233 if (!_new_children) {
35234 PyMem_Free(_children);
35235 p->error_indicator = 1;
35236 PyErr_NoMemory();
35237 p->level--;
35238 return NULL;
35239 }
35240 _children = _new_children;
35241 }
35242 _children[_n++] = _res;
35243 _mark = p->mark;
35244 }
35245 p->mark = _mark;
35246 D(fprintf(stderr, "%*c%s _loop0_185[%d-%d]: %s failed!\n", p->level, ' ',
35247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
35248 }
35249 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
35250 if (!_seq) {
35251 PyMem_Free(_children);
35252 p->error_indicator = 1;
35253 PyErr_NoMemory();
35254 p->level--;
35255 return NULL;
35256 }
35257 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
35258 PyMem_Free(_children);
35259 p->level--;
35260 return _seq;
35261 }
35262
35263 // _loop1_186: lambda_param_maybe_default
35264 static asdl_seq *
_loop1_186_rule(Parser * p)35265 _loop1_186_rule(Parser *p)
35266 {
35267 if (p->level++ == MAXSTACK) {
35268 p->error_indicator = 1;
35269 PyErr_NoMemory();
35270 }
35271 if (p->error_indicator) {
35272 p->level--;
35273 return NULL;
35274 }
35275 void *_res = NULL;
35276 int _mark = p->mark;
35277 void **_children = PyMem_Malloc(sizeof(void *));
35278 if (!_children) {
35279 p->error_indicator = 1;
35280 PyErr_NoMemory();
35281 p->level--;
35282 return NULL;
35283 }
35284 Py_ssize_t _children_capacity = 1;
35285 Py_ssize_t _n = 0;
35286 { // lambda_param_maybe_default
35287 if (p->error_indicator) {
35288 p->level--;
35289 return NULL;
35290 }
35291 D(fprintf(stderr, "%*c> _loop1_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
35292 NameDefaultPair* lambda_param_maybe_default_var;
35293 while (
35294 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
35295 )
35296 {
35297 _res = lambda_param_maybe_default_var;
35298 if (_n == _children_capacity) {
35299 _children_capacity *= 2;
35300 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
35301 if (!_new_children) {
35302 PyMem_Free(_children);
35303 p->error_indicator = 1;
35304 PyErr_NoMemory();
35305 p->level--;
35306 return NULL;
35307 }
35308 _children = _new_children;
35309 }
35310 _children[_n++] = _res;
35311 _mark = p->mark;
35312 }
35313 p->mark = _mark;
35314 D(fprintf(stderr, "%*c%s _loop1_186[%d-%d]: %s failed!\n", p->level, ' ',
35315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
35316 }
35317 if (_n == 0 || p->error_indicator) {
35318 PyMem_Free(_children);
35319 p->level--;
35320 return NULL;
35321 }
35322 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
35323 if (!_seq) {
35324 PyMem_Free(_children);
35325 p->error_indicator = 1;
35326 PyErr_NoMemory();
35327 p->level--;
35328 return NULL;
35329 }
35330 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
35331 PyMem_Free(_children);
35332 p->level--;
35333 return _seq;
35334 }
35335
35336 // _loop1_187: lambda_param_with_default
35337 static asdl_seq *
_loop1_187_rule(Parser * p)35338 _loop1_187_rule(Parser *p)
35339 {
35340 if (p->level++ == MAXSTACK) {
35341 p->error_indicator = 1;
35342 PyErr_NoMemory();
35343 }
35344 if (p->error_indicator) {
35345 p->level--;
35346 return NULL;
35347 }
35348 void *_res = NULL;
35349 int _mark = p->mark;
35350 void **_children = PyMem_Malloc(sizeof(void *));
35351 if (!_children) {
35352 p->error_indicator = 1;
35353 PyErr_NoMemory();
35354 p->level--;
35355 return NULL;
35356 }
35357 Py_ssize_t _children_capacity = 1;
35358 Py_ssize_t _n = 0;
35359 { // lambda_param_with_default
35360 if (p->error_indicator) {
35361 p->level--;
35362 return NULL;
35363 }
35364 D(fprintf(stderr, "%*c> _loop1_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
35365 NameDefaultPair* lambda_param_with_default_var;
35366 while (
35367 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
35368 )
35369 {
35370 _res = lambda_param_with_default_var;
35371 if (_n == _children_capacity) {
35372 _children_capacity *= 2;
35373 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
35374 if (!_new_children) {
35375 PyMem_Free(_children);
35376 p->error_indicator = 1;
35377 PyErr_NoMemory();
35378 p->level--;
35379 return NULL;
35380 }
35381 _children = _new_children;
35382 }
35383 _children[_n++] = _res;
35384 _mark = p->mark;
35385 }
35386 p->mark = _mark;
35387 D(fprintf(stderr, "%*c%s _loop1_187[%d-%d]: %s failed!\n", p->level, ' ',
35388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
35389 }
35390 if (_n == 0 || p->error_indicator) {
35391 PyMem_Free(_children);
35392 p->level--;
35393 return NULL;
35394 }
35395 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
35396 if (!_seq) {
35397 PyMem_Free(_children);
35398 p->error_indicator = 1;
35399 PyErr_NoMemory();
35400 p->level--;
35401 return NULL;
35402 }
35403 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
35404 PyMem_Free(_children);
35405 p->level--;
35406 return _seq;
35407 }
35408
35409 // _tmp_188: ':' | ',' (':' | '**')
35410 static void *
_tmp_188_rule(Parser * p)35411 _tmp_188_rule(Parser *p)
35412 {
35413 if (p->level++ == MAXSTACK) {
35414 p->error_indicator = 1;
35415 PyErr_NoMemory();
35416 }
35417 if (p->error_indicator) {
35418 p->level--;
35419 return NULL;
35420 }
35421 void * _res = NULL;
35422 int _mark = p->mark;
35423 { // ':'
35424 if (p->error_indicator) {
35425 p->level--;
35426 return NULL;
35427 }
35428 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
35429 Token * _literal;
35430 if (
35431 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
35432 )
35433 {
35434 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
35435 _res = _literal;
35436 goto done;
35437 }
35438 p->mark = _mark;
35439 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
35440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
35441 }
35442 { // ',' (':' | '**')
35443 if (p->error_indicator) {
35444 p->level--;
35445 return NULL;
35446 }
35447 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
35448 Token * _literal;
35449 void *_tmp_239_var;
35450 if (
35451 (_literal = _PyPegen_expect_token(p, 12)) // token=','
35452 &&
35453 (_tmp_239_var = _tmp_239_rule(p)) // ':' | '**'
35454 )
35455 {
35456 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
35457 _res = _PyPegen_dummy_name(p, _literal, _tmp_239_var);
35458 goto done;
35459 }
35460 p->mark = _mark;
35461 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
35462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
35463 }
35464 _res = NULL;
35465 done:
35466 p->level--;
35467 return _res;
35468 }
35469
35470 // _tmp_189: lambda_param_no_default | ','
35471 static void *
_tmp_189_rule(Parser * p)35472 _tmp_189_rule(Parser *p)
35473 {
35474 if (p->level++ == MAXSTACK) {
35475 p->error_indicator = 1;
35476 PyErr_NoMemory();
35477 }
35478 if (p->error_indicator) {
35479 p->level--;
35480 return NULL;
35481 }
35482 void * _res = NULL;
35483 int _mark = p->mark;
35484 { // lambda_param_no_default
35485 if (p->error_indicator) {
35486 p->level--;
35487 return NULL;
35488 }
35489 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
35490 arg_ty lambda_param_no_default_var;
35491 if (
35492 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
35493 )
35494 {
35495 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
35496 _res = lambda_param_no_default_var;
35497 goto done;
35498 }
35499 p->mark = _mark;
35500 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
35501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
35502 }
35503 { // ','
35504 if (p->error_indicator) {
35505 p->level--;
35506 return NULL;
35507 }
35508 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
35509 Token * _literal;
35510 if (
35511 (_literal = _PyPegen_expect_token(p, 12)) // token=','
35512 )
35513 {
35514 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
35515 _res = _literal;
35516 goto done;
35517 }
35518 p->mark = _mark;
35519 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
35520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
35521 }
35522 _res = NULL;
35523 done:
35524 p->level--;
35525 return _res;
35526 }
35527
35528 // _loop0_190: lambda_param_maybe_default
35529 static asdl_seq *
_loop0_190_rule(Parser * p)35530 _loop0_190_rule(Parser *p)
35531 {
35532 if (p->level++ == MAXSTACK) {
35533 p->error_indicator = 1;
35534 PyErr_NoMemory();
35535 }
35536 if (p->error_indicator) {
35537 p->level--;
35538 return NULL;
35539 }
35540 void *_res = NULL;
35541 int _mark = p->mark;
35542 void **_children = PyMem_Malloc(sizeof(void *));
35543 if (!_children) {
35544 p->error_indicator = 1;
35545 PyErr_NoMemory();
35546 p->level--;
35547 return NULL;
35548 }
35549 Py_ssize_t _children_capacity = 1;
35550 Py_ssize_t _n = 0;
35551 { // lambda_param_maybe_default
35552 if (p->error_indicator) {
35553 p->level--;
35554 return NULL;
35555 }
35556 D(fprintf(stderr, "%*c> _loop0_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
35557 NameDefaultPair* lambda_param_maybe_default_var;
35558 while (
35559 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
35560 )
35561 {
35562 _res = lambda_param_maybe_default_var;
35563 if (_n == _children_capacity) {
35564 _children_capacity *= 2;
35565 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
35566 if (!_new_children) {
35567 PyMem_Free(_children);
35568 p->error_indicator = 1;
35569 PyErr_NoMemory();
35570 p->level--;
35571 return NULL;
35572 }
35573 _children = _new_children;
35574 }
35575 _children[_n++] = _res;
35576 _mark = p->mark;
35577 }
35578 p->mark = _mark;
35579 D(fprintf(stderr, "%*c%s _loop0_190[%d-%d]: %s failed!\n", p->level, ' ',
35580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
35581 }
35582 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
35583 if (!_seq) {
35584 PyMem_Free(_children);
35585 p->error_indicator = 1;
35586 PyErr_NoMemory();
35587 p->level--;
35588 return NULL;
35589 }
35590 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
35591 PyMem_Free(_children);
35592 p->level--;
35593 return _seq;
35594 }
35595
35596 // _tmp_191: lambda_param_no_default | ','
35597 static void *
_tmp_191_rule(Parser * p)35598 _tmp_191_rule(Parser *p)
35599 {
35600 if (p->level++ == MAXSTACK) {
35601 p->error_indicator = 1;
35602 PyErr_NoMemory();
35603 }
35604 if (p->error_indicator) {
35605 p->level--;
35606 return NULL;
35607 }
35608 void * _res = NULL;
35609 int _mark = p->mark;
35610 { // lambda_param_no_default
35611 if (p->error_indicator) {
35612 p->level--;
35613 return NULL;
35614 }
35615 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
35616 arg_ty lambda_param_no_default_var;
35617 if (
35618 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
35619 )
35620 {
35621 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
35622 _res = lambda_param_no_default_var;
35623 goto done;
35624 }
35625 p->mark = _mark;
35626 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
35627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
35628 }
35629 { // ','
35630 if (p->error_indicator) {
35631 p->level--;
35632 return NULL;
35633 }
35634 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
35635 Token * _literal;
35636 if (
35637 (_literal = _PyPegen_expect_token(p, 12)) // token=','
35638 )
35639 {
35640 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
35641 _res = _literal;
35642 goto done;
35643 }
35644 p->mark = _mark;
35645 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
35646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
35647 }
35648 _res = NULL;
35649 done:
35650 p->level--;
35651 return _res;
35652 }
35653
35654 // _tmp_192: '*' | '**' | '/'
35655 static void *
_tmp_192_rule(Parser * p)35656 _tmp_192_rule(Parser *p)
35657 {
35658 if (p->level++ == MAXSTACK) {
35659 p->error_indicator = 1;
35660 PyErr_NoMemory();
35661 }
35662 if (p->error_indicator) {
35663 p->level--;
35664 return NULL;
35665 }
35666 void * _res = NULL;
35667 int _mark = p->mark;
35668 { // '*'
35669 if (p->error_indicator) {
35670 p->level--;
35671 return NULL;
35672 }
35673 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
35674 Token * _literal;
35675 if (
35676 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
35677 )
35678 {
35679 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
35680 _res = _literal;
35681 goto done;
35682 }
35683 p->mark = _mark;
35684 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
35685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
35686 }
35687 { // '**'
35688 if (p->error_indicator) {
35689 p->level--;
35690 return NULL;
35691 }
35692 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
35693 Token * _literal;
35694 if (
35695 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
35696 )
35697 {
35698 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
35699 _res = _literal;
35700 goto done;
35701 }
35702 p->mark = _mark;
35703 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
35704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
35705 }
35706 { // '/'
35707 if (p->error_indicator) {
35708 p->level--;
35709 return NULL;
35710 }
35711 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'"));
35712 Token * _literal;
35713 if (
35714 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
35715 )
35716 {
35717 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'"));
35718 _res = _literal;
35719 goto done;
35720 }
35721 p->mark = _mark;
35722 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
35723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'"));
35724 }
35725 _res = NULL;
35726 done:
35727 p->level--;
35728 return _res;
35729 }
35730
35731 // _tmp_193: ',' | ')' | ':'
35732 static void *
_tmp_193_rule(Parser * p)35733 _tmp_193_rule(Parser *p)
35734 {
35735 if (p->level++ == MAXSTACK) {
35736 p->error_indicator = 1;
35737 PyErr_NoMemory();
35738 }
35739 if (p->error_indicator) {
35740 p->level--;
35741 return NULL;
35742 }
35743 void * _res = NULL;
35744 int _mark = p->mark;
35745 { // ','
35746 if (p->error_indicator) {
35747 p->level--;
35748 return NULL;
35749 }
35750 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
35751 Token * _literal;
35752 if (
35753 (_literal = _PyPegen_expect_token(p, 12)) // token=','
35754 )
35755 {
35756 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
35757 _res = _literal;
35758 goto done;
35759 }
35760 p->mark = _mark;
35761 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
35762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
35763 }
35764 { // ')'
35765 if (p->error_indicator) {
35766 p->level--;
35767 return NULL;
35768 }
35769 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
35770 Token * _literal;
35771 if (
35772 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
35773 )
35774 {
35775 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
35776 _res = _literal;
35777 goto done;
35778 }
35779 p->mark = _mark;
35780 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
35781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
35782 }
35783 { // ':'
35784 if (p->error_indicator) {
35785 p->level--;
35786 return NULL;
35787 }
35788 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
35789 Token * _literal;
35790 if (
35791 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
35792 )
35793 {
35794 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
35795 _res = _literal;
35796 goto done;
35797 }
35798 p->mark = _mark;
35799 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
35800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
35801 }
35802 _res = NULL;
35803 done:
35804 p->level--;
35805 return _res;
35806 }
35807
35808 // _loop0_195: ',' (expression ['as' star_target])
35809 static asdl_seq *
_loop0_195_rule(Parser * p)35810 _loop0_195_rule(Parser *p)
35811 {
35812 if (p->level++ == MAXSTACK) {
35813 p->error_indicator = 1;
35814 PyErr_NoMemory();
35815 }
35816 if (p->error_indicator) {
35817 p->level--;
35818 return NULL;
35819 }
35820 void *_res = NULL;
35821 int _mark = p->mark;
35822 void **_children = PyMem_Malloc(sizeof(void *));
35823 if (!_children) {
35824 p->error_indicator = 1;
35825 PyErr_NoMemory();
35826 p->level--;
35827 return NULL;
35828 }
35829 Py_ssize_t _children_capacity = 1;
35830 Py_ssize_t _n = 0;
35831 { // ',' (expression ['as' star_target])
35832 if (p->error_indicator) {
35833 p->level--;
35834 return NULL;
35835 }
35836 D(fprintf(stderr, "%*c> _loop0_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
35837 Token * _literal;
35838 void *elem;
35839 while (
35840 (_literal = _PyPegen_expect_token(p, 12)) // token=','
35841 &&
35842 (elem = _tmp_240_rule(p)) // expression ['as' star_target]
35843 )
35844 {
35845 _res = elem;
35846 if (_res == NULL && PyErr_Occurred()) {
35847 p->error_indicator = 1;
35848 PyMem_Free(_children);
35849 p->level--;
35850 return NULL;
35851 }
35852 if (_n == _children_capacity) {
35853 _children_capacity *= 2;
35854 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
35855 if (!_new_children) {
35856 PyMem_Free(_children);
35857 p->error_indicator = 1;
35858 PyErr_NoMemory();
35859 p->level--;
35860 return NULL;
35861 }
35862 _children = _new_children;
35863 }
35864 _children[_n++] = _res;
35865 _mark = p->mark;
35866 }
35867 p->mark = _mark;
35868 D(fprintf(stderr, "%*c%s _loop0_195[%d-%d]: %s failed!\n", p->level, ' ',
35869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
35870 }
35871 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
35872 if (!_seq) {
35873 PyMem_Free(_children);
35874 p->error_indicator = 1;
35875 PyErr_NoMemory();
35876 p->level--;
35877 return NULL;
35878 }
35879 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
35880 PyMem_Free(_children);
35881 p->level--;
35882 return _seq;
35883 }
35884
35885 // _gather_194: (expression ['as' star_target]) _loop0_195
35886 static asdl_seq *
_gather_194_rule(Parser * p)35887 _gather_194_rule(Parser *p)
35888 {
35889 if (p->level++ == MAXSTACK) {
35890 p->error_indicator = 1;
35891 PyErr_NoMemory();
35892 }
35893 if (p->error_indicator) {
35894 p->level--;
35895 return NULL;
35896 }
35897 asdl_seq * _res = NULL;
35898 int _mark = p->mark;
35899 { // (expression ['as' star_target]) _loop0_195
35900 if (p->error_indicator) {
35901 p->level--;
35902 return NULL;
35903 }
35904 D(fprintf(stderr, "%*c> _gather_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_195"));
35905 void *elem;
35906 asdl_seq * seq;
35907 if (
35908 (elem = _tmp_240_rule(p)) // expression ['as' star_target]
35909 &&
35910 (seq = _loop0_195_rule(p)) // _loop0_195
35911 )
35912 {
35913 D(fprintf(stderr, "%*c+ _gather_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_195"));
35914 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
35915 goto done;
35916 }
35917 p->mark = _mark;
35918 D(fprintf(stderr, "%*c%s _gather_194[%d-%d]: %s failed!\n", p->level, ' ',
35919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_195"));
35920 }
35921 _res = NULL;
35922 done:
35923 p->level--;
35924 return _res;
35925 }
35926
35927 // _loop0_197: ',' (expressions ['as' star_target])
35928 static asdl_seq *
_loop0_197_rule(Parser * p)35929 _loop0_197_rule(Parser *p)
35930 {
35931 if (p->level++ == MAXSTACK) {
35932 p->error_indicator = 1;
35933 PyErr_NoMemory();
35934 }
35935 if (p->error_indicator) {
35936 p->level--;
35937 return NULL;
35938 }
35939 void *_res = NULL;
35940 int _mark = p->mark;
35941 void **_children = PyMem_Malloc(sizeof(void *));
35942 if (!_children) {
35943 p->error_indicator = 1;
35944 PyErr_NoMemory();
35945 p->level--;
35946 return NULL;
35947 }
35948 Py_ssize_t _children_capacity = 1;
35949 Py_ssize_t _n = 0;
35950 { // ',' (expressions ['as' star_target])
35951 if (p->error_indicator) {
35952 p->level--;
35953 return NULL;
35954 }
35955 D(fprintf(stderr, "%*c> _loop0_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
35956 Token * _literal;
35957 void *elem;
35958 while (
35959 (_literal = _PyPegen_expect_token(p, 12)) // token=','
35960 &&
35961 (elem = _tmp_241_rule(p)) // expressions ['as' star_target]
35962 )
35963 {
35964 _res = elem;
35965 if (_res == NULL && PyErr_Occurred()) {
35966 p->error_indicator = 1;
35967 PyMem_Free(_children);
35968 p->level--;
35969 return NULL;
35970 }
35971 if (_n == _children_capacity) {
35972 _children_capacity *= 2;
35973 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
35974 if (!_new_children) {
35975 PyMem_Free(_children);
35976 p->error_indicator = 1;
35977 PyErr_NoMemory();
35978 p->level--;
35979 return NULL;
35980 }
35981 _children = _new_children;
35982 }
35983 _children[_n++] = _res;
35984 _mark = p->mark;
35985 }
35986 p->mark = _mark;
35987 D(fprintf(stderr, "%*c%s _loop0_197[%d-%d]: %s failed!\n", p->level, ' ',
35988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
35989 }
35990 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
35991 if (!_seq) {
35992 PyMem_Free(_children);
35993 p->error_indicator = 1;
35994 PyErr_NoMemory();
35995 p->level--;
35996 return NULL;
35997 }
35998 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
35999 PyMem_Free(_children);
36000 p->level--;
36001 return _seq;
36002 }
36003
36004 // _gather_196: (expressions ['as' star_target]) _loop0_197
36005 static asdl_seq *
_gather_196_rule(Parser * p)36006 _gather_196_rule(Parser *p)
36007 {
36008 if (p->level++ == MAXSTACK) {
36009 p->error_indicator = 1;
36010 PyErr_NoMemory();
36011 }
36012 if (p->error_indicator) {
36013 p->level--;
36014 return NULL;
36015 }
36016 asdl_seq * _res = NULL;
36017 int _mark = p->mark;
36018 { // (expressions ['as' star_target]) _loop0_197
36019 if (p->error_indicator) {
36020 p->level--;
36021 return NULL;
36022 }
36023 D(fprintf(stderr, "%*c> _gather_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_197"));
36024 void *elem;
36025 asdl_seq * seq;
36026 if (
36027 (elem = _tmp_241_rule(p)) // expressions ['as' star_target]
36028 &&
36029 (seq = _loop0_197_rule(p)) // _loop0_197
36030 )
36031 {
36032 D(fprintf(stderr, "%*c+ _gather_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_197"));
36033 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
36034 goto done;
36035 }
36036 p->mark = _mark;
36037 D(fprintf(stderr, "%*c%s _gather_196[%d-%d]: %s failed!\n", p->level, ' ',
36038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_197"));
36039 }
36040 _res = NULL;
36041 done:
36042 p->level--;
36043 return _res;
36044 }
36045
36046 // _loop0_199: ',' (expression ['as' star_target])
36047 static asdl_seq *
_loop0_199_rule(Parser * p)36048 _loop0_199_rule(Parser *p)
36049 {
36050 if (p->level++ == MAXSTACK) {
36051 p->error_indicator = 1;
36052 PyErr_NoMemory();
36053 }
36054 if (p->error_indicator) {
36055 p->level--;
36056 return NULL;
36057 }
36058 void *_res = NULL;
36059 int _mark = p->mark;
36060 void **_children = PyMem_Malloc(sizeof(void *));
36061 if (!_children) {
36062 p->error_indicator = 1;
36063 PyErr_NoMemory();
36064 p->level--;
36065 return NULL;
36066 }
36067 Py_ssize_t _children_capacity = 1;
36068 Py_ssize_t _n = 0;
36069 { // ',' (expression ['as' star_target])
36070 if (p->error_indicator) {
36071 p->level--;
36072 return NULL;
36073 }
36074 D(fprintf(stderr, "%*c> _loop0_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
36075 Token * _literal;
36076 void *elem;
36077 while (
36078 (_literal = _PyPegen_expect_token(p, 12)) // token=','
36079 &&
36080 (elem = _tmp_242_rule(p)) // expression ['as' star_target]
36081 )
36082 {
36083 _res = elem;
36084 if (_res == NULL && PyErr_Occurred()) {
36085 p->error_indicator = 1;
36086 PyMem_Free(_children);
36087 p->level--;
36088 return NULL;
36089 }
36090 if (_n == _children_capacity) {
36091 _children_capacity *= 2;
36092 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
36093 if (!_new_children) {
36094 PyMem_Free(_children);
36095 p->error_indicator = 1;
36096 PyErr_NoMemory();
36097 p->level--;
36098 return NULL;
36099 }
36100 _children = _new_children;
36101 }
36102 _children[_n++] = _res;
36103 _mark = p->mark;
36104 }
36105 p->mark = _mark;
36106 D(fprintf(stderr, "%*c%s _loop0_199[%d-%d]: %s failed!\n", p->level, ' ',
36107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
36108 }
36109 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
36110 if (!_seq) {
36111 PyMem_Free(_children);
36112 p->error_indicator = 1;
36113 PyErr_NoMemory();
36114 p->level--;
36115 return NULL;
36116 }
36117 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
36118 PyMem_Free(_children);
36119 p->level--;
36120 return _seq;
36121 }
36122
36123 // _gather_198: (expression ['as' star_target]) _loop0_199
36124 static asdl_seq *
_gather_198_rule(Parser * p)36125 _gather_198_rule(Parser *p)
36126 {
36127 if (p->level++ == MAXSTACK) {
36128 p->error_indicator = 1;
36129 PyErr_NoMemory();
36130 }
36131 if (p->error_indicator) {
36132 p->level--;
36133 return NULL;
36134 }
36135 asdl_seq * _res = NULL;
36136 int _mark = p->mark;
36137 { // (expression ['as' star_target]) _loop0_199
36138 if (p->error_indicator) {
36139 p->level--;
36140 return NULL;
36141 }
36142 D(fprintf(stderr, "%*c> _gather_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_199"));
36143 void *elem;
36144 asdl_seq * seq;
36145 if (
36146 (elem = _tmp_242_rule(p)) // expression ['as' star_target]
36147 &&
36148 (seq = _loop0_199_rule(p)) // _loop0_199
36149 )
36150 {
36151 D(fprintf(stderr, "%*c+ _gather_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_199"));
36152 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
36153 goto done;
36154 }
36155 p->mark = _mark;
36156 D(fprintf(stderr, "%*c%s _gather_198[%d-%d]: %s failed!\n", p->level, ' ',
36157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_199"));
36158 }
36159 _res = NULL;
36160 done:
36161 p->level--;
36162 return _res;
36163 }
36164
36165 // _loop0_201: ',' (expressions ['as' star_target])
36166 static asdl_seq *
_loop0_201_rule(Parser * p)36167 _loop0_201_rule(Parser *p)
36168 {
36169 if (p->level++ == MAXSTACK) {
36170 p->error_indicator = 1;
36171 PyErr_NoMemory();
36172 }
36173 if (p->error_indicator) {
36174 p->level--;
36175 return NULL;
36176 }
36177 void *_res = NULL;
36178 int _mark = p->mark;
36179 void **_children = PyMem_Malloc(sizeof(void *));
36180 if (!_children) {
36181 p->error_indicator = 1;
36182 PyErr_NoMemory();
36183 p->level--;
36184 return NULL;
36185 }
36186 Py_ssize_t _children_capacity = 1;
36187 Py_ssize_t _n = 0;
36188 { // ',' (expressions ['as' star_target])
36189 if (p->error_indicator) {
36190 p->level--;
36191 return NULL;
36192 }
36193 D(fprintf(stderr, "%*c> _loop0_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
36194 Token * _literal;
36195 void *elem;
36196 while (
36197 (_literal = _PyPegen_expect_token(p, 12)) // token=','
36198 &&
36199 (elem = _tmp_243_rule(p)) // expressions ['as' star_target]
36200 )
36201 {
36202 _res = elem;
36203 if (_res == NULL && PyErr_Occurred()) {
36204 p->error_indicator = 1;
36205 PyMem_Free(_children);
36206 p->level--;
36207 return NULL;
36208 }
36209 if (_n == _children_capacity) {
36210 _children_capacity *= 2;
36211 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
36212 if (!_new_children) {
36213 PyMem_Free(_children);
36214 p->error_indicator = 1;
36215 PyErr_NoMemory();
36216 p->level--;
36217 return NULL;
36218 }
36219 _children = _new_children;
36220 }
36221 _children[_n++] = _res;
36222 _mark = p->mark;
36223 }
36224 p->mark = _mark;
36225 D(fprintf(stderr, "%*c%s _loop0_201[%d-%d]: %s failed!\n", p->level, ' ',
36226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
36227 }
36228 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
36229 if (!_seq) {
36230 PyMem_Free(_children);
36231 p->error_indicator = 1;
36232 PyErr_NoMemory();
36233 p->level--;
36234 return NULL;
36235 }
36236 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
36237 PyMem_Free(_children);
36238 p->level--;
36239 return _seq;
36240 }
36241
36242 // _gather_200: (expressions ['as' star_target]) _loop0_201
36243 static asdl_seq *
_gather_200_rule(Parser * p)36244 _gather_200_rule(Parser *p)
36245 {
36246 if (p->level++ == MAXSTACK) {
36247 p->error_indicator = 1;
36248 PyErr_NoMemory();
36249 }
36250 if (p->error_indicator) {
36251 p->level--;
36252 return NULL;
36253 }
36254 asdl_seq * _res = NULL;
36255 int _mark = p->mark;
36256 { // (expressions ['as' star_target]) _loop0_201
36257 if (p->error_indicator) {
36258 p->level--;
36259 return NULL;
36260 }
36261 D(fprintf(stderr, "%*c> _gather_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_201"));
36262 void *elem;
36263 asdl_seq * seq;
36264 if (
36265 (elem = _tmp_243_rule(p)) // expressions ['as' star_target]
36266 &&
36267 (seq = _loop0_201_rule(p)) // _loop0_201
36268 )
36269 {
36270 D(fprintf(stderr, "%*c+ _gather_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_201"));
36271 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
36272 goto done;
36273 }
36274 p->mark = _mark;
36275 D(fprintf(stderr, "%*c%s _gather_200[%d-%d]: %s failed!\n", p->level, ' ',
36276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_201"));
36277 }
36278 _res = NULL;
36279 done:
36280 p->level--;
36281 return _res;
36282 }
36283
36284 // _tmp_202: 'except' | 'finally'
36285 static void *
_tmp_202_rule(Parser * p)36286 _tmp_202_rule(Parser *p)
36287 {
36288 if (p->level++ == MAXSTACK) {
36289 p->error_indicator = 1;
36290 PyErr_NoMemory();
36291 }
36292 if (p->error_indicator) {
36293 p->level--;
36294 return NULL;
36295 }
36296 void * _res = NULL;
36297 int _mark = p->mark;
36298 { // 'except'
36299 if (p->error_indicator) {
36300 p->level--;
36301 return NULL;
36302 }
36303 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
36304 Token * _keyword;
36305 if (
36306 (_keyword = _PyPegen_expect_token(p, 634)) // token='except'
36307 )
36308 {
36309 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
36310 _res = _keyword;
36311 goto done;
36312 }
36313 p->mark = _mark;
36314 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
36315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'"));
36316 }
36317 { // 'finally'
36318 if (p->error_indicator) {
36319 p->level--;
36320 return NULL;
36321 }
36322 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
36323 Token * _keyword;
36324 if (
36325 (_keyword = _PyPegen_expect_token(p, 630)) // token='finally'
36326 )
36327 {
36328 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
36329 _res = _keyword;
36330 goto done;
36331 }
36332 p->mark = _mark;
36333 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
36334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'"));
36335 }
36336 _res = NULL;
36337 done:
36338 p->level--;
36339 return _res;
36340 }
36341
36342 // _loop0_203: block
36343 static asdl_seq *
_loop0_203_rule(Parser * p)36344 _loop0_203_rule(Parser *p)
36345 {
36346 if (p->level++ == MAXSTACK) {
36347 p->error_indicator = 1;
36348 PyErr_NoMemory();
36349 }
36350 if (p->error_indicator) {
36351 p->level--;
36352 return NULL;
36353 }
36354 void *_res = NULL;
36355 int _mark = p->mark;
36356 void **_children = PyMem_Malloc(sizeof(void *));
36357 if (!_children) {
36358 p->error_indicator = 1;
36359 PyErr_NoMemory();
36360 p->level--;
36361 return NULL;
36362 }
36363 Py_ssize_t _children_capacity = 1;
36364 Py_ssize_t _n = 0;
36365 { // block
36366 if (p->error_indicator) {
36367 p->level--;
36368 return NULL;
36369 }
36370 D(fprintf(stderr, "%*c> _loop0_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block"));
36371 asdl_stmt_seq* block_var;
36372 while (
36373 (block_var = block_rule(p)) // block
36374 )
36375 {
36376 _res = block_var;
36377 if (_n == _children_capacity) {
36378 _children_capacity *= 2;
36379 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
36380 if (!_new_children) {
36381 PyMem_Free(_children);
36382 p->error_indicator = 1;
36383 PyErr_NoMemory();
36384 p->level--;
36385 return NULL;
36386 }
36387 _children = _new_children;
36388 }
36389 _children[_n++] = _res;
36390 _mark = p->mark;
36391 }
36392 p->mark = _mark;
36393 D(fprintf(stderr, "%*c%s _loop0_203[%d-%d]: %s failed!\n", p->level, ' ',
36394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "block"));
36395 }
36396 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
36397 if (!_seq) {
36398 PyMem_Free(_children);
36399 p->error_indicator = 1;
36400 PyErr_NoMemory();
36401 p->level--;
36402 return NULL;
36403 }
36404 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
36405 PyMem_Free(_children);
36406 p->level--;
36407 return _seq;
36408 }
36409
36410 // _loop1_204: except_block
36411 static asdl_seq *
_loop1_204_rule(Parser * p)36412 _loop1_204_rule(Parser *p)
36413 {
36414 if (p->level++ == MAXSTACK) {
36415 p->error_indicator = 1;
36416 PyErr_NoMemory();
36417 }
36418 if (p->error_indicator) {
36419 p->level--;
36420 return NULL;
36421 }
36422 void *_res = NULL;
36423 int _mark = p->mark;
36424 void **_children = PyMem_Malloc(sizeof(void *));
36425 if (!_children) {
36426 p->error_indicator = 1;
36427 PyErr_NoMemory();
36428 p->level--;
36429 return NULL;
36430 }
36431 Py_ssize_t _children_capacity = 1;
36432 Py_ssize_t _n = 0;
36433 { // except_block
36434 if (p->error_indicator) {
36435 p->level--;
36436 return NULL;
36437 }
36438 D(fprintf(stderr, "%*c> _loop1_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
36439 excepthandler_ty except_block_var;
36440 while (
36441 (except_block_var = except_block_rule(p)) // except_block
36442 )
36443 {
36444 _res = except_block_var;
36445 if (_n == _children_capacity) {
36446 _children_capacity *= 2;
36447 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
36448 if (!_new_children) {
36449 PyMem_Free(_children);
36450 p->error_indicator = 1;
36451 PyErr_NoMemory();
36452 p->level--;
36453 return NULL;
36454 }
36455 _children = _new_children;
36456 }
36457 _children[_n++] = _res;
36458 _mark = p->mark;
36459 }
36460 p->mark = _mark;
36461 D(fprintf(stderr, "%*c%s _loop1_204[%d-%d]: %s failed!\n", p->level, ' ',
36462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
36463 }
36464 if (_n == 0 || p->error_indicator) {
36465 PyMem_Free(_children);
36466 p->level--;
36467 return NULL;
36468 }
36469 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
36470 if (!_seq) {
36471 PyMem_Free(_children);
36472 p->error_indicator = 1;
36473 PyErr_NoMemory();
36474 p->level--;
36475 return NULL;
36476 }
36477 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
36478 PyMem_Free(_children);
36479 p->level--;
36480 return _seq;
36481 }
36482
36483 // _tmp_205: 'as' NAME
36484 static void *
_tmp_205_rule(Parser * p)36485 _tmp_205_rule(Parser *p)
36486 {
36487 if (p->level++ == MAXSTACK) {
36488 p->error_indicator = 1;
36489 PyErr_NoMemory();
36490 }
36491 if (p->error_indicator) {
36492 p->level--;
36493 return NULL;
36494 }
36495 void * _res = NULL;
36496 int _mark = p->mark;
36497 { // 'as' NAME
36498 if (p->error_indicator) {
36499 p->level--;
36500 return NULL;
36501 }
36502 D(fprintf(stderr, "%*c> _tmp_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
36503 Token * _keyword;
36504 expr_ty name_var;
36505 if (
36506 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
36507 &&
36508 (name_var = _PyPegen_name_token(p)) // NAME
36509 )
36510 {
36511 D(fprintf(stderr, "%*c+ _tmp_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
36512 _res = _PyPegen_dummy_name(p, _keyword, name_var);
36513 goto done;
36514 }
36515 p->mark = _mark;
36516 D(fprintf(stderr, "%*c%s _tmp_205[%d-%d]: %s failed!\n", p->level, ' ',
36517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
36518 }
36519 _res = NULL;
36520 done:
36521 p->level--;
36522 return _res;
36523 }
36524
36525 // _loop0_206: block
36526 static asdl_seq *
_loop0_206_rule(Parser * p)36527 _loop0_206_rule(Parser *p)
36528 {
36529 if (p->level++ == MAXSTACK) {
36530 p->error_indicator = 1;
36531 PyErr_NoMemory();
36532 }
36533 if (p->error_indicator) {
36534 p->level--;
36535 return NULL;
36536 }
36537 void *_res = NULL;
36538 int _mark = p->mark;
36539 void **_children = PyMem_Malloc(sizeof(void *));
36540 if (!_children) {
36541 p->error_indicator = 1;
36542 PyErr_NoMemory();
36543 p->level--;
36544 return NULL;
36545 }
36546 Py_ssize_t _children_capacity = 1;
36547 Py_ssize_t _n = 0;
36548 { // block
36549 if (p->error_indicator) {
36550 p->level--;
36551 return NULL;
36552 }
36553 D(fprintf(stderr, "%*c> _loop0_206[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block"));
36554 asdl_stmt_seq* block_var;
36555 while (
36556 (block_var = block_rule(p)) // block
36557 )
36558 {
36559 _res = block_var;
36560 if (_n == _children_capacity) {
36561 _children_capacity *= 2;
36562 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
36563 if (!_new_children) {
36564 PyMem_Free(_children);
36565 p->error_indicator = 1;
36566 PyErr_NoMemory();
36567 p->level--;
36568 return NULL;
36569 }
36570 _children = _new_children;
36571 }
36572 _children[_n++] = _res;
36573 _mark = p->mark;
36574 }
36575 p->mark = _mark;
36576 D(fprintf(stderr, "%*c%s _loop0_206[%d-%d]: %s failed!\n", p->level, ' ',
36577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "block"));
36578 }
36579 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
36580 if (!_seq) {
36581 PyMem_Free(_children);
36582 p->error_indicator = 1;
36583 PyErr_NoMemory();
36584 p->level--;
36585 return NULL;
36586 }
36587 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
36588 PyMem_Free(_children);
36589 p->level--;
36590 return _seq;
36591 }
36592
36593 // _loop1_207: except_star_block
36594 static asdl_seq *
_loop1_207_rule(Parser * p)36595 _loop1_207_rule(Parser *p)
36596 {
36597 if (p->level++ == MAXSTACK) {
36598 p->error_indicator = 1;
36599 PyErr_NoMemory();
36600 }
36601 if (p->error_indicator) {
36602 p->level--;
36603 return NULL;
36604 }
36605 void *_res = NULL;
36606 int _mark = p->mark;
36607 void **_children = PyMem_Malloc(sizeof(void *));
36608 if (!_children) {
36609 p->error_indicator = 1;
36610 PyErr_NoMemory();
36611 p->level--;
36612 return NULL;
36613 }
36614 Py_ssize_t _children_capacity = 1;
36615 Py_ssize_t _n = 0;
36616 { // except_star_block
36617 if (p->error_indicator) {
36618 p->level--;
36619 return NULL;
36620 }
36621 D(fprintf(stderr, "%*c> _loop1_207[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block"));
36622 excepthandler_ty except_star_block_var;
36623 while (
36624 (except_star_block_var = except_star_block_rule(p)) // except_star_block
36625 )
36626 {
36627 _res = except_star_block_var;
36628 if (_n == _children_capacity) {
36629 _children_capacity *= 2;
36630 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
36631 if (!_new_children) {
36632 PyMem_Free(_children);
36633 p->error_indicator = 1;
36634 PyErr_NoMemory();
36635 p->level--;
36636 return NULL;
36637 }
36638 _children = _new_children;
36639 }
36640 _children[_n++] = _res;
36641 _mark = p->mark;
36642 }
36643 p->mark = _mark;
36644 D(fprintf(stderr, "%*c%s _loop1_207[%d-%d]: %s failed!\n", p->level, ' ',
36645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block"));
36646 }
36647 if (_n == 0 || p->error_indicator) {
36648 PyMem_Free(_children);
36649 p->level--;
36650 return NULL;
36651 }
36652 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
36653 if (!_seq) {
36654 PyMem_Free(_children);
36655 p->error_indicator = 1;
36656 PyErr_NoMemory();
36657 p->level--;
36658 return NULL;
36659 }
36660 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
36661 PyMem_Free(_children);
36662 p->level--;
36663 return _seq;
36664 }
36665
36666 // _tmp_208: expression ['as' NAME]
36667 static void *
_tmp_208_rule(Parser * p)36668 _tmp_208_rule(Parser *p)
36669 {
36670 if (p->level++ == MAXSTACK) {
36671 p->error_indicator = 1;
36672 PyErr_NoMemory();
36673 }
36674 if (p->error_indicator) {
36675 p->level--;
36676 return NULL;
36677 }
36678 void * _res = NULL;
36679 int _mark = p->mark;
36680 { // expression ['as' NAME]
36681 if (p->error_indicator) {
36682 p->level--;
36683 return NULL;
36684 }
36685 D(fprintf(stderr, "%*c> _tmp_208[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]"));
36686 void *_opt_var;
36687 UNUSED(_opt_var); // Silence compiler warnings
36688 expr_ty expression_var;
36689 if (
36690 (expression_var = expression_rule(p)) // expression
36691 &&
36692 (_opt_var = _tmp_244_rule(p), !p->error_indicator) // ['as' NAME]
36693 )
36694 {
36695 D(fprintf(stderr, "%*c+ _tmp_208[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]"));
36696 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
36697 goto done;
36698 }
36699 p->mark = _mark;
36700 D(fprintf(stderr, "%*c%s _tmp_208[%d-%d]: %s failed!\n", p->level, ' ',
36701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' NAME]"));
36702 }
36703 _res = NULL;
36704 done:
36705 p->level--;
36706 return _res;
36707 }
36708
36709 // _tmp_209: 'as' NAME
36710 static void *
_tmp_209_rule(Parser * p)36711 _tmp_209_rule(Parser *p)
36712 {
36713 if (p->level++ == MAXSTACK) {
36714 p->error_indicator = 1;
36715 PyErr_NoMemory();
36716 }
36717 if (p->error_indicator) {
36718 p->level--;
36719 return NULL;
36720 }
36721 void * _res = NULL;
36722 int _mark = p->mark;
36723 { // 'as' NAME
36724 if (p->error_indicator) {
36725 p->level--;
36726 return NULL;
36727 }
36728 D(fprintf(stderr, "%*c> _tmp_209[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
36729 Token * _keyword;
36730 expr_ty name_var;
36731 if (
36732 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
36733 &&
36734 (name_var = _PyPegen_name_token(p)) // NAME
36735 )
36736 {
36737 D(fprintf(stderr, "%*c+ _tmp_209[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
36738 _res = _PyPegen_dummy_name(p, _keyword, name_var);
36739 goto done;
36740 }
36741 p->mark = _mark;
36742 D(fprintf(stderr, "%*c%s _tmp_209[%d-%d]: %s failed!\n", p->level, ' ',
36743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
36744 }
36745 _res = NULL;
36746 done:
36747 p->level--;
36748 return _res;
36749 }
36750
36751 // _tmp_210: 'as' NAME
36752 static void *
_tmp_210_rule(Parser * p)36753 _tmp_210_rule(Parser *p)
36754 {
36755 if (p->level++ == MAXSTACK) {
36756 p->error_indicator = 1;
36757 PyErr_NoMemory();
36758 }
36759 if (p->error_indicator) {
36760 p->level--;
36761 return NULL;
36762 }
36763 void * _res = NULL;
36764 int _mark = p->mark;
36765 { // 'as' NAME
36766 if (p->error_indicator) {
36767 p->level--;
36768 return NULL;
36769 }
36770 D(fprintf(stderr, "%*c> _tmp_210[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
36771 Token * _keyword;
36772 expr_ty name_var;
36773 if (
36774 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
36775 &&
36776 (name_var = _PyPegen_name_token(p)) // NAME
36777 )
36778 {
36779 D(fprintf(stderr, "%*c+ _tmp_210[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
36780 _res = _PyPegen_dummy_name(p, _keyword, name_var);
36781 goto done;
36782 }
36783 p->mark = _mark;
36784 D(fprintf(stderr, "%*c%s _tmp_210[%d-%d]: %s failed!\n", p->level, ' ',
36785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
36786 }
36787 _res = NULL;
36788 done:
36789 p->level--;
36790 return _res;
36791 }
36792
36793 // _tmp_211: NEWLINE | ':'
36794 static void *
_tmp_211_rule(Parser * p)36795 _tmp_211_rule(Parser *p)
36796 {
36797 if (p->level++ == MAXSTACK) {
36798 p->error_indicator = 1;
36799 PyErr_NoMemory();
36800 }
36801 if (p->error_indicator) {
36802 p->level--;
36803 return NULL;
36804 }
36805 void * _res = NULL;
36806 int _mark = p->mark;
36807 { // NEWLINE
36808 if (p->error_indicator) {
36809 p->level--;
36810 return NULL;
36811 }
36812 D(fprintf(stderr, "%*c> _tmp_211[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
36813 Token * newline_var;
36814 if (
36815 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
36816 )
36817 {
36818 D(fprintf(stderr, "%*c+ _tmp_211[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
36819 _res = newline_var;
36820 goto done;
36821 }
36822 p->mark = _mark;
36823 D(fprintf(stderr, "%*c%s _tmp_211[%d-%d]: %s failed!\n", p->level, ' ',
36824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
36825 }
36826 { // ':'
36827 if (p->error_indicator) {
36828 p->level--;
36829 return NULL;
36830 }
36831 D(fprintf(stderr, "%*c> _tmp_211[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
36832 Token * _literal;
36833 if (
36834 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
36835 )
36836 {
36837 D(fprintf(stderr, "%*c+ _tmp_211[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
36838 _res = _literal;
36839 goto done;
36840 }
36841 p->mark = _mark;
36842 D(fprintf(stderr, "%*c%s _tmp_211[%d-%d]: %s failed!\n", p->level, ' ',
36843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
36844 }
36845 _res = NULL;
36846 done:
36847 p->level--;
36848 return _res;
36849 }
36850
36851 // _tmp_212: 'as' NAME
36852 static void *
_tmp_212_rule(Parser * p)36853 _tmp_212_rule(Parser *p)
36854 {
36855 if (p->level++ == MAXSTACK) {
36856 p->error_indicator = 1;
36857 PyErr_NoMemory();
36858 }
36859 if (p->error_indicator) {
36860 p->level--;
36861 return NULL;
36862 }
36863 void * _res = NULL;
36864 int _mark = p->mark;
36865 { // 'as' NAME
36866 if (p->error_indicator) {
36867 p->level--;
36868 return NULL;
36869 }
36870 D(fprintf(stderr, "%*c> _tmp_212[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
36871 Token * _keyword;
36872 expr_ty name_var;
36873 if (
36874 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
36875 &&
36876 (name_var = _PyPegen_name_token(p)) // NAME
36877 )
36878 {
36879 D(fprintf(stderr, "%*c+ _tmp_212[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
36880 _res = _PyPegen_dummy_name(p, _keyword, name_var);
36881 goto done;
36882 }
36883 p->mark = _mark;
36884 D(fprintf(stderr, "%*c%s _tmp_212[%d-%d]: %s failed!\n", p->level, ' ',
36885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
36886 }
36887 _res = NULL;
36888 done:
36889 p->level--;
36890 return _res;
36891 }
36892
36893 // _tmp_213: 'as' NAME
36894 static void *
_tmp_213_rule(Parser * p)36895 _tmp_213_rule(Parser *p)
36896 {
36897 if (p->level++ == MAXSTACK) {
36898 p->error_indicator = 1;
36899 PyErr_NoMemory();
36900 }
36901 if (p->error_indicator) {
36902 p->level--;
36903 return NULL;
36904 }
36905 void * _res = NULL;
36906 int _mark = p->mark;
36907 { // 'as' NAME
36908 if (p->error_indicator) {
36909 p->level--;
36910 return NULL;
36911 }
36912 D(fprintf(stderr, "%*c> _tmp_213[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
36913 Token * _keyword;
36914 expr_ty name_var;
36915 if (
36916 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
36917 &&
36918 (name_var = _PyPegen_name_token(p)) // NAME
36919 )
36920 {
36921 D(fprintf(stderr, "%*c+ _tmp_213[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
36922 _res = _PyPegen_dummy_name(p, _keyword, name_var);
36923 goto done;
36924 }
36925 p->mark = _mark;
36926 D(fprintf(stderr, "%*c%s _tmp_213[%d-%d]: %s failed!\n", p->level, ' ',
36927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
36928 }
36929 _res = NULL;
36930 done:
36931 p->level--;
36932 return _res;
36933 }
36934
36935 // _tmp_214: positional_patterns ','
36936 static void *
_tmp_214_rule(Parser * p)36937 _tmp_214_rule(Parser *p)
36938 {
36939 if (p->level++ == MAXSTACK) {
36940 p->error_indicator = 1;
36941 PyErr_NoMemory();
36942 }
36943 if (p->error_indicator) {
36944 p->level--;
36945 return NULL;
36946 }
36947 void * _res = NULL;
36948 int _mark = p->mark;
36949 { // positional_patterns ','
36950 if (p->error_indicator) {
36951 p->level--;
36952 return NULL;
36953 }
36954 D(fprintf(stderr, "%*c> _tmp_214[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
36955 Token * _literal;
36956 asdl_pattern_seq* positional_patterns_var;
36957 if (
36958 (positional_patterns_var = positional_patterns_rule(p)) // positional_patterns
36959 &&
36960 (_literal = _PyPegen_expect_token(p, 12)) // token=','
36961 )
36962 {
36963 D(fprintf(stderr, "%*c+ _tmp_214[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
36964 _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal);
36965 goto done;
36966 }
36967 p->mark = _mark;
36968 D(fprintf(stderr, "%*c%s _tmp_214[%d-%d]: %s failed!\n", p->level, ' ',
36969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','"));
36970 }
36971 _res = NULL;
36972 done:
36973 p->level--;
36974 return _res;
36975 }
36976
36977 // _tmp_215: '->' expression
36978 static void *
_tmp_215_rule(Parser * p)36979 _tmp_215_rule(Parser *p)
36980 {
36981 if (p->level++ == MAXSTACK) {
36982 p->error_indicator = 1;
36983 PyErr_NoMemory();
36984 }
36985 if (p->error_indicator) {
36986 p->level--;
36987 return NULL;
36988 }
36989 void * _res = NULL;
36990 int _mark = p->mark;
36991 { // '->' expression
36992 if (p->error_indicator) {
36993 p->level--;
36994 return NULL;
36995 }
36996 D(fprintf(stderr, "%*c> _tmp_215[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
36997 Token * _literal;
36998 expr_ty expression_var;
36999 if (
37000 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
37001 &&
37002 (expression_var = expression_rule(p)) // expression
37003 )
37004 {
37005 D(fprintf(stderr, "%*c+ _tmp_215[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
37006 _res = _PyPegen_dummy_name(p, _literal, expression_var);
37007 goto done;
37008 }
37009 p->mark = _mark;
37010 D(fprintf(stderr, "%*c%s _tmp_215[%d-%d]: %s failed!\n", p->level, ' ',
37011 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
37012 }
37013 _res = NULL;
37014 done:
37015 p->level--;
37016 return _res;
37017 }
37018
37019 // _tmp_216: '(' arguments? ')'
37020 static void *
_tmp_216_rule(Parser * p)37021 _tmp_216_rule(Parser *p)
37022 {
37023 if (p->level++ == MAXSTACK) {
37024 p->error_indicator = 1;
37025 PyErr_NoMemory();
37026 }
37027 if (p->error_indicator) {
37028 p->level--;
37029 return NULL;
37030 }
37031 void * _res = NULL;
37032 int _mark = p->mark;
37033 { // '(' arguments? ')'
37034 if (p->error_indicator) {
37035 p->level--;
37036 return NULL;
37037 }
37038 D(fprintf(stderr, "%*c> _tmp_216[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
37039 Token * _literal;
37040 Token * _literal_1;
37041 void *_opt_var;
37042 UNUSED(_opt_var); // Silence compiler warnings
37043 if (
37044 (_literal = _PyPegen_expect_token(p, 7)) // token='('
37045 &&
37046 (_opt_var = arguments_rule(p), !p->error_indicator) // arguments?
37047 &&
37048 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
37049 )
37050 {
37051 D(fprintf(stderr, "%*c+ _tmp_216[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
37052 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
37053 goto done;
37054 }
37055 p->mark = _mark;
37056 D(fprintf(stderr, "%*c%s _tmp_216[%d-%d]: %s failed!\n", p->level, ' ',
37057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
37058 }
37059 _res = NULL;
37060 done:
37061 p->level--;
37062 return _res;
37063 }
37064
37065 // _tmp_217: '(' arguments? ')'
37066 static void *
_tmp_217_rule(Parser * p)37067 _tmp_217_rule(Parser *p)
37068 {
37069 if (p->level++ == MAXSTACK) {
37070 p->error_indicator = 1;
37071 PyErr_NoMemory();
37072 }
37073 if (p->error_indicator) {
37074 p->level--;
37075 return NULL;
37076 }
37077 void * _res = NULL;
37078 int _mark = p->mark;
37079 { // '(' arguments? ')'
37080 if (p->error_indicator) {
37081 p->level--;
37082 return NULL;
37083 }
37084 D(fprintf(stderr, "%*c> _tmp_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
37085 Token * _literal;
37086 Token * _literal_1;
37087 void *_opt_var;
37088 UNUSED(_opt_var); // Silence compiler warnings
37089 if (
37090 (_literal = _PyPegen_expect_token(p, 7)) // token='('
37091 &&
37092 (_opt_var = arguments_rule(p), !p->error_indicator) // arguments?
37093 &&
37094 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
37095 )
37096 {
37097 D(fprintf(stderr, "%*c+ _tmp_217[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
37098 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
37099 goto done;
37100 }
37101 p->mark = _mark;
37102 D(fprintf(stderr, "%*c%s _tmp_217[%d-%d]: %s failed!\n", p->level, ' ',
37103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
37104 }
37105 _res = NULL;
37106 done:
37107 p->level--;
37108 return _res;
37109 }
37110
37111 // _loop0_219: ',' double_starred_kvpair
37112 static asdl_seq *
_loop0_219_rule(Parser * p)37113 _loop0_219_rule(Parser *p)
37114 {
37115 if (p->level++ == MAXSTACK) {
37116 p->error_indicator = 1;
37117 PyErr_NoMemory();
37118 }
37119 if (p->error_indicator) {
37120 p->level--;
37121 return NULL;
37122 }
37123 void *_res = NULL;
37124 int _mark = p->mark;
37125 void **_children = PyMem_Malloc(sizeof(void *));
37126 if (!_children) {
37127 p->error_indicator = 1;
37128 PyErr_NoMemory();
37129 p->level--;
37130 return NULL;
37131 }
37132 Py_ssize_t _children_capacity = 1;
37133 Py_ssize_t _n = 0;
37134 { // ',' double_starred_kvpair
37135 if (p->error_indicator) {
37136 p->level--;
37137 return NULL;
37138 }
37139 D(fprintf(stderr, "%*c> _loop0_219[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
37140 Token * _literal;
37141 KeyValuePair* elem;
37142 while (
37143 (_literal = _PyPegen_expect_token(p, 12)) // token=','
37144 &&
37145 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
37146 )
37147 {
37148 _res = elem;
37149 if (_res == NULL && PyErr_Occurred()) {
37150 p->error_indicator = 1;
37151 PyMem_Free(_children);
37152 p->level--;
37153 return NULL;
37154 }
37155 if (_n == _children_capacity) {
37156 _children_capacity *= 2;
37157 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
37158 if (!_new_children) {
37159 PyMem_Free(_children);
37160 p->error_indicator = 1;
37161 PyErr_NoMemory();
37162 p->level--;
37163 return NULL;
37164 }
37165 _children = _new_children;
37166 }
37167 _children[_n++] = _res;
37168 _mark = p->mark;
37169 }
37170 p->mark = _mark;
37171 D(fprintf(stderr, "%*c%s _loop0_219[%d-%d]: %s failed!\n", p->level, ' ',
37172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
37173 }
37174 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
37175 if (!_seq) {
37176 PyMem_Free(_children);
37177 p->error_indicator = 1;
37178 PyErr_NoMemory();
37179 p->level--;
37180 return NULL;
37181 }
37182 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
37183 PyMem_Free(_children);
37184 p->level--;
37185 return _seq;
37186 }
37187
37188 // _gather_218: double_starred_kvpair _loop0_219
37189 static asdl_seq *
_gather_218_rule(Parser * p)37190 _gather_218_rule(Parser *p)
37191 {
37192 if (p->level++ == MAXSTACK) {
37193 p->error_indicator = 1;
37194 PyErr_NoMemory();
37195 }
37196 if (p->error_indicator) {
37197 p->level--;
37198 return NULL;
37199 }
37200 asdl_seq * _res = NULL;
37201 int _mark = p->mark;
37202 { // double_starred_kvpair _loop0_219
37203 if (p->error_indicator) {
37204 p->level--;
37205 return NULL;
37206 }
37207 D(fprintf(stderr, "%*c> _gather_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_219"));
37208 KeyValuePair* elem;
37209 asdl_seq * seq;
37210 if (
37211 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
37212 &&
37213 (seq = _loop0_219_rule(p)) // _loop0_219
37214 )
37215 {
37216 D(fprintf(stderr, "%*c+ _gather_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_219"));
37217 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
37218 goto done;
37219 }
37220 p->mark = _mark;
37221 D(fprintf(stderr, "%*c%s _gather_218[%d-%d]: %s failed!\n", p->level, ' ',
37222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_219"));
37223 }
37224 _res = NULL;
37225 done:
37226 p->level--;
37227 return _res;
37228 }
37229
37230 // _tmp_220: '}' | ','
37231 static void *
_tmp_220_rule(Parser * p)37232 _tmp_220_rule(Parser *p)
37233 {
37234 if (p->level++ == MAXSTACK) {
37235 p->error_indicator = 1;
37236 PyErr_NoMemory();
37237 }
37238 if (p->error_indicator) {
37239 p->level--;
37240 return NULL;
37241 }
37242 void * _res = NULL;
37243 int _mark = p->mark;
37244 { // '}'
37245 if (p->error_indicator) {
37246 p->level--;
37247 return NULL;
37248 }
37249 D(fprintf(stderr, "%*c> _tmp_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
37250 Token * _literal;
37251 if (
37252 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
37253 )
37254 {
37255 D(fprintf(stderr, "%*c+ _tmp_220[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
37256 _res = _literal;
37257 goto done;
37258 }
37259 p->mark = _mark;
37260 D(fprintf(stderr, "%*c%s _tmp_220[%d-%d]: %s failed!\n", p->level, ' ',
37261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
37262 }
37263 { // ','
37264 if (p->error_indicator) {
37265 p->level--;
37266 return NULL;
37267 }
37268 D(fprintf(stderr, "%*c> _tmp_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
37269 Token * _literal;
37270 if (
37271 (_literal = _PyPegen_expect_token(p, 12)) // token=','
37272 )
37273 {
37274 D(fprintf(stderr, "%*c+ _tmp_220[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
37275 _res = _literal;
37276 goto done;
37277 }
37278 p->mark = _mark;
37279 D(fprintf(stderr, "%*c%s _tmp_220[%d-%d]: %s failed!\n", p->level, ' ',
37280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
37281 }
37282 _res = NULL;
37283 done:
37284 p->level--;
37285 return _res;
37286 }
37287
37288 // _tmp_221: '}' | ','
37289 static void *
_tmp_221_rule(Parser * p)37290 _tmp_221_rule(Parser *p)
37291 {
37292 if (p->level++ == MAXSTACK) {
37293 p->error_indicator = 1;
37294 PyErr_NoMemory();
37295 }
37296 if (p->error_indicator) {
37297 p->level--;
37298 return NULL;
37299 }
37300 void * _res = NULL;
37301 int _mark = p->mark;
37302 { // '}'
37303 if (p->error_indicator) {
37304 p->level--;
37305 return NULL;
37306 }
37307 D(fprintf(stderr, "%*c> _tmp_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
37308 Token * _literal;
37309 if (
37310 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
37311 )
37312 {
37313 D(fprintf(stderr, "%*c+ _tmp_221[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
37314 _res = _literal;
37315 goto done;
37316 }
37317 p->mark = _mark;
37318 D(fprintf(stderr, "%*c%s _tmp_221[%d-%d]: %s failed!\n", p->level, ' ',
37319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
37320 }
37321 { // ','
37322 if (p->error_indicator) {
37323 p->level--;
37324 return NULL;
37325 }
37326 D(fprintf(stderr, "%*c> _tmp_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
37327 Token * _literal;
37328 if (
37329 (_literal = _PyPegen_expect_token(p, 12)) // token=','
37330 )
37331 {
37332 D(fprintf(stderr, "%*c+ _tmp_221[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
37333 _res = _literal;
37334 goto done;
37335 }
37336 p->mark = _mark;
37337 D(fprintf(stderr, "%*c%s _tmp_221[%d-%d]: %s failed!\n", p->level, ' ',
37338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
37339 }
37340 _res = NULL;
37341 done:
37342 p->level--;
37343 return _res;
37344 }
37345
37346 // _tmp_222: star_targets '='
37347 static void *
_tmp_222_rule(Parser * p)37348 _tmp_222_rule(Parser *p)
37349 {
37350 if (p->level++ == MAXSTACK) {
37351 p->error_indicator = 1;
37352 PyErr_NoMemory();
37353 }
37354 if (p->error_indicator) {
37355 p->level--;
37356 return NULL;
37357 }
37358 void * _res = NULL;
37359 int _mark = p->mark;
37360 { // star_targets '='
37361 if (p->error_indicator) {
37362 p->level--;
37363 return NULL;
37364 }
37365 D(fprintf(stderr, "%*c> _tmp_222[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
37366 Token * _literal;
37367 expr_ty z;
37368 if (
37369 (z = star_targets_rule(p)) // star_targets
37370 &&
37371 (_literal = _PyPegen_expect_token(p, 22)) // token='='
37372 )
37373 {
37374 D(fprintf(stderr, "%*c+ _tmp_222[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
37375 _res = z;
37376 if (_res == NULL && PyErr_Occurred()) {
37377 p->error_indicator = 1;
37378 p->level--;
37379 return NULL;
37380 }
37381 goto done;
37382 }
37383 p->mark = _mark;
37384 D(fprintf(stderr, "%*c%s _tmp_222[%d-%d]: %s failed!\n", p->level, ' ',
37385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
37386 }
37387 _res = NULL;
37388 done:
37389 p->level--;
37390 return _res;
37391 }
37392
37393 // _tmp_223: '.' | '...'
37394 static void *
_tmp_223_rule(Parser * p)37395 _tmp_223_rule(Parser *p)
37396 {
37397 if (p->level++ == MAXSTACK) {
37398 p->error_indicator = 1;
37399 PyErr_NoMemory();
37400 }
37401 if (p->error_indicator) {
37402 p->level--;
37403 return NULL;
37404 }
37405 void * _res = NULL;
37406 int _mark = p->mark;
37407 { // '.'
37408 if (p->error_indicator) {
37409 p->level--;
37410 return NULL;
37411 }
37412 D(fprintf(stderr, "%*c> _tmp_223[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
37413 Token * _literal;
37414 if (
37415 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
37416 )
37417 {
37418 D(fprintf(stderr, "%*c+ _tmp_223[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
37419 _res = _literal;
37420 goto done;
37421 }
37422 p->mark = _mark;
37423 D(fprintf(stderr, "%*c%s _tmp_223[%d-%d]: %s failed!\n", p->level, ' ',
37424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
37425 }
37426 { // '...'
37427 if (p->error_indicator) {
37428 p->level--;
37429 return NULL;
37430 }
37431 D(fprintf(stderr, "%*c> _tmp_223[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
37432 Token * _literal;
37433 if (
37434 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
37435 )
37436 {
37437 D(fprintf(stderr, "%*c+ _tmp_223[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
37438 _res = _literal;
37439 goto done;
37440 }
37441 p->mark = _mark;
37442 D(fprintf(stderr, "%*c%s _tmp_223[%d-%d]: %s failed!\n", p->level, ' ',
37443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
37444 }
37445 _res = NULL;
37446 done:
37447 p->level--;
37448 return _res;
37449 }
37450
37451 // _tmp_224: '.' | '...'
37452 static void *
_tmp_224_rule(Parser * p)37453 _tmp_224_rule(Parser *p)
37454 {
37455 if (p->level++ == MAXSTACK) {
37456 p->error_indicator = 1;
37457 PyErr_NoMemory();
37458 }
37459 if (p->error_indicator) {
37460 p->level--;
37461 return NULL;
37462 }
37463 void * _res = NULL;
37464 int _mark = p->mark;
37465 { // '.'
37466 if (p->error_indicator) {
37467 p->level--;
37468 return NULL;
37469 }
37470 D(fprintf(stderr, "%*c> _tmp_224[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
37471 Token * _literal;
37472 if (
37473 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
37474 )
37475 {
37476 D(fprintf(stderr, "%*c+ _tmp_224[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
37477 _res = _literal;
37478 goto done;
37479 }
37480 p->mark = _mark;
37481 D(fprintf(stderr, "%*c%s _tmp_224[%d-%d]: %s failed!\n", p->level, ' ',
37482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
37483 }
37484 { // '...'
37485 if (p->error_indicator) {
37486 p->level--;
37487 return NULL;
37488 }
37489 D(fprintf(stderr, "%*c> _tmp_224[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
37490 Token * _literal;
37491 if (
37492 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
37493 )
37494 {
37495 D(fprintf(stderr, "%*c+ _tmp_224[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
37496 _res = _literal;
37497 goto done;
37498 }
37499 p->mark = _mark;
37500 D(fprintf(stderr, "%*c%s _tmp_224[%d-%d]: %s failed!\n", p->level, ' ',
37501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
37502 }
37503 _res = NULL;
37504 done:
37505 p->level--;
37506 return _res;
37507 }
37508
37509 // _tmp_225: '@' named_expression NEWLINE
37510 static void *
_tmp_225_rule(Parser * p)37511 _tmp_225_rule(Parser *p)
37512 {
37513 if (p->level++ == MAXSTACK) {
37514 p->error_indicator = 1;
37515 PyErr_NoMemory();
37516 }
37517 if (p->error_indicator) {
37518 p->level--;
37519 return NULL;
37520 }
37521 void * _res = NULL;
37522 int _mark = p->mark;
37523 { // '@' named_expression NEWLINE
37524 if (p->error_indicator) {
37525 p->level--;
37526 return NULL;
37527 }
37528 D(fprintf(stderr, "%*c> _tmp_225[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
37529 Token * _literal;
37530 expr_ty f;
37531 Token * newline_var;
37532 if (
37533 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
37534 &&
37535 (f = named_expression_rule(p)) // named_expression
37536 &&
37537 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
37538 )
37539 {
37540 D(fprintf(stderr, "%*c+ _tmp_225[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
37541 _res = f;
37542 if (_res == NULL && PyErr_Occurred()) {
37543 p->error_indicator = 1;
37544 p->level--;
37545 return NULL;
37546 }
37547 goto done;
37548 }
37549 p->mark = _mark;
37550 D(fprintf(stderr, "%*c%s _tmp_225[%d-%d]: %s failed!\n", p->level, ' ',
37551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
37552 }
37553 _res = NULL;
37554 done:
37555 p->level--;
37556 return _res;
37557 }
37558
37559 // _tmp_226: ',' expression
37560 static void *
_tmp_226_rule(Parser * p)37561 _tmp_226_rule(Parser *p)
37562 {
37563 if (p->level++ == MAXSTACK) {
37564 p->error_indicator = 1;
37565 PyErr_NoMemory();
37566 }
37567 if (p->error_indicator) {
37568 p->level--;
37569 return NULL;
37570 }
37571 void * _res = NULL;
37572 int _mark = p->mark;
37573 { // ',' expression
37574 if (p->error_indicator) {
37575 p->level--;
37576 return NULL;
37577 }
37578 D(fprintf(stderr, "%*c> _tmp_226[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
37579 Token * _literal;
37580 expr_ty c;
37581 if (
37582 (_literal = _PyPegen_expect_token(p, 12)) // token=','
37583 &&
37584 (c = expression_rule(p)) // expression
37585 )
37586 {
37587 D(fprintf(stderr, "%*c+ _tmp_226[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
37588 _res = c;
37589 if (_res == NULL && PyErr_Occurred()) {
37590 p->error_indicator = 1;
37591 p->level--;
37592 return NULL;
37593 }
37594 goto done;
37595 }
37596 p->mark = _mark;
37597 D(fprintf(stderr, "%*c%s _tmp_226[%d-%d]: %s failed!\n", p->level, ' ',
37598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
37599 }
37600 _res = NULL;
37601 done:
37602 p->level--;
37603 return _res;
37604 }
37605
37606 // _tmp_227: ',' star_expression
37607 static void *
_tmp_227_rule(Parser * p)37608 _tmp_227_rule(Parser *p)
37609 {
37610 if (p->level++ == MAXSTACK) {
37611 p->error_indicator = 1;
37612 PyErr_NoMemory();
37613 }
37614 if (p->error_indicator) {
37615 p->level--;
37616 return NULL;
37617 }
37618 void * _res = NULL;
37619 int _mark = p->mark;
37620 { // ',' star_expression
37621 if (p->error_indicator) {
37622 p->level--;
37623 return NULL;
37624 }
37625 D(fprintf(stderr, "%*c> _tmp_227[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
37626 Token * _literal;
37627 expr_ty c;
37628 if (
37629 (_literal = _PyPegen_expect_token(p, 12)) // token=','
37630 &&
37631 (c = star_expression_rule(p)) // star_expression
37632 )
37633 {
37634 D(fprintf(stderr, "%*c+ _tmp_227[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
37635 _res = c;
37636 if (_res == NULL && PyErr_Occurred()) {
37637 p->error_indicator = 1;
37638 p->level--;
37639 return NULL;
37640 }
37641 goto done;
37642 }
37643 p->mark = _mark;
37644 D(fprintf(stderr, "%*c%s _tmp_227[%d-%d]: %s failed!\n", p->level, ' ',
37645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
37646 }
37647 _res = NULL;
37648 done:
37649 p->level--;
37650 return _res;
37651 }
37652
37653 // _tmp_228: 'or' conjunction
37654 static void *
_tmp_228_rule(Parser * p)37655 _tmp_228_rule(Parser *p)
37656 {
37657 if (p->level++ == MAXSTACK) {
37658 p->error_indicator = 1;
37659 PyErr_NoMemory();
37660 }
37661 if (p->error_indicator) {
37662 p->level--;
37663 return NULL;
37664 }
37665 void * _res = NULL;
37666 int _mark = p->mark;
37667 { // 'or' conjunction
37668 if (p->error_indicator) {
37669 p->level--;
37670 return NULL;
37671 }
37672 D(fprintf(stderr, "%*c> _tmp_228[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
37673 Token * _keyword;
37674 expr_ty c;
37675 if (
37676 (_keyword = _PyPegen_expect_token(p, 574)) // token='or'
37677 &&
37678 (c = conjunction_rule(p)) // conjunction
37679 )
37680 {
37681 D(fprintf(stderr, "%*c+ _tmp_228[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
37682 _res = c;
37683 if (_res == NULL && PyErr_Occurred()) {
37684 p->error_indicator = 1;
37685 p->level--;
37686 return NULL;
37687 }
37688 goto done;
37689 }
37690 p->mark = _mark;
37691 D(fprintf(stderr, "%*c%s _tmp_228[%d-%d]: %s failed!\n", p->level, ' ',
37692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
37693 }
37694 _res = NULL;
37695 done:
37696 p->level--;
37697 return _res;
37698 }
37699
37700 // _tmp_229: 'and' inversion
37701 static void *
_tmp_229_rule(Parser * p)37702 _tmp_229_rule(Parser *p)
37703 {
37704 if (p->level++ == MAXSTACK) {
37705 p->error_indicator = 1;
37706 PyErr_NoMemory();
37707 }
37708 if (p->error_indicator) {
37709 p->level--;
37710 return NULL;
37711 }
37712 void * _res = NULL;
37713 int _mark = p->mark;
37714 { // 'and' inversion
37715 if (p->error_indicator) {
37716 p->level--;
37717 return NULL;
37718 }
37719 D(fprintf(stderr, "%*c> _tmp_229[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
37720 Token * _keyword;
37721 expr_ty c;
37722 if (
37723 (_keyword = _PyPegen_expect_token(p, 575)) // token='and'
37724 &&
37725 (c = inversion_rule(p)) // inversion
37726 )
37727 {
37728 D(fprintf(stderr, "%*c+ _tmp_229[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
37729 _res = c;
37730 if (_res == NULL && PyErr_Occurred()) {
37731 p->error_indicator = 1;
37732 p->level--;
37733 return NULL;
37734 }
37735 goto done;
37736 }
37737 p->mark = _mark;
37738 D(fprintf(stderr, "%*c%s _tmp_229[%d-%d]: %s failed!\n", p->level, ' ',
37739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
37740 }
37741 _res = NULL;
37742 done:
37743 p->level--;
37744 return _res;
37745 }
37746
37747 // _tmp_230: slice | starred_expression
37748 static void *
_tmp_230_rule(Parser * p)37749 _tmp_230_rule(Parser *p)
37750 {
37751 if (p->level++ == MAXSTACK) {
37752 p->error_indicator = 1;
37753 PyErr_NoMemory();
37754 }
37755 if (p->error_indicator) {
37756 p->level--;
37757 return NULL;
37758 }
37759 void * _res = NULL;
37760 int _mark = p->mark;
37761 { // slice
37762 if (p->error_indicator) {
37763 p->level--;
37764 return NULL;
37765 }
37766 D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice"));
37767 expr_ty slice_var;
37768 if (
37769 (slice_var = slice_rule(p)) // slice
37770 )
37771 {
37772 D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice"));
37773 _res = slice_var;
37774 goto done;
37775 }
37776 p->mark = _mark;
37777 D(fprintf(stderr, "%*c%s _tmp_230[%d-%d]: %s failed!\n", p->level, ' ',
37778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice"));
37779 }
37780 { // starred_expression
37781 if (p->error_indicator) {
37782 p->level--;
37783 return NULL;
37784 }
37785 D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
37786 expr_ty starred_expression_var;
37787 if (
37788 (starred_expression_var = starred_expression_rule(p)) // starred_expression
37789 )
37790 {
37791 D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
37792 _res = starred_expression_var;
37793 goto done;
37794 }
37795 p->mark = _mark;
37796 D(fprintf(stderr, "%*c%s _tmp_230[%d-%d]: %s failed!\n", p->level, ' ',
37797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
37798 }
37799 _res = NULL;
37800 done:
37801 p->level--;
37802 return _res;
37803 }
37804
37805 // _tmp_231: 'if' disjunction
37806 static void *
_tmp_231_rule(Parser * p)37807 _tmp_231_rule(Parser *p)
37808 {
37809 if (p->level++ == MAXSTACK) {
37810 p->error_indicator = 1;
37811 PyErr_NoMemory();
37812 }
37813 if (p->error_indicator) {
37814 p->level--;
37815 return NULL;
37816 }
37817 void * _res = NULL;
37818 int _mark = p->mark;
37819 { // 'if' disjunction
37820 if (p->error_indicator) {
37821 p->level--;
37822 return NULL;
37823 }
37824 D(fprintf(stderr, "%*c> _tmp_231[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
37825 Token * _keyword;
37826 expr_ty z;
37827 if (
37828 (_keyword = _PyPegen_expect_token(p, 639)) // token='if'
37829 &&
37830 (z = disjunction_rule(p)) // disjunction
37831 )
37832 {
37833 D(fprintf(stderr, "%*c+ _tmp_231[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
37834 _res = z;
37835 if (_res == NULL && PyErr_Occurred()) {
37836 p->error_indicator = 1;
37837 p->level--;
37838 return NULL;
37839 }
37840 goto done;
37841 }
37842 p->mark = _mark;
37843 D(fprintf(stderr, "%*c%s _tmp_231[%d-%d]: %s failed!\n", p->level, ' ',
37844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
37845 }
37846 _res = NULL;
37847 done:
37848 p->level--;
37849 return _res;
37850 }
37851
37852 // _tmp_232: 'if' disjunction
37853 static void *
_tmp_232_rule(Parser * p)37854 _tmp_232_rule(Parser *p)
37855 {
37856 if (p->level++ == MAXSTACK) {
37857 p->error_indicator = 1;
37858 PyErr_NoMemory();
37859 }
37860 if (p->error_indicator) {
37861 p->level--;
37862 return NULL;
37863 }
37864 void * _res = NULL;
37865 int _mark = p->mark;
37866 { // 'if' disjunction
37867 if (p->error_indicator) {
37868 p->level--;
37869 return NULL;
37870 }
37871 D(fprintf(stderr, "%*c> _tmp_232[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
37872 Token * _keyword;
37873 expr_ty z;
37874 if (
37875 (_keyword = _PyPegen_expect_token(p, 639)) // token='if'
37876 &&
37877 (z = disjunction_rule(p)) // disjunction
37878 )
37879 {
37880 D(fprintf(stderr, "%*c+ _tmp_232[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
37881 _res = z;
37882 if (_res == NULL && PyErr_Occurred()) {
37883 p->error_indicator = 1;
37884 p->level--;
37885 return NULL;
37886 }
37887 goto done;
37888 }
37889 p->mark = _mark;
37890 D(fprintf(stderr, "%*c%s _tmp_232[%d-%d]: %s failed!\n", p->level, ' ',
37891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
37892 }
37893 _res = NULL;
37894 done:
37895 p->level--;
37896 return _res;
37897 }
37898
37899 // _tmp_233: starred_expression | (assignment_expression | expression !':=') !'='
37900 static void *
_tmp_233_rule(Parser * p)37901 _tmp_233_rule(Parser *p)
37902 {
37903 if (p->level++ == MAXSTACK) {
37904 p->error_indicator = 1;
37905 PyErr_NoMemory();
37906 }
37907 if (p->error_indicator) {
37908 p->level--;
37909 return NULL;
37910 }
37911 void * _res = NULL;
37912 int _mark = p->mark;
37913 { // starred_expression
37914 if (p->error_indicator) {
37915 p->level--;
37916 return NULL;
37917 }
37918 D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
37919 expr_ty starred_expression_var;
37920 if (
37921 (starred_expression_var = starred_expression_rule(p)) // starred_expression
37922 )
37923 {
37924 D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
37925 _res = starred_expression_var;
37926 goto done;
37927 }
37928 p->mark = _mark;
37929 D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ',
37930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
37931 }
37932 { // (assignment_expression | expression !':=') !'='
37933 if (p->error_indicator) {
37934 p->level--;
37935 return NULL;
37936 }
37937 D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
37938 void *_tmp_245_var;
37939 if (
37940 (_tmp_245_var = _tmp_245_rule(p)) // assignment_expression | expression !':='
37941 &&
37942 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
37943 )
37944 {
37945 D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
37946 _res = _tmp_245_var;
37947 goto done;
37948 }
37949 p->mark = _mark;
37950 D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ',
37951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
37952 }
37953 _res = NULL;
37954 done:
37955 p->level--;
37956 return _res;
37957 }
37958
37959 // _tmp_234: ',' star_target
37960 static void *
_tmp_234_rule(Parser * p)37961 _tmp_234_rule(Parser *p)
37962 {
37963 if (p->level++ == MAXSTACK) {
37964 p->error_indicator = 1;
37965 PyErr_NoMemory();
37966 }
37967 if (p->error_indicator) {
37968 p->level--;
37969 return NULL;
37970 }
37971 void * _res = NULL;
37972 int _mark = p->mark;
37973 { // ',' star_target
37974 if (p->error_indicator) {
37975 p->level--;
37976 return NULL;
37977 }
37978 D(fprintf(stderr, "%*c> _tmp_234[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
37979 Token * _literal;
37980 expr_ty c;
37981 if (
37982 (_literal = _PyPegen_expect_token(p, 12)) // token=','
37983 &&
37984 (c = star_target_rule(p)) // star_target
37985 )
37986 {
37987 D(fprintf(stderr, "%*c+ _tmp_234[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
37988 _res = c;
37989 if (_res == NULL && PyErr_Occurred()) {
37990 p->error_indicator = 1;
37991 p->level--;
37992 return NULL;
37993 }
37994 goto done;
37995 }
37996 p->mark = _mark;
37997 D(fprintf(stderr, "%*c%s _tmp_234[%d-%d]: %s failed!\n", p->level, ' ',
37998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
37999 }
38000 _res = NULL;
38001 done:
38002 p->level--;
38003 return _res;
38004 }
38005
38006 // _tmp_235: ',' star_target
38007 static void *
_tmp_235_rule(Parser * p)38008 _tmp_235_rule(Parser *p)
38009 {
38010 if (p->level++ == MAXSTACK) {
38011 p->error_indicator = 1;
38012 PyErr_NoMemory();
38013 }
38014 if (p->error_indicator) {
38015 p->level--;
38016 return NULL;
38017 }
38018 void * _res = NULL;
38019 int _mark = p->mark;
38020 { // ',' star_target
38021 if (p->error_indicator) {
38022 p->level--;
38023 return NULL;
38024 }
38025 D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
38026 Token * _literal;
38027 expr_ty c;
38028 if (
38029 (_literal = _PyPegen_expect_token(p, 12)) // token=','
38030 &&
38031 (c = star_target_rule(p)) // star_target
38032 )
38033 {
38034 D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
38035 _res = c;
38036 if (_res == NULL && PyErr_Occurred()) {
38037 p->error_indicator = 1;
38038 p->level--;
38039 return NULL;
38040 }
38041 goto done;
38042 }
38043 p->mark = _mark;
38044 D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ',
38045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
38046 }
38047 _res = NULL;
38048 done:
38049 p->level--;
38050 return _res;
38051 }
38052
38053 // _tmp_236: star_targets '='
38054 static void *
_tmp_236_rule(Parser * p)38055 _tmp_236_rule(Parser *p)
38056 {
38057 if (p->level++ == MAXSTACK) {
38058 p->error_indicator = 1;
38059 PyErr_NoMemory();
38060 }
38061 if (p->error_indicator) {
38062 p->level--;
38063 return NULL;
38064 }
38065 void * _res = NULL;
38066 int _mark = p->mark;
38067 { // star_targets '='
38068 if (p->error_indicator) {
38069 p->level--;
38070 return NULL;
38071 }
38072 D(fprintf(stderr, "%*c> _tmp_236[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
38073 Token * _literal;
38074 expr_ty star_targets_var;
38075 if (
38076 (star_targets_var = star_targets_rule(p)) // star_targets
38077 &&
38078 (_literal = _PyPegen_expect_token(p, 22)) // token='='
38079 )
38080 {
38081 D(fprintf(stderr, "%*c+ _tmp_236[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
38082 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
38083 goto done;
38084 }
38085 p->mark = _mark;
38086 D(fprintf(stderr, "%*c%s _tmp_236[%d-%d]: %s failed!\n", p->level, ' ',
38087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
38088 }
38089 _res = NULL;
38090 done:
38091 p->level--;
38092 return _res;
38093 }
38094
38095 // _tmp_237: star_targets '='
38096 static void *
_tmp_237_rule(Parser * p)38097 _tmp_237_rule(Parser *p)
38098 {
38099 if (p->level++ == MAXSTACK) {
38100 p->error_indicator = 1;
38101 PyErr_NoMemory();
38102 }
38103 if (p->error_indicator) {
38104 p->level--;
38105 return NULL;
38106 }
38107 void * _res = NULL;
38108 int _mark = p->mark;
38109 { // star_targets '='
38110 if (p->error_indicator) {
38111 p->level--;
38112 return NULL;
38113 }
38114 D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
38115 Token * _literal;
38116 expr_ty star_targets_var;
38117 if (
38118 (star_targets_var = star_targets_rule(p)) // star_targets
38119 &&
38120 (_literal = _PyPegen_expect_token(p, 22)) // token='='
38121 )
38122 {
38123 D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
38124 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
38125 goto done;
38126 }
38127 p->mark = _mark;
38128 D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ',
38129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
38130 }
38131 _res = NULL;
38132 done:
38133 p->level--;
38134 return _res;
38135 }
38136
38137 // _tmp_238: ')' | '**'
38138 static void *
_tmp_238_rule(Parser * p)38139 _tmp_238_rule(Parser *p)
38140 {
38141 if (p->level++ == MAXSTACK) {
38142 p->error_indicator = 1;
38143 PyErr_NoMemory();
38144 }
38145 if (p->error_indicator) {
38146 p->level--;
38147 return NULL;
38148 }
38149 void * _res = NULL;
38150 int _mark = p->mark;
38151 { // ')'
38152 if (p->error_indicator) {
38153 p->level--;
38154 return NULL;
38155 }
38156 D(fprintf(stderr, "%*c> _tmp_238[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
38157 Token * _literal;
38158 if (
38159 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
38160 )
38161 {
38162 D(fprintf(stderr, "%*c+ _tmp_238[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
38163 _res = _literal;
38164 goto done;
38165 }
38166 p->mark = _mark;
38167 D(fprintf(stderr, "%*c%s _tmp_238[%d-%d]: %s failed!\n", p->level, ' ',
38168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
38169 }
38170 { // '**'
38171 if (p->error_indicator) {
38172 p->level--;
38173 return NULL;
38174 }
38175 D(fprintf(stderr, "%*c> _tmp_238[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
38176 Token * _literal;
38177 if (
38178 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
38179 )
38180 {
38181 D(fprintf(stderr, "%*c+ _tmp_238[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
38182 _res = _literal;
38183 goto done;
38184 }
38185 p->mark = _mark;
38186 D(fprintf(stderr, "%*c%s _tmp_238[%d-%d]: %s failed!\n", p->level, ' ',
38187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
38188 }
38189 _res = NULL;
38190 done:
38191 p->level--;
38192 return _res;
38193 }
38194
38195 // _tmp_239: ':' | '**'
38196 static void *
_tmp_239_rule(Parser * p)38197 _tmp_239_rule(Parser *p)
38198 {
38199 if (p->level++ == MAXSTACK) {
38200 p->error_indicator = 1;
38201 PyErr_NoMemory();
38202 }
38203 if (p->error_indicator) {
38204 p->level--;
38205 return NULL;
38206 }
38207 void * _res = NULL;
38208 int _mark = p->mark;
38209 { // ':'
38210 if (p->error_indicator) {
38211 p->level--;
38212 return NULL;
38213 }
38214 D(fprintf(stderr, "%*c> _tmp_239[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
38215 Token * _literal;
38216 if (
38217 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
38218 )
38219 {
38220 D(fprintf(stderr, "%*c+ _tmp_239[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
38221 _res = _literal;
38222 goto done;
38223 }
38224 p->mark = _mark;
38225 D(fprintf(stderr, "%*c%s _tmp_239[%d-%d]: %s failed!\n", p->level, ' ',
38226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
38227 }
38228 { // '**'
38229 if (p->error_indicator) {
38230 p->level--;
38231 return NULL;
38232 }
38233 D(fprintf(stderr, "%*c> _tmp_239[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
38234 Token * _literal;
38235 if (
38236 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
38237 )
38238 {
38239 D(fprintf(stderr, "%*c+ _tmp_239[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
38240 _res = _literal;
38241 goto done;
38242 }
38243 p->mark = _mark;
38244 D(fprintf(stderr, "%*c%s _tmp_239[%d-%d]: %s failed!\n", p->level, ' ',
38245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
38246 }
38247 _res = NULL;
38248 done:
38249 p->level--;
38250 return _res;
38251 }
38252
38253 // _tmp_240: expression ['as' star_target]
38254 static void *
_tmp_240_rule(Parser * p)38255 _tmp_240_rule(Parser *p)
38256 {
38257 if (p->level++ == MAXSTACK) {
38258 p->error_indicator = 1;
38259 PyErr_NoMemory();
38260 }
38261 if (p->error_indicator) {
38262 p->level--;
38263 return NULL;
38264 }
38265 void * _res = NULL;
38266 int _mark = p->mark;
38267 { // expression ['as' star_target]
38268 if (p->error_indicator) {
38269 p->level--;
38270 return NULL;
38271 }
38272 D(fprintf(stderr, "%*c> _tmp_240[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
38273 void *_opt_var;
38274 UNUSED(_opt_var); // Silence compiler warnings
38275 expr_ty expression_var;
38276 if (
38277 (expression_var = expression_rule(p)) // expression
38278 &&
38279 (_opt_var = _tmp_246_rule(p), !p->error_indicator) // ['as' star_target]
38280 )
38281 {
38282 D(fprintf(stderr, "%*c+ _tmp_240[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
38283 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
38284 goto done;
38285 }
38286 p->mark = _mark;
38287 D(fprintf(stderr, "%*c%s _tmp_240[%d-%d]: %s failed!\n", p->level, ' ',
38288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
38289 }
38290 _res = NULL;
38291 done:
38292 p->level--;
38293 return _res;
38294 }
38295
38296 // _tmp_241: expressions ['as' star_target]
38297 static void *
_tmp_241_rule(Parser * p)38298 _tmp_241_rule(Parser *p)
38299 {
38300 if (p->level++ == MAXSTACK) {
38301 p->error_indicator = 1;
38302 PyErr_NoMemory();
38303 }
38304 if (p->error_indicator) {
38305 p->level--;
38306 return NULL;
38307 }
38308 void * _res = NULL;
38309 int _mark = p->mark;
38310 { // expressions ['as' star_target]
38311 if (p->error_indicator) {
38312 p->level--;
38313 return NULL;
38314 }
38315 D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
38316 void *_opt_var;
38317 UNUSED(_opt_var); // Silence compiler warnings
38318 expr_ty expressions_var;
38319 if (
38320 (expressions_var = expressions_rule(p)) // expressions
38321 &&
38322 (_opt_var = _tmp_247_rule(p), !p->error_indicator) // ['as' star_target]
38323 )
38324 {
38325 D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
38326 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
38327 goto done;
38328 }
38329 p->mark = _mark;
38330 D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ',
38331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
38332 }
38333 _res = NULL;
38334 done:
38335 p->level--;
38336 return _res;
38337 }
38338
38339 // _tmp_242: expression ['as' star_target]
38340 static void *
_tmp_242_rule(Parser * p)38341 _tmp_242_rule(Parser *p)
38342 {
38343 if (p->level++ == MAXSTACK) {
38344 p->error_indicator = 1;
38345 PyErr_NoMemory();
38346 }
38347 if (p->error_indicator) {
38348 p->level--;
38349 return NULL;
38350 }
38351 void * _res = NULL;
38352 int _mark = p->mark;
38353 { // expression ['as' star_target]
38354 if (p->error_indicator) {
38355 p->level--;
38356 return NULL;
38357 }
38358 D(fprintf(stderr, "%*c> _tmp_242[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
38359 void *_opt_var;
38360 UNUSED(_opt_var); // Silence compiler warnings
38361 expr_ty expression_var;
38362 if (
38363 (expression_var = expression_rule(p)) // expression
38364 &&
38365 (_opt_var = _tmp_248_rule(p), !p->error_indicator) // ['as' star_target]
38366 )
38367 {
38368 D(fprintf(stderr, "%*c+ _tmp_242[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
38369 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
38370 goto done;
38371 }
38372 p->mark = _mark;
38373 D(fprintf(stderr, "%*c%s _tmp_242[%d-%d]: %s failed!\n", p->level, ' ',
38374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
38375 }
38376 _res = NULL;
38377 done:
38378 p->level--;
38379 return _res;
38380 }
38381
38382 // _tmp_243: expressions ['as' star_target]
38383 static void *
_tmp_243_rule(Parser * p)38384 _tmp_243_rule(Parser *p)
38385 {
38386 if (p->level++ == MAXSTACK) {
38387 p->error_indicator = 1;
38388 PyErr_NoMemory();
38389 }
38390 if (p->error_indicator) {
38391 p->level--;
38392 return NULL;
38393 }
38394 void * _res = NULL;
38395 int _mark = p->mark;
38396 { // expressions ['as' star_target]
38397 if (p->error_indicator) {
38398 p->level--;
38399 return NULL;
38400 }
38401 D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
38402 void *_opt_var;
38403 UNUSED(_opt_var); // Silence compiler warnings
38404 expr_ty expressions_var;
38405 if (
38406 (expressions_var = expressions_rule(p)) // expressions
38407 &&
38408 (_opt_var = _tmp_249_rule(p), !p->error_indicator) // ['as' star_target]
38409 )
38410 {
38411 D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
38412 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
38413 goto done;
38414 }
38415 p->mark = _mark;
38416 D(fprintf(stderr, "%*c%s _tmp_243[%d-%d]: %s failed!\n", p->level, ' ',
38417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
38418 }
38419 _res = NULL;
38420 done:
38421 p->level--;
38422 return _res;
38423 }
38424
38425 // _tmp_244: 'as' NAME
38426 static void *
_tmp_244_rule(Parser * p)38427 _tmp_244_rule(Parser *p)
38428 {
38429 if (p->level++ == MAXSTACK) {
38430 p->error_indicator = 1;
38431 PyErr_NoMemory();
38432 }
38433 if (p->error_indicator) {
38434 p->level--;
38435 return NULL;
38436 }
38437 void * _res = NULL;
38438 int _mark = p->mark;
38439 { // 'as' NAME
38440 if (p->error_indicator) {
38441 p->level--;
38442 return NULL;
38443 }
38444 D(fprintf(stderr, "%*c> _tmp_244[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
38445 Token * _keyword;
38446 expr_ty name_var;
38447 if (
38448 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
38449 &&
38450 (name_var = _PyPegen_name_token(p)) // NAME
38451 )
38452 {
38453 D(fprintf(stderr, "%*c+ _tmp_244[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
38454 _res = _PyPegen_dummy_name(p, _keyword, name_var);
38455 goto done;
38456 }
38457 p->mark = _mark;
38458 D(fprintf(stderr, "%*c%s _tmp_244[%d-%d]: %s failed!\n", p->level, ' ',
38459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
38460 }
38461 _res = NULL;
38462 done:
38463 p->level--;
38464 return _res;
38465 }
38466
38467 // _tmp_245: assignment_expression | expression !':='
38468 static void *
_tmp_245_rule(Parser * p)38469 _tmp_245_rule(Parser *p)
38470 {
38471 if (p->level++ == MAXSTACK) {
38472 p->error_indicator = 1;
38473 PyErr_NoMemory();
38474 }
38475 if (p->error_indicator) {
38476 p->level--;
38477 return NULL;
38478 }
38479 void * _res = NULL;
38480 int _mark = p->mark;
38481 { // assignment_expression
38482 if (p->error_indicator) {
38483 p->level--;
38484 return NULL;
38485 }
38486 D(fprintf(stderr, "%*c> _tmp_245[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
38487 expr_ty assignment_expression_var;
38488 if (
38489 (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression
38490 )
38491 {
38492 D(fprintf(stderr, "%*c+ _tmp_245[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
38493 _res = assignment_expression_var;
38494 goto done;
38495 }
38496 p->mark = _mark;
38497 D(fprintf(stderr, "%*c%s _tmp_245[%d-%d]: %s failed!\n", p->level, ' ',
38498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
38499 }
38500 { // expression !':='
38501 if (p->error_indicator) {
38502 p->level--;
38503 return NULL;
38504 }
38505 D(fprintf(stderr, "%*c> _tmp_245[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
38506 expr_ty expression_var;
38507 if (
38508 (expression_var = expression_rule(p)) // expression
38509 &&
38510 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
38511 )
38512 {
38513 D(fprintf(stderr, "%*c+ _tmp_245[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
38514 _res = expression_var;
38515 goto done;
38516 }
38517 p->mark = _mark;
38518 D(fprintf(stderr, "%*c%s _tmp_245[%d-%d]: %s failed!\n", p->level, ' ',
38519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
38520 }
38521 _res = NULL;
38522 done:
38523 p->level--;
38524 return _res;
38525 }
38526
38527 // _tmp_246: 'as' star_target
38528 static void *
_tmp_246_rule(Parser * p)38529 _tmp_246_rule(Parser *p)
38530 {
38531 if (p->level++ == MAXSTACK) {
38532 p->error_indicator = 1;
38533 PyErr_NoMemory();
38534 }
38535 if (p->error_indicator) {
38536 p->level--;
38537 return NULL;
38538 }
38539 void * _res = NULL;
38540 int _mark = p->mark;
38541 { // 'as' star_target
38542 if (p->error_indicator) {
38543 p->level--;
38544 return NULL;
38545 }
38546 D(fprintf(stderr, "%*c> _tmp_246[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
38547 Token * _keyword;
38548 expr_ty star_target_var;
38549 if (
38550 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
38551 &&
38552 (star_target_var = star_target_rule(p)) // star_target
38553 )
38554 {
38555 D(fprintf(stderr, "%*c+ _tmp_246[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
38556 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
38557 goto done;
38558 }
38559 p->mark = _mark;
38560 D(fprintf(stderr, "%*c%s _tmp_246[%d-%d]: %s failed!\n", p->level, ' ',
38561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
38562 }
38563 _res = NULL;
38564 done:
38565 p->level--;
38566 return _res;
38567 }
38568
38569 // _tmp_247: 'as' star_target
38570 static void *
_tmp_247_rule(Parser * p)38571 _tmp_247_rule(Parser *p)
38572 {
38573 if (p->level++ == MAXSTACK) {
38574 p->error_indicator = 1;
38575 PyErr_NoMemory();
38576 }
38577 if (p->error_indicator) {
38578 p->level--;
38579 return NULL;
38580 }
38581 void * _res = NULL;
38582 int _mark = p->mark;
38583 { // 'as' star_target
38584 if (p->error_indicator) {
38585 p->level--;
38586 return NULL;
38587 }
38588 D(fprintf(stderr, "%*c> _tmp_247[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
38589 Token * _keyword;
38590 expr_ty star_target_var;
38591 if (
38592 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
38593 &&
38594 (star_target_var = star_target_rule(p)) // star_target
38595 )
38596 {
38597 D(fprintf(stderr, "%*c+ _tmp_247[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
38598 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
38599 goto done;
38600 }
38601 p->mark = _mark;
38602 D(fprintf(stderr, "%*c%s _tmp_247[%d-%d]: %s failed!\n", p->level, ' ',
38603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
38604 }
38605 _res = NULL;
38606 done:
38607 p->level--;
38608 return _res;
38609 }
38610
38611 // _tmp_248: 'as' star_target
38612 static void *
_tmp_248_rule(Parser * p)38613 _tmp_248_rule(Parser *p)
38614 {
38615 if (p->level++ == MAXSTACK) {
38616 p->error_indicator = 1;
38617 PyErr_NoMemory();
38618 }
38619 if (p->error_indicator) {
38620 p->level--;
38621 return NULL;
38622 }
38623 void * _res = NULL;
38624 int _mark = p->mark;
38625 { // 'as' star_target
38626 if (p->error_indicator) {
38627 p->level--;
38628 return NULL;
38629 }
38630 D(fprintf(stderr, "%*c> _tmp_248[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
38631 Token * _keyword;
38632 expr_ty star_target_var;
38633 if (
38634 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
38635 &&
38636 (star_target_var = star_target_rule(p)) // star_target
38637 )
38638 {
38639 D(fprintf(stderr, "%*c+ _tmp_248[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
38640 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
38641 goto done;
38642 }
38643 p->mark = _mark;
38644 D(fprintf(stderr, "%*c%s _tmp_248[%d-%d]: %s failed!\n", p->level, ' ',
38645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
38646 }
38647 _res = NULL;
38648 done:
38649 p->level--;
38650 return _res;
38651 }
38652
38653 // _tmp_249: 'as' star_target
38654 static void *
_tmp_249_rule(Parser * p)38655 _tmp_249_rule(Parser *p)
38656 {
38657 if (p->level++ == MAXSTACK) {
38658 p->error_indicator = 1;
38659 PyErr_NoMemory();
38660 }
38661 if (p->error_indicator) {
38662 p->level--;
38663 return NULL;
38664 }
38665 void * _res = NULL;
38666 int _mark = p->mark;
38667 { // 'as' star_target
38668 if (p->error_indicator) {
38669 p->level--;
38670 return NULL;
38671 }
38672 D(fprintf(stderr, "%*c> _tmp_249[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
38673 Token * _keyword;
38674 expr_ty star_target_var;
38675 if (
38676 (_keyword = _PyPegen_expect_token(p, 637)) // token='as'
38677 &&
38678 (star_target_var = star_target_rule(p)) // star_target
38679 )
38680 {
38681 D(fprintf(stderr, "%*c+ _tmp_249[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
38682 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
38683 goto done;
38684 }
38685 p->mark = _mark;
38686 D(fprintf(stderr, "%*c%s _tmp_249[%d-%d]: %s failed!\n", p->level, ' ',
38687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
38688 }
38689 _res = NULL;
38690 done:
38691 p->level--;
38692 return _res;
38693 }
38694
38695 void *
_PyPegen_parse(Parser * p)38696 _PyPegen_parse(Parser *p)
38697 {
38698 // Initialize keywords
38699 p->keywords = reserved_keywords;
38700 p->n_keyword_lists = n_keyword_lists;
38701 p->soft_keywords = soft_keywords;
38702
38703 // Run parser
38704 void *result = NULL;
38705 if (p->start_rule == Py_file_input) {
38706 result = file_rule(p);
38707 } else if (p->start_rule == Py_single_input) {
38708 result = interactive_rule(p);
38709 } else if (p->start_rule == Py_eval_input) {
38710 result = eval_rule(p);
38711 } else if (p->start_rule == Py_func_type_input) {
38712 result = func_type_rule(p);
38713 } else if (p->start_rule == Py_fstring_input) {
38714 result = fstring_rule(p);
38715 }
38716
38717 return result;
38718 }
38719