LCOV - code coverage report
Current view: top level - Parser - parser.c (source / functions) Hit Total Coverage
Test: CPython lcov report Lines: 17421 24435 71.3 %
Date: 2022-07-07 18:19:46 Functions: 488 489 99.8 %

          Line data    Source code
       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 (p->debug) { 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", 634},
      21             :         {"as", 632},
      22             :         {"in", 643},
      23             :         {"or", 574},
      24             :         {"is", 582},
      25             :         {NULL, -1},
      26             :     },
      27             :     (KeywordToken[]) {
      28             :         {"del", 603},
      29             :         {"def", 644},
      30             :         {"for", 642},
      31             :         {"try", 618},
      32             :         {"and", 575},
      33             :         {"not", 581},
      34             :         {NULL, -1},
      35             :     },
      36             :     (KeywordToken[]) {
      37             :         {"from", 572},
      38             :         {"pass", 504},
      39             :         {"with", 612},
      40             :         {"elif", 636},
      41             :         {"else", 637},
      42             :         {"None", 601},
      43             :         {"True", 600},
      44             :         {NULL, -1},
      45             :     },
      46             :     (KeywordToken[]) {
      47             :         {"raise", 522},
      48             :         {"yield", 573},
      49             :         {"break", 508},
      50             :         {"class", 646},
      51             :         {"while", 639},
      52             :         {"False", 602},
      53             :         {NULL, -1},
      54             :     },
      55             :     (KeywordToken[]) {
      56             :         {"return", 519},
      57             :         {"import", 531},
      58             :         {"assert", 526},
      59             :         {"global", 523},
      60             :         {"except", 629},
      61             :         {"lambda", 586},
      62             :         {NULL, -1},
      63             :     },
      64             :     (KeywordToken[]) {
      65             :         {"finally", 625},
      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 _tmp_204_type 1432
     513             : #define _loop0_205_type 1433
     514             : #define _tmp_206_type 1434
     515             : #define _tmp_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 _loop0_216_type 1443
     524             : #define _gather_215_type 1444
     525             : #define _tmp_217_type 1445
     526             : #define _tmp_218_type 1446
     527             : #define _tmp_219_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 _loop1_248_type 1476
     557             : #define _loop1_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 void *_tmp_204_rule(Parser *p);
     992             : static asdl_seq *_loop0_205_rule(Parser *p);
     993             : static void *_tmp_206_rule(Parser *p);
     994             : static void *_tmp_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 asdl_seq *_loop0_216_rule(Parser *p);
    1003             : static asdl_seq *_gather_215_rule(Parser *p);
    1004             : static void *_tmp_217_rule(Parser *p);
    1005             : static void *_tmp_218_rule(Parser *p);
    1006             : static void *_tmp_219_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 asdl_seq *_loop1_248_rule(Parser *p);
    1036             : static asdl_seq *_loop1_249_rule(Parser *p);
    1037             : 
    1038             : 
    1039             : // file: statements? $
    1040             : static mod_ty
    1041       49568 : file_rule(Parser *p)
    1042             : {
    1043       49568 :     if (p->level++ == MAXSTACK) {
    1044           0 :         p->error_indicator = 1;
    1045           0 :         PyErr_NoMemory();
    1046             :     }
    1047       49568 :     if (p->error_indicator) {
    1048         182 :         p->level--;
    1049         182 :         return NULL;
    1050             :     }
    1051       49386 :     mod_ty _res = NULL;
    1052       49386 :     int _mark = p->mark;
    1053             :     { // statements? $
    1054       49386 :         if (p->error_indicator) {
    1055           0 :             p->level--;
    1056           0 :             return NULL;
    1057             :         }
    1058       49386 :         D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
    1059             :         void *a;
    1060             :         Token * endmarker_var;
    1061       49386 :         if (
    1062       49386 :             (a = statements_rule(p), !p->error_indicator)  // statements?
    1063       49006 :             &&
    1064       49006 :             (endmarker_var = _PyPegen_expect_token(p, ENDMARKER))  // token='ENDMARKER'
    1065             :         )
    1066             :         {
    1067       48204 :             D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
    1068       48204 :             _res = _PyPegen_make_module ( p , a );
    1069       48204 :             if (_res == NULL && PyErr_Occurred()) {
    1070           0 :                 p->error_indicator = 1;
    1071           0 :                 p->level--;
    1072           0 :                 return NULL;
    1073             :             }
    1074       48204 :             goto done;
    1075             :         }
    1076        1182 :         p->mark = _mark;
    1077        1182 :         D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
    1078             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
    1079             :     }
    1080        1182 :     _res = NULL;
    1081       49386 :   done:
    1082       49386 :     p->level--;
    1083       49386 :     return _res;
    1084             : }
    1085             : 
    1086             : // interactive: statement_newline
    1087             : static mod_ty
    1088        5080 : interactive_rule(Parser *p)
    1089             : {
    1090        5080 :     if (p->level++ == MAXSTACK) {
    1091           0 :         p->error_indicator = 1;
    1092           0 :         PyErr_NoMemory();
    1093             :     }
    1094        5080 :     if (p->error_indicator) {
    1095          17 :         p->level--;
    1096          17 :         return NULL;
    1097             :     }
    1098        5063 :     mod_ty _res = NULL;
    1099        5063 :     int _mark = p->mark;
    1100             :     { // statement_newline
    1101        5063 :         if (p->error_indicator) {
    1102           0 :             p->level--;
    1103           0 :             return NULL;
    1104             :         }
    1105        5063 :         D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
    1106             :         asdl_stmt_seq* a;
    1107        5063 :         if (
    1108        5063 :             (a = statement_newline_rule(p))  // statement_newline
    1109             :         )
    1110             :         {
    1111        4163 :             D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
    1112        4163 :             _res = _PyAST_Interactive ( a , p -> arena );
    1113        4163 :             if (_res == NULL && PyErr_Occurred()) {
    1114           0 :                 p->error_indicator = 1;
    1115           0 :                 p->level--;
    1116           0 :                 return NULL;
    1117             :             }
    1118        4163 :             goto done;
    1119             :         }
    1120         900 :         p->mark = _mark;
    1121         900 :         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         900 :     _res = NULL;
    1125        5063 :   done:
    1126        5063 :     p->level--;
    1127        5063 :     return _res;
    1128             : }
    1129             : 
    1130             : // eval: expressions NEWLINE* $
    1131             : static mod_ty
    1132       75155 : eval_rule(Parser *p)
    1133             : {
    1134       75155 :     if (p->level++ == MAXSTACK) {
    1135           0 :         p->error_indicator = 1;
    1136           0 :         PyErr_NoMemory();
    1137             :     }
    1138       75155 :     if (p->error_indicator) {
    1139         848 :         p->level--;
    1140         848 :         return NULL;
    1141             :     }
    1142       74307 :     mod_ty _res = NULL;
    1143       74307 :     int _mark = p->mark;
    1144             :     { // expressions NEWLINE* $
    1145       74307 :         if (p->error_indicator) {
    1146           0 :             p->level--;
    1147           0 :             return NULL;
    1148             :         }
    1149       74307 :         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       74307 :         if (
    1154       74307 :             (a = expressions_rule(p))  // expressions
    1155       73421 :             &&
    1156       73421 :             (_loop0_1_var = _loop0_1_rule(p))  // NEWLINE*
    1157       73421 :             &&
    1158       73421 :             (endmarker_var = _PyPegen_expect_token(p, ENDMARKER))  // token='ENDMARKER'
    1159             :         )
    1160             :         {
    1161       73257 :             D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
    1162       73257 :             _res = _PyAST_Expression ( a , p -> arena );
    1163       73257 :             if (_res == NULL && PyErr_Occurred()) {
    1164           0 :                 p->error_indicator = 1;
    1165           0 :                 p->level--;
    1166           0 :                 return NULL;
    1167             :             }
    1168       73257 :             goto done;
    1169             :         }
    1170        1050 :         p->mark = _mark;
    1171        1050 :         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        1050 :     _res = NULL;
    1175       74307 :   done:
    1176       74307 :     p->level--;
    1177       74307 :     return _res;
    1178             : }
    1179             : 
    1180             : // func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
    1181             : static mod_ty
    1182          18 : func_type_rule(Parser *p)
    1183             : {
    1184          18 :     if (p->level++ == MAXSTACK) {
    1185           0 :         p->error_indicator = 1;
    1186           0 :         PyErr_NoMemory();
    1187             :     }
    1188          18 :     if (p->error_indicator) {
    1189           0 :         p->level--;
    1190           0 :         return NULL;
    1191             :     }
    1192          18 :     mod_ty _res = NULL;
    1193          18 :     int _mark = p->mark;
    1194             :     { // '(' type_expressions? ')' '->' expression NEWLINE* $
    1195          18 :         if (p->error_indicator) {
    1196           0 :             p->level--;
    1197           0 :             return NULL;
    1198             :         }
    1199          18 :         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          18 :         if (
    1208          18 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
    1209          18 :             &&
    1210          18 :             (a = type_expressions_rule(p), !p->error_indicator)  // type_expressions?
    1211          18 :             &&
    1212          18 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
    1213          12 :             &&
    1214          12 :             (_literal_2 = _PyPegen_expect_token(p, 51))  // token='->'
    1215          12 :             &&
    1216          12 :             (b = expression_rule(p))  // expression
    1217          12 :             &&
    1218          12 :             (_loop0_2_var = _loop0_2_rule(p))  // NEWLINE*
    1219          12 :             &&
    1220          12 :             (endmarker_var = _PyPegen_expect_token(p, ENDMARKER))  // token='ENDMARKER'
    1221             :         )
    1222             :         {
    1223          12 :             D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
    1224          12 :             _res = _PyAST_FunctionType ( a , b , p -> arena );
    1225          12 :             if (_res == NULL && PyErr_Occurred()) {
    1226           0 :                 p->error_indicator = 1;
    1227           0 :                 p->level--;
    1228           0 :                 return NULL;
    1229             :             }
    1230          12 :             goto done;
    1231             :         }
    1232           6 :         p->mark = _mark;
    1233           6 :         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           6 :     _res = NULL;
    1237          18 :   done:
    1238          18 :     p->level--;
    1239          18 :     return _res;
    1240             : }
    1241             : 
    1242             : // fstring: star_expressions
    1243             : static expr_ty
    1244       96126 : fstring_rule(Parser *p)
    1245             : {
    1246       96126 :     if (p->level++ == MAXSTACK) {
    1247           0 :         p->error_indicator = 1;
    1248           0 :         PyErr_NoMemory();
    1249             :     }
    1250       96126 :     if (p->error_indicator) {
    1251           4 :         p->level--;
    1252           4 :         return NULL;
    1253             :     }
    1254       96122 :     expr_ty _res = NULL;
    1255       96122 :     int _mark = p->mark;
    1256             :     { // star_expressions
    1257       96122 :         if (p->error_indicator) {
    1258           0 :             p->level--;
    1259           0 :             return NULL;
    1260             :         }
    1261       96122 :         D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
    1262             :         expr_ty star_expressions_var;
    1263       96122 :         if (
    1264       96122 :             (star_expressions_var = star_expressions_rule(p))  // star_expressions
    1265             :         )
    1266             :         {
    1267       96094 :             D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
    1268       96094 :             _res = star_expressions_var;
    1269       96094 :             goto done;
    1270             :         }
    1271          28 :         p->mark = _mark;
    1272          28 :         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          28 :     _res = NULL;
    1276       96122 :   done:
    1277       96122 :     p->level--;
    1278       96122 :     return _res;
    1279             : }
    1280             : 
    1281             : // statements: statement+
    1282             : static asdl_stmt_seq*
    1283     1045380 : statements_rule(Parser *p)
    1284             : {
    1285     1045380 :     if (p->level++ == MAXSTACK) {
    1286           0 :         p->error_indicator = 1;
    1287           0 :         PyErr_NoMemory();
    1288             :     }
    1289     1045380 :     if (p->error_indicator) {
    1290           0 :         p->level--;
    1291           0 :         return NULL;
    1292             :     }
    1293     1045380 :     asdl_stmt_seq* _res = NULL;
    1294     1045380 :     int _mark = p->mark;
    1295             :     { // statement+
    1296     1045380 :         if (p->error_indicator) {
    1297           0 :             p->level--;
    1298           0 :             return NULL;
    1299             :         }
    1300     1045380 :         D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
    1301             :         asdl_seq * a;
    1302     1045380 :         if (
    1303     1045380 :             (a = _loop1_3_rule(p))  // statement+
    1304             :         )
    1305             :         {
    1306     1043400 :             D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
    1307     1043400 :             _res = ( asdl_stmt_seq* ) _PyPegen_seq_flatten ( p , a );
    1308     1043400 :             if (_res == NULL && PyErr_Occurred()) {
    1309           0 :                 p->error_indicator = 1;
    1310           0 :                 p->level--;
    1311           0 :                 return NULL;
    1312             :             }
    1313     1043400 :             goto done;
    1314             :         }
    1315        1979 :         p->mark = _mark;
    1316        1979 :         D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
    1317             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
    1318             :     }
    1319        1979 :     _res = NULL;
    1320     1045380 :   done:
    1321     1045380 :     p->level--;
    1322     1045380 :     return _res;
    1323             : }
    1324             : 
    1325             : // statement: compound_stmt | simple_stmts
    1326             : static asdl_stmt_seq*
    1327     4057380 : statement_rule(Parser *p)
    1328             : {
    1329     4057380 :     if (p->level++ == MAXSTACK) {
    1330           0 :         p->error_indicator = 1;
    1331           0 :         PyErr_NoMemory();
    1332             :     }
    1333     4057380 :     if (p->error_indicator) {
    1334           0 :         p->level--;
    1335           0 :         return NULL;
    1336             :     }
    1337     4057380 :     asdl_stmt_seq* _res = NULL;
    1338     4057380 :     int _mark = p->mark;
    1339             :     { // compound_stmt
    1340     4057380 :         if (p->error_indicator) {
    1341           0 :             p->level--;
    1342           0 :             return NULL;
    1343             :         }
    1344     4057380 :         D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
    1345             :         stmt_ty a;
    1346     4057380 :         if (
    1347     4057380 :             (a = compound_stmt_rule(p))  // compound_stmt
    1348             :         )
    1349             :         {
    1350     1050740 :             D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
    1351     1050740 :             _res = ( asdl_stmt_seq* ) _PyPegen_singleton_seq ( p , a );
    1352     1050740 :             if (_res == NULL && PyErr_Occurred()) {
    1353           0 :                 p->error_indicator = 1;
    1354           0 :                 p->level--;
    1355           0 :                 return NULL;
    1356             :             }
    1357     1050740 :             goto done;
    1358             :         }
    1359     3006640 :         p->mark = _mark;
    1360     3006640 :         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     3006640 :         if (p->error_indicator) {
    1365         185 :             p->level--;
    1366         185 :             return NULL;
    1367             :         }
    1368     3006450 :         D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
    1369             :         asdl_stmt_seq* a;
    1370     3006450 :         if (
    1371     3006450 :             (a = (asdl_stmt_seq*)simple_stmts_rule(p))  // simple_stmts
    1372             :         )
    1373             :         {
    1374     1961260 :             D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
    1375     1961260 :             _res = a;
    1376     1961260 :             if (_res == NULL && PyErr_Occurred()) {
    1377           0 :                 p->error_indicator = 1;
    1378           0 :                 p->level--;
    1379           0 :                 return NULL;
    1380             :             }
    1381     1961260 :             goto done;
    1382             :         }
    1383     1045190 :         p->mark = _mark;
    1384     1045190 :         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     1045190 :     _res = NULL;
    1388     4057190 :   done:
    1389     4057190 :     p->level--;
    1390     4057190 :     return _res;
    1391             : }
    1392             : 
    1393             : // statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
    1394             : static asdl_stmt_seq*
    1395        5063 : statement_newline_rule(Parser *p)
    1396             : {
    1397        5063 :     if (p->level++ == MAXSTACK) {
    1398           0 :         p->error_indicator = 1;
    1399           0 :         PyErr_NoMemory();
    1400             :     }
    1401        5063 :     if (p->error_indicator) {
    1402           0 :         p->level--;
    1403           0 :         return NULL;
    1404             :     }
    1405        5063 :     asdl_stmt_seq* _res = NULL;
    1406        5063 :     int _mark = p->mark;
    1407        5063 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    1408           0 :         p->error_indicator = 1;
    1409           0 :         p->level--;
    1410           0 :         return NULL;
    1411             :     }
    1412        5063 :     int _start_lineno = p->tokens[_mark]->lineno;
    1413             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    1414        5063 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    1415             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    1416             :     { // compound_stmt NEWLINE
    1417        5063 :         if (p->error_indicator) {
    1418           0 :             p->level--;
    1419           0 :             return NULL;
    1420             :         }
    1421        5063 :         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        5063 :         if (
    1425        5063 :             (a = compound_stmt_rule(p))  // compound_stmt
    1426         628 :             &&
    1427         628 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
    1428             :         )
    1429             :         {
    1430         596 :             D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
    1431         596 :             _res = ( asdl_stmt_seq* ) _PyPegen_singleton_seq ( p , a );
    1432         596 :             if (_res == NULL && PyErr_Occurred()) {
    1433           0 :                 p->error_indicator = 1;
    1434           0 :                 p->level--;
    1435           0 :                 return NULL;
    1436             :             }
    1437         596 :             goto done;
    1438             :         }
    1439        4467 :         p->mark = _mark;
    1440        4467 :         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        4467 :         if (p->error_indicator) {
    1445         159 :             p->level--;
    1446         159 :             return NULL;
    1447             :         }
    1448        4308 :         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        4308 :         if (
    1451        4308 :             (simple_stmts_var = simple_stmts_rule(p))  // simple_stmts
    1452             :         )
    1453             :         {
    1454        3565 :             D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
    1455        3565 :             _res = simple_stmts_var;
    1456        3565 :             goto done;
    1457             :         }
    1458         743 :         p->mark = _mark;
    1459         743 :         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         743 :         if (p->error_indicator) {
    1464         245 :             p->level--;
    1465         245 :             return NULL;
    1466             :         }
    1467         498 :         D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
    1468             :         Token * newline_var;
    1469         498 :         if (
    1470         498 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
    1471             :         )
    1472             :         {
    1473           2 :             D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
    1474           2 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    1475           2 :             if (_token == NULL) {
    1476           0 :                 p->level--;
    1477           0 :                 return NULL;
    1478             :             }
    1479           2 :             int _end_lineno = _token->end_lineno;
    1480             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    1481           2 :             int _end_col_offset = _token->end_col_offset;
    1482             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    1483           2 :             _res = ( asdl_stmt_seq* ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
    1484           2 :             if (_res == NULL && PyErr_Occurred()) {
    1485           0 :                 p->error_indicator = 1;
    1486           0 :                 p->level--;
    1487           0 :                 return NULL;
    1488             :             }
    1489           2 :             goto done;
    1490             :         }
    1491         496 :         p->mark = _mark;
    1492         496 :         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         496 :         if (p->error_indicator) {
    1497           0 :             p->level--;
    1498           0 :             return NULL;
    1499             :         }
    1500         496 :         D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
    1501             :         Token * endmarker_var;
    1502         496 :         if (
    1503         496 :             (endmarker_var = _PyPegen_expect_token(p, ENDMARKER))  // token='ENDMARKER'
    1504             :         )
    1505             :         {
    1506          14 :             D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
    1507          14 :             _res = _PyPegen_interactive_exit ( p );
    1508          14 :             if (_res == NULL && PyErr_Occurred()) {
    1509           0 :                 p->error_indicator = 1;
    1510           0 :                 p->level--;
    1511           0 :                 return NULL;
    1512             :             }
    1513          14 :             goto done;
    1514             :         }
    1515         482 :         p->mark = _mark;
    1516         482 :         D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
    1517             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
    1518             :     }
    1519         482 :     _res = NULL;
    1520        4659 :   done:
    1521        4659 :     p->level--;
    1522        4659 :     return _res;
    1523             : }
    1524             : 
    1525             : // simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
    1526             : static asdl_stmt_seq*
    1527     3222740 : simple_stmts_rule(Parser *p)
    1528             : {
    1529     3222740 :     if (p->level++ == MAXSTACK) {
    1530           0 :         p->error_indicator = 1;
    1531           0 :         PyErr_NoMemory();
    1532             :     }
    1533     3222740 :     if (p->error_indicator) {
    1534           0 :         p->level--;
    1535           0 :         return NULL;
    1536             :     }
    1537     3222740 :     asdl_stmt_seq* _res = NULL;
    1538     3222740 :     int _mark = p->mark;
    1539             :     { // simple_stmt !';' NEWLINE
    1540     3222740 :         if (p->error_indicator) {
    1541           0 :             p->level--;
    1542           0 :             return NULL;
    1543             :         }
    1544     3222740 :         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     3222740 :         if (
    1548     3222740 :             (a = simple_stmt_rule(p))  // simple_stmt
    1549     2177010 :             &&
    1550     2177010 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13)  // token=';'
    1551     2174880 :             &&
    1552     2174880 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
    1553             :         )
    1554             :         {
    1555     2174330 :             D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE"));
    1556     2174330 :             _res = ( asdl_stmt_seq* ) _PyPegen_singleton_seq ( p , a );
    1557     2174330 :             if (_res == NULL && PyErr_Occurred()) {
    1558           0 :                 p->error_indicator = 1;
    1559           0 :                 p->level--;
    1560           0 :                 return NULL;
    1561             :             }
    1562     2174330 :             goto done;
    1563             :         }
    1564     1048400 :         p->mark = _mark;
    1565     1048400 :         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     1048400 :         if (p->error_indicator) {
    1570         475 :             p->level--;
    1571         475 :             return NULL;
    1572             :         }
    1573     1047930 :         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     1047930 :         if (
    1579     1047930 :             (a = (asdl_stmt_seq*)_gather_4_rule(p))  // ';'.simple_stmt+
    1580        2679 :             &&
    1581        2679 :             (_opt_var = _PyPegen_expect_token(p, 13), !p->error_indicator)  // ';'?
    1582        2677 :             &&
    1583        2677 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
    1584             :         )
    1585             :         {
    1586        2119 :             D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
    1587        2119 :             _res = a;
    1588        2119 :             if (_res == NULL && PyErr_Occurred()) {
    1589           0 :                 p->error_indicator = 1;
    1590           0 :                 p->level--;
    1591           0 :                 return NULL;
    1592             :             }
    1593        2119 :             goto done;
    1594             :         }
    1595     1045810 :         p->mark = _mark;
    1596     1045810 :         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     1045810 :     _res = NULL;
    1600     3222260 :   done:
    1601     3222260 :     p->level--;
    1602     3222260 :     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
    1620     4278360 : simple_stmt_rule(Parser *p)
    1621             : {
    1622     4278360 :     if (p->level++ == MAXSTACK) {
    1623           0 :         p->error_indicator = 1;
    1624           0 :         PyErr_NoMemory();
    1625             :     }
    1626     4278360 :     if (p->error_indicator) {
    1627           0 :         p->level--;
    1628           0 :         return NULL;
    1629             :     }
    1630     4278360 :     stmt_ty _res = NULL;
    1631     4278360 :     if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
    1632     1047930 :         p->level--;
    1633     1047930 :         return _res;
    1634             :     }
    1635     3230430 :     int _mark = p->mark;
    1636     3230430 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    1637           0 :         p->error_indicator = 1;
    1638           0 :         p->level--;
    1639           0 :         return NULL;
    1640             :     }
    1641     3230430 :     int _start_lineno = p->tokens[_mark]->lineno;
    1642             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    1643     3230430 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    1644             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    1645             :     { // assignment
    1646     3230430 :         if (p->error_indicator) {
    1647           0 :             p->level--;
    1648           0 :             return NULL;
    1649             :         }
    1650     3230430 :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
    1651             :         stmt_ty assignment_var;
    1652     3230430 :         if (
    1653     3230430 :             (assignment_var = assignment_rule(p))  // assignment
    1654             :         )
    1655             :         {
    1656      845056 :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
    1657      845056 :             _res = assignment_var;
    1658      845056 :             goto done;
    1659             :         }
    1660     2385380 :         p->mark = _mark;
    1661     2385380 :         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     2385380 :         if (p->error_indicator) {
    1666         411 :             p->level--;
    1667         411 :             return NULL;
    1668             :         }
    1669     2384960 :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
    1670             :         expr_ty e;
    1671     2384960 :         if (
    1672     2384960 :             (e = star_expressions_rule(p))  // star_expressions
    1673             :         )
    1674             :         {
    1675      862754 :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
    1676      862754 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    1677      862754 :             if (_token == NULL) {
    1678           0 :                 p->level--;
    1679           0 :                 return NULL;
    1680             :             }
    1681      862754 :             int _end_lineno = _token->end_lineno;
    1682             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    1683      862754 :             int _end_col_offset = _token->end_col_offset;
    1684             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    1685      862754 :             _res = _PyAST_Expr ( e , EXTRA );
    1686      862754 :             if (_res == NULL && PyErr_Occurred()) {
    1687           0 :                 p->error_indicator = 1;
    1688           0 :                 p->level--;
    1689           0 :                 return NULL;
    1690             :             }
    1691      862754 :             goto done;
    1692             :         }
    1693     1522210 :         p->mark = _mark;
    1694     1522210 :         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     1522210 :         if (p->error_indicator) {
    1699          14 :             p->level--;
    1700          14 :             return NULL;
    1701             :         }
    1702     1522200 :         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     1522200 :         if (
    1705     1522200 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 519)  // token='return'
    1706      241295 :             &&
    1707      241295 :             (return_stmt_var = return_stmt_rule(p))  // return_stmt
    1708             :         )
    1709             :         {
    1710      241294 :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
    1711      241294 :             _res = return_stmt_var;
    1712      241294 :             goto done;
    1713             :         }
    1714     1280900 :         p->mark = _mark;
    1715     1280900 :         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     1280900 :         if (p->error_indicator) {
    1720           1 :             p->level--;
    1721           1 :             return NULL;
    1722             :         }
    1723     1280900 :         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     1280900 :         if (
    1726     1280900 :             _PyPegen_lookahead(1, _tmp_6_rule, p)
    1727       91360 :             &&
    1728       91360 :             (import_stmt_var = import_stmt_rule(p))  // import_stmt
    1729             :         )
    1730             :         {
    1731       91304 :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
    1732       91304 :             _res = import_stmt_var;
    1733       91304 :             goto done;
    1734             :         }
    1735     1189600 :         p->mark = _mark;
    1736     1189600 :         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     1189600 :         if (p->error_indicator) {
    1741          21 :             p->level--;
    1742          21 :             return NULL;
    1743             :         }
    1744     1189580 :         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     1189580 :         if (
    1747     1189580 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 522)  // token='raise'
    1748       61395 :             &&
    1749       61395 :             (raise_stmt_var = raise_stmt_rule(p))  // raise_stmt
    1750             :         )
    1751             :         {
    1752       61395 :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
    1753       61395 :             _res = raise_stmt_var;
    1754       61395 :             goto done;
    1755             :         }
    1756     1128180 :         p->mark = _mark;
    1757     1128180 :         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     1128180 :         if (p->error_indicator) {
    1762           0 :             p->level--;
    1763           0 :             return NULL;
    1764             :         }
    1765     1128180 :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
    1766             :         Token * _keyword;
    1767     1128180 :         if (
    1768     1128180 :             (_keyword = _PyPegen_expect_token(p, 504))  // token='pass'
    1769             :         )
    1770             :         {
    1771       27351 :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
    1772       27351 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    1773       27351 :             if (_token == NULL) {
    1774           0 :                 p->level--;
    1775           0 :                 return NULL;
    1776             :             }
    1777       27351 :             int _end_lineno = _token->end_lineno;
    1778             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    1779       27351 :             int _end_col_offset = _token->end_col_offset;
    1780             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    1781       27351 :             _res = _PyAST_Pass ( EXTRA );
    1782       27351 :             if (_res == NULL && PyErr_Occurred()) {
    1783           0 :                 p->error_indicator = 1;
    1784           0 :                 p->level--;
    1785           0 :                 return NULL;
    1786             :             }
    1787       27351 :             goto done;
    1788             :         }
    1789     1100830 :         p->mark = _mark;
    1790     1100830 :         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     1100830 :         if (p->error_indicator) {
    1795           0 :             p->level--;
    1796           0 :             return NULL;
    1797             :         }
    1798     1100830 :         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     1100830 :         if (
    1801     1100830 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 603)  // token='del'
    1802        8979 :             &&
    1803        8979 :             (del_stmt_var = del_stmt_rule(p))  // del_stmt
    1804             :         )
    1805             :         {
    1806        8899 :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
    1807        8899 :             _res = del_stmt_var;
    1808        8899 :             goto done;
    1809             :         }
    1810     1091930 :         p->mark = _mark;
    1811     1091930 :         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     1091930 :         if (p->error_indicator) {
    1816          30 :             p->level--;
    1817          30 :             return NULL;
    1818             :         }
    1819     1091900 :         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     1091900 :         if (
    1822     1091900 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 573)  // token='yield'
    1823       15365 :             &&
    1824       15365 :             (yield_stmt_var = yield_stmt_rule(p))  // yield_stmt
    1825             :         )
    1826             :         {
    1827       15365 :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
    1828       15365 :             _res = yield_stmt_var;
    1829       15365 :             goto done;
    1830             :         }
    1831     1076540 :         p->mark = _mark;
    1832     1076540 :         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     1076540 :         if (p->error_indicator) {
    1837           0 :             p->level--;
    1838           0 :             return NULL;
    1839             :         }
    1840     1076540 :         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     1076540 :         if (
    1843     1076540 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 526)  // token='assert'
    1844        9782 :             &&
    1845        9782 :             (assert_stmt_var = assert_stmt_rule(p))  // assert_stmt
    1846             :         )
    1847             :         {
    1848        9780 :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
    1849        9780 :             _res = assert_stmt_var;
    1850        9780 :             goto done;
    1851             :         }
    1852     1066760 :         p->mark = _mark;
    1853     1066760 :         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     1066760 :         if (p->error_indicator) {
    1858           0 :             p->level--;
    1859           0 :             return NULL;
    1860             :         }
    1861     1066760 :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
    1862             :         Token * _keyword;
    1863     1066760 :         if (
    1864     1066760 :             (_keyword = _PyPegen_expect_token(p, 508))  // token='break'
    1865             :         )
    1866             :         {
    1867        9899 :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
    1868        9899 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    1869        9899 :             if (_token == NULL) {
    1870           0 :                 p->level--;
    1871           0 :                 return NULL;
    1872             :             }
    1873        9899 :             int _end_lineno = _token->end_lineno;
    1874             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    1875        9899 :             int _end_col_offset = _token->end_col_offset;
    1876             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    1877        9899 :             _res = _PyAST_Break ( EXTRA );
    1878        9899 :             if (_res == NULL && PyErr_Occurred()) {
    1879           0 :                 p->error_indicator = 1;
    1880           0 :                 p->level--;
    1881           0 :                 return NULL;
    1882             :             }
    1883        9899 :             goto done;
    1884             :         }
    1885     1056860 :         p->mark = _mark;
    1886     1056860 :         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     1056860 :         if (p->error_indicator) {
    1891           0 :             p->level--;
    1892           0 :             return NULL;
    1893             :         }
    1894     1056860 :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
    1895             :         Token * _keyword;
    1896     1056860 :         if (
    1897     1056860 :             (_keyword = _PyPegen_expect_token(p, 509))  // token='continue'
    1898             :         )
    1899             :         {
    1900        8710 :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
    1901        8710 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    1902        8710 :             if (_token == NULL) {
    1903           0 :                 p->level--;
    1904           0 :                 return NULL;
    1905             :             }
    1906        8710 :             int _end_lineno = _token->end_lineno;
    1907             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    1908        8710 :             int _end_col_offset = _token->end_col_offset;
    1909             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    1910        8710 :             _res = _PyAST_Continue ( EXTRA );
    1911        8710 :             if (_res == NULL && PyErr_Occurred()) {
    1912           0 :                 p->error_indicator = 1;
    1913           0 :                 p->level--;
    1914           0 :                 return NULL;
    1915             :             }
    1916        8710 :             goto done;
    1917             :         }
    1918     1048150 :         p->mark = _mark;
    1919     1048150 :         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     1048150 :         if (p->error_indicator) {
    1924           0 :             p->level--;
    1925           0 :             return NULL;
    1926             :         }
    1927     1048150 :         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     1048150 :         if (
    1930     1048150 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 523)  // token='global'
    1931        1841 :             &&
    1932        1841 :             (global_stmt_var = global_stmt_rule(p))  // global_stmt
    1933             :         )
    1934             :         {
    1935        1839 :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
    1936        1839 :             _res = global_stmt_var;
    1937        1839 :             goto done;
    1938             :         }
    1939     1046310 :         p->mark = _mark;
    1940     1046310 :         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     1046310 :         if (p->error_indicator) {
    1945           0 :             p->level--;
    1946           0 :             return NULL;
    1947             :         }
    1948     1046310 :         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     1046310 :         if (
    1951     1046310 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 524)  // token='nonlocal'
    1952         929 :             &&
    1953         929 :             (nonlocal_stmt_var = nonlocal_stmt_rule(p))  // nonlocal_stmt
    1954             :         )
    1955             :         {
    1956         927 :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
    1957         927 :             _res = nonlocal_stmt_var;
    1958         927 :             goto done;
    1959             :         }
    1960     1045380 :         p->mark = _mark;
    1961     1045380 :         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     1045380 :     _res = NULL;
    1965     3229960 :   done:
    1966     3229960 :     _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
    1967     3229960 :     p->level--;
    1968     3229960 :     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
    1981     4062440 : compound_stmt_rule(Parser *p)
    1982             : {
    1983     4062440 :     if (p->level++ == MAXSTACK) {
    1984           0 :         p->error_indicator = 1;
    1985           0 :         PyErr_NoMemory();
    1986             :     }
    1987     4062440 :     if (p->error_indicator) {
    1988           0 :         p->level--;
    1989           0 :         return NULL;
    1990             :     }
    1991     4062440 :     stmt_ty _res = NULL;
    1992     4062440 :     int _mark = p->mark;
    1993             :     { // &('def' | '@' | ASYNC) function_def
    1994     4062440 :         if (p->error_indicator) {
    1995           0 :             p->level--;
    1996           0 :             return NULL;
    1997             :         }
    1998     4062440 :         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     4062440 :         if (
    2001     4062440 :             _PyPegen_lookahead(1, _tmp_7_rule, p)
    2002      346581 :             &&
    2003      346581 :             (function_def_var = function_def_rule(p))  // function_def
    2004             :         )
    2005             :         {
    2006      342386 :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
    2007      342386 :             _res = function_def_var;
    2008      342386 :             goto done;
    2009             :         }
    2010     3720060 :         p->mark = _mark;
    2011     3720060 :         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     3720060 :         if (p->error_indicator) {
    2016         204 :             p->level--;
    2017         204 :             return NULL;
    2018             :         }
    2019     3719850 :         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     3719850 :         if (
    2022     3719850 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 634)  // token='if'
    2023      489180 :             &&
    2024      489180 :             (if_stmt_var = if_stmt_rule(p))  // if_stmt
    2025             :         )
    2026             :         {
    2027      489089 :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
    2028      489089 :             _res = if_stmt_var;
    2029      489089 :             goto done;
    2030             :         }
    2031     3230760 :         p->mark = _mark;
    2032     3230760 :         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     3230760 :         if (p->error_indicator) {
    2037          30 :             p->level--;
    2038          30 :             return NULL;
    2039             :         }
    2040     3230730 :         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     3230730 :         if (
    2043     3230730 :             _PyPegen_lookahead(1, _tmp_8_rule, p)
    2044       56811 :             &&
    2045       56811 :             (class_def_var = class_def_rule(p))  // class_def
    2046             :         )
    2047             :         {
    2048       56770 :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
    2049       56770 :             _res = class_def_var;
    2050       56770 :             goto done;
    2051             :         }
    2052     3173960 :         p->mark = _mark;
    2053     3173960 :         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     3173960 :         if (p->error_indicator) {
    2058           8 :             p->level--;
    2059           8 :             return NULL;
    2060             :         }
    2061     3173960 :         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     3173960 :         if (
    2064     3173960 :             _PyPegen_lookahead(1, _tmp_9_rule, p)
    2065       39289 :             &&
    2066       39289 :             (with_stmt_var = with_stmt_rule(p))  // with_stmt
    2067             :         )
    2068             :         {
    2069       38954 :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
    2070       38954 :             _res = with_stmt_var;
    2071       38954 :             goto done;
    2072             :         }
    2073     3135000 :         p->mark = _mark;
    2074     3135000 :         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     3135000 :         if (p->error_indicator) {
    2079          27 :             p->level--;
    2080          27 :             return NULL;
    2081             :         }
    2082     3134970 :         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     3134970 :         if (
    2085     3134970 :             _PyPegen_lookahead(1, _tmp_10_rule, p)
    2086       61778 :             &&
    2087       61778 :             (for_stmt_var = for_stmt_rule(p))  // for_stmt
    2088             :         )
    2089             :         {
    2090       61651 :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
    2091       61651 :             _res = for_stmt_var;
    2092       61651 :             goto done;
    2093             :         }
    2094     3073320 :         p->mark = _mark;
    2095     3073320 :         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     3073320 :         if (p->error_indicator) {
    2100          17 :             p->level--;
    2101          17 :             return NULL;
    2102             :         }
    2103     3073310 :         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     3073310 :         if (
    2106     3073310 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 618)  // token='try'
    2107       49660 :             &&
    2108       49660 :             (try_stmt_var = try_stmt_rule(p))  // try_stmt
    2109             :         )
    2110             :         {
    2111       49563 :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
    2112       49563 :             _res = try_stmt_var;
    2113       49563 :             goto done;
    2114             :         }
    2115     3023740 :         p->mark = _mark;
    2116     3023740 :         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     3023740 :         if (p->error_indicator) {
    2121          35 :             p->level--;
    2122          35 :             return NULL;
    2123             :         }
    2124     3023710 :         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     3023710 :         if (
    2127     3023710 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 639)  // token='while'
    2128       11785 :             &&
    2129       11785 :             (while_stmt_var = while_stmt_rule(p))  // while_stmt
    2130             :         )
    2131             :         {
    2132       11737 :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
    2133       11737 :             _res = while_stmt_var;
    2134       11737 :             goto done;
    2135             :         }
    2136     3011970 :         p->mark = _mark;
    2137     3011970 :         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     3011970 :         if (p->error_indicator) {
    2142           4 :             p->level--;
    2143           4 :             return NULL;
    2144             :         }
    2145     3011970 :         D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
    2146             :         stmt_ty match_stmt_var;
    2147     3011970 :         if (
    2148     3011970 :             (match_stmt_var = match_stmt_rule(p))  // match_stmt
    2149             :         )
    2150             :         {
    2151        1218 :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
    2152        1218 :             _res = match_stmt_var;
    2153        1218 :             goto done;
    2154             :         }
    2155     3010750 :         p->mark = _mark;
    2156     3010750 :         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     3010750 :     _res = NULL;
    2160     4062120 :   done:
    2161     4062120 :     p->level--;
    2162     4062120 :     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
    2172     3230430 : assignment_rule(Parser *p)
    2173             : {
    2174     3230430 :     if (p->level++ == MAXSTACK) {
    2175           0 :         p->error_indicator = 1;
    2176           0 :         PyErr_NoMemory();
    2177             :     }
    2178     3230430 :     if (p->error_indicator) {
    2179           0 :         p->level--;
    2180           0 :         return NULL;
    2181             :     }
    2182     3230430 :     stmt_ty _res = NULL;
    2183     3230430 :     int _mark = p->mark;
    2184     3230430 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    2185           0 :         p->error_indicator = 1;
    2186           0 :         p->level--;
    2187           0 :         return NULL;
    2188             :     }
    2189     3230430 :     int _start_lineno = p->tokens[_mark]->lineno;
    2190             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    2191     3230430 :     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     3230430 :         if (p->error_indicator) {
    2195           0 :             p->level--;
    2196           0 :             return NULL;
    2197             :         }
    2198     3230430 :         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     3230430 :         if (
    2204     3230430 :             (a = _PyPegen_name_token(p))  // NAME
    2205     1581300 :             &&
    2206     1581300 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    2207        9490 :             &&
    2208        9490 :             (b = expression_rule(p))  // expression
    2209        9486 :             &&
    2210        9486 :             (c = _tmp_11_rule(p), !p->error_indicator)  // ['=' annotated_rhs]
    2211             :         )
    2212             :         {
    2213        9486 :             D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
    2214        9486 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    2215        9486 :             if (_token == NULL) {
    2216           0 :                 p->level--;
    2217           0 :                 return NULL;
    2218             :             }
    2219        9486 :             int _end_lineno = _token->end_lineno;
    2220             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    2221        9486 :             int _end_col_offset = _token->end_col_offset;
    2222             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    2223        9486 :             _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        9486 :             if (_res == NULL && PyErr_Occurred()) {
    2225           0 :                 p->error_indicator = 1;
    2226           0 :                 p->level--;
    2227           0 :                 return NULL;
    2228             :             }
    2229        9486 :             goto done;
    2230             :         }
    2231     3220950 :         p->mark = _mark;
    2232     3220950 :         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     3220950 :         if (p->error_indicator) {
    2237           3 :             p->level--;
    2238           3 :             return NULL;
    2239             :         }
    2240     3220940 :         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     3220940 :         if (
    2246     3220940 :             (a = _tmp_12_rule(p))  // '(' single_target ')' | single_subscript_attribute_target
    2247      178922 :             &&
    2248      178922 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    2249        1969 :             &&
    2250        1969 :             (b = expression_rule(p))  // expression
    2251        1969 :             &&
    2252        1969 :             (c = _tmp_13_rule(p), !p->error_indicator)  // ['=' annotated_rhs]
    2253             :         )
    2254             :         {
    2255        1969 :             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        1969 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    2257        1969 :             if (_token == NULL) {
    2258           0 :                 p->level--;
    2259           0 :                 return NULL;
    2260             :             }
    2261        1969 :             int _end_lineno = _token->end_lineno;
    2262             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    2263        1969 :             int _end_col_offset = _token->end_col_offset;
    2264             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    2265        1969 :             _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
    2266        1969 :             if (_res == NULL && PyErr_Occurred()) {
    2267           0 :                 p->error_indicator = 1;
    2268           0 :                 p->level--;
    2269           0 :                 return NULL;
    2270             :             }
    2271        1969 :             goto done;
    2272             :         }
    2273     3218970 :         p->mark = _mark;
    2274     3218970 :         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     3218970 :         if (p->error_indicator) {
    2279         223 :             p->level--;
    2280         223 :             return NULL;
    2281             :         }
    2282     3218750 :         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     3218750 :         if (
    2287     3218750 :             (a = (asdl_expr_seq*)_loop1_14_rule(p))  // ((star_targets '='))+
    2288      807926 :             &&
    2289      807926 :             (b = _tmp_15_rule(p))  // yield_expr | star_expressions
    2290      807910 :             &&
    2291      807910 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22)  // token='='
    2292      807906 :             &&
    2293      807906 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    2294             :         )
    2295             :         {
    2296      807906 :             D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
    2297      807906 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    2298      807906 :             if (_token == NULL) {
    2299           0 :                 p->level--;
    2300           0 :                 return NULL;
    2301             :             }
    2302      807906 :             int _end_lineno = _token->end_lineno;
    2303             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    2304      807906 :             int _end_col_offset = _token->end_col_offset;
    2305             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    2306      807906 :             _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
    2307      807906 :             if (_res == NULL && PyErr_Occurred()) {
    2308           0 :                 p->error_indicator = 1;
    2309           0 :                 p->level--;
    2310           0 :                 return NULL;
    2311             :             }
    2312      807906 :             goto done;
    2313             :         }
    2314     2410840 :         p->mark = _mark;
    2315     2410840 :         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     2410840 :         if (p->error_indicator) {
    2320          41 :             p->level--;
    2321          41 :             return NULL;
    2322             :         }
    2323     2410800 :         D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
    2324     2410800 :         int _cut_var = 0;
    2325             :         expr_ty a;
    2326             :         AugOperator* b;
    2327             :         void *c;
    2328     2410800 :         if (
    2329     2410800 :             (a = single_target_rule(p))  // single_target
    2330      763640 :             &&
    2331      763640 :             (b = augassign_rule(p))  // augassign
    2332             :             &&
    2333       25695 :             (_cut_var = 1)
    2334       25695 :             &&
    2335       25695 :             (c = _tmp_16_rule(p))  // yield_expr | star_expressions
    2336             :         )
    2337             :         {
    2338       25695 :             D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
    2339       25695 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    2340       25695 :             if (_token == NULL) {
    2341           0 :                 p->level--;
    2342           0 :                 return NULL;
    2343             :             }
    2344       25695 :             int _end_lineno = _token->end_lineno;
    2345             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    2346       25695 :             int _end_col_offset = _token->end_col_offset;
    2347             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    2348       25695 :             _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
    2349       25695 :             if (_res == NULL && PyErr_Occurred()) {
    2350           0 :                 p->error_indicator = 1;
    2351           0 :                 p->level--;
    2352           0 :                 return NULL;
    2353             :             }
    2354       25695 :             goto done;
    2355             :         }
    2356     2385110 :         p->mark = _mark;
    2357     2385110 :         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     2385110 :         if (_cut_var) {
    2360           0 :             p->level--;
    2361           0 :             return NULL;
    2362             :         }
    2363             :     }
    2364     2385110 :     if (p->call_invalid_rules) { // invalid_assignment
    2365         901 :         if (p->error_indicator) {
    2366           0 :             p->level--;
    2367           0 :             return NULL;
    2368             :         }
    2369         901 :         D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
    2370             :         void *invalid_assignment_var;
    2371         901 :         if (
    2372         901 :             (invalid_assignment_var = invalid_assignment_rule(p))  // invalid_assignment
    2373             :         )
    2374             :         {
    2375           0 :             D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
    2376           0 :             _res = invalid_assignment_var;
    2377           0 :             goto done;
    2378             :         }
    2379         901 :         p->mark = _mark;
    2380         901 :         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     2385110 :     _res = NULL;
    2384     3230160 :   done:
    2385     3230160 :     p->level--;
    2386     3230160 :     return _res;
    2387             : }
    2388             : 
    2389             : // annotated_rhs: yield_expr | star_expressions
    2390             : static expr_ty
    2391        7608 : annotated_rhs_rule(Parser *p)
    2392             : {
    2393        7608 :     if (p->level++ == MAXSTACK) {
    2394           0 :         p->error_indicator = 1;
    2395           0 :         PyErr_NoMemory();
    2396             :     }
    2397        7608 :     if (p->error_indicator) {
    2398           0 :         p->level--;
    2399           0 :         return NULL;
    2400             :     }
    2401        7608 :     expr_ty _res = NULL;
    2402        7608 :     int _mark = p->mark;
    2403             :     { // yield_expr
    2404        7608 :         if (p->error_indicator) {
    2405           0 :             p->level--;
    2406           0 :             return NULL;
    2407             :         }
    2408        7608 :         D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
    2409             :         expr_ty yield_expr_var;
    2410        7608 :         if (
    2411        7608 :             (yield_expr_var = yield_expr_rule(p))  // yield_expr
    2412             :         )
    2413             :         {
    2414           1 :             D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
    2415           1 :             _res = yield_expr_var;
    2416           1 :             goto done;
    2417             :         }
    2418        7607 :         p->mark = _mark;
    2419        7607 :         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        7607 :         if (p->error_indicator) {
    2424           0 :             p->level--;
    2425           0 :             return NULL;
    2426             :         }
    2427        7607 :         D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
    2428             :         expr_ty star_expressions_var;
    2429        7607 :         if (
    2430        7607 :             (star_expressions_var = star_expressions_rule(p))  // star_expressions
    2431             :         )
    2432             :         {
    2433        7607 :             D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
    2434        7607 :             _res = star_expressions_var;
    2435        7607 :             goto done;
    2436             :         }
    2437           0 :         p->mark = _mark;
    2438           0 :         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           0 :     _res = NULL;
    2442        7608 :   done:
    2443        7608 :     p->level--;
    2444        7608 :     return _res;
    2445             : }
    2446             : 
    2447             : // augassign:
    2448             : //     | '+='
    2449             : //     | '-='
    2450             : //     | '*='
    2451             : //     | '@='
    2452             : //     | '/='
    2453             : //     | '%='
    2454             : //     | '&='
    2455             : //     | '|='
    2456             : //     | '^='
    2457             : //     | '<<='
    2458             : //     | '>>='
    2459             : //     | '**='
    2460             : //     | '//='
    2461             : static AugOperator*
    2462      763771 : augassign_rule(Parser *p)
    2463             : {
    2464      763771 :     if (p->level++ == MAXSTACK) {
    2465           0 :         p->error_indicator = 1;
    2466           0 :         PyErr_NoMemory();
    2467             :     }
    2468      763771 :     if (p->error_indicator) {
    2469           0 :         p->level--;
    2470           0 :         return NULL;
    2471             :     }
    2472      763771 :     AugOperator* _res = NULL;
    2473      763771 :     int _mark = p->mark;
    2474             :     { // '+='
    2475      763771 :         if (p->error_indicator) {
    2476           0 :             p->level--;
    2477           0 :             return NULL;
    2478             :         }
    2479      763771 :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
    2480             :         Token * _literal;
    2481      763771 :         if (
    2482      763771 :             (_literal = _PyPegen_expect_token(p, 36))  // token='+='
    2483             :         )
    2484             :         {
    2485       18930 :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
    2486       18930 :             _res = _PyPegen_augoperator ( p , Add );
    2487       18930 :             if (_res == NULL && PyErr_Occurred()) {
    2488           0 :                 p->error_indicator = 1;
    2489           0 :                 p->level--;
    2490           0 :                 return NULL;
    2491             :             }
    2492       18930 :             goto done;
    2493             :         }
    2494      744841 :         p->mark = _mark;
    2495      744841 :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2496             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
    2497             :     }
    2498             :     { // '-='
    2499      744841 :         if (p->error_indicator) {
    2500           0 :             p->level--;
    2501           0 :             return NULL;
    2502             :         }
    2503      744841 :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
    2504             :         Token * _literal;
    2505      744841 :         if (
    2506      744841 :             (_literal = _PyPegen_expect_token(p, 37))  // token='-='
    2507             :         )
    2508             :         {
    2509        2712 :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
    2510        2712 :             _res = _PyPegen_augoperator ( p , Sub );
    2511        2712 :             if (_res == NULL && PyErr_Occurred()) {
    2512           0 :                 p->error_indicator = 1;
    2513           0 :                 p->level--;
    2514           0 :                 return NULL;
    2515             :             }
    2516        2712 :             goto done;
    2517             :         }
    2518      742129 :         p->mark = _mark;
    2519      742129 :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2520             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
    2521             :     }
    2522             :     { // '*='
    2523      742129 :         if (p->error_indicator) {
    2524           0 :             p->level--;
    2525           0 :             return NULL;
    2526             :         }
    2527      742129 :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
    2528             :         Token * _literal;
    2529      742129 :         if (
    2530      742129 :             (_literal = _PyPegen_expect_token(p, 38))  // token='*='
    2531             :         )
    2532             :         {
    2533         643 :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
    2534         643 :             _res = _PyPegen_augoperator ( p , Mult );
    2535         643 :             if (_res == NULL && PyErr_Occurred()) {
    2536           0 :                 p->error_indicator = 1;
    2537           0 :                 p->level--;
    2538           0 :                 return NULL;
    2539             :             }
    2540         643 :             goto done;
    2541             :         }
    2542      741486 :         p->mark = _mark;
    2543      741486 :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2544             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
    2545             :     }
    2546             :     { // '@='
    2547      741486 :         if (p->error_indicator) {
    2548           0 :             p->level--;
    2549           0 :             return NULL;
    2550             :         }
    2551      741486 :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
    2552             :         Token * _literal;
    2553      741486 :         if (
    2554      741486 :             (_literal = _PyPegen_expect_token(p, 50))  // token='@='
    2555             :         )
    2556             :         {
    2557          45 :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
    2558          45 :             _res = CHECK_VERSION ( AugOperator* , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
    2559          45 :             if (_res == NULL && PyErr_Occurred()) {
    2560           0 :                 p->error_indicator = 1;
    2561           0 :                 p->level--;
    2562           0 :                 return NULL;
    2563             :             }
    2564          45 :             goto done;
    2565             :         }
    2566      741441 :         p->mark = _mark;
    2567      741441 :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2568             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
    2569             :     }
    2570             :     { // '/='
    2571      741441 :         if (p->error_indicator) {
    2572           0 :             p->level--;
    2573           0 :             return NULL;
    2574             :         }
    2575      741441 :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
    2576             :         Token * _literal;
    2577      741441 :         if (
    2578      741441 :             (_literal = _PyPegen_expect_token(p, 39))  // token='/='
    2579             :         )
    2580             :         {
    2581         126 :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
    2582         126 :             _res = _PyPegen_augoperator ( p , Div );
    2583         126 :             if (_res == NULL && PyErr_Occurred()) {
    2584           0 :                 p->error_indicator = 1;
    2585           0 :                 p->level--;
    2586           0 :                 return NULL;
    2587             :             }
    2588         126 :             goto done;
    2589             :         }
    2590      741315 :         p->mark = _mark;
    2591      741315 :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2592             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
    2593             :     }
    2594             :     { // '%='
    2595      741315 :         if (p->error_indicator) {
    2596           0 :             p->level--;
    2597           0 :             return NULL;
    2598             :         }
    2599      741315 :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
    2600             :         Token * _literal;
    2601      741315 :         if (
    2602      741315 :             (_literal = _PyPegen_expect_token(p, 40))  // token='%='
    2603             :         )
    2604             :         {
    2605          73 :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
    2606          73 :             _res = _PyPegen_augoperator ( p , Mod );
    2607          73 :             if (_res == NULL && PyErr_Occurred()) {
    2608           0 :                 p->error_indicator = 1;
    2609           0 :                 p->level--;
    2610           0 :                 return NULL;
    2611             :             }
    2612          73 :             goto done;
    2613             :         }
    2614      741242 :         p->mark = _mark;
    2615      741242 :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2616             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
    2617             :     }
    2618             :     { // '&='
    2619      741242 :         if (p->error_indicator) {
    2620           0 :             p->level--;
    2621           0 :             return NULL;
    2622             :         }
    2623      741242 :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
    2624             :         Token * _literal;
    2625      741242 :         if (
    2626      741242 :             (_literal = _PyPegen_expect_token(p, 41))  // token='&='
    2627             :         )
    2628             :         {
    2629         501 :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
    2630         501 :             _res = _PyPegen_augoperator ( p , BitAnd );
    2631         501 :             if (_res == NULL && PyErr_Occurred()) {
    2632           0 :                 p->error_indicator = 1;
    2633           0 :                 p->level--;
    2634           0 :                 return NULL;
    2635             :             }
    2636         501 :             goto done;
    2637             :         }
    2638      740741 :         p->mark = _mark;
    2639      740741 :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2640             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
    2641             :     }
    2642             :     { // '|='
    2643      740741 :         if (p->error_indicator) {
    2644           0 :             p->level--;
    2645           0 :             return NULL;
    2646             :         }
    2647      740741 :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
    2648             :         Token * _literal;
    2649      740741 :         if (
    2650      740741 :             (_literal = _PyPegen_expect_token(p, 42))  // token='|='
    2651             :         )
    2652             :         {
    2653        1687 :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
    2654        1687 :             _res = _PyPegen_augoperator ( p , BitOr );
    2655        1687 :             if (_res == NULL && PyErr_Occurred()) {
    2656           0 :                 p->error_indicator = 1;
    2657           0 :                 p->level--;
    2658           0 :                 return NULL;
    2659             :             }
    2660        1687 :             goto done;
    2661             :         }
    2662      739054 :         p->mark = _mark;
    2663      739054 :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2664             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
    2665             :     }
    2666             :     { // '^='
    2667      739054 :         if (p->error_indicator) {
    2668           0 :             p->level--;
    2669           0 :             return NULL;
    2670             :         }
    2671      739054 :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
    2672             :         Token * _literal;
    2673      739054 :         if (
    2674      739054 :             (_literal = _PyPegen_expect_token(p, 43))  // token='^='
    2675             :         )
    2676             :         {
    2677         227 :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
    2678         227 :             _res = _PyPegen_augoperator ( p , BitXor );
    2679         227 :             if (_res == NULL && PyErr_Occurred()) {
    2680           0 :                 p->error_indicator = 1;
    2681           0 :                 p->level--;
    2682           0 :                 return NULL;
    2683             :             }
    2684         227 :             goto done;
    2685             :         }
    2686      738827 :         p->mark = _mark;
    2687      738827 :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2688             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
    2689             :     }
    2690             :     { // '<<='
    2691      738827 :         if (p->error_indicator) {
    2692           0 :             p->level--;
    2693           0 :             return NULL;
    2694             :         }
    2695      738827 :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
    2696             :         Token * _literal;
    2697      738827 :         if (
    2698      738827 :             (_literal = _PyPegen_expect_token(p, 44))  // token='<<='
    2699             :         )
    2700             :         {
    2701         269 :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
    2702         269 :             _res = _PyPegen_augoperator ( p , LShift );
    2703         269 :             if (_res == NULL && PyErr_Occurred()) {
    2704           0 :                 p->error_indicator = 1;
    2705           0 :                 p->level--;
    2706           0 :                 return NULL;
    2707             :             }
    2708         269 :             goto done;
    2709             :         }
    2710      738558 :         p->mark = _mark;
    2711      738558 :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2712             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
    2713             :     }
    2714             :     { // '>>='
    2715      738558 :         if (p->error_indicator) {
    2716           0 :             p->level--;
    2717           0 :             return NULL;
    2718             :         }
    2719      738558 :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
    2720             :         Token * _literal;
    2721      738558 :         if (
    2722      738558 :             (_literal = _PyPegen_expect_token(p, 45))  // token='>>='
    2723             :         )
    2724             :         {
    2725          81 :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
    2726          81 :             _res = _PyPegen_augoperator ( p , RShift );
    2727          81 :             if (_res == NULL && PyErr_Occurred()) {
    2728           0 :                 p->error_indicator = 1;
    2729           0 :                 p->level--;
    2730           0 :                 return NULL;
    2731             :             }
    2732          81 :             goto done;
    2733             :         }
    2734      738477 :         p->mark = _mark;
    2735      738477 :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2736             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
    2737             :     }
    2738             :     { // '**='
    2739      738477 :         if (p->error_indicator) {
    2740           0 :             p->level--;
    2741           0 :             return NULL;
    2742             :         }
    2743      738477 :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
    2744             :         Token * _literal;
    2745      738477 :         if (
    2746      738477 :             (_literal = _PyPegen_expect_token(p, 46))  // token='**='
    2747             :         )
    2748             :         {
    2749          58 :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
    2750          58 :             _res = _PyPegen_augoperator ( p , Pow );
    2751          58 :             if (_res == NULL && PyErr_Occurred()) {
    2752           0 :                 p->error_indicator = 1;
    2753           0 :                 p->level--;
    2754           0 :                 return NULL;
    2755             :             }
    2756          58 :             goto done;
    2757             :         }
    2758      738419 :         p->mark = _mark;
    2759      738419 :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2760             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
    2761             :     }
    2762             :     { // '//='
    2763      738419 :         if (p->error_indicator) {
    2764           0 :             p->level--;
    2765           0 :             return NULL;
    2766             :         }
    2767      738419 :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
    2768             :         Token * _literal;
    2769      738419 :         if (
    2770      738419 :             (_literal = _PyPegen_expect_token(p, 48))  // token='//='
    2771             :         )
    2772             :         {
    2773         357 :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
    2774         357 :             _res = _PyPegen_augoperator ( p , FloorDiv );
    2775         357 :             if (_res == NULL && PyErr_Occurred()) {
    2776           0 :                 p->error_indicator = 1;
    2777           0 :                 p->level--;
    2778           0 :                 return NULL;
    2779             :             }
    2780         357 :             goto done;
    2781             :         }
    2782      738062 :         p->mark = _mark;
    2783      738062 :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2784             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
    2785             :     }
    2786      738062 :     _res = NULL;
    2787      763771 :   done:
    2788      763771 :     p->level--;
    2789      763771 :     return _res;
    2790             : }
    2791             : 
    2792             : // return_stmt: 'return' star_expressions?
    2793             : static stmt_ty
    2794      241295 : return_stmt_rule(Parser *p)
    2795             : {
    2796      241295 :     if (p->level++ == MAXSTACK) {
    2797           0 :         p->error_indicator = 1;
    2798           0 :         PyErr_NoMemory();
    2799             :     }
    2800      241295 :     if (p->error_indicator) {
    2801           0 :         p->level--;
    2802           0 :         return NULL;
    2803             :     }
    2804      241295 :     stmt_ty _res = NULL;
    2805      241295 :     int _mark = p->mark;
    2806      241295 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    2807           0 :         p->error_indicator = 1;
    2808           0 :         p->level--;
    2809           0 :         return NULL;
    2810             :     }
    2811      241295 :     int _start_lineno = p->tokens[_mark]->lineno;
    2812             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    2813      241295 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    2814             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    2815             :     { // 'return' star_expressions?
    2816      241295 :         if (p->error_indicator) {
    2817           0 :             p->level--;
    2818           0 :             return NULL;
    2819             :         }
    2820      241295 :         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      241295 :         if (
    2824      241295 :             (_keyword = _PyPegen_expect_token(p, 519))  // token='return'
    2825      241295 :             &&
    2826      241295 :             (a = star_expressions_rule(p), !p->error_indicator)  // star_expressions?
    2827             :         )
    2828             :         {
    2829      241294 :             D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
    2830      241294 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    2831      241294 :             if (_token == NULL) {
    2832           0 :                 p->level--;
    2833           0 :                 return NULL;
    2834             :             }
    2835      241294 :             int _end_lineno = _token->end_lineno;
    2836             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    2837      241294 :             int _end_col_offset = _token->end_col_offset;
    2838             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    2839      241294 :             _res = _PyAST_Return ( a , EXTRA );
    2840      241294 :             if (_res == NULL && PyErr_Occurred()) {
    2841           0 :                 p->error_indicator = 1;
    2842           0 :                 p->level--;
    2843           0 :                 return NULL;
    2844             :             }
    2845      241294 :             goto done;
    2846             :         }
    2847           1 :         p->mark = _mark;
    2848           1 :         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           1 :     _res = NULL;
    2852      241295 :   done:
    2853      241295 :     p->level--;
    2854      241295 :     return _res;
    2855             : }
    2856             : 
    2857             : // raise_stmt: 'raise' expression ['from' expression] | 'raise'
    2858             : static stmt_ty
    2859       61395 : raise_stmt_rule(Parser *p)
    2860             : {
    2861       61395 :     if (p->level++ == MAXSTACK) {
    2862           0 :         p->error_indicator = 1;
    2863           0 :         PyErr_NoMemory();
    2864             :     }
    2865       61395 :     if (p->error_indicator) {
    2866           0 :         p->level--;
    2867           0 :         return NULL;
    2868             :     }
    2869       61395 :     stmt_ty _res = NULL;
    2870       61395 :     int _mark = p->mark;
    2871       61395 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    2872           0 :         p->error_indicator = 1;
    2873           0 :         p->level--;
    2874           0 :         return NULL;
    2875             :     }
    2876       61395 :     int _start_lineno = p->tokens[_mark]->lineno;
    2877             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    2878       61395 :     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       61395 :         if (p->error_indicator) {
    2882           0 :             p->level--;
    2883           0 :             return NULL;
    2884             :         }
    2885       61395 :         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       61395 :         if (
    2890       61395 :             (_keyword = _PyPegen_expect_token(p, 522))  // token='raise'
    2891       61395 :             &&
    2892       61395 :             (a = expression_rule(p))  // expression
    2893       56670 :             &&
    2894       56670 :             (b = _tmp_17_rule(p), !p->error_indicator)  // ['from' expression]
    2895             :         )
    2896             :         {
    2897       56670 :             D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
    2898       56670 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    2899       56670 :             if (_token == NULL) {
    2900           0 :                 p->level--;
    2901           0 :                 return NULL;
    2902             :             }
    2903       56670 :             int _end_lineno = _token->end_lineno;
    2904             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    2905       56670 :             int _end_col_offset = _token->end_col_offset;
    2906             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    2907       56670 :             _res = _PyAST_Raise ( a , b , EXTRA );
    2908       56670 :             if (_res == NULL && PyErr_Occurred()) {
    2909           0 :                 p->error_indicator = 1;
    2910           0 :                 p->level--;
    2911           0 :                 return NULL;
    2912             :             }
    2913       56670 :             goto done;
    2914             :         }
    2915        4725 :         p->mark = _mark;
    2916        4725 :         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        4725 :         if (p->error_indicator) {
    2921           0 :             p->level--;
    2922           0 :             return NULL;
    2923             :         }
    2924        4725 :         D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
    2925             :         Token * _keyword;
    2926        4725 :         if (
    2927        4725 :             (_keyword = _PyPegen_expect_token(p, 522))  // token='raise'
    2928             :         )
    2929             :         {
    2930        4725 :             D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
    2931        4725 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    2932        4725 :             if (_token == NULL) {
    2933           0 :                 p->level--;
    2934           0 :                 return NULL;
    2935             :             }
    2936        4725 :             int _end_lineno = _token->end_lineno;
    2937             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    2938        4725 :             int _end_col_offset = _token->end_col_offset;
    2939             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    2940        4725 :             _res = _PyAST_Raise ( NULL , NULL , EXTRA );
    2941        4725 :             if (_res == NULL && PyErr_Occurred()) {
    2942           0 :                 p->error_indicator = 1;
    2943           0 :                 p->level--;
    2944           0 :                 return NULL;
    2945             :             }
    2946        4725 :             goto done;
    2947             :         }
    2948           0 :         p->mark = _mark;
    2949           0 :         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           0 :     _res = NULL;
    2953       61395 :   done:
    2954       61395 :     p->level--;
    2955       61395 :     return _res;
    2956             : }
    2957             : 
    2958             : // global_stmt: 'global' ','.NAME+
    2959             : static stmt_ty
    2960        1841 : global_stmt_rule(Parser *p)
    2961             : {
    2962        1841 :     if (p->level++ == MAXSTACK) {
    2963           0 :         p->error_indicator = 1;
    2964           0 :         PyErr_NoMemory();
    2965             :     }
    2966        1841 :     if (p->error_indicator) {
    2967           0 :         p->level--;
    2968           0 :         return NULL;
    2969             :     }
    2970        1841 :     stmt_ty _res = NULL;
    2971        1841 :     int _mark = p->mark;
    2972        1841 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    2973           0 :         p->error_indicator = 1;
    2974           0 :         p->level--;
    2975           0 :         return NULL;
    2976             :     }
    2977        1841 :     int _start_lineno = p->tokens[_mark]->lineno;
    2978             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    2979        1841 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    2980             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    2981             :     { // 'global' ','.NAME+
    2982        1841 :         if (p->error_indicator) {
    2983           0 :             p->level--;
    2984           0 :             return NULL;
    2985             :         }
    2986        1841 :         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        1841 :         if (
    2990        1841 :             (_keyword = _PyPegen_expect_token(p, 523))  // token='global'
    2991        1841 :             &&
    2992        1841 :             (a = (asdl_expr_seq*)_gather_18_rule(p))  // ','.NAME+
    2993             :         )
    2994             :         {
    2995        1839 :             D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
    2996        1839 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    2997        1839 :             if (_token == NULL) {
    2998           0 :                 p->level--;
    2999           0 :                 return NULL;
    3000             :             }
    3001        1839 :             int _end_lineno = _token->end_lineno;
    3002             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3003        1839 :             int _end_col_offset = _token->end_col_offset;
    3004             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3005        1839 :             _res = _PyAST_Global ( CHECK ( asdl_identifier_seq* , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
    3006        1839 :             if (_res == NULL && PyErr_Occurred()) {
    3007           0 :                 p->error_indicator = 1;
    3008           0 :                 p->level--;
    3009           0 :                 return NULL;
    3010             :             }
    3011        1839 :             goto done;
    3012             :         }
    3013           2 :         p->mark = _mark;
    3014           2 :         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           2 :     _res = NULL;
    3018        1841 :   done:
    3019        1841 :     p->level--;
    3020        1841 :     return _res;
    3021             : }
    3022             : 
    3023             : // nonlocal_stmt: 'nonlocal' ','.NAME+
    3024             : static stmt_ty
    3025         929 : nonlocal_stmt_rule(Parser *p)
    3026             : {
    3027         929 :     if (p->level++ == MAXSTACK) {
    3028           0 :         p->error_indicator = 1;
    3029           0 :         PyErr_NoMemory();
    3030             :     }
    3031         929 :     if (p->error_indicator) {
    3032           0 :         p->level--;
    3033           0 :         return NULL;
    3034             :     }
    3035         929 :     stmt_ty _res = NULL;
    3036         929 :     int _mark = p->mark;
    3037         929 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    3038           0 :         p->error_indicator = 1;
    3039           0 :         p->level--;
    3040           0 :         return NULL;
    3041             :     }
    3042         929 :     int _start_lineno = p->tokens[_mark]->lineno;
    3043             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3044         929 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    3045             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    3046             :     { // 'nonlocal' ','.NAME+
    3047         929 :         if (p->error_indicator) {
    3048           0 :             p->level--;
    3049           0 :             return NULL;
    3050             :         }
    3051         929 :         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         929 :         if (
    3055         929 :             (_keyword = _PyPegen_expect_token(p, 524))  // token='nonlocal'
    3056         929 :             &&
    3057         929 :             (a = (asdl_expr_seq*)_gather_20_rule(p))  // ','.NAME+
    3058             :         )
    3059             :         {
    3060         927 :             D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
    3061         927 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3062         927 :             if (_token == NULL) {
    3063           0 :                 p->level--;
    3064           0 :                 return NULL;
    3065             :             }
    3066         927 :             int _end_lineno = _token->end_lineno;
    3067             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3068         927 :             int _end_col_offset = _token->end_col_offset;
    3069             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3070         927 :             _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq* , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
    3071         927 :             if (_res == NULL && PyErr_Occurred()) {
    3072           0 :                 p->error_indicator = 1;
    3073           0 :                 p->level--;
    3074           0 :                 return NULL;
    3075             :             }
    3076         927 :             goto done;
    3077             :         }
    3078           2 :         p->mark = _mark;
    3079           2 :         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           2 :     _res = NULL;
    3083         929 :   done:
    3084         929 :     p->level--;
    3085         929 :     return _res;
    3086             : }
    3087             : 
    3088             : // del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
    3089             : static stmt_ty
    3090        8979 : del_stmt_rule(Parser *p)
    3091             : {
    3092        8979 :     if (p->level++ == MAXSTACK) {
    3093           0 :         p->error_indicator = 1;
    3094           0 :         PyErr_NoMemory();
    3095             :     }
    3096        8979 :     if (p->error_indicator) {
    3097           0 :         p->level--;
    3098           0 :         return NULL;
    3099             :     }
    3100        8979 :     stmt_ty _res = NULL;
    3101        8979 :     int _mark = p->mark;
    3102        8979 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    3103           0 :         p->error_indicator = 1;
    3104           0 :         p->level--;
    3105           0 :         return NULL;
    3106             :     }
    3107        8979 :     int _start_lineno = p->tokens[_mark]->lineno;
    3108             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3109        8979 :     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        8979 :         if (p->error_indicator) {
    3113           0 :             p->level--;
    3114           0 :             return NULL;
    3115             :         }
    3116        8979 :         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        8979 :         if (
    3120        8979 :             (_keyword = _PyPegen_expect_token(p, 603))  // token='del'
    3121        8979 :             &&
    3122        8979 :             (a = del_targets_rule(p))  // del_targets
    3123        8933 :             &&
    3124        8933 :             _PyPegen_lookahead(1, _tmp_22_rule, p)
    3125             :         )
    3126             :         {
    3127        8899 :             D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
    3128        8899 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3129        8899 :             if (_token == NULL) {
    3130           0 :                 p->level--;
    3131           0 :                 return NULL;
    3132             :             }
    3133        8899 :             int _end_lineno = _token->end_lineno;
    3134             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3135        8899 :             int _end_col_offset = _token->end_col_offset;
    3136             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3137        8899 :             _res = _PyAST_Delete ( a , EXTRA );
    3138        8899 :             if (_res == NULL && PyErr_Occurred()) {
    3139           0 :                 p->error_indicator = 1;
    3140           0 :                 p->level--;
    3141           0 :                 return NULL;
    3142             :             }
    3143        8899 :             goto done;
    3144             :         }
    3145          80 :         p->mark = _mark;
    3146          80 :         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          80 :     if (p->call_invalid_rules) { // invalid_del_stmt
    3150          38 :         if (p->error_indicator) {
    3151           1 :             p->level--;
    3152           1 :             return NULL;
    3153             :         }
    3154          37 :         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          37 :         if (
    3157          37 :             (invalid_del_stmt_var = invalid_del_stmt_rule(p))  // invalid_del_stmt
    3158             :         )
    3159             :         {
    3160           0 :             D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
    3161           0 :             _res = invalid_del_stmt_var;
    3162           0 :             goto done;
    3163             :         }
    3164          37 :         p->mark = _mark;
    3165          37 :         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          79 :     _res = NULL;
    3169        8978 :   done:
    3170        8978 :     p->level--;
    3171        8978 :     return _res;
    3172             : }
    3173             : 
    3174             : // yield_stmt: yield_expr
    3175             : static stmt_ty
    3176       15365 : yield_stmt_rule(Parser *p)
    3177             : {
    3178       15365 :     if (p->level++ == MAXSTACK) {
    3179           0 :         p->error_indicator = 1;
    3180           0 :         PyErr_NoMemory();
    3181             :     }
    3182       15365 :     if (p->error_indicator) {
    3183           0 :         p->level--;
    3184           0 :         return NULL;
    3185             :     }
    3186       15365 :     stmt_ty _res = NULL;
    3187       15365 :     int _mark = p->mark;
    3188       15365 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    3189           0 :         p->error_indicator = 1;
    3190           0 :         p->level--;
    3191           0 :         return NULL;
    3192             :     }
    3193       15365 :     int _start_lineno = p->tokens[_mark]->lineno;
    3194             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3195       15365 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    3196             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    3197             :     { // yield_expr
    3198       15365 :         if (p->error_indicator) {
    3199           0 :             p->level--;
    3200           0 :             return NULL;
    3201             :         }
    3202       15365 :         D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
    3203             :         expr_ty y;
    3204       15365 :         if (
    3205       15365 :             (y = yield_expr_rule(p))  // yield_expr
    3206             :         )
    3207             :         {
    3208       15365 :             D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
    3209       15365 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3210       15365 :             if (_token == NULL) {
    3211           0 :                 p->level--;
    3212           0 :                 return NULL;
    3213             :             }
    3214       15365 :             int _end_lineno = _token->end_lineno;
    3215             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3216       15365 :             int _end_col_offset = _token->end_col_offset;
    3217             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3218       15365 :             _res = _PyAST_Expr ( y , EXTRA );
    3219       15365 :             if (_res == NULL && PyErr_Occurred()) {
    3220           0 :                 p->error_indicator = 1;
    3221           0 :                 p->level--;
    3222           0 :                 return NULL;
    3223             :             }
    3224       15365 :             goto done;
    3225             :         }
    3226           0 :         p->mark = _mark;
    3227           0 :         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           0 :     _res = NULL;
    3231       15365 :   done:
    3232       15365 :     p->level--;
    3233       15365 :     return _res;
    3234             : }
    3235             : 
    3236             : // assert_stmt: 'assert' expression [',' expression]
    3237             : static stmt_ty
    3238        9782 : assert_stmt_rule(Parser *p)
    3239             : {
    3240        9782 :     if (p->level++ == MAXSTACK) {
    3241           0 :         p->error_indicator = 1;
    3242           0 :         PyErr_NoMemory();
    3243             :     }
    3244        9782 :     if (p->error_indicator) {
    3245           0 :         p->level--;
    3246           0 :         return NULL;
    3247             :     }
    3248        9782 :     stmt_ty _res = NULL;
    3249        9782 :     int _mark = p->mark;
    3250        9782 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    3251           0 :         p->error_indicator = 1;
    3252           0 :         p->level--;
    3253           0 :         return NULL;
    3254             :     }
    3255        9782 :     int _start_lineno = p->tokens[_mark]->lineno;
    3256             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3257        9782 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    3258             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    3259             :     { // 'assert' expression [',' expression]
    3260        9782 :         if (p->error_indicator) {
    3261           0 :             p->level--;
    3262           0 :             return NULL;
    3263             :         }
    3264        9782 :         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        9782 :         if (
    3269        9782 :             (_keyword = _PyPegen_expect_token(p, 526))  // token='assert'
    3270        9782 :             &&
    3271        9782 :             (a = expression_rule(p))  // expression
    3272        9780 :             &&
    3273        9780 :             (b = _tmp_23_rule(p), !p->error_indicator)  // [',' expression]
    3274             :         )
    3275             :         {
    3276        9780 :             D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
    3277        9780 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3278        9780 :             if (_token == NULL) {
    3279           0 :                 p->level--;
    3280           0 :                 return NULL;
    3281             :             }
    3282        9780 :             int _end_lineno = _token->end_lineno;
    3283             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3284        9780 :             int _end_col_offset = _token->end_col_offset;
    3285             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3286        9780 :             _res = _PyAST_Assert ( a , b , EXTRA );
    3287        9780 :             if (_res == NULL && PyErr_Occurred()) {
    3288           0 :                 p->error_indicator = 1;
    3289           0 :                 p->level--;
    3290           0 :                 return NULL;
    3291             :             }
    3292        9780 :             goto done;
    3293             :         }
    3294           2 :         p->mark = _mark;
    3295           2 :         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           2 :     _res = NULL;
    3299        9782 :   done:
    3300        9782 :     p->level--;
    3301        9782 :     return _res;
    3302             : }
    3303             : 
    3304             : // import_stmt: import_name | import_from
    3305             : static stmt_ty
    3306       91360 : import_stmt_rule(Parser *p)
    3307             : {
    3308       91360 :     if (p->level++ == MAXSTACK) {
    3309           0 :         p->error_indicator = 1;
    3310           0 :         PyErr_NoMemory();
    3311             :     }
    3312       91360 :     if (p->error_indicator) {
    3313           0 :         p->level--;
    3314           0 :         return NULL;
    3315             :     }
    3316       91360 :     stmt_ty _res = NULL;
    3317       91360 :     int _mark = p->mark;
    3318             :     { // import_name
    3319       91360 :         if (p->error_indicator) {
    3320           0 :             p->level--;
    3321           0 :             return NULL;
    3322             :         }
    3323       91360 :         D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
    3324             :         stmt_ty import_name_var;
    3325       91360 :         if (
    3326       91360 :             (import_name_var = import_name_rule(p))  // import_name
    3327             :         )
    3328             :         {
    3329       45171 :             D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
    3330       45171 :             _res = import_name_var;
    3331       45171 :             goto done;
    3332             :         }
    3333       46189 :         p->mark = _mark;
    3334       46189 :         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       46189 :         if (p->error_indicator) {
    3339           2 :             p->level--;
    3340           2 :             return NULL;
    3341             :         }
    3342       46187 :         D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
    3343             :         stmt_ty import_from_var;
    3344       46187 :         if (
    3345       46187 :             (import_from_var = import_from_rule(p))  // import_from
    3346             :         )
    3347             :         {
    3348       46133 :             D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
    3349       46133 :             _res = import_from_var;
    3350       46133 :             goto done;
    3351             :         }
    3352          54 :         p->mark = _mark;
    3353          54 :         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          54 :     _res = NULL;
    3357       91358 :   done:
    3358       91358 :     p->level--;
    3359       91358 :     return _res;
    3360             : }
    3361             : 
    3362             : // import_name: 'import' dotted_as_names
    3363             : static stmt_ty
    3364       91360 : import_name_rule(Parser *p)
    3365             : {
    3366       91360 :     if (p->level++ == MAXSTACK) {
    3367           0 :         p->error_indicator = 1;
    3368           0 :         PyErr_NoMemory();
    3369             :     }
    3370       91360 :     if (p->error_indicator) {
    3371           0 :         p->level--;
    3372           0 :         return NULL;
    3373             :     }
    3374       91360 :     stmt_ty _res = NULL;
    3375       91360 :     int _mark = p->mark;
    3376       91360 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    3377           0 :         p->error_indicator = 1;
    3378           0 :         p->level--;
    3379           0 :         return NULL;
    3380             :     }
    3381       91360 :     int _start_lineno = p->tokens[_mark]->lineno;
    3382             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3383       91360 :     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       91360 :         if (p->error_indicator) {
    3387           0 :             p->level--;
    3388           0 :             return NULL;
    3389             :         }
    3390       91360 :         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       91360 :         if (
    3394       91360 :             (_keyword = _PyPegen_expect_token(p, 531))  // token='import'
    3395       45189 :             &&
    3396       45189 :             (a = dotted_as_names_rule(p))  // dotted_as_names
    3397             :         )
    3398             :         {
    3399       45171 :             D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
    3400       45171 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3401       45171 :             if (_token == NULL) {
    3402           0 :                 p->level--;
    3403           0 :                 return NULL;
    3404             :             }
    3405       45171 :             int _end_lineno = _token->end_lineno;
    3406             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3407       45171 :             int _end_col_offset = _token->end_col_offset;
    3408             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3409       45171 :             _res = _PyAST_Import ( a , EXTRA );
    3410       45171 :             if (_res == NULL && PyErr_Occurred()) {
    3411           0 :                 p->error_indicator = 1;
    3412           0 :                 p->level--;
    3413           0 :                 return NULL;
    3414             :             }
    3415       45171 :             goto done;
    3416             :         }
    3417       46189 :         p->mark = _mark;
    3418       46189 :         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       46189 :     _res = NULL;
    3422       91360 :   done:
    3423       91360 :     p->level--;
    3424       91360 :     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
    3431       46187 : import_from_rule(Parser *p)
    3432             : {
    3433       46187 :     if (p->level++ == MAXSTACK) {
    3434           0 :         p->error_indicator = 1;
    3435           0 :         PyErr_NoMemory();
    3436             :     }
    3437       46187 :     if (p->error_indicator) {
    3438           0 :         p->level--;
    3439           0 :         return NULL;
    3440             :     }
    3441       46187 :     stmt_ty _res = NULL;
    3442       46187 :     int _mark = p->mark;
    3443       46187 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    3444           0 :         p->error_indicator = 1;
    3445           0 :         p->level--;
    3446           0 :         return NULL;
    3447             :     }
    3448       46187 :     int _start_lineno = p->tokens[_mark]->lineno;
    3449             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3450       46187 :     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       46187 :         if (p->error_indicator) {
    3454           0 :             p->level--;
    3455           0 :             return NULL;
    3456             :         }
    3457       46187 :         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       46187 :         if (
    3464       46187 :             (_keyword = _PyPegen_expect_token(p, 572))  // token='from'
    3465       46171 :             &&
    3466       46171 :             (a = _loop0_24_rule(p))  // (('.' | '...'))*
    3467       46171 :             &&
    3468       46171 :             (b = dotted_name_rule(p))  // dotted_name
    3469       44912 :             &&
    3470       44912 :             (_keyword_1 = _PyPegen_expect_token(p, 531))  // token='import'
    3471       44912 :             &&
    3472       44912 :             (c = import_from_targets_rule(p))  // import_from_targets
    3473             :         )
    3474             :         {
    3475       44878 :             D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
    3476       44878 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3477       44878 :             if (_token == NULL) {
    3478           0 :                 p->level--;
    3479           0 :                 return NULL;
    3480             :             }
    3481       44878 :             int _end_lineno = _token->end_lineno;
    3482             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3483       44878 :             int _end_col_offset = _token->end_col_offset;
    3484             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3485       44878 :             _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
    3486       44878 :             if (_res == NULL && PyErr_Occurred()) {
    3487           0 :                 p->error_indicator = 1;
    3488           0 :                 p->level--;
    3489           0 :                 return NULL;
    3490             :             }
    3491       44878 :             goto done;
    3492             :         }
    3493        1309 :         p->mark = _mark;
    3494        1309 :         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        1309 :         if (p->error_indicator) {
    3499          19 :             p->level--;
    3500          19 :             return NULL;
    3501             :         }
    3502        1290 :         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        1290 :         if (
    3508        1290 :             (_keyword = _PyPegen_expect_token(p, 572))  // token='from'
    3509        1274 :             &&
    3510        1274 :             (a = _loop1_25_rule(p))  // (('.' | '...'))+
    3511        1255 :             &&
    3512        1255 :             (_keyword_1 = _PyPegen_expect_token(p, 531))  // token='import'
    3513        1255 :             &&
    3514        1255 :             (b = import_from_targets_rule(p))  // import_from_targets
    3515             :         )
    3516             :         {
    3517        1255 :             D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
    3518        1255 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3519        1255 :             if (_token == NULL) {
    3520           0 :                 p->level--;
    3521           0 :                 return NULL;
    3522             :             }
    3523        1255 :             int _end_lineno = _token->end_lineno;
    3524             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3525        1255 :             int _end_col_offset = _token->end_col_offset;
    3526             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3527        1255 :             _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
    3528        1255 :             if (_res == NULL && PyErr_Occurred()) {
    3529           0 :                 p->error_indicator = 1;
    3530           0 :                 p->level--;
    3531           0 :                 return NULL;
    3532             :             }
    3533        1255 :             goto done;
    3534             :         }
    3535          35 :         p->mark = _mark;
    3536          35 :         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          35 :     _res = NULL;
    3540       46168 :   done:
    3541       46168 :     p->level--;
    3542       46168 :     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*
    3551       46167 : import_from_targets_rule(Parser *p)
    3552             : {
    3553       46167 :     if (p->level++ == MAXSTACK) {
    3554           0 :         p->error_indicator = 1;
    3555           0 :         PyErr_NoMemory();
    3556             :     }
    3557       46167 :     if (p->error_indicator) {
    3558           0 :         p->level--;
    3559           0 :         return NULL;
    3560             :     }
    3561       46167 :     asdl_alias_seq* _res = NULL;
    3562       46167 :     int _mark = p->mark;
    3563       46167 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    3564           0 :         p->error_indicator = 1;
    3565           0 :         p->level--;
    3566           0 :         return NULL;
    3567             :     }
    3568       46167 :     int _start_lineno = p->tokens[_mark]->lineno;
    3569             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3570       46167 :     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       46167 :         if (p->error_indicator) {
    3574           0 :             p->level--;
    3575           0 :             return NULL;
    3576             :         }
    3577       46167 :         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       46167 :         if (
    3584       46167 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
    3585        2231 :             &&
    3586        2231 :             (a = import_from_as_names_rule(p))  // import_from_as_names
    3587        2223 :             &&
    3588        2223 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
    3589        2217 :             &&
    3590        2217 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
    3591             :         )
    3592             :         {
    3593        2215 :             D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
    3594        2215 :             _res = a;
    3595        2215 :             if (_res == NULL && PyErr_Occurred()) {
    3596           0 :                 p->error_indicator = 1;
    3597           0 :                 p->level--;
    3598           0 :                 return NULL;
    3599             :             }
    3600        2215 :             goto done;
    3601             :         }
    3602       43952 :         p->mark = _mark;
    3603       43952 :         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       43952 :         if (p->error_indicator) {
    3608          12 :             p->level--;
    3609          12 :             return NULL;
    3610             :         }
    3611       43940 :         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       43940 :         if (
    3614       43940 :             (import_from_as_names_var = import_from_as_names_rule(p))  // import_from_as_names
    3615       42800 :             &&
    3616       42800 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12)  // token=','
    3617             :         )
    3618             :         {
    3619       42788 :             D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
    3620       42788 :             _res = import_from_as_names_var;
    3621       42788 :             goto done;
    3622             :         }
    3623        1152 :         p->mark = _mark;
    3624        1152 :         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        1152 :         if (p->error_indicator) {
    3629           2 :             p->level--;
    3630           2 :             return NULL;
    3631             :         }
    3632        1150 :         D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
    3633             :         Token * _literal;
    3634        1150 :         if (
    3635        1150 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
    3636             :         )
    3637             :         {
    3638        1130 :             D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
    3639        1130 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3640        1130 :             if (_token == NULL) {
    3641           0 :                 p->level--;
    3642           0 :                 return NULL;
    3643             :             }
    3644        1130 :             int _end_lineno = _token->end_lineno;
    3645             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3646        1130 :             int _end_col_offset = _token->end_col_offset;
    3647             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3648        1130 :             _res = ( asdl_alias_seq* ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
    3649        1130 :             if (_res == NULL && PyErr_Occurred()) {
    3650           0 :                 p->error_indicator = 1;
    3651           0 :                 p->level--;
    3652           0 :                 return NULL;
    3653             :             }
    3654        1130 :             goto done;
    3655             :         }
    3656          20 :         p->mark = _mark;
    3657          20 :         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          20 :     if (p->call_invalid_rules) { // invalid_import_from_targets
    3661          10 :         if (p->error_indicator) {
    3662           0 :             p->level--;
    3663           0 :             return NULL;
    3664             :         }
    3665          10 :         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          10 :         if (
    3668          10 :             (invalid_import_from_targets_var = invalid_import_from_targets_rule(p))  // invalid_import_from_targets
    3669             :         )
    3670             :         {
    3671           0 :             D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
    3672           0 :             _res = invalid_import_from_targets_var;
    3673           0 :             goto done;
    3674             :         }
    3675          10 :         p->mark = _mark;
    3676          10 :         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          20 :     _res = NULL;
    3680       46153 :   done:
    3681       46153 :     p->level--;
    3682       46153 :     return _res;
    3683             : }
    3684             : 
    3685             : // import_from_as_names: ','.import_from_as_name+
    3686             : static asdl_alias_seq*
    3687       46181 : import_from_as_names_rule(Parser *p)
    3688             : {
    3689       46181 :     if (p->level++ == MAXSTACK) {
    3690           0 :         p->error_indicator = 1;
    3691           0 :         PyErr_NoMemory();
    3692             :     }
    3693       46181 :     if (p->error_indicator) {
    3694           0 :         p->level--;
    3695           0 :         return NULL;
    3696             :     }
    3697       46181 :     asdl_alias_seq* _res = NULL;
    3698       46181 :     int _mark = p->mark;
    3699             :     { // ','.import_from_as_name+
    3700       46181 :         if (p->error_indicator) {
    3701           0 :             p->level--;
    3702           0 :             return NULL;
    3703             :         }
    3704       46181 :         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       46181 :         if (
    3707       46181 :             (a = (asdl_alias_seq*)_gather_26_rule(p))  // ','.import_from_as_name+
    3708             :         )
    3709             :         {
    3710       45029 :             D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
    3711       45029 :             _res = a;
    3712       45029 :             if (_res == NULL && PyErr_Occurred()) {
    3713           0 :                 p->error_indicator = 1;
    3714           0 :                 p->level--;
    3715           0 :                 return NULL;
    3716             :             }
    3717       45029 :             goto done;
    3718             :         }
    3719        1152 :         p->mark = _mark;
    3720        1152 :         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        1152 :     _res = NULL;
    3724       46181 :   done:
    3725       46181 :     p->level--;
    3726       46181 :     return _res;
    3727             : }
    3728             : 
    3729             : // import_from_as_name: NAME ['as' NAME]
    3730             : static alias_ty
    3731       80036 : import_from_as_name_rule(Parser *p)
    3732             : {
    3733       80036 :     if (p->level++ == MAXSTACK) {
    3734           0 :         p->error_indicator = 1;
    3735           0 :         PyErr_NoMemory();
    3736             :     }
    3737       80036 :     if (p->error_indicator) {
    3738           0 :         p->level--;
    3739           0 :         return NULL;
    3740             :     }
    3741       80036 :     alias_ty _res = NULL;
    3742       80036 :     int _mark = p->mark;
    3743       80036 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    3744           6 :         p->error_indicator = 1;
    3745           6 :         p->level--;
    3746           6 :         return NULL;
    3747             :     }
    3748       80030 :     int _start_lineno = p->tokens[_mark]->lineno;
    3749             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3750       80030 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    3751             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    3752             :     { // NAME ['as' NAME]
    3753       80030 :         if (p->error_indicator) {
    3754           0 :             p->level--;
    3755           0 :             return NULL;
    3756             :         }
    3757       80030 :         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       80030 :         if (
    3761       80030 :             (a = _PyPegen_name_token(p))  // NAME
    3762       77512 :             &&
    3763       77512 :             (b = _tmp_28_rule(p), !p->error_indicator)  // ['as' NAME]
    3764             :         )
    3765             :         {
    3766       77504 :             D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
    3767       77504 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3768       77504 :             if (_token == NULL) {
    3769           0 :                 p->level--;
    3770           0 :                 return NULL;
    3771             :             }
    3772       77504 :             int _end_lineno = _token->end_lineno;
    3773             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3774       77504 :             int _end_col_offset = _token->end_col_offset;
    3775             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3776       77504 :             _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
    3777       77504 :             if (_res == NULL && PyErr_Occurred()) {
    3778           0 :                 p->error_indicator = 1;
    3779           0 :                 p->level--;
    3780           0 :                 return NULL;
    3781             :             }
    3782       77504 :             goto done;
    3783             :         }
    3784        2526 :         p->mark = _mark;
    3785        2526 :         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        2526 :     _res = NULL;
    3789       80030 :   done:
    3790       80030 :     p->level--;
    3791       80030 :     return _res;
    3792             : }
    3793             : 
    3794             : // dotted_as_names: ','.dotted_as_name+
    3795             : static asdl_alias_seq*
    3796       45189 : dotted_as_names_rule(Parser *p)
    3797             : {
    3798       45189 :     if (p->level++ == MAXSTACK) {
    3799           0 :         p->error_indicator = 1;
    3800           0 :         PyErr_NoMemory();
    3801             :     }
    3802       45189 :     if (p->error_indicator) {
    3803           0 :         p->level--;
    3804           0 :         return NULL;
    3805             :     }
    3806       45189 :     asdl_alias_seq* _res = NULL;
    3807       45189 :     int _mark = p->mark;
    3808             :     { // ','.dotted_as_name+
    3809       45189 :         if (p->error_indicator) {
    3810           0 :             p->level--;
    3811           0 :             return NULL;
    3812             :         }
    3813       45189 :         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       45189 :         if (
    3816       45189 :             (a = (asdl_alias_seq*)_gather_29_rule(p))  // ','.dotted_as_name+
    3817             :         )
    3818             :         {
    3819       45171 :             D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
    3820       45171 :             _res = a;
    3821       45171 :             if (_res == NULL && PyErr_Occurred()) {
    3822           0 :                 p->error_indicator = 1;
    3823           0 :                 p->level--;
    3824           0 :                 return NULL;
    3825             :             }
    3826       45171 :             goto done;
    3827             :         }
    3828          18 :         p->mark = _mark;
    3829          18 :         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          18 :     _res = NULL;
    3833       45189 :   done:
    3834       45189 :     p->level--;
    3835       45189 :     return _res;
    3836             : }
    3837             : 
    3838             : // dotted_as_name: dotted_name ['as' NAME]
    3839             : static alias_ty
    3840       46436 : dotted_as_name_rule(Parser *p)
    3841             : {
    3842       46436 :     if (p->level++ == MAXSTACK) {
    3843           0 :         p->error_indicator = 1;
    3844           0 :         PyErr_NoMemory();
    3845             :     }
    3846       46436 :     if (p->error_indicator) {
    3847           0 :         p->level--;
    3848           0 :         return NULL;
    3849             :     }
    3850       46436 :     alias_ty _res = NULL;
    3851       46436 :     int _mark = p->mark;
    3852       46436 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    3853           0 :         p->error_indicator = 1;
    3854           0 :         p->level--;
    3855           0 :         return NULL;
    3856             :     }
    3857       46436 :     int _start_lineno = p->tokens[_mark]->lineno;
    3858             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3859       46436 :     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       46436 :         if (p->error_indicator) {
    3863           0 :             p->level--;
    3864           0 :             return NULL;
    3865             :         }
    3866       46436 :         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       46436 :         if (
    3870       46436 :             (a = dotted_name_rule(p))  // dotted_name
    3871       46418 :             &&
    3872       46418 :             (b = _tmp_31_rule(p), !p->error_indicator)  // ['as' NAME]
    3873             :         )
    3874             :         {
    3875       46418 :             D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
    3876       46418 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3877       46418 :             if (_token == NULL) {
    3878           0 :                 p->level--;
    3879           0 :                 return NULL;
    3880             :             }
    3881       46418 :             int _end_lineno = _token->end_lineno;
    3882             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3883       46418 :             int _end_col_offset = _token->end_col_offset;
    3884             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3885       46418 :             _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
    3886       46418 :             if (_res == NULL && PyErr_Occurred()) {
    3887           0 :                 p->error_indicator = 1;
    3888           0 :                 p->level--;
    3889           0 :                 return NULL;
    3890             :             }
    3891       46418 :             goto done;
    3892             :         }
    3893          18 :         p->mark = _mark;
    3894          18 :         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          18 :     _res = NULL;
    3898       46436 :   done:
    3899       46436 :     p->level--;
    3900       46436 :     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
    3907      316604 : dotted_name_rule(Parser *p)
    3908             : {
    3909      316604 :     if (p->level++ == MAXSTACK) {
    3910           0 :         p->error_indicator = 1;
    3911           0 :         PyErr_NoMemory();
    3912             :     }
    3913      316604 :     expr_ty _res = NULL;
    3914      316604 :     if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
    3915      223997 :         p->level--;
    3916      223997 :         return _res;
    3917             :     }
    3918       92607 :     int _mark = p->mark;
    3919       92607 :     int _resmark = p->mark;
    3920      131390 :     while (1) {
    3921      223997 :         int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
    3922      223997 :         if (tmpvar_0) {
    3923           0 :             p->level--;
    3924           0 :             return _res;
    3925             :         }
    3926      223997 :         p->mark = _mark;
    3927      223997 :         void *_raw = dotted_name_raw(p);
    3928      223997 :         if (p->error_indicator) {
    3929           2 :             p->level--;
    3930           2 :             return NULL;
    3931             :         }
    3932      223995 :         if (_raw == NULL || p->mark <= _resmark)
    3933             :             break;
    3934      131390 :         _resmark = p->mark;
    3935      131390 :         _res = _raw;
    3936             :     }
    3937       92605 :     p->mark = _resmark;
    3938       92605 :     p->level--;
    3939       92605 :     return _res;
    3940             : }
    3941             : static expr_ty
    3942      223997 : dotted_name_raw(Parser *p)
    3943             : {
    3944      223997 :     if (p->level++ == MAXSTACK) {
    3945           0 :         p->error_indicator = 1;
    3946           0 :         PyErr_NoMemory();
    3947             :     }
    3948      223997 :     if (p->error_indicator) {
    3949           0 :         p->level--;
    3950           0 :         return NULL;
    3951             :     }
    3952      223997 :     expr_ty _res = NULL;
    3953      223997 :     int _mark = p->mark;
    3954             :     { // dotted_name '.' NAME
    3955      223997 :         if (p->error_indicator) {
    3956           0 :             p->level--;
    3957           0 :             return NULL;
    3958             :         }
    3959      223997 :         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      223997 :         if (
    3964      223997 :             (a = dotted_name_rule(p))  // dotted_name
    3965      131390 :             &&
    3966      131390 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
    3967       40058 :             &&
    3968       40058 :             (b = _PyPegen_name_token(p))  // NAME
    3969             :         )
    3970             :         {
    3971       40058 :             D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
    3972       40058 :             _res = _PyPegen_join_names_with_dot ( p , a , b );
    3973       40058 :             if (_res == NULL && PyErr_Occurred()) {
    3974           0 :                 p->error_indicator = 1;
    3975           0 :                 p->level--;
    3976           0 :                 return NULL;
    3977             :             }
    3978       40058 :             goto done;
    3979             :         }
    3980      183939 :         p->mark = _mark;
    3981      183939 :         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      183939 :         if (p->error_indicator) {
    3986           2 :             p->level--;
    3987           2 :             return NULL;
    3988             :         }
    3989      183937 :         D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
    3990             :         expr_ty name_var;
    3991      183937 :         if (
    3992      183937 :             (name_var = _PyPegen_name_token(p))  // NAME
    3993             :         )
    3994             :         {
    3995      182662 :             D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
    3996      182662 :             _res = name_var;
    3997      182662 :             goto done;
    3998             :         }
    3999        1275 :         p->mark = _mark;
    4000        1275 :         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        1275 :     _res = NULL;
    4004      223995 :   done:
    4005      223995 :     p->level--;
    4006      223995 :     return _res;
    4007             : }
    4008             : 
    4009             : // block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
    4010             : static asdl_stmt_seq*
    4011     1739560 : block_rule(Parser *p)
    4012             : {
    4013     1739560 :     if (p->level++ == MAXSTACK) {
    4014           0 :         p->error_indicator = 1;
    4015           0 :         PyErr_NoMemory();
    4016             :     }
    4017     1739560 :     if (p->error_indicator) {
    4018           0 :         p->level--;
    4019           0 :         return NULL;
    4020             :     }
    4021     1739560 :     asdl_stmt_seq* _res = NULL;
    4022     1739560 :     if (_PyPegen_is_memoized(p, block_type, &_res)) {
    4023      531718 :         p->level--;
    4024      531718 :         return _res;
    4025             :     }
    4026     1207850 :     int _mark = p->mark;
    4027             :     { // NEWLINE INDENT statements DEDENT
    4028     1207850 :         if (p->error_indicator) {
    4029           0 :             p->level--;
    4030           0 :             return NULL;
    4031             :         }
    4032     1207850 :         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     1207850 :         if (
    4038     1207850 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
    4039      996080 :             &&
    4040      996080 :             (indent_var = _PyPegen_expect_token(p, INDENT))  // token='INDENT'
    4041      995991 :             &&
    4042      995991 :             (a = statements_rule(p))  // statements
    4043      995866 :             &&
    4044      995866 :             (dedent_var = _PyPegen_expect_token(p, DEDENT))  // token='DEDENT'
    4045             :         )
    4046             :         {
    4047      995840 :             D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
    4048      995840 :             _res = a;
    4049      995840 :             if (_res == NULL && PyErr_Occurred()) {
    4050           0 :                 p->error_indicator = 1;
    4051           0 :                 p->level--;
    4052           0 :                 return NULL;
    4053             :             }
    4054      995840 :             goto done;
    4055             :         }
    4056      212006 :         p->mark = _mark;
    4057      212006 :         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      212006 :         if (p->error_indicator) {
    4062          29 :             p->level--;
    4063          29 :             return NULL;
    4064             :         }
    4065      211977 :         D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
    4066             :         asdl_stmt_seq* simple_stmts_var;
    4067      211977 :         if (
    4068      211977 :             (simple_stmts_var = simple_stmts_rule(p))  // simple_stmts
    4069             :         )
    4070             :         {
    4071      211626 :             D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
    4072      211626 :             _res = simple_stmts_var;
    4073      211626 :             goto done;
    4074             :         }
    4075         351 :         p->mark = _mark;
    4076         351 :         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         351 :     if (p->call_invalid_rules) { // invalid_block
    4080         143 :         if (p->error_indicator) {
    4081           7 :             p->level--;
    4082           7 :             return NULL;
    4083             :         }
    4084         136 :         D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
    4085             :         void *invalid_block_var;
    4086         136 :         if (
    4087         136 :             (invalid_block_var = invalid_block_rule(p))  // invalid_block
    4088             :         )
    4089             :         {
    4090           0 :             D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
    4091           0 :             _res = invalid_block_var;
    4092           0 :             goto done;
    4093             :         }
    4094         136 :         p->mark = _mark;
    4095         136 :         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         344 :     _res = NULL;
    4099     1207810 :   done:
    4100     1207810 :     _PyPegen_insert_memo(p, _mark, block_type, _res);
    4101     1207810 :     p->level--;
    4102     1207810 :     return _res;
    4103             : }
    4104             : 
    4105             : // decorators: (('@' named_expression NEWLINE))+
    4106             : static asdl_expr_seq*
    4107      403392 : decorators_rule(Parser *p)
    4108             : {
    4109      403392 :     if (p->level++ == MAXSTACK) {
    4110           0 :         p->error_indicator = 1;
    4111           0 :         PyErr_NoMemory();
    4112             :     }
    4113      403392 :     if (p->error_indicator) {
    4114           0 :         p->level--;
    4115           0 :         return NULL;
    4116             :     }
    4117      403392 :     asdl_expr_seq* _res = NULL;
    4118      403392 :     int _mark = p->mark;
    4119             :     { // (('@' named_expression NEWLINE))+
    4120      403392 :         if (p->error_indicator) {
    4121           0 :             p->level--;
    4122           0 :             return NULL;
    4123             :         }
    4124      403392 :         D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
    4125             :         asdl_expr_seq* a;
    4126      403392 :         if (
    4127      403392 :             (a = (asdl_expr_seq*)_loop1_32_rule(p))  // (('@' named_expression NEWLINE))+
    4128             :         )
    4129             :         {
    4130       37681 :             D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
    4131       37681 :             _res = a;
    4132       37681 :             if (_res == NULL && PyErr_Occurred()) {
    4133           0 :                 p->error_indicator = 1;
    4134           0 :                 p->level--;
    4135           0 :                 return NULL;
    4136             :             }
    4137       37681 :             goto done;
    4138             :         }
    4139      365711 :         p->mark = _mark;
    4140      365711 :         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      365711 :     _res = NULL;
    4144      403392 :   done:
    4145      403392 :     p->level--;
    4146      403392 :     return _res;
    4147             : }
    4148             : 
    4149             : // class_def: decorators class_def_raw | class_def_raw
    4150             : static stmt_ty
    4151       56811 : class_def_rule(Parser *p)
    4152             : {
    4153       56811 :     if (p->level++ == MAXSTACK) {
    4154           0 :         p->error_indicator = 1;
    4155           0 :         PyErr_NoMemory();
    4156             :     }
    4157       56811 :     if (p->error_indicator) {
    4158           0 :         p->level--;
    4159           0 :         return NULL;
    4160             :     }
    4161       56811 :     stmt_ty _res = NULL;
    4162       56811 :     int _mark = p->mark;
    4163             :     { // decorators class_def_raw
    4164       56811 :         if (p->error_indicator) {
    4165           0 :             p->level--;
    4166           0 :             return NULL;
    4167             :         }
    4168       56811 :         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       56811 :         if (
    4172       56811 :             (a = decorators_rule(p))  // decorators
    4173        3176 :             &&
    4174        3176 :             (b = class_def_raw_rule(p))  // class_def_raw
    4175             :         )
    4176             :         {
    4177        3176 :             D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
    4178        3176 :             _res = _PyPegen_class_def_decorators ( p , a , b );
    4179        3176 :             if (_res == NULL && PyErr_Occurred()) {
    4180           0 :                 p->error_indicator = 1;
    4181           0 :                 p->level--;
    4182           0 :                 return NULL;
    4183             :             }
    4184        3176 :             goto done;
    4185             :         }
    4186       53635 :         p->mark = _mark;
    4187       53635 :         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       53635 :         if (p->error_indicator) {
    4192           0 :             p->level--;
    4193           0 :             return NULL;
    4194             :         }
    4195       53635 :         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       53635 :         if (
    4198       53635 :             (class_def_raw_var = class_def_raw_rule(p))  // class_def_raw
    4199             :         )
    4200             :         {
    4201       53594 :             D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
    4202       53594 :             _res = class_def_raw_var;
    4203       53594 :             goto done;
    4204             :         }
    4205          41 :         p->mark = _mark;
    4206          41 :         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          41 :     _res = NULL;
    4210       56811 :   done:
    4211       56811 :     p->level--;
    4212       56811 :     return _res;
    4213             : }
    4214             : 
    4215             : // class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] ':' block
    4216             : static stmt_ty
    4217       56811 : class_def_raw_rule(Parser *p)
    4218             : {
    4219       56811 :     if (p->level++ == MAXSTACK) {
    4220           0 :         p->error_indicator = 1;
    4221           0 :         PyErr_NoMemory();
    4222             :     }
    4223       56811 :     if (p->error_indicator) {
    4224           0 :         p->level--;
    4225           0 :         return NULL;
    4226             :     }
    4227       56811 :     stmt_ty _res = NULL;
    4228       56811 :     int _mark = p->mark;
    4229       56811 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    4230           0 :         p->error_indicator = 1;
    4231           0 :         p->level--;
    4232           0 :         return NULL;
    4233             :     }
    4234       56811 :     int _start_lineno = p->tokens[_mark]->lineno;
    4235             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    4236       56811 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    4237             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    4238       56811 :     if (p->call_invalid_rules) { // invalid_class_def_raw
    4239          15 :         if (p->error_indicator) {
    4240           0 :             p->level--;
    4241           0 :             return NULL;
    4242             :         }
    4243          15 :         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          15 :         if (
    4246          15 :             (invalid_class_def_raw_var = invalid_class_def_raw_rule(p))  // invalid_class_def_raw
    4247             :         )
    4248             :         {
    4249           0 :             D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
    4250           0 :             _res = invalid_class_def_raw_var;
    4251           0 :             goto done;
    4252             :         }
    4253          15 :         p->mark = _mark;
    4254          15 :         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       56811 :         if (p->error_indicator) {
    4259           2 :             p->level--;
    4260           2 :             return NULL;
    4261             :         }
    4262       56809 :         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       56809 :         if (
    4269       56809 :             (_keyword = _PyPegen_expect_token(p, 646))  // token='class'
    4270       56800 :             &&
    4271       56800 :             (a = _PyPegen_name_token(p))  // NAME
    4272       56790 :             &&
    4273       56790 :             (b = _tmp_33_rule(p), !p->error_indicator)  // ['(' arguments? ')']
    4274       56784 :             &&
    4275       56784 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    4276       56779 :             &&
    4277       56779 :             (c = block_rule(p))  // block
    4278             :         )
    4279             :         {
    4280       56770 :             D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
    4281       56770 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    4282       56770 :             if (_token == NULL) {
    4283           0 :                 p->level--;
    4284           0 :                 return NULL;
    4285             :             }
    4286       56770 :             int _end_lineno = _token->end_lineno;
    4287             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    4288       56770 :             int _end_col_offset = _token->end_col_offset;
    4289             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    4290       56770 :             _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       56770 :             if (_res == NULL && PyErr_Occurred()) {
    4292           0 :                 p->error_indicator = 1;
    4293           0 :                 p->level--;
    4294           0 :                 return NULL;
    4295             :             }
    4296       56770 :             goto done;
    4297             :         }
    4298          39 :         p->mark = _mark;
    4299          39 :         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          39 :     _res = NULL;
    4303       56809 :   done:
    4304       56809 :     p->level--;
    4305       56809 :     return _res;
    4306             : }
    4307             : 
    4308             : // function_def: decorators function_def_raw | function_def_raw
    4309             : static stmt_ty
    4310      346581 : function_def_rule(Parser *p)
    4311             : {
    4312      346581 :     if (p->level++ == MAXSTACK) {
    4313           0 :         p->error_indicator = 1;
    4314           0 :         PyErr_NoMemory();
    4315             :     }
    4316      346581 :     if (p->error_indicator) {
    4317           0 :         p->level--;
    4318           0 :         return NULL;
    4319             :     }
    4320      346581 :     stmt_ty _res = NULL;
    4321      346581 :     int _mark = p->mark;
    4322             :     { // decorators function_def_raw
    4323      346581 :         if (p->error_indicator) {
    4324           0 :             p->level--;
    4325           0 :             return NULL;
    4326             :         }
    4327      346581 :         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      346581 :         if (
    4331      346581 :             (d = decorators_rule(p))  // decorators
    4332       34505 :             &&
    4333       34505 :             (f = function_def_raw_rule(p))  // function_def_raw
    4334             :         )
    4335             :         {
    4336       31329 :             D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
    4337       31329 :             _res = _PyPegen_function_def_decorators ( p , d , f );
    4338       31329 :             if (_res == NULL && PyErr_Occurred()) {
    4339           0 :                 p->error_indicator = 1;
    4340           0 :                 p->level--;
    4341           0 :                 return NULL;
    4342             :             }
    4343       31329 :             goto done;
    4344             :         }
    4345      315252 :         p->mark = _mark;
    4346      315252 :         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      315252 :         if (p->error_indicator) {
    4351          11 :             p->level--;
    4352          11 :             return NULL;
    4353             :         }
    4354      315241 :         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      315241 :         if (
    4357      315241 :             (function_def_raw_var = function_def_raw_rule(p))  // function_def_raw
    4358             :         )
    4359             :         {
    4360      311057 :             D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
    4361      311057 :             _res = function_def_raw_var;
    4362      311057 :             goto done;
    4363             :         }
    4364        4184 :         p->mark = _mark;
    4365        4184 :         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        4184 :     _res = NULL;
    4369      346570 :   done:
    4370      346570 :     p->level--;
    4371      346570 :     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
    4379      349746 : function_def_raw_rule(Parser *p)
    4380             : {
    4381      349746 :     if (p->level++ == MAXSTACK) {
    4382           0 :         p->error_indicator = 1;
    4383           0 :         PyErr_NoMemory();
    4384             :     }
    4385      349746 :     if (p->error_indicator) {
    4386           0 :         p->level--;
    4387           0 :         return NULL;
    4388             :     }
    4389      349746 :     stmt_ty _res = NULL;
    4390      349746 :     int _mark = p->mark;
    4391      349746 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    4392           0 :         p->error_indicator = 1;
    4393           0 :         p->level--;
    4394           0 :         return NULL;
    4395             :     }
    4396      349746 :     int _start_lineno = p->tokens[_mark]->lineno;
    4397             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    4398      349746 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    4399             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    4400      349746 :     if (p->call_invalid_rules) { // invalid_def_raw
    4401         217 :         if (p->error_indicator) {
    4402           0 :             p->level--;
    4403           0 :             return NULL;
    4404             :         }
    4405         217 :         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         217 :         if (
    4408         217 :             (invalid_def_raw_var = invalid_def_raw_rule(p))  // invalid_def_raw
    4409             :         )
    4410             :         {
    4411           0 :             D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
    4412           0 :             _res = invalid_def_raw_var;
    4413           0 :             goto done;
    4414             :         }
    4415         217 :         p->mark = _mark;
    4416         217 :         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      349746 :         if (p->error_indicator) {
    4421          72 :             p->level--;
    4422          72 :             return NULL;
    4423             :         }
    4424      349674 :         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      349674 :         if (
    4435      349674 :             (_keyword = _PyPegen_expect_token(p, 644))  // token='def'
    4436      339196 :             &&
    4437      339196 :             (n = _PyPegen_name_token(p))  // NAME
    4438      339178 :             &&
    4439      339178 :             (_literal = _PyPegen_expect_forced_token(p, 7, "("))  // forced_token='('
    4440      339173 :             &&
    4441      339173 :             (params = params_rule(p), !p->error_indicator)  // params?
    4442      339160 :             &&
    4443      339160 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
    4444      339010 :             &&
    4445      339010 :             (a = _tmp_34_rule(p), !p->error_indicator)  // ['->' expression]
    4446      339010 :             &&
    4447      339010 :             (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
    4448      339009 :             &&
    4449      339009 :             (tc = func_type_comment_rule(p), !p->error_indicator)  // func_type_comment?
    4450      339000 :             &&
    4451      339000 :             (b = block_rule(p))  // block
    4452             :         )
    4453             :         {
    4454      338923 :             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      338923 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    4456      338923 :             if (_token == NULL) {
    4457           0 :                 p->level--;
    4458           0 :                 return NULL;
    4459             :             }
    4460      338923 :             int _end_lineno = _token->end_lineno;
    4461             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    4462      338923 :             int _end_col_offset = _token->end_col_offset;
    4463             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    4464      338923 :             _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      338923 :             if (_res == NULL && PyErr_Occurred()) {
    4466           0 :                 p->error_indicator = 1;
    4467           0 :                 p->level--;
    4468           0 :                 return NULL;
    4469             :             }
    4470      338923 :             goto done;
    4471             :         }
    4472       10751 :         p->mark = _mark;
    4473       10751 :         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       10751 :         if (p->error_indicator) {
    4478          39 :             p->level--;
    4479          39 :             return NULL;
    4480             :         }
    4481       10712 :         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       10712 :         if (
    4493       10712 :             (async_var = _PyPegen_expect_token(p, ASYNC))  // token='ASYNC'
    4494        4117 :             &&
    4495        4117 :             (_keyword = _PyPegen_expect_token(p, 644))  // token='def'
    4496        3522 :             &&
    4497        3522 :             (n = _PyPegen_name_token(p))  // NAME
    4498        3522 :             &&
    4499        3522 :             (_literal = _PyPegen_expect_forced_token(p, 7, "("))  // forced_token='('
    4500        3521 :             &&
    4501        3521 :             (params = params_rule(p), !p->error_indicator)  // params?
    4502        3521 :             &&
    4503        3521 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
    4504        3498 :             &&
    4505        3498 :             (a = _tmp_35_rule(p), !p->error_indicator)  // ['->' expression]
    4506        3498 :             &&
    4507        3498 :             (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
    4508        3498 :             &&
    4509        3498 :             (tc = func_type_comment_rule(p), !p->error_indicator)  // func_type_comment?
    4510        3498 :             &&
    4511        3498 :             (b = block_rule(p))  // block
    4512             :         )
    4513             :         {
    4514        3463 :             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        3463 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    4516        3463 :             if (_token == NULL) {
    4517           0 :                 p->level--;
    4518           0 :                 return NULL;
    4519             :             }
    4520        3463 :             int _end_lineno = _token->end_lineno;
    4521             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    4522        3463 :             int _end_col_offset = _token->end_col_offset;
    4523             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    4524        3463 :             _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        3463 :             if (_res == NULL && PyErr_Occurred()) {
    4526           0 :                 p->error_indicator = 1;
    4527           0 :                 p->level--;
    4528           0 :                 return NULL;
    4529             :             }
    4530        3463 :             goto done;
    4531             :         }
    4532        7249 :         p->mark = _mark;
    4533        7249 :         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        7249 :     _res = NULL;
    4537      349635 :   done:
    4538      349635 :     p->level--;
    4539      349635 :     return _res;
    4540             : }
    4541             : 
    4542             : // params: invalid_parameters | parameters
    4543             : static arguments_ty
    4544      342881 : params_rule(Parser *p)
    4545             : {
    4546      342881 :     if (p->level++ == MAXSTACK) {
    4547           0 :         p->error_indicator = 1;
    4548           0 :         PyErr_NoMemory();
    4549             :     }
    4550      342881 :     if (p->error_indicator) {
    4551           0 :         p->level--;
    4552           0 :         return NULL;
    4553             :     }
    4554      342881 :     arguments_ty _res = NULL;
    4555      342881 :     int _mark = p->mark;
    4556      342881 :     if (p->call_invalid_rules) { // invalid_parameters
    4557         302 :         if (p->error_indicator) {
    4558           0 :             p->level--;
    4559           0 :             return NULL;
    4560             :         }
    4561         302 :         D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
    4562             :         void *invalid_parameters_var;
    4563         302 :         if (
    4564         302 :             (invalid_parameters_var = invalid_parameters_rule(p))  // invalid_parameters
    4565             :         )
    4566             :         {
    4567           0 :             D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
    4568           0 :             _res = invalid_parameters_var;
    4569           0 :             goto done;
    4570             :         }
    4571         302 :         p->mark = _mark;
    4572         302 :         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      342881 :         if (p->error_indicator) {
    4577          50 :             p->level--;
    4578          50 :             return NULL;
    4579             :         }
    4580      342831 :         D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
    4581             :         arguments_ty parameters_var;
    4582      342831 :         if (
    4583      342831 :             (parameters_var = parameters_rule(p))  // parameters
    4584             :         )
    4585             :         {
    4586      324502 :             D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
    4587      324502 :             _res = parameters_var;
    4588      324502 :             goto done;
    4589             :         }
    4590       18329 :         p->mark = _mark;
    4591       18329 :         D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
    4592             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
    4593             :     }
    4594       18329 :     _res = NULL;
    4595      342831 :   done:
    4596      342831 :     p->level--;
    4597      342831 :     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
    4607      342831 : parameters_rule(Parser *p)
    4608             : {
    4609      342831 :     if (p->level++ == MAXSTACK) {
    4610           0 :         p->error_indicator = 1;
    4611           0 :         PyErr_NoMemory();
    4612             :     }
    4613      342831 :     if (p->error_indicator) {
    4614           0 :         p->level--;
    4615           0 :         return NULL;
    4616             :     }
    4617      342831 :     arguments_ty _res = NULL;
    4618      342831 :     int _mark = p->mark;
    4619             :     { // slash_no_default param_no_default* param_with_default* star_etc?
    4620      342831 :         if (p->error_indicator) {
    4621           0 :             p->level--;
    4622           0 :             return NULL;
    4623             :         }
    4624      342831 :         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      342831 :         if (
    4630      342831 :             (a = slash_no_default_rule(p))  // slash_no_default
    4631       17415 :             &&
    4632       17415 :             (b = (asdl_arg_seq*)_loop0_36_rule(p))  // param_no_default*
    4633       17415 :             &&
    4634       17415 :             (c = _loop0_37_rule(p))  // param_with_default*
    4635       17415 :             &&
    4636       17415 :             (d = star_etc_rule(p), !p->error_indicator)  // star_etc?
    4637             :         )
    4638             :         {
    4639       17413 :             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       17413 :             _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
    4641       17413 :             if (_res == NULL && PyErr_Occurred()) {
    4642           0 :                 p->error_indicator = 1;
    4643           0 :                 p->level--;
    4644           0 :                 return NULL;
    4645             :             }
    4646       17413 :             goto done;
    4647             :         }
    4648      325418 :         p->mark = _mark;
    4649      325418 :         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      325418 :         if (p->error_indicator) {
    4654          15 :             p->level--;
    4655          15 :             return NULL;
    4656             :         }
    4657      325403 :         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      325403 :         if (
    4662      325403 :             (a = slash_with_default_rule(p))  // slash_with_default
    4663         375 :             &&
    4664         375 :             (b = _loop0_38_rule(p))  // param_with_default*
    4665         375 :             &&
    4666         375 :             (c = star_etc_rule(p), !p->error_indicator)  // star_etc?
    4667             :         )
    4668             :         {
    4669         374 :             D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
    4670         374 :             _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
    4671         374 :             if (_res == NULL && PyErr_Occurred()) {
    4672           0 :                 p->error_indicator = 1;
    4673           0 :                 p->level--;
    4674           0 :                 return NULL;
    4675             :             }
    4676         374 :             goto done;
    4677             :         }
    4678      325029 :         p->mark = _mark;
    4679      325029 :         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      325029 :         if (p->error_indicator) {
    4684           1 :             p->level--;
    4685           1 :             return NULL;
    4686             :         }
    4687      325028 :         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      325028 :         if (
    4692      325028 :             (a = (asdl_arg_seq*)_loop1_39_rule(p))  // param_no_default+
    4693      300289 :             &&
    4694      300289 :             (b = _loop0_40_rule(p))  // param_with_default*
    4695      300289 :             &&
    4696      300289 :             (c = star_etc_rule(p), !p->error_indicator)  // star_etc?
    4697             :         )
    4698             :         {
    4699      300278 :             D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
    4700      300278 :             _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
    4701      300278 :             if (_res == NULL && PyErr_Occurred()) {
    4702           0 :                 p->error_indicator = 1;
    4703           0 :                 p->level--;
    4704           0 :                 return NULL;
    4705             :             }
    4706      300278 :             goto done;
    4707             :         }
    4708       24750 :         p->mark = _mark;
    4709       24750 :         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       24750 :         if (p->error_indicator) {
    4714          11 :             p->level--;
    4715          11 :             return NULL;
    4716             :         }
    4717       24739 :         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       24739 :         if (
    4721       24739 :             (a = _loop1_41_rule(p))  // param_with_default+
    4722        3107 :             &&
    4723        3107 :             (b = star_etc_rule(p), !p->error_indicator)  // star_etc?
    4724             :         )
    4725             :         {
    4726        3107 :             D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
    4727        3107 :             _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
    4728        3107 :             if (_res == NULL && PyErr_Occurred()) {
    4729           0 :                 p->error_indicator = 1;
    4730           0 :                 p->level--;
    4731           0 :                 return NULL;
    4732             :             }
    4733        3107 :             goto done;
    4734             :         }
    4735       21632 :         p->mark = _mark;
    4736       21632 :         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       21632 :         if (p->error_indicator) {
    4741           0 :             p->level--;
    4742           0 :             return NULL;
    4743             :         }
    4744       21632 :         D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
    4745             :         StarEtc* a;
    4746       21632 :         if (
    4747       21632 :             (a = star_etc_rule(p))  // star_etc
    4748             :         )
    4749             :         {
    4750        3330 :             D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
    4751        3330 :             _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
    4752        3330 :             if (_res == NULL && PyErr_Occurred()) {
    4753           0 :                 p->error_indicator = 1;
    4754           0 :                 p->level--;
    4755           0 :                 return NULL;
    4756             :             }
    4757        3330 :             goto done;
    4758             :         }
    4759       18302 :         p->mark = _mark;
    4760       18302 :         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       18302 :     _res = NULL;
    4764      342804 :   done:
    4765      342804 :     p->level--;
    4766      342804 :     return _res;
    4767             : }
    4768             : 
    4769             : // slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
    4770             : static asdl_arg_seq*
    4771      343371 : slash_no_default_rule(Parser *p)
    4772             : {
    4773      343371 :     if (p->level++ == MAXSTACK) {
    4774           0 :         p->error_indicator = 1;
    4775           0 :         PyErr_NoMemory();
    4776             :     }
    4777      343371 :     if (p->error_indicator) {
    4778           0 :         p->level--;
    4779           0 :         return NULL;
    4780             :     }
    4781      343371 :     asdl_arg_seq* _res = NULL;
    4782      343371 :     int _mark = p->mark;
    4783             :     { // param_no_default+ '/' ','
    4784      343371 :         if (p->error_indicator) {
    4785           0 :             p->level--;
    4786           0 :             return NULL;
    4787             :         }
    4788      343371 :         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      343371 :         if (
    4793      343371 :             (a = (asdl_arg_seq*)_loop1_42_rule(p))  // param_no_default+
    4794      318080 :             &&
    4795      318080 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
    4796       17430 :             &&
    4797       17430 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
    4798             :         )
    4799             :         {
    4800       17200 :             D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
    4801       17200 :             _res = a;
    4802       17200 :             if (_res == NULL && PyErr_Occurred()) {
    4803           0 :                 p->error_indicator = 1;
    4804           0 :                 p->level--;
    4805           0 :                 return NULL;
    4806             :             }
    4807       17200 :             goto done;
    4808             :         }
    4809      326171 :         p->mark = _mark;
    4810      326171 :         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      326171 :         if (p->error_indicator) {
    4815          13 :             p->level--;
    4816          13 :             return NULL;
    4817             :         }
    4818      326158 :         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      326158 :         if (
    4822      326158 :             (a = (asdl_arg_seq*)_loop1_43_rule(p))  // param_no_default+
    4823      300880 :             &&
    4824      300880 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
    4825         230 :             &&
    4826         230 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8)  // token=')'
    4827             :         )
    4828             :         {
    4829         230 :             D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
    4830         230 :             _res = a;
    4831         230 :             if (_res == NULL && PyErr_Occurred()) {
    4832           0 :                 p->error_indicator = 1;
    4833           0 :                 p->level--;
    4834           0 :                 return NULL;
    4835             :             }
    4836         230 :             goto done;
    4837             :         }
    4838      325928 :         p->mark = _mark;
    4839      325928 :         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      325928 :     _res = NULL;
    4843      343358 :   done:
    4844      343358 :     p->level--;
    4845      343358 :     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*
    4852      326225 : slash_with_default_rule(Parser *p)
    4853             : {
    4854      326225 :     if (p->level++ == MAXSTACK) {
    4855           0 :         p->error_indicator = 1;
    4856           0 :         PyErr_NoMemory();
    4857             :     }
    4858      326225 :     if (p->error_indicator) {
    4859           0 :         p->level--;
    4860           0 :         return NULL;
    4861             :     }
    4862      326225 :     SlashWithDefault* _res = NULL;
    4863      326225 :     int _mark = p->mark;
    4864             :     { // param_no_default* param_with_default+ '/' ','
    4865      326225 :         if (p->error_indicator) {
    4866           0 :             p->level--;
    4867           0 :             return NULL;
    4868             :         }
    4869      326225 :         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      326225 :         if (
    4875      326225 :             (a = _loop0_44_rule(p))  // param_no_default*
    4876      326225 :             &&
    4877      326225 :             (b = _loop1_45_rule(p))  // param_with_default+
    4878       40138 :             &&
    4879       40138 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
    4880         388 :             &&
    4881         388 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
    4882             :         )
    4883             :         {
    4884         360 :             D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
    4885         360 :             _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq* ) a , b );
    4886         360 :             if (_res == NULL && PyErr_Occurred()) {
    4887           0 :                 p->error_indicator = 1;
    4888           0 :                 p->level--;
    4889           0 :                 return NULL;
    4890             :             }
    4891         360 :             goto done;
    4892             :         }
    4893      325865 :         p->mark = _mark;
    4894      325865 :         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      325865 :         if (p->error_indicator) {
    4899           3 :             p->level--;
    4900           3 :             return NULL;
    4901             :         }
    4902      325862 :         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      325862 :         if (
    4907      325862 :             (a = _loop0_46_rule(p))  // param_no_default*
    4908      325862 :             &&
    4909      325862 :             (b = _loop1_47_rule(p))  // param_with_default+
    4910       39778 :             &&
    4911       39778 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
    4912          28 :             &&
    4913          28 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8)  // token=')'
    4914             :         )
    4915             :         {
    4916          24 :             D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
    4917          24 :             _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq* ) a , b );
    4918          24 :             if (_res == NULL && PyErr_Occurred()) {
    4919           0 :                 p->error_indicator = 1;
    4920           0 :                 p->level--;
    4921           0 :                 return NULL;
    4922             :             }
    4923          24 :             goto done;
    4924             :         }
    4925      325838 :         p->mark = _mark;
    4926      325838 :         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      325838 :     _res = NULL;
    4930      326222 :   done:
    4931      326222 :     p->level--;
    4932      326222 :     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*
    4942      342818 : star_etc_rule(Parser *p)
    4943             : {
    4944      342818 :     if (p->level++ == MAXSTACK) {
    4945           0 :         p->error_indicator = 1;
    4946           0 :         PyErr_NoMemory();
    4947             :     }
    4948      342818 :     if (p->error_indicator) {
    4949           0 :         p->level--;
    4950           0 :         return NULL;
    4951             :     }
    4952      342818 :     StarEtc* _res = NULL;
    4953      342818 :     int _mark = p->mark;
    4954      342818 :     if (p->call_invalid_rules) { // invalid_star_etc
    4955         252 :         if (p->error_indicator) {
    4956           0 :             p->level--;
    4957           0 :             return NULL;
    4958             :         }
    4959         252 :         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         252 :         if (
    4962         252 :             (invalid_star_etc_var = invalid_star_etc_rule(p))  // invalid_star_etc
    4963             :         )
    4964             :         {
    4965           0 :             D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
    4966           0 :             _res = invalid_star_etc_var;
    4967           0 :             goto done;
    4968             :         }
    4969         252 :         p->mark = _mark;
    4970         252 :         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      342818 :         if (p->error_indicator) {
    4975          10 :             p->level--;
    4976          10 :             return NULL;
    4977             :         }
    4978      342808 :         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      342808 :         if (
    4984      342808 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
    4985       33090 :             &&
    4986       33090 :             (a = param_no_default_rule(p))  // param_no_default
    4987       27138 :             &&
    4988       27138 :             (b = _loop0_48_rule(p))  // param_maybe_default*
    4989       27138 :             &&
    4990       27138 :             (c = kwds_rule(p), !p->error_indicator)  // kwds?
    4991             :         )
    4992             :         {
    4993       27134 :             D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
    4994       27134 :             _res = _PyPegen_star_etc ( p , a , b , c );
    4995       27134 :             if (_res == NULL && PyErr_Occurred()) {
    4996           0 :                 p->error_indicator = 1;
    4997           0 :                 p->level--;
    4998           0 :                 return NULL;
    4999             :             }
    5000       27134 :             goto done;
    5001             :         }
    5002      315674 :         p->mark = _mark;
    5003      315674 :         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      315674 :         if (p->error_indicator) {
    5008           4 :             p->level--;
    5009           4 :             return NULL;
    5010             :         }
    5011      315670 :         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      315670 :         if (
    5017      315670 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
    5018        5952 :             &&
    5019        5952 :             (a = param_no_default_star_annotation_rule(p))  // param_no_default_star_annotation
    5020          20 :             &&
    5021          20 :             (b = _loop0_49_rule(p))  // param_maybe_default*
    5022          20 :             &&
    5023          20 :             (c = kwds_rule(p), !p->error_indicator)  // kwds?
    5024             :         )
    5025             :         {
    5026          20 :             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          20 :             _res = _PyPegen_star_etc ( p , a , b , c );
    5028          20 :             if (_res == NULL && PyErr_Occurred()) {
    5029           0 :                 p->error_indicator = 1;
    5030           0 :                 p->level--;
    5031           0 :                 return NULL;
    5032             :             }
    5033          20 :             goto done;
    5034             :         }
    5035      315650 :         p->mark = _mark;
    5036      315650 :         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      315650 :         if (p->error_indicator) {
    5041           0 :             p->level--;
    5042           0 :             return NULL;
    5043             :         }
    5044      315650 :         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      315650 :         if (
    5050      315650 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
    5051        5932 :             &&
    5052        5932 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
    5053        5922 :             &&
    5054        5922 :             (b = _loop1_50_rule(p))  // param_maybe_default+
    5055        5909 :             &&
    5056        5909 :             (c = kwds_rule(p), !p->error_indicator)  // kwds?
    5057             :         )
    5058             :         {
    5059        5909 :             D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
    5060        5909 :             _res = _PyPegen_star_etc ( p , NULL , b , c );
    5061        5909 :             if (_res == NULL && PyErr_Occurred()) {
    5062           0 :                 p->error_indicator = 1;
    5063           0 :                 p->level--;
    5064           0 :                 return NULL;
    5065             :             }
    5066        5909 :             goto done;
    5067             :         }
    5068      309741 :         p->mark = _mark;
    5069      309741 :         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      309741 :         if (p->error_indicator) {
    5074           0 :             p->level--;
    5075           0 :             return NULL;
    5076             :         }
    5077      309741 :         D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
    5078             :         arg_ty a;
    5079      309741 :         if (
    5080      309741 :             (a = kwds_rule(p))  // kwds
    5081             :         )
    5082             :         {
    5083        3524 :             D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
    5084        3524 :             _res = _PyPegen_star_etc ( p , NULL , NULL , a );
    5085        3524 :             if (_res == NULL && PyErr_Occurred()) {
    5086           0 :                 p->error_indicator = 1;
    5087           0 :                 p->level--;
    5088           0 :                 return NULL;
    5089             :             }
    5090        3524 :             goto done;
    5091             :         }
    5092      306217 :         p->mark = _mark;
    5093      306217 :         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      306217 :     _res = NULL;
    5097      342804 :   done:
    5098      342804 :     p->level--;
    5099      342804 :     return _res;
    5100             : }
    5101             : 
    5102             : // kwds: invalid_kwds | '**' param_no_default
    5103             : static arg_ty
    5104      342808 : kwds_rule(Parser *p)
    5105             : {
    5106      342808 :     if (p->level++ == MAXSTACK) {
    5107           0 :         p->error_indicator = 1;
    5108           0 :         PyErr_NoMemory();
    5109             :     }
    5110      342808 :     if (p->error_indicator) {
    5111           0 :         p->level--;
    5112           0 :         return NULL;
    5113             :     }
    5114      342808 :     arg_ty _res = NULL;
    5115      342808 :     int _mark = p->mark;
    5116      342808 :     if (p->call_invalid_rules) { // invalid_kwds
    5117         242 :         if (p->error_indicator) {
    5118           0 :             p->level--;
    5119           0 :             return NULL;
    5120             :         }
    5121         242 :         D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwds"));
    5122             :         void *invalid_kwds_var;
    5123         242 :         if (
    5124         242 :             (invalid_kwds_var = invalid_kwds_rule(p))  // invalid_kwds
    5125             :         )
    5126             :         {
    5127           0 :             D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwds"));
    5128           0 :             _res = invalid_kwds_var;
    5129           0 :             goto done;
    5130             :         }
    5131         242 :         p->mark = _mark;
    5132         242 :         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      342808 :         if (p->error_indicator) {
    5137           9 :             p->level--;
    5138           9 :             return NULL;
    5139             :         }
    5140      342799 :         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      342799 :         if (
    5144      342799 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
    5145       25435 :             &&
    5146       25435 :             (a = param_no_default_rule(p))  // param_no_default
    5147             :         )
    5148             :         {
    5149       25427 :             D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
    5150       25427 :             _res = a;
    5151       25427 :             if (_res == NULL && PyErr_Occurred()) {
    5152           0 :                 p->error_indicator = 1;
    5153           0 :                 p->level--;
    5154           0 :                 return NULL;
    5155             :             }
    5156       25427 :             goto done;
    5157             :         }
    5158      317372 :         p->mark = _mark;
    5159      317372 :         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      317372 :     _res = NULL;
    5163      342799 :   done:
    5164      342799 :     p->level--;
    5165      342799 :     return _res;
    5166             : }
    5167             : 
    5168             : // param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
    5169             : static arg_ty
    5170     4079850 : param_no_default_rule(Parser *p)
    5171             : {
    5172     4079850 :     if (p->level++ == MAXSTACK) {
    5173           0 :         p->error_indicator = 1;
    5174           0 :         PyErr_NoMemory();
    5175             :     }
    5176     4079850 :     if (p->error_indicator) {
    5177           0 :         p->level--;
    5178           0 :         return NULL;
    5179             :     }
    5180     4079850 :     arg_ty _res = NULL;
    5181     4079850 :     int _mark = p->mark;
    5182             :     { // param ',' TYPE_COMMENT?
    5183     4079850 :         if (p->error_indicator) {
    5184           0 :             p->level--;
    5185           0 :             return NULL;
    5186             :         }
    5187     4079850 :         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     4079850 :         if (
    5192     4079850 :             (a = param_rule(p))  // param
    5193     2610540 :             &&
    5194     2610540 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
    5195     1126870 :             &&
    5196     1126870 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    5197             :         )
    5198             :         {
    5199     1126870 :             D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
    5200     1126870 :             _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
    5201     1126870 :             if (_res == NULL && PyErr_Occurred()) {
    5202           0 :                 p->error_indicator = 1;
    5203           0 :                 p->level--;
    5204           0 :                 return NULL;
    5205             :             }
    5206     1126870 :             goto done;
    5207             :         }
    5208     2952980 :         p->mark = _mark;
    5209     2952980 :         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     2952980 :         if (p->error_indicator) {
    5214          18 :             p->level--;
    5215          18 :             return NULL;
    5216             :         }
    5217     2952960 :         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     2952960 :         if (
    5221     2952960 :             (a = param_rule(p))  // param
    5222     1483670 :             &&
    5223     1483670 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    5224     1483670 :             &&
    5225     1483670 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8)  // token=')'
    5226             :         )
    5227             :         {
    5228     1282350 :             D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
    5229     1282350 :             _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
    5230     1282350 :             if (_res == NULL && PyErr_Occurred()) {
    5231           0 :                 p->error_indicator = 1;
    5232           0 :                 p->level--;
    5233           0 :                 return NULL;
    5234             :             }
    5235     1282350 :             goto done;
    5236             :         }
    5237     1670610 :         p->mark = _mark;
    5238     1670610 :         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     1670610 :     _res = NULL;
    5242     4079830 :   done:
    5243     4079830 :     p->level--;
    5244     4079830 :     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
    5251        5952 : param_no_default_star_annotation_rule(Parser *p)
    5252             : {
    5253        5952 :     if (p->level++ == MAXSTACK) {
    5254           0 :         p->error_indicator = 1;
    5255           0 :         PyErr_NoMemory();
    5256             :     }
    5257        5952 :     if (p->error_indicator) {
    5258           0 :         p->level--;
    5259           0 :         return NULL;
    5260             :     }
    5261        5952 :     arg_ty _res = NULL;
    5262        5952 :     int _mark = p->mark;
    5263             :     { // param_star_annotation ',' TYPE_COMMENT?
    5264        5952 :         if (p->error_indicator) {
    5265           0 :             p->level--;
    5266           0 :             return NULL;
    5267             :         }
    5268        5952 :         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        5952 :         if (
    5273        5952 :             (a = param_star_annotation_rule(p))  // param_star_annotation
    5274          24 :             &&
    5275          24 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
    5276           3 :             &&
    5277           3 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    5278             :         )
    5279             :         {
    5280           3 :             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           3 :             _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
    5282           3 :             if (_res == NULL && PyErr_Occurred()) {
    5283           0 :                 p->error_indicator = 1;
    5284           0 :                 p->level--;
    5285           0 :                 return NULL;
    5286             :             }
    5287           3 :             goto done;
    5288             :         }
    5289        5949 :         p->mark = _mark;
    5290        5949 :         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        5949 :         if (p->error_indicator) {
    5295           0 :             p->level--;
    5296           0 :             return NULL;
    5297             :         }
    5298        5949 :         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        5949 :         if (
    5302        5949 :             (a = param_star_annotation_rule(p))  // param_star_annotation
    5303          21 :             &&
    5304          21 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    5305          21 :             &&
    5306          21 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8)  // token=')'
    5307             :         )
    5308             :         {
    5309          17 :             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          17 :             _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
    5311          17 :             if (_res == NULL && PyErr_Occurred()) {
    5312           0 :                 p->error_indicator = 1;
    5313           0 :                 p->level--;
    5314           0 :                 return NULL;
    5315             :             }
    5316          17 :             goto done;
    5317             :         }
    5318        5932 :         p->mark = _mark;
    5319        5932 :         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        5932 :     _res = NULL;
    5323        5952 :   done:
    5324        5952 :     p->level--;
    5325        5952 :     return _res;
    5326             : }
    5327             : 
    5328             : // param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
    5329             : static NameDefaultPair*
    5330     1216990 : param_with_default_rule(Parser *p)
    5331             : {
    5332     1216990 :     if (p->level++ == MAXSTACK) {
    5333           0 :         p->error_indicator = 1;
    5334           0 :         PyErr_NoMemory();
    5335             :     }
    5336     1216990 :     if (p->error_indicator) {
    5337           0 :         p->level--;
    5338           0 :         return NULL;
    5339             :     }
    5340     1216990 :     NameDefaultPair* _res = NULL;
    5341     1216990 :     int _mark = p->mark;
    5342             :     { // param default ',' TYPE_COMMENT?
    5343     1216990 :         if (p->error_indicator) {
    5344           0 :             p->level--;
    5345           0 :             return NULL;
    5346             :         }
    5347     1216990 :         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     1216990 :         if (
    5353     1216990 :             (a = param_rule(p))  // param
    5354      222602 :             &&
    5355      222602 :             (c = default_rule(p))  // default
    5356      221822 :             &&
    5357      221822 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
    5358      120441 :             &&
    5359      120441 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    5360             :         )
    5361             :         {
    5362      120441 :             D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
    5363      120441 :             _res = _PyPegen_name_default_pair ( p , a , c , tc );
    5364      120441 :             if (_res == NULL && PyErr_Occurred()) {
    5365           0 :                 p->error_indicator = 1;
    5366           0 :                 p->level--;
    5367           0 :                 return NULL;
    5368             :             }
    5369      120441 :             goto done;
    5370             :         }
    5371     1096550 :         p->mark = _mark;
    5372     1096550 :         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     1096550 :         if (p->error_indicator) {
    5377           3 :             p->level--;
    5378           3 :             return NULL;
    5379             :         }
    5380     1096550 :         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     1096550 :         if (
    5385     1096550 :             (a = param_rule(p))  // param
    5386      102158 :             &&
    5387      102158 :             (c = default_rule(p))  // default
    5388      101381 :             &&
    5389      101381 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    5390      101381 :             &&
    5391      101381 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8)  // token=')'
    5392             :         )
    5393             :         {
    5394      101358 :             D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
    5395      101358 :             _res = _PyPegen_name_default_pair ( p , a , c , tc );
    5396      101358 :             if (_res == NULL && PyErr_Occurred()) {
    5397           0 :                 p->error_indicator = 1;
    5398           0 :                 p->level--;
    5399           0 :                 return NULL;
    5400             :             }
    5401      101358 :             goto done;
    5402             :         }
    5403      995190 :         p->mark = _mark;
    5404      995190 :         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      995190 :     _res = NULL;
    5408     1216990 :   done:
    5409     1216990 :     p->level--;
    5410     1216990 :     return _res;
    5411             : }
    5412             : 
    5413             : // param_maybe_default:
    5414             : //     | param default? ',' TYPE_COMMENT?
    5415             : //     | param default? TYPE_COMMENT? &')'
    5416             : static NameDefaultPair*
    5417       52141 : param_maybe_default_rule(Parser *p)
    5418             : {
    5419       52141 :     if (p->level++ == MAXSTACK) {
    5420           0 :         p->error_indicator = 1;
    5421           0 :         PyErr_NoMemory();
    5422             :     }
    5423       52141 :     if (p->error_indicator) {
    5424           0 :         p->level--;
    5425           0 :         return NULL;
    5426             :     }
    5427       52141 :     NameDefaultPair* _res = NULL;
    5428       52141 :     int _mark = p->mark;
    5429             :     { // param default? ',' TYPE_COMMENT?
    5430       52141 :         if (p->error_indicator) {
    5431           0 :             p->level--;
    5432           0 :             return NULL;
    5433             :         }
    5434       52141 :         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       52141 :         if (
    5440       52141 :             (a = param_rule(p))  // param
    5441       18605 :             &&
    5442       18605 :             (c = default_rule(p), !p->error_indicator)  // default?
    5443       18605 :             &&
    5444       18605 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
    5445       13693 :             &&
    5446       13693 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    5447             :         )
    5448             :         {
    5449       13693 :             D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
    5450       13693 :             _res = _PyPegen_name_default_pair ( p , a , c , tc );
    5451       13693 :             if (_res == NULL && PyErr_Occurred()) {
    5452           0 :                 p->error_indicator = 1;
    5453           0 :                 p->level--;
    5454           0 :                 return NULL;
    5455             :             }
    5456       13693 :             goto done;
    5457             :         }
    5458       38448 :         p->mark = _mark;
    5459       38448 :         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       38448 :         if (p->error_indicator) {
    5464           0 :             p->level--;
    5465           0 :             return NULL;
    5466             :         }
    5467       38448 :         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       38448 :         if (
    5472       38448 :             (a = param_rule(p))  // param
    5473        4912 :             &&
    5474        4912 :             (c = default_rule(p), !p->error_indicator)  // default?
    5475        4912 :             &&
    5476        4912 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    5477        4912 :             &&
    5478        4912 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8)  // token=')'
    5479             :         )
    5480             :         {
    5481        4784 :             D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
    5482        4784 :             _res = _PyPegen_name_default_pair ( p , a , c , tc );
    5483        4784 :             if (_res == NULL && PyErr_Occurred()) {
    5484           0 :                 p->error_indicator = 1;
    5485           0 :                 p->level--;
    5486           0 :                 return NULL;
    5487             :             }
    5488        4784 :             goto done;
    5489             :         }
    5490       33664 :         p->mark = _mark;
    5491       33664 :         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       33664 :     _res = NULL;
    5495       52141 :   done:
    5496       52141 :     p->level--;
    5497       52141 :     return _res;
    5498             : }
    5499             : 
    5500             : // param: NAME annotation?
    5501             : static arg_ty
    5502     9437020 : param_rule(Parser *p)
    5503             : {
    5504     9437020 :     if (p->level++ == MAXSTACK) {
    5505           0 :         p->error_indicator = 1;
    5506           0 :         PyErr_NoMemory();
    5507             :     }
    5508     9437020 :     if (p->error_indicator) {
    5509           0 :         p->level--;
    5510           0 :         return NULL;
    5511             :     }
    5512     9437020 :     arg_ty _res = NULL;
    5513     9437020 :     int _mark = p->mark;
    5514     9437020 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    5515           5 :         p->error_indicator = 1;
    5516           5 :         p->level--;
    5517           5 :         return NULL;
    5518             :     }
    5519     9437020 :     int _start_lineno = p->tokens[_mark]->lineno;
    5520             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    5521     9437020 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    5522             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    5523             :     { // NAME annotation?
    5524     9437020 :         if (p->error_indicator) {
    5525           0 :             p->level--;
    5526           0 :             return NULL;
    5527             :         }
    5528     9437020 :         D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
    5529             :         expr_ty a;
    5530             :         void *b;
    5531     9437020 :         if (
    5532     9437020 :             (a = _PyPegen_name_token(p))  // NAME
    5533     4442550 :             &&
    5534     4442550 :             (b = annotation_rule(p), !p->error_indicator)  // annotation?
    5535             :         )
    5536             :         {
    5537     4442540 :             D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
    5538     4442540 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    5539     4442540 :             if (_token == NULL) {
    5540           0 :                 p->level--;
    5541           0 :                 return NULL;
    5542             :             }
    5543     4442540 :             int _end_lineno = _token->end_lineno;
    5544             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    5545     4442540 :             int _end_col_offset = _token->end_col_offset;
    5546             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    5547     4442540 :             _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
    5548     4442540 :             if (_res == NULL && PyErr_Occurred()) {
    5549           0 :                 p->error_indicator = 1;
    5550           0 :                 p->level--;
    5551           0 :                 return NULL;
    5552             :             }
    5553     4442540 :             goto done;
    5554             :         }
    5555     4994480 :         p->mark = _mark;
    5556     4994480 :         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     4994480 :     _res = NULL;
    5560     9437020 :   done:
    5561     9437020 :     p->level--;
    5562     9437020 :     return _res;
    5563             : }
    5564             : 
    5565             : // param_star_annotation: NAME star_annotation
    5566             : static arg_ty
    5567       11901 : param_star_annotation_rule(Parser *p)
    5568             : {
    5569       11901 :     if (p->level++ == MAXSTACK) {
    5570           0 :         p->error_indicator = 1;
    5571           0 :         PyErr_NoMemory();
    5572             :     }
    5573       11901 :     if (p->error_indicator) {
    5574           0 :         p->level--;
    5575           0 :         return NULL;
    5576             :     }
    5577       11901 :     arg_ty _res = NULL;
    5578       11901 :     int _mark = p->mark;
    5579       11901 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    5580           0 :         p->error_indicator = 1;
    5581           0 :         p->level--;
    5582           0 :         return NULL;
    5583             :     }
    5584       11901 :     int _start_lineno = p->tokens[_mark]->lineno;
    5585             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    5586       11901 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    5587             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    5588             :     { // NAME star_annotation
    5589       11901 :         if (p->error_indicator) {
    5590           0 :             p->level--;
    5591           0 :             return NULL;
    5592             :         }
    5593       11901 :         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       11901 :         if (
    5597       11901 :             (a = _PyPegen_name_token(p))  // NAME
    5598          47 :             &&
    5599          47 :             (b = star_annotation_rule(p))  // star_annotation
    5600             :         )
    5601             :         {
    5602          45 :             D(fprintf(stderr, "%*c+ param_star_annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME star_annotation"));
    5603          45 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    5604          45 :             if (_token == NULL) {
    5605           0 :                 p->level--;
    5606           0 :                 return NULL;
    5607             :             }
    5608          45 :             int _end_lineno = _token->end_lineno;
    5609             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    5610          45 :             int _end_col_offset = _token->end_col_offset;
    5611             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    5612          45 :             _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
    5613          45 :             if (_res == NULL && PyErr_Occurred()) {
    5614           0 :                 p->error_indicator = 1;
    5615           0 :                 p->level--;
    5616           0 :                 return NULL;
    5617             :             }
    5618          45 :             goto done;
    5619             :         }
    5620       11856 :         p->mark = _mark;
    5621       11856 :         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       11856 :     _res = NULL;
    5625       11901 :   done:
    5626       11901 :     p->level--;
    5627       11901 :     return _res;
    5628             : }
    5629             : 
    5630             : // annotation: ':' expression
    5631             : static expr_ty
    5632     4442550 : annotation_rule(Parser *p)
    5633             : {
    5634     4442550 :     if (p->level++ == MAXSTACK) {
    5635           0 :         p->error_indicator = 1;
    5636           0 :         PyErr_NoMemory();
    5637             :     }
    5638     4442550 :     if (p->error_indicator) {
    5639           0 :         p->level--;
    5640           0 :         return NULL;
    5641             :     }
    5642     4442550 :     expr_ty _res = NULL;
    5643     4442550 :     int _mark = p->mark;
    5644             :     { // ':' expression
    5645     4442550 :         if (p->error_indicator) {
    5646           0 :             p->level--;
    5647           0 :             return NULL;
    5648             :         }
    5649     4442550 :         D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
    5650             :         Token * _literal;
    5651             :         expr_ty a;
    5652     4442550 :         if (
    5653     4442550 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    5654      340391 :             &&
    5655      340391 :             (a = expression_rule(p))  // expression
    5656             :         )
    5657             :         {
    5658      340054 :             D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
    5659      340054 :             _res = a;
    5660      340054 :             if (_res == NULL && PyErr_Occurred()) {
    5661           0 :                 p->error_indicator = 1;
    5662           0 :                 p->level--;
    5663           0 :                 return NULL;
    5664             :             }
    5665      340054 :             goto done;
    5666             :         }
    5667     4102500 :         p->mark = _mark;
    5668     4102500 :         D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
    5669             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
    5670             :     }
    5671     4102500 :     _res = NULL;
    5672     4442550 :   done:
    5673     4442550 :     p->level--;
    5674     4442550 :     return _res;
    5675             : }
    5676             : 
    5677             : // star_annotation: ':' star_expression
    5678             : static expr_ty
    5679          47 : star_annotation_rule(Parser *p)
    5680             : {
    5681          47 :     if (p->level++ == MAXSTACK) {
    5682           0 :         p->error_indicator = 1;
    5683           0 :         PyErr_NoMemory();
    5684             :     }
    5685          47 :     if (p->error_indicator) {
    5686           0 :         p->level--;
    5687           0 :         return NULL;
    5688             :     }
    5689          47 :     expr_ty _res = NULL;
    5690          47 :     int _mark = p->mark;
    5691             :     { // ':' star_expression
    5692          47 :         if (p->error_indicator) {
    5693           0 :             p->level--;
    5694           0 :             return NULL;
    5695             :         }
    5696          47 :         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          47 :         if (
    5700          47 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    5701          45 :             &&
    5702          45 :             (a = star_expression_rule(p))  // star_expression
    5703             :         )
    5704             :         {
    5705          45 :             D(fprintf(stderr, "%*c+ star_annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' star_expression"));
    5706          45 :             _res = a;
    5707          45 :             if (_res == NULL && PyErr_Occurred()) {
    5708           0 :                 p->error_indicator = 1;
    5709           0 :                 p->level--;
    5710           0 :                 return NULL;
    5711             :             }
    5712          45 :             goto done;
    5713             :         }
    5714           2 :         p->mark = _mark;
    5715           2 :         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           2 :     _res = NULL;
    5719          47 :   done:
    5720          47 :     p->level--;
    5721          47 :     return _res;
    5722             : }
    5723             : 
    5724             : // default: '=' expression | invalid_default
    5725             : static expr_ty
    5726      350306 : default_rule(Parser *p)
    5727             : {
    5728      350306 :     if (p->level++ == MAXSTACK) {
    5729           0 :         p->error_indicator = 1;
    5730           0 :         PyErr_NoMemory();
    5731             :     }
    5732      350306 :     if (p->error_indicator) {
    5733           0 :         p->level--;
    5734           0 :         return NULL;
    5735             :     }
    5736      350306 :     expr_ty _res = NULL;
    5737      350306 :     int _mark = p->mark;
    5738             :     { // '=' expression
    5739      350306 :         if (p->error_indicator) {
    5740           0 :             p->level--;
    5741           0 :             return NULL;
    5742             :         }
    5743      350306 :         D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
    5744             :         Token * _literal;
    5745             :         expr_ty a;
    5746      350306 :         if (
    5747      350306 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
    5748      343914 :             &&
    5749      343914 :             (a = expression_rule(p))  // expression
    5750             :         )
    5751             :         {
    5752      343609 :             D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
    5753      343609 :             _res = a;
    5754      343609 :             if (_res == NULL && PyErr_Occurred()) {
    5755           0 :                 p->error_indicator = 1;
    5756           0 :                 p->level--;
    5757           0 :                 return NULL;
    5758             :             }
    5759      343609 :             goto done;
    5760             :         }
    5761        6697 :         p->mark = _mark;
    5762        6697 :         D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
    5763             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
    5764             :     }
    5765        6697 :     if (p->call_invalid_rules) { // invalid_default
    5766        1775 :         if (p->error_indicator) {
    5767           0 :             p->level--;
    5768           0 :             return NULL;
    5769             :         }
    5770        1775 :         D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_default"));
    5771             :         void *invalid_default_var;
    5772        1775 :         if (
    5773        1775 :             (invalid_default_var = invalid_default_rule(p))  // invalid_default
    5774             :         )
    5775             :         {
    5776           0 :             D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_default"));
    5777           0 :             _res = invalid_default_var;
    5778           0 :             goto done;
    5779             :         }
    5780        1775 :         p->mark = _mark;
    5781        1775 :         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        6697 :     _res = NULL;
    5785      350306 :   done:
    5786      350306 :     p->level--;
    5787      350306 :     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
    5795      489180 : if_stmt_rule(Parser *p)
    5796             : {
    5797      489180 :     if (p->level++ == MAXSTACK) {
    5798           0 :         p->error_indicator = 1;
    5799           0 :         PyErr_NoMemory();
    5800             :     }
    5801      489180 :     if (p->error_indicator) {
    5802           0 :         p->level--;
    5803           0 :         return NULL;
    5804             :     }
    5805      489180 :     stmt_ty _res = NULL;
    5806      489180 :     int _mark = p->mark;
    5807      489180 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    5808           0 :         p->error_indicator = 1;
    5809           0 :         p->level--;
    5810           0 :         return NULL;
    5811             :     }
    5812      489180 :     int _start_lineno = p->tokens[_mark]->lineno;
    5813             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    5814      489180 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    5815             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    5816      489180 :     if (p->call_invalid_rules) { // invalid_if_stmt
    5817          39 :         if (p->error_indicator) {
    5818           0 :             p->level--;
    5819           0 :             return NULL;
    5820             :         }
    5821          39 :         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          39 :         if (
    5824          39 :             (invalid_if_stmt_var = invalid_if_stmt_rule(p))  // invalid_if_stmt
    5825             :         )
    5826             :         {
    5827           0 :             D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
    5828           0 :             _res = invalid_if_stmt_var;
    5829           0 :             goto done;
    5830             :         }
    5831          39 :         p->mark = _mark;
    5832          39 :         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      489180 :         if (p->error_indicator) {
    5837           6 :             p->level--;
    5838           6 :             return NULL;
    5839             :         }
    5840      489174 :         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      489174 :         if (
    5847      489174 :             (_keyword = _PyPegen_expect_token(p, 634))  // token='if'
    5848      489174 :             &&
    5849      489174 :             (a = named_expression_rule(p))  // named_expression
    5850      489168 :             &&
    5851      489168 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    5852      489165 :             &&
    5853      489165 :             (b = block_rule(p))  // block
    5854      489096 :             &&
    5855      489096 :             (c = elif_stmt_rule(p))  // elif_stmt
    5856             :         )
    5857             :         {
    5858       19942 :             D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
    5859       19942 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    5860       19942 :             if (_token == NULL) {
    5861           0 :                 p->level--;
    5862           0 :                 return NULL;
    5863             :             }
    5864       19942 :             int _end_lineno = _token->end_lineno;
    5865             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    5866       19942 :             int _end_col_offset = _token->end_col_offset;
    5867             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    5868       19942 :             _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq* , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
    5869       19942 :             if (_res == NULL && PyErr_Occurred()) {
    5870           0 :                 p->error_indicator = 1;
    5871           0 :                 p->level--;
    5872           0 :                 return NULL;
    5873             :             }
    5874       19942 :             goto done;
    5875             :         }
    5876      469232 :         p->mark = _mark;
    5877      469232 :         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      469232 :         if (p->error_indicator) {
    5882          24 :             p->level--;
    5883          24 :             return NULL;
    5884             :         }
    5885      469208 :         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      469208 :         if (
    5892      469208 :             (_keyword = _PyPegen_expect_token(p, 634))  // token='if'
    5893      469208 :             &&
    5894      469208 :             (a = named_expression_rule(p))  // named_expression
    5895      469202 :             &&
    5896      469202 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    5897      469199 :             &&
    5898      469199 :             (b = block_rule(p))  // block
    5899      469147 :             &&
    5900      469147 :             (c = else_block_rule(p), !p->error_indicator)  // else_block?
    5901             :         )
    5902             :         {
    5903      469147 :             D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
    5904      469147 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    5905      469147 :             if (_token == NULL) {
    5906           0 :                 p->level--;
    5907           0 :                 return NULL;
    5908             :             }
    5909      469147 :             int _end_lineno = _token->end_lineno;
    5910             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    5911      469147 :             int _end_col_offset = _token->end_col_offset;
    5912             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    5913      469147 :             _res = _PyAST_If ( a , b , c , EXTRA );
    5914      469147 :             if (_res == NULL && PyErr_Occurred()) {
    5915           0 :                 p->error_indicator = 1;
    5916           0 :                 p->level--;
    5917           0 :                 return NULL;
    5918             :             }
    5919      469147 :             goto done;
    5920             :         }
    5921          61 :         p->mark = _mark;
    5922          61 :         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          61 :     _res = NULL;
    5926      489150 :   done:
    5927      489150 :     p->level--;
    5928      489150 :     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
    5936      523196 : elif_stmt_rule(Parser *p)
    5937             : {
    5938      523196 :     if (p->level++ == MAXSTACK) {
    5939           0 :         p->error_indicator = 1;
    5940           0 :         PyErr_NoMemory();
    5941             :     }
    5942      523196 :     if (p->error_indicator) {
    5943           0 :         p->level--;
    5944           0 :         return NULL;
    5945             :     }
    5946      523196 :     stmt_ty _res = NULL;
    5947      523196 :     int _mark = p->mark;
    5948      523196 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    5949           0 :         p->error_indicator = 1;
    5950           0 :         p->level--;
    5951           0 :         return NULL;
    5952             :     }
    5953      523196 :     int _start_lineno = p->tokens[_mark]->lineno;
    5954             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    5955      523196 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    5956             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    5957      523196 :     if (p->call_invalid_rules) { // invalid_elif_stmt
    5958           8 :         if (p->error_indicator) {
    5959           0 :             p->level--;
    5960           0 :             return NULL;
    5961             :         }
    5962           8 :         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           8 :         if (
    5965           8 :             (invalid_elif_stmt_var = invalid_elif_stmt_rule(p))  // invalid_elif_stmt
    5966             :         )
    5967             :         {
    5968           0 :             D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
    5969           0 :             _res = invalid_elif_stmt_var;
    5970           0 :             goto done;
    5971             :         }
    5972           8 :         p->mark = _mark;
    5973           8 :         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      523196 :         if (p->error_indicator) {
    5978           2 :             p->level--;
    5979           2 :             return NULL;
    5980             :         }
    5981      523194 :         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      523194 :         if (
    5988      523194 :             (_keyword = _PyPegen_expect_token(p, 636))  // token='elif'
    5989       34108 :             &&
    5990       34108 :             (a = named_expression_rule(p))  // named_expression
    5991       34108 :             &&
    5992       34108 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    5993       34107 :             &&
    5994       34107 :             (b = block_rule(p))  // block
    5995       34100 :             &&
    5996       34100 :             (c = elif_stmt_rule(p))  // elif_stmt
    5997             :         )
    5998             :         {
    5999       14155 :             D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
    6000       14155 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6001       14155 :             if (_token == NULL) {
    6002           0 :                 p->level--;
    6003           0 :                 return NULL;
    6004             :             }
    6005       14155 :             int _end_lineno = _token->end_lineno;
    6006             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6007       14155 :             int _end_col_offset = _token->end_col_offset;
    6008             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6009       14155 :             _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq* , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
    6010       14155 :             if (_res == NULL && PyErr_Occurred()) {
    6011           0 :                 p->error_indicator = 1;
    6012           0 :                 p->level--;
    6013           0 :                 return NULL;
    6014             :             }
    6015       14155 :             goto done;
    6016             :         }
    6017      509039 :         p->mark = _mark;
    6018      509039 :         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      509039 :         if (p->error_indicator) {
    6023           2 :             p->level--;
    6024           2 :             return NULL;
    6025             :         }
    6026      509037 :         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      509037 :         if (
    6033      509037 :             (_keyword = _PyPegen_expect_token(p, 636))  // token='elif'
    6034       19951 :             &&
    6035       19951 :             (a = named_expression_rule(p))  // named_expression
    6036       19951 :             &&
    6037       19951 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    6038       19950 :             &&
    6039       19950 :             (b = block_rule(p))  // block
    6040       19945 :             &&
    6041       19945 :             (c = else_block_rule(p), !p->error_indicator)  // else_block?
    6042             :         )
    6043             :         {
    6044       19942 :             D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
    6045       19942 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6046       19942 :             if (_token == NULL) {
    6047           0 :                 p->level--;
    6048           0 :                 return NULL;
    6049             :             }
    6050       19942 :             int _end_lineno = _token->end_lineno;
    6051             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6052       19942 :             int _end_col_offset = _token->end_col_offset;
    6053             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6054       19942 :             _res = _PyAST_If ( a , b , c , EXTRA );
    6055       19942 :             if (_res == NULL && PyErr_Occurred()) {
    6056           0 :                 p->error_indicator = 1;
    6057           0 :                 p->level--;
    6058           0 :                 return NULL;
    6059             :             }
    6060       19942 :             goto done;
    6061             :         }
    6062      489095 :         p->mark = _mark;
    6063      489095 :         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      489095 :     _res = NULL;
    6067      523192 :   done:
    6068      523192 :     p->level--;
    6069      523192 :     return _res;
    6070             : }
    6071             : 
    6072             : // else_block: invalid_else_stmt | 'else' &&':' block
    6073             : static asdl_stmt_seq*
    6074      604598 : else_block_rule(Parser *p)
    6075             : {
    6076      604598 :     if (p->level++ == MAXSTACK) {
    6077           0 :         p->error_indicator = 1;
    6078           0 :         PyErr_NoMemory();
    6079             :     }
    6080      604598 :     if (p->error_indicator) {
    6081           0 :         p->level--;
    6082           0 :         return NULL;
    6083             :     }
    6084      604598 :     asdl_stmt_seq* _res = NULL;
    6085      604598 :     int _mark = p->mark;
    6086      604598 :     if (p->call_invalid_rules) { // invalid_else_stmt
    6087           6 :         if (p->error_indicator) {
    6088           0 :             p->level--;
    6089           0 :             return NULL;
    6090             :         }
    6091           6 :         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           6 :         if (
    6094           6 :             (invalid_else_stmt_var = invalid_else_stmt_rule(p))  // invalid_else_stmt
    6095             :         )
    6096             :         {
    6097           0 :             D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
    6098           0 :             _res = invalid_else_stmt_var;
    6099           0 :             goto done;
    6100             :         }
    6101           6 :         p->mark = _mark;
    6102           6 :         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      604598 :         if (p->error_indicator) {
    6107           3 :             p->level--;
    6108           3 :             return NULL;
    6109             :         }
    6110      604595 :         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      604595 :         if (
    6115      604595 :             (_keyword = _PyPegen_expect_token(p, 637))  // token='else'
    6116       68392 :             &&
    6117       68392 :             (_literal = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
    6118       68391 :             &&
    6119       68391 :             (b = block_rule(p))  // block
    6120             :         )
    6121             :         {
    6122       68370 :             D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
    6123       68370 :             _res = b;
    6124       68370 :             if (_res == NULL && PyErr_Occurred()) {
    6125           0 :                 p->error_indicator = 1;
    6126           0 :                 p->level--;
    6127           0 :                 return NULL;
    6128             :             }
    6129       68370 :             goto done;
    6130             :         }
    6131      536225 :         p->mark = _mark;
    6132      536225 :         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      536225 :     _res = NULL;
    6136      604595 :   done:
    6137      604595 :     p->level--;
    6138      604595 :     return _res;
    6139             : }
    6140             : 
    6141             : // while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
    6142             : static stmt_ty
    6143       11785 : while_stmt_rule(Parser *p)
    6144             : {
    6145       11785 :     if (p->level++ == MAXSTACK) {
    6146           0 :         p->error_indicator = 1;
    6147           0 :         PyErr_NoMemory();
    6148             :     }
    6149       11785 :     if (p->error_indicator) {
    6150           0 :         p->level--;
    6151           0 :         return NULL;
    6152             :     }
    6153       11785 :     stmt_ty _res = NULL;
    6154       11785 :     int _mark = p->mark;
    6155       11785 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    6156           0 :         p->error_indicator = 1;
    6157           0 :         p->level--;
    6158           0 :         return NULL;
    6159             :     }
    6160       11785 :     int _start_lineno = p->tokens[_mark]->lineno;
    6161             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    6162       11785 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    6163             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    6164       11785 :     if (p->call_invalid_rules) { // invalid_while_stmt
    6165          23 :         if (p->error_indicator) {
    6166           0 :             p->level--;
    6167           0 :             return NULL;
    6168             :         }
    6169          23 :         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          23 :         if (
    6172          23 :             (invalid_while_stmt_var = invalid_while_stmt_rule(p))  // invalid_while_stmt
    6173             :         )
    6174             :         {
    6175           0 :             D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
    6176           0 :             _res = invalid_while_stmt_var;
    6177           0 :             goto done;
    6178             :         }
    6179          23 :         p->mark = _mark;
    6180          23 :         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       11785 :         if (p->error_indicator) {
    6185           4 :             p->level--;
    6186           4 :             return NULL;
    6187             :         }
    6188       11781 :         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       11781 :         if (
    6195       11781 :             (_keyword = _PyPegen_expect_token(p, 639))  // token='while'
    6196       11781 :             &&
    6197       11781 :             (a = named_expression_rule(p))  // named_expression
    6198       11779 :             &&
    6199       11779 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    6200       11776 :             &&
    6201       11776 :             (b = block_rule(p))  // block
    6202       11737 :             &&
    6203       11737 :             (c = else_block_rule(p), !p->error_indicator)  // else_block?
    6204             :         )
    6205             :         {
    6206       11737 :             D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
    6207       11737 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6208       11737 :             if (_token == NULL) {
    6209           0 :                 p->level--;
    6210           0 :                 return NULL;
    6211             :             }
    6212       11737 :             int _end_lineno = _token->end_lineno;
    6213             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6214       11737 :             int _end_col_offset = _token->end_col_offset;
    6215             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6216       11737 :             _res = _PyAST_While ( a , b , c , EXTRA );
    6217       11737 :             if (_res == NULL && PyErr_Occurred()) {
    6218           0 :                 p->error_indicator = 1;
    6219           0 :                 p->level--;
    6220           0 :                 return NULL;
    6221             :             }
    6222       11737 :             goto done;
    6223             :         }
    6224          44 :         p->mark = _mark;
    6225          44 :         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          44 :     _res = NULL;
    6229       11781 :   done:
    6230       11781 :     p->level--;
    6231       11781 :     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
    6240       61778 : for_stmt_rule(Parser *p)
    6241             : {
    6242       61778 :     if (p->level++ == MAXSTACK) {
    6243           0 :         p->error_indicator = 1;
    6244           0 :         PyErr_NoMemory();
    6245             :     }
    6246       61778 :     if (p->error_indicator) {
    6247           0 :         p->level--;
    6248           0 :         return NULL;
    6249             :     }
    6250       61778 :     stmt_ty _res = NULL;
    6251       61778 :     int _mark = p->mark;
    6252       61778 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    6253           0 :         p->error_indicator = 1;
    6254           0 :         p->level--;
    6255           0 :         return NULL;
    6256             :     }
    6257       61778 :     int _start_lineno = p->tokens[_mark]->lineno;
    6258             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    6259       61778 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    6260             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    6261       61778 :     if (p->call_invalid_rules) { // invalid_for_stmt
    6262          54 :         if (p->error_indicator) {
    6263           0 :             p->level--;
    6264           0 :             return NULL;
    6265             :         }
    6266          54 :         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          54 :         if (
    6269          54 :             (invalid_for_stmt_var = invalid_for_stmt_rule(p))  // invalid_for_stmt
    6270             :         )
    6271             :         {
    6272           0 :             D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
    6273           0 :             _res = invalid_for_stmt_var;
    6274           0 :             goto done;
    6275             :         }
    6276          54 :         p->mark = _mark;
    6277          54 :         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       61778 :         if (p->error_indicator) {
    6282           3 :             p->level--;
    6283           3 :             return NULL;
    6284             :         }
    6285       61775 :         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       61775 :         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       61775 :         if (
    6296       61775 :             (_keyword = _PyPegen_expect_token(p, 642))  // token='for'
    6297       61500 :             &&
    6298       61500 :             (t = star_targets_rule(p))  // star_targets
    6299       61482 :             &&
    6300       61482 :             (_keyword_1 = _PyPegen_expect_token(p, 643))  // token='in'
    6301             :             &&
    6302       61470 :             (_cut_var = 1)
    6303       61470 :             &&
    6304       61470 :             (ex = star_expressions_rule(p))  // star_expressions
    6305       61470 :             &&
    6306       61470 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    6307       61467 :             &&
    6308       61467 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    6309       61467 :             &&
    6310       61467 :             (b = block_rule(p))  // block
    6311       61461 :             &&
    6312       61461 :             (el = else_block_rule(p), !p->error_indicator)  // else_block?
    6313             :         )
    6314             :         {
    6315       61460 :             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       61460 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6317       61460 :             if (_token == NULL) {
    6318           0 :                 p->level--;
    6319           0 :                 return NULL;
    6320             :             }
    6321       61460 :             int _end_lineno = _token->end_lineno;
    6322             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6323       61460 :             int _end_col_offset = _token->end_col_offset;
    6324             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6325       61460 :             _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
    6326       61460 :             if (_res == NULL && PyErr_Occurred()) {
    6327           0 :                 p->error_indicator = 1;
    6328           0 :                 p->level--;
    6329           0 :                 return NULL;
    6330             :             }
    6331       61460 :             goto done;
    6332             :         }
    6333         315 :         p->mark = _mark;
    6334         315 :         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         315 :         if (_cut_var) {
    6337          10 :             p->level--;
    6338          10 :             return NULL;
    6339             :         }
    6340             :     }
    6341             :     { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
    6342         305 :         if (p->error_indicator) {
    6343           0 :             p->level--;
    6344           0 :             return NULL;
    6345             :         }
    6346         305 :         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         305 :         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         305 :         if (
    6358         305 :             (async_var = _PyPegen_expect_token(p, ASYNC))  // token='ASYNC'
    6359         275 :             &&
    6360         275 :             (_keyword = _PyPegen_expect_token(p, 642))  // token='for'
    6361         193 :             &&
    6362         193 :             (t = star_targets_rule(p))  // star_targets
    6363         193 :             &&
    6364         193 :             (_keyword_1 = _PyPegen_expect_token(p, 643))  // token='in'
    6365             :             &&
    6366         193 :             (_cut_var = 1)
    6367         193 :             &&
    6368         193 :             (ex = star_expressions_rule(p))  // star_expressions
    6369         193 :             &&
    6370         193 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    6371         193 :             &&
    6372         193 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    6373         193 :             &&
    6374         193 :             (b = block_rule(p))  // block
    6375         192 :             &&
    6376         192 :             (el = else_block_rule(p), !p->error_indicator)  // else_block?
    6377             :         )
    6378             :         {
    6379         191 :             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         191 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6381         191 :             if (_token == NULL) {
    6382           0 :                 p->level--;
    6383           0 :                 return NULL;
    6384             :             }
    6385         191 :             int _end_lineno = _token->end_lineno;
    6386             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6387         191 :             int _end_col_offset = _token->end_col_offset;
    6388             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6389         191 :             _res = CHECK_VERSION ( stmt_ty , 5 , "Async for loops are" , _PyAST_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
    6390         191 :             if (_res == NULL && PyErr_Occurred()) {
    6391           0 :                 p->error_indicator = 1;
    6392           0 :                 p->level--;
    6393           0 :                 return NULL;
    6394             :             }
    6395         191 :             goto done;
    6396             :         }
    6397         114 :         p->mark = _mark;
    6398         114 :         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         114 :         if (_cut_var) {
    6401           2 :             p->level--;
    6402           2 :             return NULL;
    6403             :         }
    6404             :     }
    6405         112 :     if (p->call_invalid_rules) { // invalid_for_target
    6406          47 :         if (p->error_indicator) {
    6407           0 :             p->level--;
    6408           0 :             return NULL;
    6409             :         }
    6410          47 :         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          47 :         if (
    6413          47 :             (invalid_for_target_var = invalid_for_target_rule(p))  // invalid_for_target
    6414             :         )
    6415             :         {
    6416           0 :             D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
    6417           0 :             _res = invalid_for_target_var;
    6418           0 :             goto done;
    6419             :         }
    6420          47 :         p->mark = _mark;
    6421          47 :         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         112 :     _res = NULL;
    6425       61763 :   done:
    6426       61763 :     p->level--;
    6427       61763 :     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
    6438       39289 : with_stmt_rule(Parser *p)
    6439             : {
    6440       39289 :     if (p->level++ == MAXSTACK) {
    6441           0 :         p->error_indicator = 1;
    6442           0 :         PyErr_NoMemory();
    6443             :     }
    6444       39289 :     if (p->error_indicator) {
    6445           0 :         p->level--;
    6446           0 :         return NULL;
    6447             :     }
    6448       39289 :     stmt_ty _res = NULL;
    6449       39289 :     int _mark = p->mark;
    6450       39289 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    6451           0 :         p->error_indicator = 1;
    6452           0 :         p->level--;
    6453           0 :         return NULL;
    6454             :     }
    6455       39289 :     int _start_lineno = p->tokens[_mark]->lineno;
    6456             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    6457       39289 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    6458             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    6459       39289 :     if (p->call_invalid_rules) { // invalid_with_stmt_indent
    6460          63 :         if (p->error_indicator) {
    6461           0 :             p->level--;
    6462           0 :             return NULL;
    6463             :         }
    6464          63 :         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          63 :         if (
    6467          63 :             (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p))  // invalid_with_stmt_indent
    6468             :         )
    6469             :         {
    6470           0 :             D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
    6471           0 :             _res = invalid_with_stmt_indent_var;
    6472           0 :             goto done;
    6473             :         }
    6474          63 :         p->mark = _mark;
    6475          63 :         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       39289 :         if (p->error_indicator) {
    6480           7 :             p->level--;
    6481           7 :             return NULL;
    6482             :         }
    6483       39282 :         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       39282 :         if (
    6493       39282 :             (_keyword = _PyPegen_expect_token(p, 612))  // token='with'
    6494       38635 :             &&
    6495       38635 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
    6496          69 :             &&
    6497          69 :             (a = (asdl_withitem_seq*)_gather_51_rule(p))  // ','.with_item+
    6498          68 :             &&
    6499          68 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
    6500          68 :             &&
    6501          68 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
    6502          68 :             &&
    6503          68 :             (_literal_2 = _PyPegen_expect_token(p, 11))  // token=':'
    6504          32 :             &&
    6505          32 :             (b = block_rule(p))  // block
    6506             :         )
    6507             :         {
    6508          31 :             D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
    6509          31 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6510          31 :             if (_token == NULL) {
    6511           0 :                 p->level--;
    6512           0 :                 return NULL;
    6513             :             }
    6514          31 :             int _end_lineno = _token->end_lineno;
    6515             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6516          31 :             int _end_col_offset = _token->end_col_offset;
    6517             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6518          31 :             _res = _PyAST_With ( a , b , NULL , EXTRA );
    6519          31 :             if (_res == NULL && PyErr_Occurred()) {
    6520           0 :                 p->error_indicator = 1;
    6521           0 :                 p->level--;
    6522           0 :                 return NULL;
    6523             :             }
    6524          31 :             goto done;
    6525             :         }
    6526       39251 :         p->mark = _mark;
    6527       39251 :         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       39251 :         if (p->error_indicator) {
    6532           0 :             p->level--;
    6533           0 :             return NULL;
    6534             :         }
    6535       39251 :         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       39251 :         if (
    6542       39251 :             (_keyword = _PyPegen_expect_token(p, 612))  // token='with'
    6543       38604 :             &&
    6544       38604 :             (a = (asdl_withitem_seq*)_gather_53_rule(p))  // ','.with_item+
    6545       38584 :             &&
    6546       38584 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    6547       38558 :             &&
    6548       38558 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    6549       38558 :             &&
    6550       38558 :             (b = block_rule(p))  // block
    6551             :         )
    6552             :         {
    6553       38552 :             D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
    6554       38552 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6555       38552 :             if (_token == NULL) {
    6556           0 :                 p->level--;
    6557           0 :                 return NULL;
    6558             :             }
    6559       38552 :             int _end_lineno = _token->end_lineno;
    6560             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6561       38552 :             int _end_col_offset = _token->end_col_offset;
    6562             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6563       38552 :             _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
    6564       38552 :             if (_res == NULL && PyErr_Occurred()) {
    6565           0 :                 p->error_indicator = 1;
    6566           0 :                 p->level--;
    6567           0 :                 return NULL;
    6568             :             }
    6569       38552 :             goto done;
    6570             :         }
    6571         699 :         p->mark = _mark;
    6572         699 :         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         699 :         if (p->error_indicator) {
    6577          11 :             p->level--;
    6578          11 :             return NULL;
    6579             :         }
    6580         688 :         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         688 :         if (
    6591         688 :             (async_var = _PyPegen_expect_token(p, ASYNC))  // token='ASYNC'
    6592         647 :             &&
    6593         647 :             (_keyword = _PyPegen_expect_token(p, 612))  // token='with'
    6594         374 :             &&
    6595         374 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
    6596           1 :             &&
    6597           1 :             (a = (asdl_withitem_seq*)_gather_55_rule(p))  // ','.with_item+
    6598           1 :             &&
    6599           1 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
    6600           1 :             &&
    6601           1 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
    6602           1 :             &&
    6603           1 :             (_literal_2 = _PyPegen_expect_token(p, 11))  // token=':'
    6604           1 :             &&
    6605           1 :             (b = block_rule(p))  // block
    6606             :         )
    6607             :         {
    6608           0 :             D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
    6609           0 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6610           0 :             if (_token == NULL) {
    6611           0 :                 p->level--;
    6612           0 :                 return NULL;
    6613             :             }
    6614           0 :             int _end_lineno = _token->end_lineno;
    6615             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6616           0 :             int _end_col_offset = _token->end_col_offset;
    6617             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6618           0 :             _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
    6619           0 :             if (_res == NULL && PyErr_Occurred()) {
    6620           0 :                 p->error_indicator = 1;
    6621           0 :                 p->level--;
    6622           0 :                 return NULL;
    6623             :             }
    6624           0 :             goto done;
    6625             :         }
    6626         688 :         p->mark = _mark;
    6627         688 :         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         688 :         if (p->error_indicator) {
    6632           0 :             p->level--;
    6633           0 :             return NULL;
    6634             :         }
    6635         688 :         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         688 :         if (
    6643         688 :             (async_var = _PyPegen_expect_token(p, ASYNC))  // token='ASYNC'
    6644         647 :             &&
    6645         647 :             (_keyword = _PyPegen_expect_token(p, 612))  // token='with'
    6646         374 :             &&
    6647         374 :             (a = (asdl_withitem_seq*)_gather_57_rule(p))  // ','.with_item+
    6648         373 :             &&
    6649         373 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    6650         373 :             &&
    6651         373 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    6652         373 :             &&
    6653         373 :             (b = block_rule(p))  // block
    6654             :         )
    6655             :         {
    6656         371 :             D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
    6657         371 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6658         371 :             if (_token == NULL) {
    6659           0 :                 p->level--;
    6660           0 :                 return NULL;
    6661             :             }
    6662         371 :             int _end_lineno = _token->end_lineno;
    6663             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6664         371 :             int _end_col_offset = _token->end_col_offset;
    6665             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6666         371 :             _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
    6667         371 :             if (_res == NULL && PyErr_Occurred()) {
    6668           0 :                 p->error_indicator = 1;
    6669           0 :                 p->level--;
    6670           0 :                 return NULL;
    6671             :             }
    6672         371 :             goto done;
    6673             :         }
    6674         317 :         p->mark = _mark;
    6675         317 :         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         317 :     if (p->call_invalid_rules) { // invalid_with_stmt
    6679          45 :         if (p->error_indicator) {
    6680           0 :             p->level--;
    6681           0 :             return NULL;
    6682             :         }
    6683          45 :         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          45 :         if (
    6686          45 :             (invalid_with_stmt_var = invalid_with_stmt_rule(p))  // invalid_with_stmt
    6687             :         )
    6688             :         {
    6689           0 :             D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
    6690           0 :             _res = invalid_with_stmt_var;
    6691           0 :             goto done;
    6692             :         }
    6693          45 :         p->mark = _mark;
    6694          45 :         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         317 :     _res = NULL;
    6698       39271 :   done:
    6699       39271 :     p->level--;
    6700       39271 :     return _res;
    6701             : }
    6702             : 
    6703             : // with_item:
    6704             : //     | expression 'as' star_target &(',' | ')' | ':')
    6705             : //     | invalid_with_item
    6706             : //     | expression
    6707             : static withitem_ty
    6708       39873 : with_item_rule(Parser *p)
    6709             : {
    6710       39873 :     if (p->level++ == MAXSTACK) {
    6711           0 :         p->error_indicator = 1;
    6712           0 :         PyErr_NoMemory();
    6713             :     }
    6714       39873 :     if (p->error_indicator) {
    6715           0 :         p->level--;
    6716           0 :         return NULL;
    6717             :     }
    6718       39873 :     withitem_ty _res = NULL;
    6719       39873 :     int _mark = p->mark;
    6720             :     { // expression 'as' star_target &(',' | ')' | ':')
    6721       39873 :         if (p->error_indicator) {
    6722           0 :             p->level--;
    6723           0 :             return NULL;
    6724             :         }
    6725       39873 :         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       39873 :         if (
    6730       39873 :             (e = expression_rule(p))  // expression
    6731       39852 :             &&
    6732       39852 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
    6733       16863 :             &&
    6734       16863 :             (t = star_target_rule(p))  // star_target
    6735       16845 :             &&
    6736       16845 :             _PyPegen_lookahead(1, _tmp_59_rule, p)
    6737             :         )
    6738             :         {
    6739       16835 :             D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
    6740       16835 :             _res = _PyAST_withitem ( e , t , p -> arena );
    6741       16835 :             if (_res == NULL && PyErr_Occurred()) {
    6742           0 :                 p->error_indicator = 1;
    6743           0 :                 p->level--;
    6744           0 :                 return NULL;
    6745             :             }
    6746       16835 :             goto done;
    6747             :         }
    6748       23038 :         p->mark = _mark;
    6749       23038 :         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       23038 :     if (p->call_invalid_rules) { // invalid_with_item
    6753          28 :         if (p->error_indicator) {
    6754           0 :             p->level--;
    6755           0 :             return NULL;
    6756             :         }
    6757          28 :         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          28 :         if (
    6760          28 :             (invalid_with_item_var = invalid_with_item_rule(p))  // invalid_with_item
    6761             :         )
    6762             :         {
    6763           0 :             D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
    6764           0 :             _res = invalid_with_item_var;
    6765           0 :             goto done;
    6766             :         }
    6767          28 :         p->mark = _mark;
    6768          28 :         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       23038 :         if (p->error_indicator) {
    6773          11 :             p->level--;
    6774          11 :             return NULL;
    6775             :         }
    6776       23027 :         D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
    6777             :         expr_ty e;
    6778       23027 :         if (
    6779       23027 :             (e = expression_rule(p))  // expression
    6780             :         )
    6781             :         {
    6782       23006 :             D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
    6783       23006 :             _res = _PyAST_withitem ( e , NULL , p -> arena );
    6784       23006 :             if (_res == NULL && PyErr_Occurred()) {
    6785           0 :                 p->error_indicator = 1;
    6786           0 :                 p->level--;
    6787           0 :                 return NULL;
    6788             :             }
    6789       23006 :             goto done;
    6790             :         }
    6791          21 :         p->mark = _mark;
    6792          21 :         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          21 :     _res = NULL;
    6796       39862 :   done:
    6797       39862 :     p->level--;
    6798       39862 :     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
    6807       49660 : try_stmt_rule(Parser *p)
    6808             : {
    6809       49660 :     if (p->level++ == MAXSTACK) {
    6810           0 :         p->error_indicator = 1;
    6811           0 :         PyErr_NoMemory();
    6812             :     }
    6813       49660 :     if (p->error_indicator) {
    6814           0 :         p->level--;
    6815           0 :         return NULL;
    6816             :     }
    6817       49660 :     stmt_ty _res = NULL;
    6818       49660 :     int _mark = p->mark;
    6819       49660 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    6820           0 :         p->error_indicator = 1;
    6821           0 :         p->level--;
    6822           0 :         return NULL;
    6823             :     }
    6824       49660 :     int _start_lineno = p->tokens[_mark]->lineno;
    6825             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    6826       49660 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    6827             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    6828       49660 :     if (p->call_invalid_rules) { // invalid_try_stmt
    6829          51 :         if (p->error_indicator) {
    6830           0 :             p->level--;
    6831           0 :             return NULL;
    6832             :         }
    6833          51 :         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          51 :         if (
    6836          51 :             (invalid_try_stmt_var = invalid_try_stmt_rule(p))  // invalid_try_stmt
    6837             :         )
    6838             :         {
    6839           0 :             D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
    6840           0 :             _res = invalid_try_stmt_var;
    6841           0 :             goto done;
    6842             :         }
    6843          51 :         p->mark = _mark;
    6844          51 :         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       49660 :         if (p->error_indicator) {
    6849          29 :             p->level--;
    6850          29 :             return NULL;
    6851             :         }
    6852       49631 :         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       49631 :         if (
    6858       49631 :             (_keyword = _PyPegen_expect_token(p, 618))  // token='try'
    6859       49631 :             &&
    6860       49631 :             (_literal = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
    6861       49628 :             &&
    6862       49628 :             (b = block_rule(p))  // block
    6863       49606 :             &&
    6864       49606 :             (f = finally_block_rule(p))  // finally_block
    6865             :         )
    6866             :         {
    6867        7449 :             D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' &&':' block finally_block"));
    6868        7449 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6869        7449 :             if (_token == NULL) {
    6870           0 :                 p->level--;
    6871           0 :                 return NULL;
    6872             :             }
    6873        7449 :             int _end_lineno = _token->end_lineno;
    6874             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6875        7449 :             int _end_col_offset = _token->end_col_offset;
    6876             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6877        7449 :             _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
    6878        7449 :             if (_res == NULL && PyErr_Occurred()) {
    6879           0 :                 p->error_indicator = 1;
    6880           0 :                 p->level--;
    6881           0 :                 return NULL;
    6882             :             }
    6883        7449 :             goto done;
    6884             :         }
    6885       42182 :         p->mark = _mark;
    6886       42182 :         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       42182 :         if (p->error_indicator) {
    6891           4 :             p->level--;
    6892           4 :             return NULL;
    6893             :         }
    6894       42178 :         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       42178 :         if (
    6902       42178 :             (_keyword = _PyPegen_expect_token(p, 618))  // token='try'
    6903       42178 :             &&
    6904       42178 :             (_literal = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
    6905       42178 :             &&
    6906       42178 :             (b = block_rule(p))  // block
    6907       42157 :             &&
    6908       42157 :             (ex = (asdl_excepthandler_seq*)_loop1_60_rule(p))  // except_block+
    6909       41860 :             &&
    6910       41860 :             (el = else_block_rule(p), !p->error_indicator)  // else_block?
    6911       41860 :             &&
    6912       41860 :             (f = finally_block_rule(p), !p->error_indicator)  // finally_block?
    6913             :         )
    6914             :         {
    6915       41859 :             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       41859 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6917       41859 :             if (_token == NULL) {
    6918           0 :                 p->level--;
    6919           0 :                 return NULL;
    6920             :             }
    6921       41859 :             int _end_lineno = _token->end_lineno;
    6922             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6923       41859 :             int _end_col_offset = _token->end_col_offset;
    6924             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6925       41859 :             _res = _PyAST_Try ( b , ex , el , f , EXTRA );
    6926       41859 :             if (_res == NULL && PyErr_Occurred()) {
    6927           0 :                 p->error_indicator = 1;
    6928           0 :                 p->level--;
    6929           0 :                 return NULL;
    6930             :             }
    6931       41859 :             goto done;
    6932             :         }
    6933         319 :         p->mark = _mark;
    6934         319 :         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         319 :         if (p->error_indicator) {
    6939           1 :             p->level--;
    6940           1 :             return NULL;
    6941             :         }
    6942         318 :         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         318 :         if (
    6950         318 :             (_keyword = _PyPegen_expect_token(p, 618))  // token='try'
    6951         318 :             &&
    6952         318 :             (_literal = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
    6953         318 :             &&
    6954         318 :             (b = block_rule(p))  // block
    6955         297 :             &&
    6956         297 :             (ex = (asdl_excepthandler_seq*)_loop1_61_rule(p))  // except_star_block+
    6957         256 :             &&
    6958         256 :             (el = else_block_rule(p), !p->error_indicator)  // else_block?
    6959         256 :             &&
    6960         256 :             (f = finally_block_rule(p), !p->error_indicator)  // finally_block?
    6961             :         )
    6962             :         {
    6963         255 :             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         255 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6965         255 :             if (_token == NULL) {
    6966           0 :                 p->level--;
    6967           0 :                 return NULL;
    6968             :             }
    6969         255 :             int _end_lineno = _token->end_lineno;
    6970             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6971         255 :             int _end_col_offset = _token->end_col_offset;
    6972             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6973         255 :             _res = _PyAST_TryStar ( b , ex , el , f , EXTRA );
    6974         255 :             if (_res == NULL && PyErr_Occurred()) {
    6975           0 :                 p->error_indicator = 1;
    6976           0 :                 p->level--;
    6977           0 :                 return NULL;
    6978             :             }
    6979         255 :             goto done;
    6980             :         }
    6981          63 :         p->mark = _mark;
    6982          63 :         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          63 :     _res = NULL;
    6986       49626 :   done:
    6987       49626 :     p->level--;
    6988       49626 :     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
    6997       86737 : except_block_rule(Parser *p)
    6998             : {
    6999       86737 :     if (p->level++ == MAXSTACK) {
    7000           0 :         p->error_indicator = 1;
    7001           0 :         PyErr_NoMemory();
    7002             :     }
    7003       86737 :     if (p->error_indicator) {
    7004           0 :         p->level--;
    7005           0 :         return NULL;
    7006             :     }
    7007       86737 :     excepthandler_ty _res = NULL;
    7008       86737 :     int _mark = p->mark;
    7009       86737 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    7010           0 :         p->error_indicator = 1;
    7011           0 :         p->level--;
    7012           0 :         return NULL;
    7013             :     }
    7014       86737 :     int _start_lineno = p->tokens[_mark]->lineno;
    7015             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    7016       86737 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    7017             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    7018       86737 :     if (p->call_invalid_rules) { // invalid_except_stmt_indent
    7019          78 :         if (p->error_indicator) {
    7020           0 :             p->level--;
    7021           0 :             return NULL;
    7022             :         }
    7023          78 :         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          78 :         if (
    7026          78 :             (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p))  // invalid_except_stmt_indent
    7027             :         )
    7028             :         {
    7029           0 :             D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
    7030           0 :             _res = invalid_except_stmt_indent_var;
    7031           0 :             goto done;
    7032             :         }
    7033          78 :         p->mark = _mark;
    7034          78 :         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       86737 :         if (p->error_indicator) {
    7039           2 :             p->level--;
    7040           2 :             return NULL;
    7041             :         }
    7042       86735 :         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       86735 :         if (
    7049       86735 :             (_keyword = _PyPegen_expect_token(p, 629))  // token='except'
    7050       44840 :             &&
    7051       44840 :             (e = expression_rule(p))  // expression
    7052       42367 :             &&
    7053       42367 :             (t = _tmp_62_rule(p), !p->error_indicator)  // ['as' NAME]
    7054       42367 :             &&
    7055       42367 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    7056       42356 :             &&
    7057       42356 :             (b = block_rule(p))  // block
    7058             :         )
    7059             :         {
    7060       42355 :             D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
    7061       42355 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    7062       42355 :             if (_token == NULL) {
    7063           0 :                 p->level--;
    7064           0 :                 return NULL;
    7065             :             }
    7066       42355 :             int _end_lineno = _token->end_lineno;
    7067             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    7068       42355 :             int _end_col_offset = _token->end_col_offset;
    7069             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    7070       42355 :             _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
    7071       42355 :             if (_res == NULL && PyErr_Occurred()) {
    7072           0 :                 p->error_indicator = 1;
    7073           0 :                 p->level--;
    7074           0 :                 return NULL;
    7075             :             }
    7076       42355 :             goto done;
    7077             :         }
    7078       44380 :         p->mark = _mark;
    7079       44380 :         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       44380 :         if (p->error_indicator) {
    7084           0 :             p->level--;
    7085           0 :             return NULL;
    7086             :         }
    7087       44380 :         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       44380 :         if (
    7092       44380 :             (_keyword = _PyPegen_expect_token(p, 629))  // token='except'
    7093        2485 :             &&
    7094        2485 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    7095        2178 :             &&
    7096        2178 :             (b = block_rule(p))  // block
    7097             :         )
    7098             :         {
    7099        2175 :             D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
    7100        2175 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    7101        2175 :             if (_token == NULL) {
    7102           0 :                 p->level--;
    7103           0 :                 return NULL;
    7104             :             }
    7105        2175 :             int _end_lineno = _token->end_lineno;
    7106             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    7107        2175 :             int _end_col_offset = _token->end_col_offset;
    7108             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    7109        2175 :             _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
    7110        2175 :             if (_res == NULL && PyErr_Occurred()) {
    7111           0 :                 p->error_indicator = 1;
    7112           0 :                 p->level--;
    7113           0 :                 return NULL;
    7114             :             }
    7115        2175 :             goto done;
    7116             :         }
    7117       42205 :         p->mark = _mark;
    7118       42205 :         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       42205 :     if (p->call_invalid_rules) { // invalid_except_stmt
    7122          61 :         if (p->error_indicator) {
    7123           0 :             p->level--;
    7124           0 :             return NULL;
    7125             :         }
    7126          61 :         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          61 :         if (
    7129          61 :             (invalid_except_stmt_var = invalid_except_stmt_rule(p))  // invalid_except_stmt
    7130             :         )
    7131             :         {
    7132           0 :             D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
    7133           0 :             _res = invalid_except_stmt_var;
    7134           0 :             goto done;
    7135             :         }
    7136          61 :         p->mark = _mark;
    7137          61 :         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       42205 :     _res = NULL;
    7141       86735 :   done:
    7142       86735 :     p->level--;
    7143       86735 :     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
    7151         659 : except_star_block_rule(Parser *p)
    7152             : {
    7153         659 :     if (p->level++ == MAXSTACK) {
    7154           0 :         p->error_indicator = 1;
    7155           0 :         PyErr_NoMemory();
    7156             :     }
    7157         659 :     if (p->error_indicator) {
    7158           0 :         p->level--;
    7159           0 :         return NULL;
    7160             :     }
    7161         659 :     excepthandler_ty _res = NULL;
    7162         659 :     int _mark = p->mark;
    7163         659 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    7164           0 :         p->error_indicator = 1;
    7165           0 :         p->level--;
    7166           0 :         return NULL;
    7167             :     }
    7168         659 :     int _start_lineno = p->tokens[_mark]->lineno;
    7169             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    7170         659 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    7171             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    7172         659 :     if (p->call_invalid_rules) { // invalid_except_star_stmt_indent
    7173          58 :         if (p->error_indicator) {
    7174           0 :             p->level--;
    7175           0 :             return NULL;
    7176             :         }
    7177          58 :         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          58 :         if (
    7180          58 :             (invalid_except_star_stmt_indent_var = invalid_except_star_stmt_indent_rule(p))  // invalid_except_star_stmt_indent
    7181             :         )
    7182             :         {
    7183           0 :             D(fprintf(stderr, "%*c+ except_star_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_star_stmt_indent"));
    7184           0 :             _res = invalid_except_star_stmt_indent_var;
    7185           0 :             goto done;
    7186             :         }
    7187          58 :         p->mark = _mark;
    7188          58 :         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         659 :         if (p->error_indicator) {
    7193           1 :             p->level--;
    7194           1 :             return NULL;
    7195             :         }
    7196         658 :         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         658 :         if (
    7204         658 :             (_keyword = _PyPegen_expect_token(p, 629))  // token='except'
    7205         368 :             &&
    7206         368 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
    7207         343 :             &&
    7208         343 :             (e = expression_rule(p))  // expression
    7209         339 :             &&
    7210         339 :             (t = _tmp_63_rule(p), !p->error_indicator)  // ['as' NAME]
    7211         339 :             &&
    7212         339 :             (_literal_1 = _PyPegen_expect_token(p, 11))  // token=':'
    7213         332 :             &&
    7214         332 :             (b = block_rule(p))  // block
    7215             :         )
    7216             :         {
    7217         331 :             D(fprintf(stderr, "%*c+ except_star_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ['as' NAME] ':' block"));
    7218         331 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    7219         331 :             if (_token == NULL) {
    7220           0 :                 p->level--;
    7221           0 :                 return NULL;
    7222             :             }
    7223         331 :             int _end_lineno = _token->end_lineno;
    7224             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    7225         331 :             int _end_col_offset = _token->end_col_offset;
    7226             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    7227         331 :             _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
    7228         331 :             if (_res == NULL && PyErr_Occurred()) {
    7229           0 :                 p->error_indicator = 1;
    7230           0 :                 p->level--;
    7231           0 :                 return NULL;
    7232             :             }
    7233         331 :             goto done;
    7234             :         }
    7235         327 :         p->mark = _mark;
    7236         327 :         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         327 :     if (p->call_invalid_rules) { // invalid_except_stmt
    7240          42 :         if (p->error_indicator) {
    7241           0 :             p->level--;
    7242           0 :             return NULL;
    7243             :         }
    7244          42 :         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          42 :         if (
    7247          42 :             (invalid_except_stmt_var = invalid_except_stmt_rule(p))  // invalid_except_stmt
    7248             :         )
    7249             :         {
    7250           0 :             D(fprintf(stderr, "%*c+ except_star_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
    7251           0 :             _res = invalid_except_stmt_var;
    7252           0 :             goto done;
    7253             :         }
    7254          42 :         p->mark = _mark;
    7255          42 :         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         327 :     _res = NULL;
    7259         658 :   done:
    7260         658 :     p->level--;
    7261         658 :     return _res;
    7262             : }
    7263             : 
    7264             : // finally_block: invalid_finally_stmt | 'finally' &&':' block
    7265             : static asdl_stmt_seq*
    7266       91722 : finally_block_rule(Parser *p)
    7267             : {
    7268       91722 :     if (p->level++ == MAXSTACK) {
    7269           0 :         p->error_indicator = 1;
    7270           0 :         PyErr_NoMemory();
    7271             :     }
    7272       91722 :     if (p->error_indicator) {
    7273           0 :         p->level--;
    7274           0 :         return NULL;
    7275             :     }
    7276       91722 :     asdl_stmt_seq* _res = NULL;
    7277       91722 :     int _mark = p->mark;
    7278       91722 :     if (p->call_invalid_rules) { // invalid_finally_stmt
    7279          15 :         if (p->error_indicator) {
    7280           0 :             p->level--;
    7281           0 :             return NULL;
    7282             :         }
    7283          15 :         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          15 :         if (
    7286          15 :             (invalid_finally_stmt_var = invalid_finally_stmt_rule(p))  // invalid_finally_stmt
    7287             :         )
    7288             :         {
    7289           0 :             D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
    7290           0 :             _res = invalid_finally_stmt_var;
    7291           0 :             goto done;
    7292             :         }
    7293          15 :         p->mark = _mark;
    7294          15 :         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       91722 :         if (p->error_indicator) {
    7299           2 :             p->level--;
    7300           2 :             return NULL;
    7301             :         }
    7302       91720 :         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       91720 :         if (
    7307       91720 :             (_keyword = _PyPegen_expect_token(p, 625))  // token='finally'
    7308        8156 :             &&
    7309        8156 :             (_literal = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
    7310        8156 :             &&
    7311        8156 :             (a = block_rule(p))  // block
    7312             :         )
    7313             :         {
    7314        8132 :             D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
    7315        8132 :             _res = a;
    7316        8132 :             if (_res == NULL && PyErr_Occurred()) {
    7317           0 :                 p->error_indicator = 1;
    7318           0 :                 p->level--;
    7319           0 :                 return NULL;
    7320             :             }
    7321        8132 :             goto done;
    7322             :         }
    7323       83588 :         p->mark = _mark;
    7324       83588 :         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       83588 :     _res = NULL;
    7328       91720 :   done:
    7329       91720 :     p->level--;
    7330       91720 :     return _res;
    7331             : }
    7332             : 
    7333             : // match_stmt:
    7334             : //     | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
    7335             : //     | invalid_match_stmt
    7336             : static stmt_ty
    7337     3011970 : match_stmt_rule(Parser *p)
    7338             : {
    7339     3011970 :     if (p->level++ == MAXSTACK) {
    7340           0 :         p->error_indicator = 1;
    7341           0 :         PyErr_NoMemory();
    7342             :     }
    7343     3011970 :     if (p->error_indicator) {
    7344           0 :         p->level--;
    7345           0 :         return NULL;
    7346             :     }
    7347     3011970 :     stmt_ty _res = NULL;
    7348     3011970 :     int _mark = p->mark;
    7349     3011970 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    7350           0 :         p->error_indicator = 1;
    7351           0 :         p->level--;
    7352           0 :         return NULL;
    7353             :     }
    7354     3011970 :     int _start_lineno = p->tokens[_mark]->lineno;
    7355             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    7356     3011970 :     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     3011970 :         if (p->error_indicator) {
    7360           0 :             p->level--;
    7361           0 :             return NULL;
    7362             :         }
    7363     3011970 :         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     3011970 :         if (
    7372     3011970 :             (_keyword = _PyPegen_expect_soft_keyword(p, "match"))  // soft_keyword='"match"'
    7373        2356 :             &&
    7374        2356 :             (subject = subject_expr_rule(p))  // subject_expr
    7375        1271 :             &&
    7376        1271 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    7377        1266 :             &&
    7378        1266 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
    7379        1266 :             &&
    7380        1266 :             (indent_var = _PyPegen_expect_token(p, INDENT))  // token='INDENT'
    7381        1264 :             &&
    7382        1264 :             (cases = (asdl_match_case_seq*)_loop1_64_rule(p))  // case_block+
    7383        1219 :             &&
    7384        1219 :             (dedent_var = _PyPegen_expect_token(p, DEDENT))  // token='DEDENT'
    7385             :         )
    7386             :         {
    7387        1218 :             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        1218 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    7389        1218 :             if (_token == NULL) {
    7390           0 :                 p->level--;
    7391           0 :                 return NULL;
    7392             :             }
    7393        1218 :             int _end_lineno = _token->end_lineno;
    7394             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    7395        1218 :             int _end_col_offset = _token->end_col_offset;
    7396             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    7397        1218 :             _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
    7398        1218 :             if (_res == NULL && PyErr_Occurred()) {
    7399           0 :                 p->error_indicator = 1;
    7400           0 :                 p->level--;
    7401           0 :                 return NULL;
    7402             :             }
    7403        1218 :             goto done;
    7404             :         }
    7405     3010750 :         p->mark = _mark;
    7406     3010750 :         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     3010750 :     if (p->call_invalid_rules) { // invalid_match_stmt
    7410         840 :         if (p->error_indicator) {
    7411          11 :             p->level--;
    7412          11 :             return NULL;
    7413             :         }
    7414         829 :         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         829 :         if (
    7417         829 :             (invalid_match_stmt_var = invalid_match_stmt_rule(p))  // invalid_match_stmt
    7418             :         )
    7419             :         {
    7420           0 :             D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
    7421           0 :             _res = invalid_match_stmt_var;
    7422           0 :             goto done;
    7423             :         }
    7424         829 :         p->mark = _mark;
    7425         829 :         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     3010740 :     _res = NULL;
    7429     3011960 :   done:
    7430     3011960 :     p->level--;
    7431     3011960 :     return _res;
    7432             : }
    7433             : 
    7434             : // subject_expr: star_named_expression ',' star_named_expressions? | named_expression
    7435             : static expr_ty
    7436        2379 : subject_expr_rule(Parser *p)
    7437             : {
    7438        2379 :     if (p->level++ == MAXSTACK) {
    7439           0 :         p->error_indicator = 1;
    7440           0 :         PyErr_NoMemory();
    7441             :     }
    7442        2379 :     if (p->error_indicator) {
    7443           0 :         p->level--;
    7444           0 :         return NULL;
    7445             :     }
    7446        2379 :     expr_ty _res = NULL;
    7447        2379 :     int _mark = p->mark;
    7448        2379 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    7449           0 :         p->error_indicator = 1;
    7450           0 :         p->level--;
    7451           0 :         return NULL;
    7452             :     }
    7453        2379 :     int _start_lineno = p->tokens[_mark]->lineno;
    7454             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    7455        2379 :     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        2379 :         if (p->error_indicator) {
    7459           0 :             p->level--;
    7460           0 :             return NULL;
    7461             :         }
    7462        2379 :         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        2379 :         if (
    7467        2379 :             (value = star_named_expression_rule(p))  // star_named_expression
    7468        1294 :             &&
    7469        1294 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
    7470          12 :             &&
    7471          12 :             (values = star_named_expressions_rule(p), !p->error_indicator)  // star_named_expressions?
    7472             :         )
    7473             :         {
    7474          12 :             D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
    7475          12 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    7476          12 :             if (_token == NULL) {
    7477           0 :                 p->level--;
    7478           0 :                 return NULL;
    7479             :             }
    7480          12 :             int _end_lineno = _token->end_lineno;
    7481             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    7482          12 :             int _end_col_offset = _token->end_col_offset;
    7483             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    7484          12 :             _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
    7485          12 :             if (_res == NULL && PyErr_Occurred()) {
    7486           0 :                 p->error_indicator = 1;
    7487           0 :                 p->level--;
    7488           0 :                 return NULL;
    7489             :             }
    7490          12 :             goto done;
    7491             :         }
    7492        2367 :         p->mark = _mark;
    7493        2367 :         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        2367 :         if (p->error_indicator) {
    7498           0 :             p->level--;
    7499           0 :             return NULL;
    7500             :         }
    7501        2367 :         D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
    7502             :         expr_ty named_expression_var;
    7503        2367 :         if (
    7504        2367 :             (named_expression_var = named_expression_rule(p))  // named_expression
    7505             :         )
    7506             :         {
    7507        1282 :             D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
    7508        1282 :             _res = named_expression_var;
    7509        1282 :             goto done;
    7510             :         }
    7511        1085 :         p->mark = _mark;
    7512        1085 :         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        1085 :     _res = NULL;
    7516        2379 :   done:
    7517        2379 :     p->level--;
    7518        2379 :     return _res;
    7519             : }
    7520             : 
    7521             : // case_block: invalid_case_block | "case" patterns guard? ':' block
    7522             : static match_case_ty
    7523        3039 : case_block_rule(Parser *p)
    7524             : {
    7525        3039 :     if (p->level++ == MAXSTACK) {
    7526           0 :         p->error_indicator = 1;
    7527           0 :         PyErr_NoMemory();
    7528             :     }
    7529        3039 :     if (p->error_indicator) {
    7530           0 :         p->level--;
    7531           0 :         return NULL;
    7532             :     }
    7533        3039 :     match_case_ty _res = NULL;
    7534        3039 :     int _mark = p->mark;
    7535        3039 :     if (p->call_invalid_rules) { // invalid_case_block
    7536          21 :         if (p->error_indicator) {
    7537           0 :             p->level--;
    7538           0 :             return NULL;
    7539             :         }
    7540          21 :         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          21 :         if (
    7543          21 :             (invalid_case_block_var = invalid_case_block_rule(p))  // invalid_case_block
    7544             :         )
    7545             :         {
    7546           0 :             D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
    7547           0 :             _res = invalid_case_block_var;
    7548           0 :             goto done;
    7549             :         }
    7550          21 :         p->mark = _mark;
    7551          21 :         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        3039 :         if (p->error_indicator) {
    7556          11 :             p->level--;
    7557          11 :             return NULL;
    7558             :         }
    7559        3028 :         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        3028 :         if (
    7566        3028 :             (_keyword = _PyPegen_expect_soft_keyword(p, "case"))  // soft_keyword='"case"'
    7567        1808 :             &&
    7568        1808 :             (pattern = patterns_rule(p))  // patterns
    7569        1784 :             &&
    7570        1784 :             (guard = guard_rule(p), !p->error_indicator)  // guard?
    7571        1784 :             &&
    7572        1784 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    7573        1779 :             &&
    7574        1779 :             (body = block_rule(p))  // block
    7575             :         )
    7576             :         {
    7577        1775 :             D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
    7578        1775 :             _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
    7579        1775 :             if (_res == NULL && PyErr_Occurred()) {
    7580           0 :                 p->error_indicator = 1;
    7581           0 :                 p->level--;
    7582           0 :                 return NULL;
    7583             :             }
    7584        1775 :             goto done;
    7585             :         }
    7586        1253 :         p->mark = _mark;
    7587        1253 :         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        1253 :     _res = NULL;
    7591        3028 :   done:
    7592        3028 :     p->level--;
    7593        3028 :     return _res;
    7594             : }
    7595             : 
    7596             : // guard: 'if' named_expression
    7597             : static expr_ty
    7598        1794 : guard_rule(Parser *p)
    7599             : {
    7600        1794 :     if (p->level++ == MAXSTACK) {
    7601           0 :         p->error_indicator = 1;
    7602           0 :         PyErr_NoMemory();
    7603             :     }
    7604        1794 :     if (p->error_indicator) {
    7605           0 :         p->level--;
    7606           0 :         return NULL;
    7607             :     }
    7608        1794 :     expr_ty _res = NULL;
    7609        1794 :     int _mark = p->mark;
    7610             :     { // 'if' named_expression
    7611        1794 :         if (p->error_indicator) {
    7612           0 :             p->level--;
    7613           0 :             return NULL;
    7614             :         }
    7615        1794 :         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        1794 :         if (
    7619        1794 :             (_keyword = _PyPegen_expect_token(p, 634))  // token='if'
    7620         207 :             &&
    7621         207 :             (guard = named_expression_rule(p))  // named_expression
    7622             :         )
    7623             :         {
    7624         207 :             D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
    7625         207 :             _res = guard;
    7626         207 :             if (_res == NULL && PyErr_Occurred()) {
    7627           0 :                 p->error_indicator = 1;
    7628           0 :                 p->level--;
    7629           0 :                 return NULL;
    7630             :             }
    7631         207 :             goto done;
    7632             :         }
    7633        1587 :         p->mark = _mark;
    7634        1587 :         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        1587 :     _res = NULL;
    7638        1794 :   done:
    7639        1794 :     p->level--;
    7640        1794 :     return _res;
    7641             : }
    7642             : 
    7643             : // patterns: open_sequence_pattern | pattern
    7644             : static pattern_ty
    7645        1839 : patterns_rule(Parser *p)
    7646             : {
    7647        1839 :     if (p->level++ == MAXSTACK) {
    7648           0 :         p->error_indicator = 1;
    7649           0 :         PyErr_NoMemory();
    7650             :     }
    7651        1839 :     if (p->error_indicator) {
    7652           0 :         p->level--;
    7653           0 :         return NULL;
    7654             :     }
    7655        1839 :     pattern_ty _res = NULL;
    7656        1839 :     int _mark = p->mark;
    7657        1839 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    7658           0 :         p->error_indicator = 1;
    7659           0 :         p->level--;
    7660           0 :         return NULL;
    7661             :     }
    7662        1839 :     int _start_lineno = p->tokens[_mark]->lineno;
    7663             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    7664        1839 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    7665             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    7666             :     { // open_sequence_pattern
    7667        1839 :         if (p->error_indicator) {
    7668           0 :             p->level--;
    7669           0 :             return NULL;
    7670             :         }
    7671        1839 :         D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
    7672             :         asdl_pattern_seq* patterns;
    7673        1839 :         if (
    7674        1839 :             (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p))  // open_sequence_pattern
    7675             :         )
    7676             :         {
    7677          74 :             D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
    7678          74 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    7679          74 :             if (_token == NULL) {
    7680           0 :                 p->level--;
    7681           0 :                 return NULL;
    7682             :             }
    7683          74 :             int _end_lineno = _token->end_lineno;
    7684             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    7685          74 :             int _end_col_offset = _token->end_col_offset;
    7686             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    7687          74 :             _res = _PyAST_MatchSequence ( patterns , EXTRA );
    7688          74 :             if (_res == NULL && PyErr_Occurred()) {
    7689           0 :                 p->error_indicator = 1;
    7690           0 :                 p->level--;
    7691           0 :                 return NULL;
    7692             :             }
    7693          74 :             goto done;
    7694             :         }
    7695        1765 :         p->mark = _mark;
    7696        1765 :         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        1765 :         if (p->error_indicator) {
    7701          13 :             p->level--;
    7702          13 :             return NULL;
    7703             :         }
    7704        1752 :         D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
    7705             :         pattern_ty pattern_var;
    7706        1752 :         if (
    7707        1752 :             (pattern_var = pattern_rule(p))  // pattern
    7708             :         )
    7709             :         {
    7710        1720 :             D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
    7711        1720 :             _res = pattern_var;
    7712        1720 :             goto done;
    7713             :         }
    7714          32 :         p->mark = _mark;
    7715          32 :         D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
    7716             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
    7717             :     }
    7718          32 :     _res = NULL;
    7719        1826 :   done:
    7720        1826 :     p->level--;
    7721        1826 :     return _res;
    7722             : }
    7723             : 
    7724             : // pattern: as_pattern | or_pattern
    7725             : static pattern_ty
    7726        6743 : pattern_rule(Parser *p)
    7727             : {
    7728        6743 :     if (p->level++ == MAXSTACK) {
    7729           0 :         p->error_indicator = 1;
    7730           0 :         PyErr_NoMemory();
    7731             :     }
    7732        6743 :     if (p->error_indicator) {
    7733           0 :         p->level--;
    7734           0 :         return NULL;
    7735             :     }
    7736        6743 :     pattern_ty _res = NULL;
    7737        6743 :     int _mark = p->mark;
    7738             :     { // as_pattern
    7739        6743 :         if (p->error_indicator) {
    7740           0 :             p->level--;
    7741           0 :             return NULL;
    7742             :         }
    7743        6743 :         D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
    7744             :         pattern_ty as_pattern_var;
    7745        6743 :         if (
    7746        6743 :             (as_pattern_var = as_pattern_rule(p))  // as_pattern
    7747             :         )
    7748             :         {
    7749         228 :             D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
    7750         228 :             _res = as_pattern_var;
    7751         228 :             goto done;
    7752             :         }
    7753        6515 :         p->mark = _mark;
    7754        6515 :         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        6515 :         if (p->error_indicator) {
    7759          13 :             p->level--;
    7760          13 :             return NULL;
    7761             :         }
    7762        6502 :         D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
    7763             :         pattern_ty or_pattern_var;
    7764        6502 :         if (
    7765        6502 :             (or_pattern_var = or_pattern_rule(p))  // or_pattern
    7766             :         )
    7767             :         {
    7768        6133 :             D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
    7769        6133 :             _res = or_pattern_var;
    7770        6133 :             goto done;
    7771             :         }
    7772         369 :         p->mark = _mark;
    7773         369 :         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         369 :     _res = NULL;
    7777        6730 :   done:
    7778        6730 :     p->level--;
    7779        6730 :     return _res;
    7780             : }
    7781             : 
    7782             : // as_pattern: or_pattern 'as' pattern_capture_target | invalid_as_pattern
    7783             : static pattern_ty
    7784        6743 : as_pattern_rule(Parser *p)
    7785             : {
    7786        6743 :     if (p->level++ == MAXSTACK) {
    7787           0 :         p->error_indicator = 1;
    7788           0 :         PyErr_NoMemory();
    7789             :     }
    7790        6743 :     if (p->error_indicator) {
    7791           0 :         p->level--;
    7792           0 :         return NULL;
    7793             :     }
    7794        6743 :     pattern_ty _res = NULL;
    7795        6743 :     int _mark = p->mark;
    7796        6743 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    7797           0 :         p->error_indicator = 1;
    7798           0 :         p->level--;
    7799           0 :         return NULL;
    7800             :     }
    7801        6743 :     int _start_lineno = p->tokens[_mark]->lineno;
    7802             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    7803        6743 :     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        6743 :         if (p->error_indicator) {
    7807           0 :             p->level--;
    7808           0 :             return NULL;
    7809             :         }
    7810        6743 :         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        6743 :         if (
    7815        6743 :             (pattern = or_pattern_rule(p))  // or_pattern
    7816        6364 :             &&
    7817        6364 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
    7818         237 :             &&
    7819         237 :             (target = pattern_capture_target_rule(p))  // pattern_capture_target
    7820             :         )
    7821             :         {
    7822         228 :             D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
    7823         228 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    7824         228 :             if (_token == NULL) {
    7825           0 :                 p->level--;
    7826           0 :                 return NULL;
    7827             :             }
    7828         228 :             int _end_lineno = _token->end_lineno;
    7829             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    7830         228 :             int _end_col_offset = _token->end_col_offset;
    7831             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    7832         228 :             _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
    7833         228 :             if (_res == NULL && PyErr_Occurred()) {
    7834           0 :                 p->error_indicator = 1;
    7835           0 :                 p->level--;
    7836           0 :                 return NULL;
    7837             :             }
    7838         228 :             goto done;
    7839             :         }
    7840        6515 :         p->mark = _mark;
    7841        6515 :         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        6515 :     if (p->call_invalid_rules) { // invalid_as_pattern
    7845         111 :         if (p->error_indicator) {
    7846           4 :             p->level--;
    7847           4 :             return NULL;
    7848             :         }
    7849         107 :         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         107 :         if (
    7852         107 :             (invalid_as_pattern_var = invalid_as_pattern_rule(p))  // invalid_as_pattern
    7853             :         )
    7854             :         {
    7855           0 :             D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
    7856           0 :             _res = invalid_as_pattern_var;
    7857           0 :             goto done;
    7858             :         }
    7859         107 :         p->mark = _mark;
    7860         107 :         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        6511 :     _res = NULL;
    7864        6739 :   done:
    7865        6739 :     p->level--;
    7866        6739 :     return _res;
    7867             : }
    7868             : 
    7869             : // or_pattern: '|'.closed_pattern+
    7870             : static pattern_ty
    7871       13457 : or_pattern_rule(Parser *p)
    7872             : {
    7873       13457 :     if (p->level++ == MAXSTACK) {
    7874           0 :         p->error_indicator = 1;
    7875           0 :         PyErr_NoMemory();
    7876             :     }
    7877       13457 :     if (p->error_indicator) {
    7878           0 :         p->level--;
    7879           0 :         return NULL;
    7880             :     }
    7881       13457 :     pattern_ty _res = NULL;
    7882       13457 :     int _mark = p->mark;
    7883       13457 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    7884           0 :         p->error_indicator = 1;
    7885           0 :         p->level--;
    7886           0 :         return NULL;
    7887             :     }
    7888       13457 :     int _start_lineno = p->tokens[_mark]->lineno;
    7889             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    7890       13457 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    7891             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    7892             :     { // '|'.closed_pattern+
    7893       13457 :         if (p->error_indicator) {
    7894           0 :             p->level--;
    7895           0 :             return NULL;
    7896             :         }
    7897       13457 :         D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
    7898             :         asdl_pattern_seq* patterns;
    7899       13457 :         if (
    7900       13457 :             (patterns = (asdl_pattern_seq*)_gather_65_rule(p))  // '|'.closed_pattern+
    7901             :         )
    7902             :         {
    7903       12593 :             D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
    7904       12593 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    7905       12593 :             if (_token == NULL) {
    7906           0 :                 p->level--;
    7907           0 :                 return NULL;
    7908             :             }
    7909       12593 :             int _end_lineno = _token->end_lineno;
    7910             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    7911       12593 :             int _end_col_offset = _token->end_col_offset;
    7912             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    7913       12593 :             _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
    7914       12593 :             if (_res == NULL && PyErr_Occurred()) {
    7915           0 :                 p->error_indicator = 1;
    7916           0 :                 p->level--;
    7917           0 :                 return NULL;
    7918             :             }
    7919       12593 :             goto done;
    7920             :         }
    7921         864 :         p->mark = _mark;
    7922         864 :         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         864 :     _res = NULL;
    7926       13457 :   done:
    7927       13457 :     p->level--;
    7928       13457 :     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
    7941       14685 : closed_pattern_rule(Parser *p)
    7942             : {
    7943       14685 :     if (p->level++ == MAXSTACK) {
    7944           0 :         p->error_indicator = 1;
    7945           0 :         PyErr_NoMemory();
    7946             :     }
    7947       14685 :     if (p->error_indicator) {
    7948           0 :         p->level--;
    7949           0 :         return NULL;
    7950             :     }
    7951       14685 :     pattern_ty _res = NULL;
    7952       14685 :     if (_PyPegen_is_memoized(p, closed_pattern_type, &_res)) {
    7953        9907 :         p->level--;
    7954        9907 :         return _res;
    7955             :     }
    7956        4778 :     int _mark = p->mark;
    7957             :     { // literal_pattern
    7958        4778 :         if (p->error_indicator) {
    7959           0 :             p->level--;
    7960           0 :             return NULL;
    7961             :         }
    7962        4778 :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
    7963             :         pattern_ty literal_pattern_var;
    7964        4778 :         if (
    7965        4778 :             (literal_pattern_var = literal_pattern_rule(p))  // literal_pattern
    7966             :         )
    7967             :         {
    7968        1548 :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
    7969        1548 :             _res = literal_pattern_var;
    7970        1548 :             goto done;
    7971             :         }
    7972        3230 :         p->mark = _mark;
    7973        3230 :         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        3230 :         if (p->error_indicator) {
    7978           3 :             p->level--;
    7979           3 :             return NULL;
    7980             :         }
    7981        3227 :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
    7982             :         pattern_ty capture_pattern_var;
    7983        3227 :         if (
    7984        3227 :             (capture_pattern_var = capture_pattern_rule(p))  // capture_pattern
    7985             :         )
    7986             :         {
    7987         992 :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
    7988         992 :             _res = capture_pattern_var;
    7989         992 :             goto done;
    7990             :         }
    7991        2235 :         p->mark = _mark;
    7992        2235 :         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        2235 :         if (p->error_indicator) {
    7997           0 :             p->level--;
    7998           0 :             return NULL;
    7999             :         }
    8000        2235 :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
    8001             :         pattern_ty wildcard_pattern_var;
    8002        2235 :         if (
    8003        2235 :             (wildcard_pattern_var = wildcard_pattern_rule(p))  // wildcard_pattern
    8004             :         )
    8005             :         {
    8006         250 :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
    8007         250 :             _res = wildcard_pattern_var;
    8008         250 :             goto done;
    8009             :         }
    8010        1985 :         p->mark = _mark;
    8011        1985 :         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        1985 :         if (p->error_indicator) {
    8016           0 :             p->level--;
    8017           0 :             return NULL;
    8018             :         }
    8019        1985 :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
    8020             :         pattern_ty value_pattern_var;
    8021        1985 :         if (
    8022        1985 :             (value_pattern_var = value_pattern_rule(p))  // value_pattern
    8023             :         )
    8024             :         {
    8025          60 :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
    8026          60 :             _res = value_pattern_var;
    8027          60 :             goto done;
    8028             :         }
    8029        1925 :         p->mark = _mark;
    8030        1925 :         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        1925 :         if (p->error_indicator) {
    8035           0 :             p->level--;
    8036           0 :             return NULL;
    8037             :         }
    8038        1925 :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
    8039             :         pattern_ty group_pattern_var;
    8040        1925 :         if (
    8041        1925 :             (group_pattern_var = group_pattern_rule(p))  // group_pattern
    8042             :         )
    8043             :         {
    8044         257 :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
    8045         257 :             _res = group_pattern_var;
    8046         257 :             goto done;
    8047             :         }
    8048        1668 :         p->mark = _mark;
    8049        1668 :         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        1668 :         if (p->error_indicator) {
    8054           0 :             p->level--;
    8055           0 :             return NULL;
    8056             :         }
    8057        1668 :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
    8058             :         pattern_ty sequence_pattern_var;
    8059        1668 :         if (
    8060        1668 :             (sequence_pattern_var = sequence_pattern_rule(p))  // sequence_pattern
    8061             :         )
    8062             :         {
    8063         684 :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
    8064         684 :             _res = sequence_pattern_var;
    8065         684 :             goto done;
    8066             :         }
    8067         984 :         p->mark = _mark;
    8068         984 :         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         984 :         if (p->error_indicator) {
    8073           0 :             p->level--;
    8074           0 :             return NULL;
    8075             :         }
    8076         984 :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
    8077             :         pattern_ty mapping_pattern_var;
    8078         984 :         if (
    8079         984 :             (mapping_pattern_var = mapping_pattern_rule(p))  // mapping_pattern
    8080             :         )
    8081             :         {
    8082         429 :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
    8083         429 :             _res = mapping_pattern_var;
    8084         429 :             goto done;
    8085             :         }
    8086         555 :         p->mark = _mark;
    8087         555 :         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         555 :         if (p->error_indicator) {
    8092           3 :             p->level--;
    8093           3 :             return NULL;
    8094             :         }
    8095         552 :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
    8096             :         pattern_ty class_pattern_var;
    8097         552 :         if (
    8098         552 :             (class_pattern_var = class_pattern_rule(p))  // class_pattern
    8099             :         )
    8100             :         {
    8101         288 :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
    8102         288 :             _res = class_pattern_var;
    8103         288 :             goto done;
    8104             :         }
    8105         264 :         p->mark = _mark;
    8106         264 :         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         264 :     _res = NULL;
    8110        4772 :   done:
    8111        4772 :     _PyPegen_insert_memo(p, _mark, closed_pattern_type, _res);
    8112        4772 :     p->level--;
    8113        4772 :     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
    8124        4778 : literal_pattern_rule(Parser *p)
    8125             : {
    8126        4778 :     if (p->level++ == MAXSTACK) {
    8127           0 :         p->error_indicator = 1;
    8128           0 :         PyErr_NoMemory();
    8129             :     }
    8130        4778 :     if (p->error_indicator) {
    8131           0 :         p->level--;
    8132           0 :         return NULL;
    8133             :     }
    8134        4778 :     pattern_ty _res = NULL;
    8135        4778 :     int _mark = p->mark;
    8136        4778 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    8137           0 :         p->error_indicator = 1;
    8138           0 :         p->level--;
    8139           0 :         return NULL;
    8140             :     }
    8141        4778 :     int _start_lineno = p->tokens[_mark]->lineno;
    8142             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    8143        4778 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    8144             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    8145             :     { // signed_number !('+' | '-')
    8146        4778 :         if (p->error_indicator) {
    8147           0 :             p->level--;
    8148           0 :             return NULL;
    8149             :         }
    8150        4778 :         D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
    8151             :         expr_ty value;
    8152        4778 :         if (
    8153        4778 :             (value = signed_number_rule(p))  // signed_number
    8154        1353 :             &&
    8155        1353 :             _PyPegen_lookahead(0, _tmp_67_rule, p)
    8156             :         )
    8157             :         {
    8158        1310 :             D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
    8159        1310 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8160        1310 :             if (_token == NULL) {
    8161           0 :                 p->level--;
    8162           0 :                 return NULL;
    8163             :             }
    8164        1310 :             int _end_lineno = _token->end_lineno;
    8165             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8166        1310 :             int _end_col_offset = _token->end_col_offset;
    8167             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8168        1310 :             _res = _PyAST_MatchValue ( value , EXTRA );
    8169        1310 :             if (_res == NULL && PyErr_Occurred()) {
    8170           0 :                 p->error_indicator = 1;
    8171           0 :                 p->level--;
    8172           0 :                 return NULL;
    8173             :             }
    8174        1310 :             goto done;
    8175             :         }
    8176        3468 :         p->mark = _mark;
    8177        3468 :         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        3468 :         if (p->error_indicator) {
    8182           0 :             p->level--;
    8183           0 :             return NULL;
    8184             :         }
    8185        3468 :         D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
    8186             :         expr_ty value;
    8187        3468 :         if (
    8188        3468 :             (value = complex_number_rule(p))  // complex_number
    8189             :         )
    8190             :         {
    8191          40 :             D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
    8192          40 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8193          40 :             if (_token == NULL) {
    8194           0 :                 p->level--;
    8195           0 :                 return NULL;
    8196             :             }
    8197          40 :             int _end_lineno = _token->end_lineno;
    8198             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8199          40 :             int _end_col_offset = _token->end_col_offset;
    8200             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8201          40 :             _res = _PyAST_MatchValue ( value , EXTRA );
    8202          40 :             if (_res == NULL && PyErr_Occurred()) {
    8203           0 :                 p->error_indicator = 1;
    8204           0 :                 p->level--;
    8205           0 :                 return NULL;
    8206             :             }
    8207          40 :             goto done;
    8208             :         }
    8209        3428 :         p->mark = _mark;
    8210        3428 :         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        3428 :         if (p->error_indicator) {
    8215           3 :             p->level--;
    8216           3 :             return NULL;
    8217             :         }
    8218        3425 :         D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
    8219             :         expr_ty value;
    8220        3425 :         if (
    8221        3425 :             (value = strings_rule(p))  // strings
    8222             :         )
    8223             :         {
    8224         136 :             D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
    8225         136 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8226         136 :             if (_token == NULL) {
    8227           0 :                 p->level--;
    8228           0 :                 return NULL;
    8229             :             }
    8230         136 :             int _end_lineno = _token->end_lineno;
    8231             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8232         136 :             int _end_col_offset = _token->end_col_offset;
    8233             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8234         136 :             _res = _PyAST_MatchValue ( value , EXTRA );
    8235         136 :             if (_res == NULL && PyErr_Occurred()) {
    8236           0 :                 p->error_indicator = 1;
    8237           0 :                 p->level--;
    8238           0 :                 return NULL;
    8239             :             }
    8240         136 :             goto done;
    8241             :         }
    8242        3289 :         p->mark = _mark;
    8243        3289 :         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        3289 :         if (p->error_indicator) {
    8248           0 :             p->level--;
    8249           0 :             return NULL;
    8250             :         }
    8251        3289 :         D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
    8252             :         Token * _keyword;
    8253        3289 :         if (
    8254        3289 :             (_keyword = _PyPegen_expect_token(p, 601))  // token='None'
    8255             :         )
    8256             :         {
    8257          32 :             D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
    8258          32 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8259          32 :             if (_token == NULL) {
    8260           0 :                 p->level--;
    8261           0 :                 return NULL;
    8262             :             }
    8263          32 :             int _end_lineno = _token->end_lineno;
    8264             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8265          32 :             int _end_col_offset = _token->end_col_offset;
    8266             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8267          32 :             _res = _PyAST_MatchSingleton ( Py_None , EXTRA );
    8268          32 :             if (_res == NULL && PyErr_Occurred()) {
    8269           0 :                 p->error_indicator = 1;
    8270           0 :                 p->level--;
    8271           0 :                 return NULL;
    8272             :             }
    8273          32 :             goto done;
    8274             :         }
    8275        3257 :         p->mark = _mark;
    8276        3257 :         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        3257 :         if (p->error_indicator) {
    8281           0 :             p->level--;
    8282           0 :             return NULL;
    8283             :         }
    8284        3257 :         D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
    8285             :         Token * _keyword;
    8286        3257 :         if (
    8287        3257 :             (_keyword = _PyPegen_expect_token(p, 600))  // token='True'
    8288             :         )
    8289             :         {
    8290          13 :             D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
    8291          13 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8292          13 :             if (_token == NULL) {
    8293           0 :                 p->level--;
    8294           0 :                 return NULL;
    8295             :             }
    8296          13 :             int _end_lineno = _token->end_lineno;
    8297             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8298          13 :             int _end_col_offset = _token->end_col_offset;
    8299             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8300          13 :             _res = _PyAST_MatchSingleton ( Py_True , EXTRA );
    8301          13 :             if (_res == NULL && PyErr_Occurred()) {
    8302           0 :                 p->error_indicator = 1;
    8303           0 :                 p->level--;
    8304           0 :                 return NULL;
    8305             :             }
    8306          13 :             goto done;
    8307             :         }
    8308        3244 :         p->mark = _mark;
    8309        3244 :         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        3244 :         if (p->error_indicator) {
    8314           0 :             p->level--;
    8315           0 :             return NULL;
    8316             :         }
    8317        3244 :         D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
    8318             :         Token * _keyword;
    8319        3244 :         if (
    8320        3244 :             (_keyword = _PyPegen_expect_token(p, 602))  // token='False'
    8321             :         )
    8322             :         {
    8323          17 :             D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
    8324          17 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8325          17 :             if (_token == NULL) {
    8326           0 :                 p->level--;
    8327           0 :                 return NULL;
    8328             :             }
    8329          17 :             int _end_lineno = _token->end_lineno;
    8330             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8331          17 :             int _end_col_offset = _token->end_col_offset;
    8332             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8333          17 :             _res = _PyAST_MatchSingleton ( Py_False , EXTRA );
    8334          17 :             if (_res == NULL && PyErr_Occurred()) {
    8335           0 :                 p->error_indicator = 1;
    8336           0 :                 p->level--;
    8337           0 :                 return NULL;
    8338             :             }
    8339          17 :             goto done;
    8340             :         }
    8341        3227 :         p->mark = _mark;
    8342        3227 :         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        3227 :     _res = NULL;
    8346        4775 :   done:
    8347        4775 :     p->level--;
    8348        4775 :     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
    8359         809 : literal_expr_rule(Parser *p)
    8360             : {
    8361         809 :     if (p->level++ == MAXSTACK) {
    8362           0 :         p->error_indicator = 1;
    8363           0 :         PyErr_NoMemory();
    8364             :     }
    8365         809 :     if (p->error_indicator) {
    8366           0 :         p->level--;
    8367           0 :         return NULL;
    8368             :     }
    8369         809 :     expr_ty _res = NULL;
    8370         809 :     int _mark = p->mark;
    8371         809 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    8372           0 :         p->error_indicator = 1;
    8373           0 :         p->level--;
    8374           0 :         return NULL;
    8375             :     }
    8376         809 :     int _start_lineno = p->tokens[_mark]->lineno;
    8377             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    8378         809 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    8379             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    8380             :     { // signed_number !('+' | '-')
    8381         809 :         if (p->error_indicator) {
    8382           0 :             p->level--;
    8383           0 :             return NULL;
    8384             :         }
    8385         809 :         D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
    8386             :         expr_ty signed_number_var;
    8387         809 :         if (
    8388         809 :             (signed_number_var = signed_number_rule(p))  // signed_number
    8389         581 :             &&
    8390         581 :             _PyPegen_lookahead(0, _tmp_68_rule, p)
    8391             :         )
    8392             :         {
    8393         570 :             D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
    8394         570 :             _res = signed_number_var;
    8395         570 :             goto done;
    8396             :         }
    8397         239 :         p->mark = _mark;
    8398         239 :         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         239 :         if (p->error_indicator) {
    8403           0 :             p->level--;
    8404           0 :             return NULL;
    8405             :         }
    8406         239 :         D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
    8407             :         expr_ty complex_number_var;
    8408         239 :         if (
    8409         239 :             (complex_number_var = complex_number_rule(p))  // complex_number
    8410             :         )
    8411             :         {
    8412           8 :             D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
    8413           8 :             _res = complex_number_var;
    8414           8 :             goto done;
    8415             :         }
    8416         231 :         p->mark = _mark;
    8417         231 :         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         231 :         if (p->error_indicator) {
    8422           3 :             p->level--;
    8423           3 :             return NULL;
    8424             :         }
    8425         228 :         D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
    8426             :         expr_ty strings_var;
    8427         228 :         if (
    8428         228 :             (strings_var = strings_rule(p))  // strings
    8429             :         )
    8430             :         {
    8431         174 :             D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
    8432         174 :             _res = strings_var;
    8433         174 :             goto done;
    8434             :         }
    8435          54 :         p->mark = _mark;
    8436          54 :         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          54 :         if (p->error_indicator) {
    8441           0 :             p->level--;
    8442           0 :             return NULL;
    8443             :         }
    8444          54 :         D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
    8445             :         Token * _keyword;
    8446          54 :         if (
    8447          54 :             (_keyword = _PyPegen_expect_token(p, 601))  // token='None'
    8448             :         )
    8449             :         {
    8450           0 :             D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
    8451           0 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8452           0 :             if (_token == NULL) {
    8453           0 :                 p->level--;
    8454           0 :                 return NULL;
    8455             :             }
    8456           0 :             int _end_lineno = _token->end_lineno;
    8457             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8458           0 :             int _end_col_offset = _token->end_col_offset;
    8459             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8460           0 :             _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
    8461           0 :             if (_res == NULL && PyErr_Occurred()) {
    8462           0 :                 p->error_indicator = 1;
    8463           0 :                 p->level--;
    8464           0 :                 return NULL;
    8465             :             }
    8466           0 :             goto done;
    8467             :         }
    8468          54 :         p->mark = _mark;
    8469          54 :         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          54 :         if (p->error_indicator) {
    8474           0 :             p->level--;
    8475           0 :             return NULL;
    8476             :         }
    8477          54 :         D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
    8478             :         Token * _keyword;
    8479          54 :         if (
    8480          54 :             (_keyword = _PyPegen_expect_token(p, 600))  // token='True'
    8481             :         )
    8482             :         {
    8483           0 :             D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
    8484           0 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8485           0 :             if (_token == NULL) {
    8486           0 :                 p->level--;
    8487           0 :                 return NULL;
    8488             :             }
    8489           0 :             int _end_lineno = _token->end_lineno;
    8490             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8491           0 :             int _end_col_offset = _token->end_col_offset;
    8492             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8493           0 :             _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
    8494           0 :             if (_res == NULL && PyErr_Occurred()) {
    8495           0 :                 p->error_indicator = 1;
    8496           0 :                 p->level--;
    8497           0 :                 return NULL;
    8498             :             }
    8499           0 :             goto done;
    8500             :         }
    8501          54 :         p->mark = _mark;
    8502          54 :         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          54 :         if (p->error_indicator) {
    8507           0 :             p->level--;
    8508           0 :             return NULL;
    8509             :         }
    8510          54 :         D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
    8511             :         Token * _keyword;
    8512          54 :         if (
    8513          54 :             (_keyword = _PyPegen_expect_token(p, 602))  // token='False'
    8514             :         )
    8515             :         {
    8516           2 :             D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
    8517           2 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8518           2 :             if (_token == NULL) {
    8519           0 :                 p->level--;
    8520           0 :                 return NULL;
    8521             :             }
    8522           2 :             int _end_lineno = _token->end_lineno;
    8523             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8524           2 :             int _end_col_offset = _token->end_col_offset;
    8525             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8526           2 :             _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
    8527           2 :             if (_res == NULL && PyErr_Occurred()) {
    8528           0 :                 p->error_indicator = 1;
    8529           0 :                 p->level--;
    8530           0 :                 return NULL;
    8531             :             }
    8532           2 :             goto done;
    8533             :         }
    8534          52 :         p->mark = _mark;
    8535          52 :         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          52 :     _res = NULL;
    8539         806 :   done:
    8540         806 :     p->level--;
    8541         806 :     return _res;
    8542             : }
    8543             : 
    8544             : // complex_number:
    8545             : //     | signed_real_number '+' imaginary_number
    8546             : //     | signed_real_number '-' imaginary_number
    8547             : static expr_ty
    8548        3707 : complex_number_rule(Parser *p)
    8549             : {
    8550        3707 :     if (p->level++ == MAXSTACK) {
    8551           0 :         p->error_indicator = 1;
    8552           0 :         PyErr_NoMemory();
    8553             :     }
    8554        3707 :     if (p->error_indicator) {
    8555           0 :         p->level--;
    8556           0 :         return NULL;
    8557             :     }
    8558        3707 :     expr_ty _res = NULL;
    8559        3707 :     int _mark = p->mark;
    8560        3707 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    8561           0 :         p->error_indicator = 1;
    8562           0 :         p->level--;
    8563           0 :         return NULL;
    8564             :     }
    8565        3707 :     int _start_lineno = p->tokens[_mark]->lineno;
    8566             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    8567        3707 :     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        3707 :         if (p->error_indicator) {
    8571           0 :             p->level--;
    8572           0 :             return NULL;
    8573             :         }
    8574        3707 :         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        3707 :         if (
    8579        3707 :             (real = signed_real_number_rule(p))  // signed_real_number
    8580          50 :             &&
    8581          50 :             (_literal = _PyPegen_expect_token(p, 14))  // token='+'
    8582          22 :             &&
    8583          22 :             (imag = imaginary_number_rule(p))  // imaginary_number
    8584             :         )
    8585             :         {
    8586          20 :             D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_real_number '+' imaginary_number"));
    8587          20 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8588          20 :             if (_token == NULL) {
    8589           0 :                 p->level--;
    8590           0 :                 return NULL;
    8591             :             }
    8592          20 :             int _end_lineno = _token->end_lineno;
    8593             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8594          20 :             int _end_col_offset = _token->end_col_offset;
    8595             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8596          20 :             _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
    8597          20 :             if (_res == NULL && PyErr_Occurred()) {
    8598           0 :                 p->error_indicator = 1;
    8599           0 :                 p->level--;
    8600           0 :                 return NULL;
    8601             :             }
    8602          20 :             goto done;
    8603             :         }
    8604        3687 :         p->mark = _mark;
    8605        3687 :         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        3687 :         if (p->error_indicator) {
    8610           6 :             p->level--;
    8611           6 :             return NULL;
    8612             :         }
    8613        3681 :         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        3681 :         if (
    8618        3681 :             (real = signed_real_number_rule(p))  // signed_real_number
    8619          28 :             &&
    8620          28 :             (_literal = _PyPegen_expect_token(p, 15))  // token='-'
    8621          28 :             &&
    8622          28 :             (imag = imaginary_number_rule(p))  // imaginary_number
    8623             :         )
    8624             :         {
    8625          28 :             D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_real_number '-' imaginary_number"));
    8626          28 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8627          28 :             if (_token == NULL) {
    8628           0 :                 p->level--;
    8629           0 :                 return NULL;
    8630             :             }
    8631          28 :             int _end_lineno = _token->end_lineno;
    8632             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8633          28 :             int _end_col_offset = _token->end_col_offset;
    8634             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8635          28 :             _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
    8636          28 :             if (_res == NULL && PyErr_Occurred()) {
    8637           0 :                 p->error_indicator = 1;
    8638           0 :                 p->level--;
    8639           0 :                 return NULL;
    8640             :             }
    8641          28 :             goto done;
    8642             :         }
    8643        3653 :         p->mark = _mark;
    8644        3653 :         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        3653 :     _res = NULL;
    8648        3701 :   done:
    8649        3701 :     p->level--;
    8650        3701 :     return _res;
    8651             : }
    8652             : 
    8653             : // signed_number: NUMBER | '-' NUMBER
    8654             : static expr_ty
    8655        5587 : signed_number_rule(Parser *p)
    8656             : {
    8657        5587 :     if (p->level++ == MAXSTACK) {
    8658           0 :         p->error_indicator = 1;
    8659           0 :         PyErr_NoMemory();
    8660             :     }
    8661        5587 :     if (p->error_indicator) {
    8662           0 :         p->level--;
    8663           0 :         return NULL;
    8664             :     }
    8665        5587 :     expr_ty _res = NULL;
    8666        5587 :     int _mark = p->mark;
    8667        5587 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    8668           0 :         p->error_indicator = 1;
    8669           0 :         p->level--;
    8670           0 :         return NULL;
    8671             :     }
    8672        5587 :     int _start_lineno = p->tokens[_mark]->lineno;
    8673             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    8674        5587 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    8675             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    8676             :     { // NUMBER
    8677        5587 :         if (p->error_indicator) {
    8678           0 :             p->level--;
    8679           0 :             return NULL;
    8680             :         }
    8681        5587 :         D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
    8682             :         expr_ty number_var;
    8683        5587 :         if (
    8684        5587 :             (number_var = _PyPegen_number_token(p))  // NUMBER
    8685             :         )
    8686             :         {
    8687        1856 :             D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
    8688        1856 :             _res = number_var;
    8689        1856 :             goto done;
    8690             :         }
    8691        3731 :         p->mark = _mark;
    8692        3731 :         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        3731 :         if (p->error_indicator) {
    8697           0 :             p->level--;
    8698           0 :             return NULL;
    8699             :         }
    8700        3731 :         D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
    8701             :         Token * _literal;
    8702             :         expr_ty number;
    8703        3731 :         if (
    8704        3731 :             (_literal = _PyPegen_expect_token(p, 15))  // token='-'
    8705          78 :             &&
    8706          78 :             (number = _PyPegen_number_token(p))  // NUMBER
    8707             :         )
    8708             :         {
    8709          78 :             D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
    8710          78 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8711          78 :             if (_token == NULL) {
    8712           0 :                 p->level--;
    8713           0 :                 return NULL;
    8714             :             }
    8715          78 :             int _end_lineno = _token->end_lineno;
    8716             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8717          78 :             int _end_col_offset = _token->end_col_offset;
    8718             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8719          78 :             _res = _PyAST_UnaryOp ( USub , number , EXTRA );
    8720          78 :             if (_res == NULL && PyErr_Occurred()) {
    8721           0 :                 p->error_indicator = 1;
    8722           0 :                 p->level--;
    8723           0 :                 return NULL;
    8724             :             }
    8725          78 :             goto done;
    8726             :         }
    8727        3653 :         p->mark = _mark;
    8728        3653 :         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        3653 :     _res = NULL;
    8732        5587 :   done:
    8733        5587 :     p->level--;
    8734        5587 :     return _res;
    8735             : }
    8736             : 
    8737             : // signed_real_number: real_number | '-' real_number
    8738             : static expr_ty
    8739        7388 : signed_real_number_rule(Parser *p)
    8740             : {
    8741        7388 :     if (p->level++ == MAXSTACK) {
    8742           0 :         p->error_indicator = 1;
    8743           0 :         PyErr_NoMemory();
    8744             :     }
    8745        7388 :     if (p->error_indicator) {
    8746           0 :         p->level--;
    8747           0 :         return NULL;
    8748             :     }
    8749        7388 :     expr_ty _res = NULL;
    8750        7388 :     int _mark = p->mark;
    8751        7388 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    8752           0 :         p->error_indicator = 1;
    8753           0 :         p->level--;
    8754           0 :         return NULL;
    8755             :     }
    8756        7388 :     int _start_lineno = p->tokens[_mark]->lineno;
    8757             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    8758        7388 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    8759             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    8760             :     { // real_number
    8761        7388 :         if (p->error_indicator) {
    8762           0 :             p->level--;
    8763           0 :             return NULL;
    8764             :         }
    8765        7388 :         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        7388 :         if (
    8768        7388 :             (real_number_var = real_number_rule(p))  // real_number
    8769             :         )
    8770             :         {
    8771          38 :             D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "real_number"));
    8772          38 :             _res = real_number_var;
    8773          38 :             goto done;
    8774             :         }
    8775        7350 :         p->mark = _mark;
    8776        7350 :         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        7350 :         if (p->error_indicator) {
    8781           4 :             p->level--;
    8782           4 :             return NULL;
    8783             :         }
    8784        7346 :         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        7346 :         if (
    8788        7346 :             (_literal = _PyPegen_expect_token(p, 15))  // token='-'
    8789          40 :             &&
    8790          40 :             (real = real_number_rule(p))  // real_number
    8791             :         )
    8792             :         {
    8793          40 :             D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
    8794          40 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8795          40 :             if (_token == NULL) {
    8796           0 :                 p->level--;
    8797           0 :                 return NULL;
    8798             :             }
    8799          40 :             int _end_lineno = _token->end_lineno;
    8800             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8801          40 :             int _end_col_offset = _token->end_col_offset;
    8802             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8803          40 :             _res = _PyAST_UnaryOp ( USub , real , EXTRA );
    8804          40 :             if (_res == NULL && PyErr_Occurred()) {
    8805           0 :                 p->error_indicator = 1;
    8806           0 :                 p->level--;
    8807           0 :                 return NULL;
    8808             :             }
    8809          40 :             goto done;
    8810             :         }
    8811        7306 :         p->mark = _mark;
    8812        7306 :         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        7306 :     _res = NULL;
    8816        7384 :   done:
    8817        7384 :     p->level--;
    8818        7384 :     return _res;
    8819             : }
    8820             : 
    8821             : // real_number: NUMBER
    8822             : static expr_ty
    8823        7428 : real_number_rule(Parser *p)
    8824             : {
    8825        7428 :     if (p->level++ == MAXSTACK) {
    8826           0 :         p->error_indicator = 1;
    8827           0 :         PyErr_NoMemory();
    8828             :     }
    8829        7428 :     if (p->error_indicator) {
    8830           0 :         p->level--;
    8831           0 :         return NULL;
    8832             :     }
    8833        7428 :     expr_ty _res = NULL;
    8834        7428 :     int _mark = p->mark;
    8835             :     { // NUMBER
    8836        7428 :         if (p->error_indicator) {
    8837           0 :             p->level--;
    8838           0 :             return NULL;
    8839             :         }
    8840        7428 :         D(fprintf(stderr, "%*c> real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
    8841             :         expr_ty real;
    8842        7428 :         if (
    8843        7428 :             (real = _PyPegen_number_token(p))  // NUMBER
    8844             :         )
    8845             :         {
    8846          82 :             D(fprintf(stderr, "%*c+ real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
    8847          82 :             _res = _PyPegen_ensure_real ( p , real );
    8848          82 :             if (_res == NULL && PyErr_Occurred()) {
    8849           4 :                 p->error_indicator = 1;
    8850           4 :                 p->level--;
    8851           4 :                 return NULL;
    8852             :             }
    8853          78 :             goto done;
    8854             :         }
    8855        7346 :         p->mark = _mark;
    8856        7346 :         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        7346 :     _res = NULL;
    8860        7424 :   done:
    8861        7424 :     p->level--;
    8862        7424 :     return _res;
    8863             : }
    8864             : 
    8865             : // imaginary_number: NUMBER
    8866             : static expr_ty
    8867          50 : imaginary_number_rule(Parser *p)
    8868             : {
    8869          50 :     if (p->level++ == MAXSTACK) {
    8870           0 :         p->error_indicator = 1;
    8871           0 :         PyErr_NoMemory();
    8872             :     }
    8873          50 :     if (p->error_indicator) {
    8874           0 :         p->level--;
    8875           0 :         return NULL;
    8876             :     }
    8877          50 :     expr_ty _res = NULL;
    8878          50 :     int _mark = p->mark;
    8879             :     { // NUMBER
    8880          50 :         if (p->error_indicator) {
    8881           0 :             p->level--;
    8882           0 :             return NULL;
    8883             :         }
    8884          50 :         D(fprintf(stderr, "%*c> imaginary_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
    8885             :         expr_ty imag;
    8886          50 :         if (
    8887          50 :             (imag = _PyPegen_number_token(p))  // NUMBER
    8888             :         )
    8889             :         {
    8890          50 :             D(fprintf(stderr, "%*c+ imaginary_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
    8891          50 :             _res = _PyPegen_ensure_imaginary ( p , imag );
    8892          50 :             if (_res == NULL && PyErr_Occurred()) {
    8893           2 :                 p->error_indicator = 1;
    8894           2 :                 p->level--;
    8895           2 :                 return NULL;
    8896             :             }
    8897          48 :             goto done;
    8898             :         }
    8899           0 :         p->mark = _mark;
    8900           0 :         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           0 :     _res = NULL;
    8904          48 :   done:
    8905          48 :     p->level--;
    8906          48 :     return _res;
    8907             : }
    8908             : 
    8909             : // capture_pattern: pattern_capture_target
    8910             : static pattern_ty
    8911        3227 : capture_pattern_rule(Parser *p)
    8912             : {
    8913        3227 :     if (p->level++ == MAXSTACK) {
    8914           0 :         p->error_indicator = 1;
    8915           0 :         PyErr_NoMemory();
    8916             :     }
    8917        3227 :     if (p->error_indicator) {
    8918           0 :         p->level--;
    8919           0 :         return NULL;
    8920             :     }
    8921        3227 :     pattern_ty _res = NULL;
    8922        3227 :     int _mark = p->mark;
    8923        3227 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    8924           0 :         p->error_indicator = 1;
    8925           0 :         p->level--;
    8926           0 :         return NULL;
    8927             :     }
    8928        3227 :     int _start_lineno = p->tokens[_mark]->lineno;
    8929             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    8930        3227 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    8931             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    8932             :     { // pattern_capture_target
    8933        3227 :         if (p->error_indicator) {
    8934           0 :             p->level--;
    8935           0 :             return NULL;
    8936             :         }
    8937        3227 :         D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
    8938             :         expr_ty target;
    8939        3227 :         if (
    8940        3227 :             (target = pattern_capture_target_rule(p))  // pattern_capture_target
    8941             :         )
    8942             :         {
    8943         992 :             D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
    8944         992 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8945         992 :             if (_token == NULL) {
    8946           0 :                 p->level--;
    8947           0 :                 return NULL;
    8948             :             }
    8949         992 :             int _end_lineno = _token->end_lineno;
    8950             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8951         992 :             int _end_col_offset = _token->end_col_offset;
    8952             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8953         992 :             _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA );
    8954         992 :             if (_res == NULL && PyErr_Occurred()) {
    8955           0 :                 p->error_indicator = 1;
    8956           0 :                 p->level--;
    8957           0 :                 return NULL;
    8958             :             }
    8959         992 :             goto done;
    8960             :         }
    8961        2235 :         p->mark = _mark;
    8962        2235 :         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        2235 :     _res = NULL;
    8966        3227 :   done:
    8967        3227 :     p->level--;
    8968        3227 :     return _res;
    8969             : }
    8970             : 
    8971             : // pattern_capture_target: !"_" NAME !('.' | '(' | '=')
    8972             : static expr_ty
    8973        3682 : pattern_capture_target_rule(Parser *p)
    8974             : {
    8975        3682 :     if (p->level++ == MAXSTACK) {
    8976           0 :         p->error_indicator = 1;
    8977           0 :         PyErr_NoMemory();
    8978             :     }
    8979        3682 :     if (p->error_indicator) {
    8980           0 :         p->level--;
    8981           0 :         return NULL;
    8982             :     }
    8983        3682 :     expr_ty _res = NULL;
    8984        3682 :     int _mark = p->mark;
    8985             :     { // !"_" NAME !('.' | '(' | '=')
    8986        3682 :         if (p->error_indicator) {
    8987           0 :             p->level--;
    8988           0 :             return NULL;
    8989             :         }
    8990        3682 :         D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
    8991             :         expr_ty name;
    8992        3682 :         if (
    8993        3682 :             _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
    8994        3366 :             &&
    8995        3366 :             (name = _PyPegen_name_token(p))  // NAME
    8996        1807 :             &&
    8997        1807 :             _PyPegen_lookahead(0, _tmp_69_rule, p)
    8998             :         )
    8999             :         {
    9000        1378 :             D(fprintf(stderr, "%*c+ pattern_capture_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
    9001        1378 :             _res = _PyPegen_set_expr_context ( p , name , Store );
    9002        1378 :             if (_res == NULL && PyErr_Occurred()) {
    9003           0 :                 p->error_indicator = 1;
    9004           0 :                 p->level--;
    9005           0 :                 return NULL;
    9006             :             }
    9007        1378 :             goto done;
    9008             :         }
    9009        2304 :         p->mark = _mark;
    9010        2304 :         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        2304 :     _res = NULL;
    9014        3682 :   done:
    9015        3682 :     p->level--;
    9016        3682 :     return _res;
    9017             : }
    9018             : 
    9019             : // wildcard_pattern: "_"
    9020             : static pattern_ty
    9021        2291 : wildcard_pattern_rule(Parser *p)
    9022             : {
    9023        2291 :     if (p->level++ == MAXSTACK) {
    9024           0 :         p->error_indicator = 1;
    9025           0 :         PyErr_NoMemory();
    9026             :     }
    9027        2291 :     if (p->error_indicator) {
    9028           0 :         p->level--;
    9029           0 :         return NULL;
    9030             :     }
    9031        2291 :     pattern_ty _res = NULL;
    9032        2291 :     int _mark = p->mark;
    9033        2291 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    9034           0 :         p->error_indicator = 1;
    9035           0 :         p->level--;
    9036           0 :         return NULL;
    9037             :     }
    9038        2291 :     int _start_lineno = p->tokens[_mark]->lineno;
    9039             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    9040        2291 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    9041             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    9042             :     { // "_"
    9043        2291 :         if (p->error_indicator) {
    9044           0 :             p->level--;
    9045           0 :             return NULL;
    9046             :         }
    9047        2291 :         D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
    9048             :         expr_ty _keyword;
    9049        2291 :         if (
    9050        2291 :             (_keyword = _PyPegen_expect_soft_keyword(p, "_"))  // soft_keyword='"_"'
    9051             :         )
    9052             :         {
    9053         306 :             D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
    9054         306 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    9055         306 :             if (_token == NULL) {
    9056           0 :                 p->level--;
    9057           0 :                 return NULL;
    9058             :             }
    9059         306 :             int _end_lineno = _token->end_lineno;
    9060             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    9061         306 :             int _end_col_offset = _token->end_col_offset;
    9062             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    9063         306 :             _res = _PyAST_MatchAs ( NULL , NULL , EXTRA );
    9064         306 :             if (_res == NULL && PyErr_Occurred()) {
    9065           0 :                 p->error_indicator = 1;
    9066           0 :                 p->level--;
    9067           0 :                 return NULL;
    9068             :             }
    9069         306 :             goto done;
    9070             :         }
    9071        1985 :         p->mark = _mark;
    9072        1985 :         D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9073             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
    9074             :     }
    9075        1985 :     _res = NULL;
    9076        2291 :   done:
    9077        2291 :     p->level--;
    9078        2291 :     return _res;
    9079             : }
    9080             : 
    9081             : // value_pattern: attr !('.' | '(' | '=')
    9082             : static pattern_ty
    9083        1985 : value_pattern_rule(Parser *p)
    9084             : {
    9085        1985 :     if (p->level++ == MAXSTACK) {
    9086           0 :         p->error_indicator = 1;
    9087           0 :         PyErr_NoMemory();
    9088             :     }
    9089        1985 :     if (p->error_indicator) {
    9090           0 :         p->level--;
    9091           0 :         return NULL;
    9092             :     }
    9093        1985 :     pattern_ty _res = NULL;
    9094        1985 :     int _mark = p->mark;
    9095        1985 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    9096           0 :         p->error_indicator = 1;
    9097           0 :         p->level--;
    9098           0 :         return NULL;
    9099             :     }
    9100        1985 :     int _start_lineno = p->tokens[_mark]->lineno;
    9101             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    9102        1985 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    9103             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    9104             :     { // attr !('.' | '(' | '=')
    9105        1985 :         if (p->error_indicator) {
    9106           0 :             p->level--;
    9107           0 :             return NULL;
    9108             :         }
    9109        1985 :         D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
    9110             :         expr_ty attr;
    9111        1985 :         if (
    9112        1985 :             (attr = attr_rule(p))  // attr
    9113         111 :             &&
    9114         111 :             _PyPegen_lookahead(0, _tmp_70_rule, p)
    9115             :         )
    9116             :         {
    9117          60 :             D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
    9118          60 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    9119          60 :             if (_token == NULL) {
    9120           0 :                 p->level--;
    9121           0 :                 return NULL;
    9122             :             }
    9123          60 :             int _end_lineno = _token->end_lineno;
    9124             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    9125          60 :             int _end_col_offset = _token->end_col_offset;
    9126             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    9127          60 :             _res = _PyAST_MatchValue ( attr , EXTRA );
    9128          60 :             if (_res == NULL && PyErr_Occurred()) {
    9129           0 :                 p->error_indicator = 1;
    9130           0 :                 p->level--;
    9131           0 :                 return NULL;
    9132             :             }
    9133          60 :             goto done;
    9134             :         }
    9135        1925 :         p->mark = _mark;
    9136        1925 :         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        1925 :     _res = NULL;
    9140        1985 :   done:
    9141        1985 :     p->level--;
    9142        1985 :     return _res;
    9143             : }
    9144             : 
    9145             : // Left-recursive
    9146             : // attr: name_or_attr '.' NAME
    9147             : static expr_ty attr_raw(Parser *);
    9148             : static expr_ty
    9149        5924 : attr_rule(Parser *p)
    9150             : {
    9151        5924 :     if (p->level++ == MAXSTACK) {
    9152           0 :         p->error_indicator = 1;
    9153           0 :         PyErr_NoMemory();
    9154             :     }
    9155        5924 :     expr_ty _res = NULL;
    9156        5924 :     if (_PyPegen_is_memoized(p, attr_type, &_res)) {
    9157        3903 :         p->level--;
    9158        3903 :         return _res;
    9159             :     }
    9160        2021 :     int _mark = p->mark;
    9161        2021 :     int _resmark = p->mark;
    9162         151 :     while (1) {
    9163        2172 :         int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
    9164        2172 :         if (tmpvar_1) {
    9165           0 :             p->level--;
    9166           0 :             return _res;
    9167             :         }
    9168        2172 :         p->mark = _mark;
    9169        2172 :         void *_raw = attr_raw(p);
    9170        2172 :         if (p->error_indicator) {
    9171           0 :             p->level--;
    9172           0 :             return NULL;
    9173             :         }
    9174        2172 :         if (_raw == NULL || p->mark <= _resmark)
    9175             :             break;
    9176         151 :         _resmark = p->mark;
    9177         151 :         _res = _raw;
    9178             :     }
    9179        2021 :     p->mark = _resmark;
    9180        2021 :     p->level--;
    9181        2021 :     return _res;
    9182             : }
    9183             : static expr_ty
    9184        2172 : attr_raw(Parser *p)
    9185             : {
    9186        2172 :     if (p->level++ == MAXSTACK) {
    9187           0 :         p->error_indicator = 1;
    9188           0 :         PyErr_NoMemory();
    9189             :     }
    9190        2172 :     if (p->error_indicator) {
    9191           0 :         p->level--;
    9192           0 :         return NULL;
    9193             :     }
    9194        2172 :     expr_ty _res = NULL;
    9195        2172 :     int _mark = p->mark;
    9196        2172 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    9197           0 :         p->error_indicator = 1;
    9198           0 :         p->level--;
    9199           0 :         return NULL;
    9200             :     }
    9201        2172 :     int _start_lineno = p->tokens[_mark]->lineno;
    9202             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    9203        2172 :     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        2172 :         if (p->error_indicator) {
    9207           0 :             p->level--;
    9208           0 :             return NULL;
    9209             :         }
    9210        2172 :         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        2172 :         if (
    9215        2172 :             (value = name_or_attr_rule(p))  // name_or_attr
    9216         584 :             &&
    9217         584 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
    9218         151 :             &&
    9219         151 :             (attr = _PyPegen_name_token(p))  // NAME
    9220             :         )
    9221             :         {
    9222         151 :             D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
    9223         151 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    9224         151 :             if (_token == NULL) {
    9225           0 :                 p->level--;
    9226           0 :                 return NULL;
    9227             :             }
    9228         151 :             int _end_lineno = _token->end_lineno;
    9229             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    9230         151 :             int _end_col_offset = _token->end_col_offset;
    9231             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    9232         151 :             _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
    9233         151 :             if (_res == NULL && PyErr_Occurred()) {
    9234           0 :                 p->error_indicator = 1;
    9235           0 :                 p->level--;
    9236           0 :                 return NULL;
    9237             :             }
    9238         151 :             goto done;
    9239             :         }
    9240        2021 :         p->mark = _mark;
    9241        2021 :         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        2021 :     _res = NULL;
    9245        2172 :   done:
    9246        2172 :     p->level--;
    9247        2172 :     return _res;
    9248             : }
    9249             : 
    9250             : // Left-recursive
    9251             : // name_or_attr: attr | NAME
    9252             : static expr_ty
    9253        3887 : name_or_attr_rule(Parser *p)
    9254             : {
    9255        3887 :     if (p->level++ == MAXSTACK) {
    9256           0 :         p->error_indicator = 1;
    9257           0 :         PyErr_NoMemory();
    9258             :     }
    9259        3887 :     if (p->error_indicator) {
    9260           0 :         p->level--;
    9261           0 :         return NULL;
    9262             :     }
    9263        3887 :     expr_ty _res = NULL;
    9264        3887 :     int _mark = p->mark;
    9265             :     { // attr
    9266        3887 :         if (p->error_indicator) {
    9267           0 :             p->level--;
    9268           0 :             return NULL;
    9269             :         }
    9270        3887 :         D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
    9271             :         expr_ty attr_var;
    9272        3887 :         if (
    9273        3887 :             (attr_var = attr_rule(p))  // attr
    9274             :         )
    9275             :         {
    9276         219 :             D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
    9277         219 :             _res = attr_var;
    9278         219 :             goto done;
    9279             :         }
    9280        3668 :         p->mark = _mark;
    9281        3668 :         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        3668 :         if (p->error_indicator) {
    9286           0 :             p->level--;
    9287           0 :             return NULL;
    9288             :         }
    9289        3668 :         D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
    9290             :         expr_ty name_var;
    9291        3668 :         if (
    9292        3668 :             (name_var = _PyPegen_name_token(p))  // NAME
    9293             :         )
    9294             :         {
    9295        1339 :             D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
    9296        1339 :             _res = name_var;
    9297        1339 :             goto done;
    9298             :         }
    9299        2329 :         p->mark = _mark;
    9300        2329 :         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        2329 :     _res = NULL;
    9304        3887 :   done:
    9305        3887 :     p->level--;
    9306        3887 :     return _res;
    9307             : }
    9308             : 
    9309             : // group_pattern: '(' pattern ')'
    9310             : static pattern_ty
    9311        1925 : group_pattern_rule(Parser *p)
    9312             : {
    9313        1925 :     if (p->level++ == MAXSTACK) {
    9314           0 :         p->error_indicator = 1;
    9315           0 :         PyErr_NoMemory();
    9316             :     }
    9317        1925 :     if (p->error_indicator) {
    9318           0 :         p->level--;
    9319           0 :         return NULL;
    9320             :     }
    9321        1925 :     pattern_ty _res = NULL;
    9322        1925 :     int _mark = p->mark;
    9323             :     { // '(' pattern ')'
    9324        1925 :         if (p->error_indicator) {
    9325           0 :             p->level--;
    9326           0 :             return NULL;
    9327             :         }
    9328        1925 :         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        1925 :         if (
    9333        1925 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
    9334         342 :             &&
    9335         342 :             (pattern = pattern_rule(p))  // pattern
    9336         326 :             &&
    9337         326 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
    9338             :         )
    9339             :         {
    9340         257 :             D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
    9341         257 :             _res = pattern;
    9342         257 :             if (_res == NULL && PyErr_Occurred()) {
    9343           0 :                 p->error_indicator = 1;
    9344           0 :                 p->level--;
    9345           0 :                 return NULL;
    9346             :             }
    9347         257 :             goto done;
    9348             :         }
    9349        1668 :         p->mark = _mark;
    9350        1668 :         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        1668 :     _res = NULL;
    9354        1925 :   done:
    9355        1925 :     p->level--;
    9356        1925 :     return _res;
    9357             : }
    9358             : 
    9359             : // sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
    9360             : static pattern_ty
    9361        1668 : sequence_pattern_rule(Parser *p)
    9362             : {
    9363        1668 :     if (p->level++ == MAXSTACK) {
    9364           0 :         p->error_indicator = 1;
    9365           0 :         PyErr_NoMemory();
    9366             :     }
    9367        1668 :     if (p->error_indicator) {
    9368           0 :         p->level--;
    9369           0 :         return NULL;
    9370             :     }
    9371        1668 :     pattern_ty _res = NULL;
    9372        1668 :     int _mark = p->mark;
    9373        1668 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    9374           0 :         p->error_indicator = 1;
    9375           0 :         p->level--;
    9376           0 :         return NULL;
    9377             :     }
    9378        1668 :     int _start_lineno = p->tokens[_mark]->lineno;
    9379             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    9380        1668 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    9381             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    9382             :     { // '[' maybe_sequence_pattern? ']'
    9383        1668 :         if (p->error_indicator) {
    9384           0 :             p->level--;
    9385           0 :             return NULL;
    9386             :         }
    9387        1668 :         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        1668 :         if (
    9392        1668 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
    9393         599 :             &&
    9394         599 :             (patterns = maybe_sequence_pattern_rule(p), !p->error_indicator)  // maybe_sequence_pattern?
    9395         599 :             &&
    9396         599 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
    9397             :         )
    9398             :         {
    9399         599 :             D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
    9400         599 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    9401         599 :             if (_token == NULL) {
    9402           0 :                 p->level--;
    9403           0 :                 return NULL;
    9404             :             }
    9405         599 :             int _end_lineno = _token->end_lineno;
    9406             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    9407         599 :             int _end_col_offset = _token->end_col_offset;
    9408             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    9409         599 :             _res = _PyAST_MatchSequence ( patterns , EXTRA );
    9410         599 :             if (_res == NULL && PyErr_Occurred()) {
    9411           0 :                 p->error_indicator = 1;
    9412           0 :                 p->level--;
    9413           0 :                 return NULL;
    9414             :             }
    9415         599 :             goto done;
    9416             :         }
    9417        1069 :         p->mark = _mark;
    9418        1069 :         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        1069 :         if (p->error_indicator) {
    9423           0 :             p->level--;
    9424           0 :             return NULL;
    9425             :         }
    9426        1069 :         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        1069 :         if (
    9431        1069 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
    9432          85 :             &&
    9433          85 :             (patterns = open_sequence_pattern_rule(p), !p->error_indicator)  // open_sequence_pattern?
    9434          85 :             &&
    9435          85 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
    9436             :         )
    9437             :         {
    9438          85 :             D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
    9439          85 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    9440          85 :             if (_token == NULL) {
    9441           0 :                 p->level--;
    9442           0 :                 return NULL;
    9443             :             }
    9444          85 :             int _end_lineno = _token->end_lineno;
    9445             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    9446          85 :             int _end_col_offset = _token->end_col_offset;
    9447             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    9448          85 :             _res = _PyAST_MatchSequence ( patterns , EXTRA );
    9449          85 :             if (_res == NULL && PyErr_Occurred()) {
    9450           0 :                 p->error_indicator = 1;
    9451           0 :                 p->level--;
    9452           0 :                 return NULL;
    9453             :             }
    9454          85 :             goto done;
    9455             :         }
    9456         984 :         p->mark = _mark;
    9457         984 :         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         984 :     _res = NULL;
    9461        1668 :   done:
    9462        1668 :     p->level--;
    9463        1668 :     return _res;
    9464             : }
    9465             : 
    9466             : // open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
    9467             : static asdl_seq*
    9468        1924 : open_sequence_pattern_rule(Parser *p)
    9469             : {
    9470        1924 :     if (p->level++ == MAXSTACK) {
    9471           0 :         p->error_indicator = 1;
    9472           0 :         PyErr_NoMemory();
    9473             :     }
    9474        1924 :     if (p->error_indicator) {
    9475           0 :         p->level--;
    9476           0 :         return NULL;
    9477             :     }
    9478        1924 :     asdl_seq* _res = NULL;
    9479        1924 :     int _mark = p->mark;
    9480             :     { // maybe_star_pattern ',' maybe_sequence_pattern?
    9481        1924 :         if (p->error_indicator) {
    9482           0 :             p->level--;
    9483           0 :             return NULL;
    9484             :         }
    9485        1924 :         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        1924 :         if (
    9490        1924 :             (pattern = maybe_star_pattern_rule(p))  // maybe_star_pattern
    9491        1869 :             &&
    9492        1869 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
    9493         149 :             &&
    9494         149 :             (patterns = maybe_sequence_pattern_rule(p), !p->error_indicator)  // maybe_sequence_pattern?
    9495             :         )
    9496             :         {
    9497         149 :             D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
    9498         149 :             _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns );
    9499         149 :             if (_res == NULL && PyErr_Occurred()) {
    9500           0 :                 p->error_indicator = 1;
    9501           0 :                 p->level--;
    9502           0 :                 return NULL;
    9503             :             }
    9504         149 :             goto done;
    9505             :         }
    9506        1775 :         p->mark = _mark;
    9507        1775 :         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        1775 :     _res = NULL;
    9511        1924 :   done:
    9512        1924 :     p->level--;
    9513        1924 :     return _res;
    9514             : }
    9515             : 
    9516             : // maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
    9517             : static asdl_seq*
    9518         748 : maybe_sequence_pattern_rule(Parser *p)
    9519             : {
    9520         748 :     if (p->level++ == MAXSTACK) {
    9521           0 :         p->error_indicator = 1;
    9522           0 :         PyErr_NoMemory();
    9523             :     }
    9524         748 :     if (p->error_indicator) {
    9525           0 :         p->level--;
    9526           0 :         return NULL;
    9527             :     }
    9528         748 :     asdl_seq* _res = NULL;
    9529         748 :     int _mark = p->mark;
    9530             :     { // ','.maybe_star_pattern+ ','?
    9531         748 :         if (p->error_indicator) {
    9532           0 :             p->level--;
    9533           0 :             return NULL;
    9534             :         }
    9535         748 :         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         748 :         if (
    9540         748 :             (patterns = _gather_71_rule(p))  // ','.maybe_star_pattern+
    9541         622 :             &&
    9542         622 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
    9543             :         )
    9544             :         {
    9545         622 :             D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
    9546         622 :             _res = patterns;
    9547         622 :             if (_res == NULL && PyErr_Occurred()) {
    9548           0 :                 p->error_indicator = 1;
    9549           0 :                 p->level--;
    9550           0 :                 return NULL;
    9551             :             }
    9552         622 :             goto done;
    9553             :         }
    9554         126 :         p->mark = _mark;
    9555         126 :         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         126 :     _res = NULL;
    9559         748 :   done:
    9560         748 :     p->level--;
    9561         748 :     return _res;
    9562             : }
    9563             : 
    9564             : // maybe_star_pattern: star_pattern | pattern
    9565             : static pattern_ty
    9566        3443 : maybe_star_pattern_rule(Parser *p)
    9567             : {
    9568        3443 :     if (p->level++ == MAXSTACK) {
    9569           0 :         p->error_indicator = 1;
    9570           0 :         PyErr_NoMemory();
    9571             :     }
    9572        3443 :     if (p->error_indicator) {
    9573           0 :         p->level--;
    9574           0 :         return NULL;
    9575             :     }
    9576        3443 :     pattern_ty _res = NULL;
    9577        3443 :     int _mark = p->mark;
    9578             :     { // star_pattern
    9579        3443 :         if (p->error_indicator) {
    9580           0 :             p->level--;
    9581           0 :             return NULL;
    9582             :         }
    9583        3443 :         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        3443 :         if (
    9586        3443 :             (star_pattern_var = star_pattern_rule(p))  // star_pattern
    9587             :         )
    9588             :         {
    9589         174 :             D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
    9590         174 :             _res = star_pattern_var;
    9591         174 :             goto done;
    9592             :         }
    9593        3269 :         p->mark = _mark;
    9594        3269 :         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        3269 :         if (p->error_indicator) {
    9599           0 :             p->level--;
    9600           0 :             return NULL;
    9601             :         }
    9602        3269 :         D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
    9603             :         pattern_ty pattern_var;
    9604        3269 :         if (
    9605        3269 :             (pattern_var = pattern_rule(p))  // pattern
    9606             :         )
    9607             :         {
    9608        3061 :             D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
    9609        3061 :             _res = pattern_var;
    9610        3061 :             goto done;
    9611             :         }
    9612         208 :         p->mark = _mark;
    9613         208 :         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         208 :     _res = NULL;
    9617        3443 :   done:
    9618        3443 :     p->level--;
    9619        3443 :     return _res;
    9620             : }
    9621             : 
    9622             : // star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
    9623             : static pattern_ty
    9624        3443 : star_pattern_rule(Parser *p)
    9625             : {
    9626        3443 :     if (p->level++ == MAXSTACK) {
    9627           0 :         p->error_indicator = 1;
    9628           0 :         PyErr_NoMemory();
    9629             :     }
    9630        3443 :     if (p->error_indicator) {
    9631           0 :         p->level--;
    9632           0 :         return NULL;
    9633             :     }
    9634        3443 :     pattern_ty _res = NULL;
    9635        3443 :     if (_PyPegen_is_memoized(p, star_pattern_type, &_res)) {
    9636          20 :         p->level--;
    9637          20 :         return _res;
    9638             :     }
    9639        3423 :     int _mark = p->mark;
    9640        3423 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    9641           0 :         p->error_indicator = 1;
    9642           0 :         p->level--;
    9643           0 :         return NULL;
    9644             :     }
    9645        3423 :     int _start_lineno = p->tokens[_mark]->lineno;
    9646             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    9647        3423 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    9648             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    9649             :     { // '*' pattern_capture_target
    9650        3423 :         if (p->error_indicator) {
    9651           0 :             p->level--;
    9652           0 :             return NULL;
    9653             :         }
    9654        3423 :         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        3423 :         if (
    9658        3423 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
    9659         174 :             &&
    9660         174 :             (target = pattern_capture_target_rule(p))  // pattern_capture_target
    9661             :         )
    9662             :         {
    9663         118 :             D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' pattern_capture_target"));
    9664         118 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    9665         118 :             if (_token == NULL) {
    9666           0 :                 p->level--;
    9667           0 :                 return NULL;
    9668             :             }
    9669         118 :             int _end_lineno = _token->end_lineno;
    9670             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    9671         118 :             int _end_col_offset = _token->end_col_offset;
    9672             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    9673         118 :             _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
    9674         118 :             if (_res == NULL && PyErr_Occurred()) {
    9675           0 :                 p->error_indicator = 1;
    9676           0 :                 p->level--;
    9677           0 :                 return NULL;
    9678             :             }
    9679         118 :             goto done;
    9680             :         }
    9681        3305 :         p->mark = _mark;
    9682        3305 :         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        3305 :         if (p->error_indicator) {
    9687           0 :             p->level--;
    9688           0 :             return NULL;
    9689             :         }
    9690        3305 :         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        3305 :         if (
    9694        3305 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
    9695          56 :             &&
    9696          56 :             (wildcard_pattern_var = wildcard_pattern_rule(p))  // wildcard_pattern
    9697             :         )
    9698             :         {
    9699          56 :             D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
    9700          56 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    9701          56 :             if (_token == NULL) {
    9702           0 :                 p->level--;
    9703           0 :                 return NULL;
    9704             :             }
    9705          56 :             int _end_lineno = _token->end_lineno;
    9706             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    9707          56 :             int _end_col_offset = _token->end_col_offset;
    9708             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    9709          56 :             _res = _PyAST_MatchStar ( NULL , EXTRA );
    9710          56 :             if (_res == NULL && PyErr_Occurred()) {
    9711           0 :                 p->error_indicator = 1;
    9712           0 :                 p->level--;
    9713           0 :                 return NULL;
    9714             :             }
    9715          56 :             goto done;
    9716             :         }
    9717        3249 :         p->mark = _mark;
    9718        3249 :         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        3249 :     _res = NULL;
    9722        3423 :   done:
    9723        3423 :     _PyPegen_insert_memo(p, _mark, star_pattern_type, _res);
    9724        3423 :     p->level--;
    9725        3423 :     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
    9734         984 : mapping_pattern_rule(Parser *p)
    9735             : {
    9736         984 :     if (p->level++ == MAXSTACK) {
    9737           0 :         p->error_indicator = 1;
    9738           0 :         PyErr_NoMemory();
    9739             :     }
    9740         984 :     if (p->error_indicator) {
    9741           0 :         p->level--;
    9742           0 :         return NULL;
    9743             :     }
    9744         984 :     pattern_ty _res = NULL;
    9745         984 :     int _mark = p->mark;
    9746         984 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
    9747           0 :         p->error_indicator = 1;
    9748           0 :         p->level--;
    9749           0 :         return NULL;
    9750             :     }
    9751         984 :     int _start_lineno = p->tokens[_mark]->lineno;
    9752             :     UNUSED(_start_lineno); // Only used by EXTRA macro
    9753         984 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    9754             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    9755             :     { // '{' '}'
    9756         984 :         if (p->error_indicator) {
    9757           0 :             p->level--;
    9758           0 :             return NULL;
    9759             :         }
    9760         984 :         D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
    9761             :         Token * _literal;
    9762             :         Token * _literal_1;
    9763         984 :         if (
    9764         984 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
    9765         444 :             &&
    9766         444 :             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
    9767             :         )
    9768             :         {
    9769          98 :             D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
    9770          98 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    9771          98 :             if (_token == NULL) {
    9772           0 :                 p->level--;
    9773           0 :                 return NULL;
    9774             :             }
    9775          98 :             int _end_lineno = _token->end_lineno;
    9776             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    9777          98 :             int _end_col_offset = _token->end_col_offset;
    9778             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    9779          98 :             _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA );
    9780          98 :             if (_res == NULL && PyErr_Occurred()) {
    9781           0 :                 p->error_indicator = 1;
    9782           0 :                 p->level--;
    9783           0 :                 return NULL;
    9784             :             }
    9785          98 :             goto done;
    9786             :         }
    9787         886 :         p->mark = _mark;
    9788         886 :         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         886 :         if (p->error_indicator) {
    9793           0 :             p->level--;
    9794           0 :             return NULL;
    9795             :         }
    9796         886 :         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         886 :         if (
    9803         886 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
    9804         346 :             &&
    9805         346 :             (rest = double_star_pattern_rule(p))  // double_star_pattern
    9806          18 :             &&
    9807          18 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
    9808          18 :             &&
    9809          18 :             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
    9810             :         )
    9811             :         {
    9812          12 :             D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
    9813          12 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    9814          12 :             if (_token == NULL) {
    9815           0 :                 p->level--;
    9816           0 :                 return NULL;
    9817             :             }
    9818          12 :             int _end_lineno = _token->end_lineno;
    9819             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    9820          12 :             int _end_col_offset = _token->end_col_offset;
    9821             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    9822          12 :             _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA );
    9823          12 :             if (_res == NULL && PyErr_Occurred()) {
    9824           0 :                 p->error_indicator = 1;
    9825           0 :                 p->level--;
    9826           0 :                 return NULL;
    9827             :             }
    9828          12 :             goto done;
    9829             :         }
    9830         874 :         p->mark = _mark;
    9831         874 :         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         874 :         if (p->error_indicator) {
    9836           0 :             p->level--;
    9837           0 :             return NULL;
    9838             :         }
    9839         874 :         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         874 :         if (
    9848         874 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
    9849         334 :             &&
    9850         334 :             (items = items_pattern_rule(p))  // items_pattern
    9851         321 :             &&
    9852         321 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
    9853          22 :             &&
    9854          22 :             (rest = double_star_pattern_rule(p))  // double_star_pattern
    9855          22 :             &&
    9856          22 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
    9857          22 :             &&
    9858          22 :             (_literal_2 = _PyPegen_expect_token(p, 26))  // token='}'
    9859             :         )
    9860             :         {
    9861          20 :             D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
    9862          20 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    9863          20 :             if (_token == NULL) {
    9864           0 :                 p->level--;
    9865           0 :                 return NULL;
    9866             :             }
    9867          20 :             int _end_lineno = _token->end_lineno;
    9868             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    9869          20 :             int _end_col_offset = _token->end_col_offset;
    9870             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    9871          20 :             _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          20 :             if (_res == NULL && PyErr_Occurred()) {
    9873           0 :                 p->error_indicator = 1;
    9874           0 :                 p->level--;
    9875           0 :                 return NULL;
    9876             :             }
    9877          20 :             goto done;
    9878             :         }
    9879         854 :         p->mark = _mark;
    9880         854 :         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         854 :         if (p->error_indicator) {
    9885           3 :             p->level--;
    9886           3 :             return NULL;
    9887             :         }
    9888         851 :         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         851 :         if (
    9895         851 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
    9896         311 :             &&
    9897         311 :             (items = items_pattern_rule(p))  // items_pattern
    9898         301 :             &&
    9899         301 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
    9900         301 :             &&
    9901         301 :             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
    9902             :         )
    9903             :         {
    9904         299 :             D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
    9905         299 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    9906         299 :             if (_token == NULL) {
    9907           0 :                 p->level--;
    9908           0 :                 return NULL;
    9909             :             }
    9910         299 :             int _end_lineno = _token->end_lineno;
    9911             :             UNUSED(_end_lineno); // Only used by EXTRA macro
    9912         299 :             int _end_col_offset = _token->end_col_offset;
    9913             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    9914         299 :             _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         299 :             if (_res == NULL && PyErr_Occurred()) {
    9916           0 :                 p->error_indicator = 1;
    9917           0 :                 p->level--;
    9918           0 :                 return NULL;
    9919             :             }
    9920         299 :             goto done;
    9921             :         }
    9922         552 :         p->mark = _mark;
    9923         552 :         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         552 :     _res = NULL;
    9927         981 :   done:
    9928         981 :     p->level--;
    9929         981 :     return _res;
    9930             : }
    9931             : 
    9932             : // items_pattern: ','.key_value_pattern+
    9933             : static asdl_seq*
    9934         645 : items_pattern_rule(Parser *p)
    9935             : {
    9936         645 :     if (p->level++ == MAXSTACK) {
    9937           0 :         p->error_indicator = 1;
    9938           0 :         PyErr_NoMemory();
    9939             :     }
    9940         645 :     if (p->error_indicator) {
    9941           0 :         p->level--;
    9942           0 :         return NULL;
    9943             :     }
    9944         645 :     asdl_seq* _res = NULL;
    9945         645 :     int _mark = p->mark;
    9946             :     { // ','.key_value_pattern+
    9947         645 :         if (p->error_indicator) {
    9948           0 :             p->level--;
    9949           0 :             return NULL;
    9950             :         }
    9951         645 :         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         645 :         if (
    9954         645 :             (_gather_73_var = _gather_73_rule(p))  // ','.key_value_pattern+
    9955             :         )
    9956             :         {
    9957         622 :             D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+"));
    9958         622 :             _res = _gather_73_var;
    9959         622 :             goto done;
    9960             :         }
    9961          23 :         p->mark = _mark;
    9962          23 :         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          23 :     _res = NULL;
    9966         645 :   done:
    9967         645 :     p->level--;
    9968         645 :     return _res;
    9969             : }
    9970             : 
    9971             : // key_value_pattern: (literal_expr | attr) ':' pattern
    9972             : static KeyPatternPair*
    9973         809 : key_value_pattern_rule(Parser *p)
    9974             : {
    9975         809 :     if (p->level++ == MAXSTACK) {
    9976           0 :         p->error_indicator = 1;
    9977           0 :         PyErr_NoMemory();
    9978             :     }
    9979         809 :     if (p->error_indicator) {
    9980           0 :         p->level--;
    9981           0 :         return NULL;
    9982             :     }
    9983         809 :     KeyPatternPair* _res = NULL;
    9984         809 :     int _mark = p->mark;
    9985             :     { // (literal_expr | attr) ':' pattern
    9986         809 :         if (p->error_indicator) {
    9987           0 :             p->level--;
    9988           0 :             return NULL;
    9989             :         }
    9990         809 :         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         809 :         if (
    9995         809 :             (key = _tmp_75_rule(p))  // literal_expr | attr
    9996         762 :             &&
    9997         762 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    9998         762 :             &&
    9999         762 :             (pattern = pattern_rule(p))  // pattern
   10000             :         )
   10001             :         {
   10002         762 :             D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
   10003         762 :             _res = _PyPegen_key_pattern_pair ( p , key , pattern );
   10004         762 :             if (_res == NULL && PyErr_Occurred()) {
   10005           0 :                 p->error_indicator = 1;
   10006           0 :                 p->level--;
   10007           0 :                 return NULL;
   10008             :             }
   10009         762 :             goto done;
   10010             :         }
   10011          47 :         p->mark = _mark;
   10012          47 :         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          47 :     _res = NULL;
   10016         809 :   done:
   10017         809 :     p->level--;
   10018         809 :     return _res;
   10019             : }
   10020             : 
   10021             : // double_star_pattern: '**' pattern_capture_target
   10022             : static expr_ty
   10023         368 : double_star_pattern_rule(Parser *p)
   10024             : {
   10025         368 :     if (p->level++ == MAXSTACK) {
   10026           0 :         p->error_indicator = 1;
   10027           0 :         PyErr_NoMemory();
   10028             :     }
   10029         368 :     if (p->error_indicator) {
   10030           0 :         p->level--;
   10031           0 :         return NULL;
   10032             :     }
   10033         368 :     expr_ty _res = NULL;
   10034         368 :     int _mark = p->mark;
   10035             :     { // '**' pattern_capture_target
   10036         368 :         if (p->error_indicator) {
   10037           0 :             p->level--;
   10038           0 :             return NULL;
   10039             :         }
   10040         368 :         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         368 :         if (
   10044         368 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   10045          44 :             &&
   10046          44 :             (target = pattern_capture_target_rule(p))  // pattern_capture_target
   10047             :         )
   10048             :         {
   10049          40 :             D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
   10050          40 :             _res = target;
   10051          40 :             if (_res == NULL && PyErr_Occurred()) {
   10052           0 :                 p->error_indicator = 1;
   10053           0 :                 p->level--;
   10054           0 :                 return NULL;
   10055             :             }
   10056          40 :             goto done;
   10057             :         }
   10058         328 :         p->mark = _mark;
   10059         328 :         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         328 :     _res = NULL;
   10063         368 :   done:
   10064         368 :     p->level--;
   10065         368 :     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
   10075         552 : class_pattern_rule(Parser *p)
   10076             : {
   10077         552 :     if (p->level++ == MAXSTACK) {
   10078           0 :         p->error_indicator = 1;
   10079           0 :         PyErr_NoMemory();
   10080             :     }
   10081         552 :     if (p->error_indicator) {
   10082           0 :         p->level--;
   10083           0 :         return NULL;
   10084             :     }
   10085         552 :     pattern_ty _res = NULL;
   10086         552 :     int _mark = p->mark;
   10087         552 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   10088           0 :         p->error_indicator = 1;
   10089           0 :         p->level--;
   10090           0 :         return NULL;
   10091             :     }
   10092         552 :     int _start_lineno = p->tokens[_mark]->lineno;
   10093             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   10094         552 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   10095             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   10096             :     { // name_or_attr '(' ')'
   10097         552 :         if (p->error_indicator) {
   10098           0 :             p->level--;
   10099           0 :             return NULL;
   10100             :         }
   10101         552 :         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         552 :         if (
   10106         552 :             (cls = name_or_attr_rule(p))  // name_or_attr
   10107         369 :             &&
   10108         369 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   10109         296 :             &&
   10110         296 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   10111             :         )
   10112             :         {
   10113          40 :             D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
   10114          40 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10115          40 :             if (_token == NULL) {
   10116           0 :                 p->level--;
   10117           0 :                 return NULL;
   10118             :             }
   10119          40 :             int _end_lineno = _token->end_lineno;
   10120             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10121          40 :             int _end_col_offset = _token->end_col_offset;
   10122             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10123          40 :             _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA );
   10124          40 :             if (_res == NULL && PyErr_Occurred()) {
   10125           0 :                 p->error_indicator = 1;
   10126           0 :                 p->level--;
   10127           0 :                 return NULL;
   10128             :             }
   10129          40 :             goto done;
   10130             :         }
   10131         512 :         p->mark = _mark;
   10132         512 :         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         512 :         if (p->error_indicator) {
   10137           0 :             p->level--;
   10138           0 :             return NULL;
   10139             :         }
   10140         512 :         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         512 :         if (
   10148         512 :             (cls = name_or_attr_rule(p))  // name_or_attr
   10149         329 :             &&
   10150         329 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   10151         256 :             &&
   10152         256 :             (patterns = positional_patterns_rule(p))  // positional_patterns
   10153         228 :             &&
   10154         228 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   10155         228 :             &&
   10156         228 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   10157             :         )
   10158             :         {
   10159         185 :             D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
   10160         185 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10161         185 :             if (_token == NULL) {
   10162           0 :                 p->level--;
   10163           0 :                 return NULL;
   10164             :             }
   10165         185 :             int _end_lineno = _token->end_lineno;
   10166             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10167         185 :             int _end_col_offset = _token->end_col_offset;
   10168             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10169         185 :             _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA );
   10170         185 :             if (_res == NULL && PyErr_Occurred()) {
   10171           0 :                 p->error_indicator = 1;
   10172           0 :                 p->level--;
   10173           0 :                 return NULL;
   10174             :             }
   10175         185 :             goto done;
   10176             :         }
   10177         327 :         p->mark = _mark;
   10178         327 :         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         327 :         if (p->error_indicator) {
   10183           0 :             p->level--;
   10184           0 :             return NULL;
   10185             :         }
   10186         327 :         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         327 :         if (
   10194         327 :             (cls = name_or_attr_rule(p))  // name_or_attr
   10195         144 :             &&
   10196         144 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   10197          71 :             &&
   10198          71 :             (keywords = keyword_patterns_rule(p))  // keyword_patterns
   10199          28 :             &&
   10200          28 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   10201          28 :             &&
   10202          28 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   10203             :         )
   10204             :         {
   10205          22 :             D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
   10206          22 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10207          22 :             if (_token == NULL) {
   10208           0 :                 p->level--;
   10209           0 :                 return NULL;
   10210             :             }
   10211          22 :             int _end_lineno = _token->end_lineno;
   10212             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10213          22 :             int _end_col_offset = _token->end_col_offset;
   10214             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10215          22 :             _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          22 :             if (_res == NULL && PyErr_Occurred()) {
   10217           0 :                 p->error_indicator = 1;
   10218           0 :                 p->level--;
   10219           0 :                 return NULL;
   10220             :             }
   10221          22 :             goto done;
   10222             :         }
   10223         305 :         p->mark = _mark;
   10224         305 :         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         305 :         if (p->error_indicator) {
   10229           0 :             p->level--;
   10230           0 :             return NULL;
   10231             :         }
   10232         305 :         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         305 :         if (
   10242         305 :             (cls = name_or_attr_rule(p))  // name_or_attr
   10243         122 :             &&
   10244         122 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   10245          49 :             &&
   10246          49 :             (patterns = positional_patterns_rule(p))  // positional_patterns
   10247          43 :             &&
   10248          43 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
   10249          43 :             &&
   10250          43 :             (keywords = keyword_patterns_rule(p))  // keyword_patterns
   10251          43 :             &&
   10252          43 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   10253          43 :             &&
   10254          43 :             (_literal_2 = _PyPegen_expect_token(p, 8))  // token=')'
   10255             :         )
   10256             :         {
   10257          41 :             D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
   10258          41 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10259          41 :             if (_token == NULL) {
   10260           0 :                 p->level--;
   10261           0 :                 return NULL;
   10262             :             }
   10263          41 :             int _end_lineno = _token->end_lineno;
   10264             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10265          41 :             int _end_col_offset = _token->end_col_offset;
   10266             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10267          41 :             _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          41 :             if (_res == NULL && PyErr_Occurred()) {
   10269           0 :                 p->error_indicator = 1;
   10270           0 :                 p->level--;
   10271           0 :                 return NULL;
   10272             :             }
   10273          41 :             goto done;
   10274             :         }
   10275         264 :         p->mark = _mark;
   10276         264 :         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         264 :     if (p->call_invalid_rules) { // invalid_class_pattern
   10280          19 :         if (p->error_indicator) {
   10281           0 :             p->level--;
   10282           0 :             return NULL;
   10283             :         }
   10284          19 :         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          19 :         if (
   10287          19 :             (invalid_class_pattern_var = invalid_class_pattern_rule(p))  // invalid_class_pattern
   10288             :         )
   10289             :         {
   10290           0 :             D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
   10291           0 :             _res = invalid_class_pattern_var;
   10292           0 :             goto done;
   10293             :         }
   10294          19 :         p->mark = _mark;
   10295          19 :         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         264 :     _res = NULL;
   10299         552 :   done:
   10300         552 :     p->level--;
   10301         552 :     return _res;
   10302             : }
   10303             : 
   10304             : // positional_patterns: ','.pattern+
   10305             : static asdl_pattern_seq*
   10306         313 : positional_patterns_rule(Parser *p)
   10307             : {
   10308         313 :     if (p->level++ == MAXSTACK) {
   10309           0 :         p->error_indicator = 1;
   10310           0 :         PyErr_NoMemory();
   10311             :     }
   10312         313 :     if (p->error_indicator) {
   10313           0 :         p->level--;
   10314           0 :         return NULL;
   10315             :     }
   10316         313 :     asdl_pattern_seq* _res = NULL;
   10317         313 :     int _mark = p->mark;
   10318             :     { // ','.pattern+
   10319         313 :         if (p->error_indicator) {
   10320           0 :             p->level--;
   10321           0 :             return NULL;
   10322             :         }
   10323         313 :         D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
   10324             :         asdl_pattern_seq* args;
   10325         313 :         if (
   10326         313 :             (args = (asdl_pattern_seq*)_gather_76_rule(p))  // ','.pattern+
   10327             :         )
   10328             :         {
   10329         276 :             D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
   10330         276 :             _res = args;
   10331         276 :             if (_res == NULL && PyErr_Occurred()) {
   10332           0 :                 p->error_indicator = 1;
   10333           0 :                 p->level--;
   10334           0 :                 return NULL;
   10335             :             }
   10336         276 :             goto done;
   10337             :         }
   10338          37 :         p->mark = _mark;
   10339          37 :         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          37 :     _res = NULL;
   10343         313 :   done:
   10344         313 :     p->level--;
   10345         313 :     return _res;
   10346             : }
   10347             : 
   10348             : // keyword_patterns: ','.keyword_pattern+
   10349             : static asdl_seq*
   10350         118 : keyword_patterns_rule(Parser *p)
   10351             : {
   10352         118 :     if (p->level++ == MAXSTACK) {
   10353           0 :         p->error_indicator = 1;
   10354           0 :         PyErr_NoMemory();
   10355             :     }
   10356         118 :     if (p->error_indicator) {
   10357           0 :         p->level--;
   10358           0 :         return NULL;
   10359             :     }
   10360         118 :     asdl_seq* _res = NULL;
   10361         118 :     int _mark = p->mark;
   10362             :     { // ','.keyword_pattern+
   10363         118 :         if (p->error_indicator) {
   10364           0 :             p->level--;
   10365           0 :             return NULL;
   10366             :         }
   10367         118 :         D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
   10368             :         asdl_seq * _gather_78_var;
   10369         118 :         if (
   10370         118 :             (_gather_78_var = _gather_78_rule(p))  // ','.keyword_pattern+
   10371             :         )
   10372             :         {
   10373          75 :             D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
   10374          75 :             _res = _gather_78_var;
   10375          75 :             goto done;
   10376             :         }
   10377          43 :         p->mark = _mark;
   10378          43 :         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          43 :     _res = NULL;
   10382         118 :   done:
   10383         118 :     p->level--;
   10384         118 :     return _res;
   10385             : }
   10386             : 
   10387             : // keyword_pattern: NAME '=' pattern
   10388             : static KeyPatternPair*
   10389         174 : keyword_pattern_rule(Parser *p)
   10390             : {
   10391         174 :     if (p->level++ == MAXSTACK) {
   10392           0 :         p->error_indicator = 1;
   10393           0 :         PyErr_NoMemory();
   10394             :     }
   10395         174 :     if (p->error_indicator) {
   10396           0 :         p->level--;
   10397           0 :         return NULL;
   10398             :     }
   10399         174 :     KeyPatternPair* _res = NULL;
   10400         174 :     int _mark = p->mark;
   10401             :     { // NAME '=' pattern
   10402         174 :         if (p->error_indicator) {
   10403           0 :             p->level--;
   10404           0 :             return NULL;
   10405             :         }
   10406         174 :         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         174 :         if (
   10411         174 :             (arg = _PyPegen_name_token(p))  // NAME
   10412         170 :             &&
   10413         170 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   10414         119 :             &&
   10415         119 :             (value = pattern_rule(p))  // pattern
   10416             :         )
   10417             :         {
   10418         119 :             D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
   10419         119 :             _res = _PyPegen_key_pattern_pair ( p , arg , value );
   10420         119 :             if (_res == NULL && PyErr_Occurred()) {
   10421           0 :                 p->error_indicator = 1;
   10422           0 :                 p->level--;
   10423           0 :                 return NULL;
   10424             :             }
   10425         119 :             goto done;
   10426             :         }
   10427          55 :         p->mark = _mark;
   10428          55 :         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          55 :     _res = NULL;
   10432         174 :   done:
   10433         174 :     p->level--;
   10434         174 :     return _res;
   10435             : }
   10436             : 
   10437             : // expressions: expression ((',' expression))+ ','? | expression ',' | expression
   10438             : static expr_ty
   10439       74328 : expressions_rule(Parser *p)
   10440             : {
   10441       74328 :     if (p->level++ == MAXSTACK) {
   10442           0 :         p->error_indicator = 1;
   10443           0 :         PyErr_NoMemory();
   10444             :     }
   10445       74328 :     if (p->error_indicator) {
   10446           0 :         p->level--;
   10447           0 :         return NULL;
   10448             :     }
   10449       74328 :     expr_ty _res = NULL;
   10450       74328 :     int _mark = p->mark;
   10451       74328 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   10452          86 :         p->error_indicator = 1;
   10453          86 :         p->level--;
   10454          86 :         return NULL;
   10455             :     }
   10456       74242 :     int _start_lineno = p->tokens[_mark]->lineno;
   10457             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   10458       74242 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   10459             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   10460             :     { // expression ((',' expression))+ ','?
   10461       74242 :         if (p->error_indicator) {
   10462           0 :             p->level--;
   10463           0 :             return NULL;
   10464             :         }
   10465       74242 :         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       74242 :         if (
   10471       74242 :             (a = expression_rule(p))  // expression
   10472       73442 :             &&
   10473       73442 :             (b = _loop1_80_rule(p))  // ((',' expression))+
   10474         217 :             &&
   10475         217 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   10476             :         )
   10477             :         {
   10478         217 :             D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
   10479         217 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10480         217 :             if (_token == NULL) {
   10481           0 :                 p->level--;
   10482           0 :                 return NULL;
   10483             :             }
   10484         217 :             int _end_lineno = _token->end_lineno;
   10485             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10486         217 :             int _end_col_offset = _token->end_col_offset;
   10487             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10488         217 :             _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
   10489         217 :             if (_res == NULL && PyErr_Occurred()) {
   10490           0 :                 p->error_indicator = 1;
   10491           0 :                 p->level--;
   10492           0 :                 return NULL;
   10493             :             }
   10494         217 :             goto done;
   10495             :         }
   10496       74025 :         p->mark = _mark;
   10497       74025 :         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       74025 :         if (p->error_indicator) {
   10502         769 :             p->level--;
   10503         769 :             return NULL;
   10504             :         }
   10505       73256 :         D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
   10506             :         Token * _literal;
   10507             :         expr_ty a;
   10508       73256 :         if (
   10509       73256 :             (a = expression_rule(p))  // expression
   10510       73225 :             &&
   10511       73225 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   10512             :         )
   10513             :         {
   10514           0 :             D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
   10515           0 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10516           0 :             if (_token == NULL) {
   10517           0 :                 p->level--;
   10518           0 :                 return NULL;
   10519             :             }
   10520           0 :             int _end_lineno = _token->end_lineno;
   10521             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10522           0 :             int _end_col_offset = _token->end_col_offset;
   10523             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10524           0 :             _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
   10525           0 :             if (_res == NULL && PyErr_Occurred()) {
   10526           0 :                 p->error_indicator = 1;
   10527           0 :                 p->level--;
   10528           0 :                 return NULL;
   10529             :             }
   10530           0 :             goto done;
   10531             :         }
   10532       73256 :         p->mark = _mark;
   10533       73256 :         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       73256 :         if (p->error_indicator) {
   10538           0 :             p->level--;
   10539           0 :             return NULL;
   10540             :         }
   10541       73256 :         D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
   10542             :         expr_ty expression_var;
   10543       73256 :         if (
   10544       73256 :             (expression_var = expression_rule(p))  // expression
   10545             :         )
   10546             :         {
   10547       73225 :             D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
   10548       73225 :             _res = expression_var;
   10549       73225 :             goto done;
   10550             :         }
   10551          31 :         p->mark = _mark;
   10552          31 :         D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
   10553             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
   10554             :     }
   10555          31 :     _res = NULL;
   10556       73473 :   done:
   10557       73473 :     p->level--;
   10558       73473 :     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
   10568    22849400 : expression_rule(Parser *p)
   10569             : {
   10570    22849400 :     if (p->level++ == MAXSTACK) {
   10571           0 :         p->error_indicator = 1;
   10572           0 :         PyErr_NoMemory();
   10573             :     }
   10574    22849400 :     if (p->error_indicator) {
   10575           0 :         p->level--;
   10576           0 :         return NULL;
   10577             :     }
   10578    22849400 :     expr_ty _res = NULL;
   10579    22849400 :     if (_PyPegen_is_memoized(p, expression_type, &_res)) {
   10580    10837000 :         p->level--;
   10581    10837000 :         return _res;
   10582             :     }
   10583    12012400 :     int _mark = p->mark;
   10584    12012400 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   10585           0 :         p->error_indicator = 1;
   10586           0 :         p->level--;
   10587           0 :         return NULL;
   10588             :     }
   10589    12012400 :     int _start_lineno = p->tokens[_mark]->lineno;
   10590             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   10591    12012400 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   10592             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   10593    12012400 :     if (p->call_invalid_rules) { // invalid_expression
   10594        2706 :         if (p->error_indicator) {
   10595           0 :             p->level--;
   10596           0 :             return NULL;
   10597             :         }
   10598        2706 :         D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
   10599             :         void *invalid_expression_var;
   10600        2706 :         if (
   10601        2706 :             (invalid_expression_var = invalid_expression_rule(p))  // invalid_expression
   10602             :         )
   10603             :         {
   10604           0 :             D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
   10605           0 :             _res = invalid_expression_var;
   10606           0 :             goto done;
   10607             :         }
   10608        2706 :         p->mark = _mark;
   10609        2706 :         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    12012400 :     if (p->call_invalid_rules) { // invalid_legacy_expression
   10613        2706 :         if (p->error_indicator) {
   10614          32 :             p->level--;
   10615          32 :             return NULL;
   10616             :         }
   10617        2674 :         D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
   10618             :         void *invalid_legacy_expression_var;
   10619        2674 :         if (
   10620        2674 :             (invalid_legacy_expression_var = invalid_legacy_expression_rule(p))  // invalid_legacy_expression
   10621             :         )
   10622             :         {
   10623           0 :             D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
   10624           0 :             _res = invalid_legacy_expression_var;
   10625           0 :             goto done;
   10626             :         }
   10627        2674 :         p->mark = _mark;
   10628        2674 :         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    12012400 :         if (p->error_indicator) {
   10633          27 :             p->level--;
   10634          27 :             return NULL;
   10635             :         }
   10636    12012400 :         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    12012400 :         if (
   10643    12012400 :             (a = disjunction_rule(p))  // disjunction
   10644     9707560 :             &&
   10645     9707560 :             (_keyword = _PyPegen_expect_token(p, 634))  // token='if'
   10646       11117 :             &&
   10647       11117 :             (b = disjunction_rule(p))  // disjunction
   10648       11107 :             &&
   10649       11107 :             (_keyword_1 = _PyPegen_expect_token(p, 637))  // token='else'
   10650       11101 :             &&
   10651       11101 :             (c = expression_rule(p))  // expression
   10652             :         )
   10653             :         {
   10654       11101 :             D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
   10655       11101 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10656       11101 :             if (_token == NULL) {
   10657           0 :                 p->level--;
   10658           0 :                 return NULL;
   10659             :             }
   10660       11101 :             int _end_lineno = _token->end_lineno;
   10661             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10662       11101 :             int _end_col_offset = _token->end_col_offset;
   10663             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10664       11101 :             _res = _PyAST_IfExp ( b , a , c , EXTRA );
   10665       11101 :             if (_res == NULL && PyErr_Occurred()) {
   10666           0 :                 p->error_indicator = 1;
   10667           0 :                 p->level--;
   10668           0 :                 return NULL;
   10669             :             }
   10670       11101 :             goto done;
   10671             :         }
   10672    12001300 :         p->mark = _mark;
   10673    12001300 :         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    12001300 :         if (p->error_indicator) {
   10678         839 :             p->level--;
   10679         839 :             return NULL;
   10680             :         }
   10681    12000400 :         D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
   10682             :         expr_ty disjunction_var;
   10683    12000400 :         if (
   10684    12000400 :             (disjunction_var = disjunction_rule(p))  // disjunction
   10685             :         )
   10686             :         {
   10687     9696450 :             D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
   10688     9696450 :             _res = disjunction_var;
   10689     9696450 :             goto done;
   10690             :         }
   10691     2303970 :         p->mark = _mark;
   10692     2303970 :         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     2303970 :         if (p->error_indicator) {
   10697           0 :             p->level--;
   10698           0 :             return NULL;
   10699             :         }
   10700     2303970 :         D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
   10701             :         expr_ty lambdef_var;
   10702     2303970 :         if (
   10703     2303970 :             (lambdef_var = lambdef_rule(p))  // lambdef
   10704             :         )
   10705             :         {
   10706       37490 :             D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
   10707       37490 :             _res = lambdef_var;
   10708       37490 :             goto done;
   10709             :         }
   10710     2266480 :         p->mark = _mark;
   10711     2266480 :         D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
   10712             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
   10713             :     }
   10714     2266480 :     _res = NULL;
   10715    12011500 :   done:
   10716    12011500 :     _PyPegen_insert_memo(p, _mark, expression_type, _res);
   10717    12011500 :     p->level--;
   10718    12011500 :     return _res;
   10719             : }
   10720             : 
   10721             : // yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
   10722             : static expr_ty
   10723     1151340 : yield_expr_rule(Parser *p)
   10724             : {
   10725     1151340 :     if (p->level++ == MAXSTACK) {
   10726           0 :         p->error_indicator = 1;
   10727           0 :         PyErr_NoMemory();
   10728             :     }
   10729     1151340 :     if (p->error_indicator) {
   10730           0 :         p->level--;
   10731           0 :         return NULL;
   10732             :     }
   10733     1151340 :     expr_ty _res = NULL;
   10734     1151340 :     int _mark = p->mark;
   10735     1151340 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   10736           0 :         p->error_indicator = 1;
   10737           0 :         p->level--;
   10738           0 :         return NULL;
   10739             :     }
   10740     1151340 :     int _start_lineno = p->tokens[_mark]->lineno;
   10741             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   10742     1151340 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   10743             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   10744             :     { // 'yield' 'from' expression
   10745     1151340 :         if (p->error_indicator) {
   10746           0 :             p->level--;
   10747           0 :             return NULL;
   10748             :         }
   10749     1151340 :         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     1151340 :         if (
   10754     1151340 :             (_keyword = _PyPegen_expect_token(p, 573))  // token='yield'
   10755       16059 :             &&
   10756       16059 :             (_keyword_1 = _PyPegen_expect_token(p, 572))  // token='from'
   10757        2271 :             &&
   10758        2271 :             (a = expression_rule(p))  // expression
   10759             :         )
   10760             :         {
   10761        2268 :             D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
   10762        2268 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10763        2268 :             if (_token == NULL) {
   10764           0 :                 p->level--;
   10765           0 :                 return NULL;
   10766             :             }
   10767        2268 :             int _end_lineno = _token->end_lineno;
   10768             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10769        2268 :             int _end_col_offset = _token->end_col_offset;
   10770             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10771        2268 :             _res = _PyAST_YieldFrom ( a , EXTRA );
   10772        2268 :             if (_res == NULL && PyErr_Occurred()) {
   10773           0 :                 p->error_indicator = 1;
   10774           0 :                 p->level--;
   10775           0 :                 return NULL;
   10776             :             }
   10777        2268 :             goto done;
   10778             :         }
   10779     1149080 :         p->mark = _mark;
   10780     1149080 :         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     1149080 :         if (p->error_indicator) {
   10785           0 :             p->level--;
   10786           0 :             return NULL;
   10787             :         }
   10788     1149080 :         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     1149080 :         if (
   10792     1149080 :             (_keyword = _PyPegen_expect_token(p, 573))  // token='yield'
   10793       13791 :             &&
   10794       13791 :             (a = star_expressions_rule(p), !p->error_indicator)  // star_expressions?
   10795             :         )
   10796             :         {
   10797       13791 :             D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
   10798       13791 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10799       13791 :             if (_token == NULL) {
   10800           0 :                 p->level--;
   10801           0 :                 return NULL;
   10802             :             }
   10803       13791 :             int _end_lineno = _token->end_lineno;
   10804             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10805       13791 :             int _end_col_offset = _token->end_col_offset;
   10806             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10807       13791 :             _res = _PyAST_Yield ( a , EXTRA );
   10808       13791 :             if (_res == NULL && PyErr_Occurred()) {
   10809           0 :                 p->error_indicator = 1;
   10810           0 :                 p->level--;
   10811           0 :                 return NULL;
   10812             :             }
   10813       13791 :             goto done;
   10814             :         }
   10815     1135280 :         p->mark = _mark;
   10816     1135280 :         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     1135280 :     _res = NULL;
   10820     1151340 :   done:
   10821     1151340 :     p->level--;
   10822     1151340 :     return _res;
   10823             : }
   10824             : 
   10825             : // star_expressions:
   10826             : //     | star_expression ((',' star_expression))+ ','?
   10827             : //     | star_expression ','
   10828             : //     | star_expression
   10829             : static expr_ty
   10830     3641140 : star_expressions_rule(Parser *p)
   10831             : {
   10832     3641140 :     if (p->level++ == MAXSTACK) {
   10833           0 :         p->error_indicator = 1;
   10834           0 :         PyErr_NoMemory();
   10835             :     }
   10836     3641140 :     if (p->error_indicator) {
   10837           0 :         p->level--;
   10838           0 :         return NULL;
   10839             :     }
   10840     3641140 :     expr_ty _res = NULL;
   10841     3641140 :     int _mark = p->mark;
   10842     3641140 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   10843           0 :         p->error_indicator = 1;
   10844           0 :         p->level--;
   10845           0 :         return NULL;
   10846             :     }
   10847     3641140 :     int _start_lineno = p->tokens[_mark]->lineno;
   10848             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   10849     3641140 :     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     3641140 :         if (p->error_indicator) {
   10853           0 :             p->level--;
   10854           0 :             return NULL;
   10855             :         }
   10856     3641140 :         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     3641140 :         if (
   10862     3641140 :             (a = star_expression_rule(p))  // star_expression
   10863     2105940 :             &&
   10864     2105940 :             (b = _loop1_81_rule(p))  // ((',' star_expression))+
   10865       19674 :             &&
   10866       19674 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   10867             :         )
   10868             :         {
   10869       19674 :             D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
   10870       19674 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10871       19674 :             if (_token == NULL) {
   10872           0 :                 p->level--;
   10873           0 :                 return NULL;
   10874             :             }
   10875       19674 :             int _end_lineno = _token->end_lineno;
   10876             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10877       19674 :             int _end_col_offset = _token->end_col_offset;
   10878             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10879       19674 :             _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
   10880       19674 :             if (_res == NULL && PyErr_Occurred()) {
   10881           0 :                 p->error_indicator = 1;
   10882           0 :                 p->level--;
   10883           0 :                 return NULL;
   10884             :             }
   10885       19674 :             goto done;
   10886             :         }
   10887     3621470 :         p->mark = _mark;
   10888     3621470 :         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     3621470 :         if (p->error_indicator) {
   10893          28 :             p->level--;
   10894          28 :             return NULL;
   10895             :         }
   10896     3621440 :         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     3621440 :         if (
   10900     3621440 :             (a = star_expression_rule(p))  // star_expression
   10901     2086260 :             &&
   10902     2086260 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   10903             :         )
   10904             :         {
   10905         229 :             D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
   10906         229 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10907         229 :             if (_token == NULL) {
   10908           0 :                 p->level--;
   10909           0 :                 return NULL;
   10910             :             }
   10911         229 :             int _end_lineno = _token->end_lineno;
   10912             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10913         229 :             int _end_col_offset = _token->end_col_offset;
   10914             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10915         229 :             _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
   10916         229 :             if (_res == NULL && PyErr_Occurred()) {
   10917           0 :                 p->error_indicator = 1;
   10918           0 :                 p->level--;
   10919           0 :                 return NULL;
   10920             :             }
   10921         229 :             goto done;
   10922             :         }
   10923     3621210 :         p->mark = _mark;
   10924     3621210 :         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     3621210 :         if (p->error_indicator) {
   10929           0 :             p->level--;
   10930           0 :             return NULL;
   10931             :         }
   10932     3621210 :         D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
   10933             :         expr_ty star_expression_var;
   10934     3621210 :         if (
   10935     3621210 :             (star_expression_var = star_expression_rule(p))  // star_expression
   10936             :         )
   10937             :         {
   10938     2086040 :             D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
   10939     2086040 :             _res = star_expression_var;
   10940     2086040 :             goto done;
   10941             :         }
   10942     1535180 :         p->mark = _mark;
   10943     1535180 :         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     1535180 :     _res = NULL;
   10947     3641120 :   done:
   10948     3641120 :     p->level--;
   10949     3641120 :     return _res;
   10950             : }
   10951             : 
   10952             : // star_expression: '*' bitwise_or | expression
   10953             : static expr_ty
   10954    10912300 : star_expression_rule(Parser *p)
   10955             : {
   10956    10912300 :     if (p->level++ == MAXSTACK) {
   10957           0 :         p->error_indicator = 1;
   10958           0 :         PyErr_NoMemory();
   10959             :     }
   10960    10912300 :     if (p->error_indicator) {
   10961           0 :         p->level--;
   10962           0 :         return NULL;
   10963             :     }
   10964    10912300 :     expr_ty _res = NULL;
   10965    10912300 :     if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
   10966     7244440 :         p->level--;
   10967     7244440 :         return _res;
   10968             :     }
   10969     3667850 :     int _mark = p->mark;
   10970     3667850 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   10971           0 :         p->error_indicator = 1;
   10972           0 :         p->level--;
   10973           0 :         return NULL;
   10974             :     }
   10975     3667850 :     int _start_lineno = p->tokens[_mark]->lineno;
   10976             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   10977     3667850 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   10978             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   10979             :     { // '*' bitwise_or
   10980     3667850 :         if (p->error_indicator) {
   10981           0 :             p->level--;
   10982           0 :             return NULL;
   10983             :         }
   10984     3667850 :         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     3667850 :         if (
   10988     3667850 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   10989          52 :             &&
   10990          52 :             (a = bitwise_or_rule(p))  // bitwise_or
   10991             :         )
   10992             :         {
   10993          52 :             D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
   10994          52 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10995          52 :             if (_token == NULL) {
   10996           0 :                 p->level--;
   10997           0 :                 return NULL;
   10998             :             }
   10999          52 :             int _end_lineno = _token->end_lineno;
   11000             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   11001          52 :             int _end_col_offset = _token->end_col_offset;
   11002             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   11003          52 :             _res = _PyAST_Starred ( a , Load , EXTRA );
   11004          52 :             if (_res == NULL && PyErr_Occurred()) {
   11005           0 :                 p->error_indicator = 1;
   11006           0 :                 p->level--;
   11007           0 :                 return NULL;
   11008             :             }
   11009          52 :             goto done;
   11010             :         }
   11011     3667800 :         p->mark = _mark;
   11012     3667800 :         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     3667800 :         if (p->error_indicator) {
   11017           0 :             p->level--;
   11018           0 :             return NULL;
   11019             :         }
   11020     3667800 :         D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
   11021             :         expr_ty expression_var;
   11022     3667800 :         if (
   11023     3667800 :             (expression_var = expression_rule(p))  // expression
   11024             :         )
   11025             :         {
   11026     2133680 :             D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
   11027     2133680 :             _res = expression_var;
   11028     2133680 :             goto done;
   11029             :         }
   11030     1534120 :         p->mark = _mark;
   11031     1534120 :         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     1534120 :     _res = NULL;
   11035     3667850 :   done:
   11036     3667850 :     _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
   11037     3667850 :     p->level--;
   11038     3667850 :     return _res;
   11039             : }
   11040             : 
   11041             : // star_named_expressions: ','.star_named_expression+ ','?
   11042             : static asdl_expr_seq*
   11043      826180 : star_named_expressions_rule(Parser *p)
   11044             : {
   11045      826180 :     if (p->level++ == MAXSTACK) {
   11046           0 :         p->error_indicator = 1;
   11047           0 :         PyErr_NoMemory();
   11048             :     }
   11049      826180 :     if (p->error_indicator) {
   11050           0 :         p->level--;
   11051           0 :         return NULL;
   11052             :     }
   11053      826180 :     asdl_expr_seq* _res = NULL;
   11054      826180 :     int _mark = p->mark;
   11055             :     { // ','.star_named_expression+ ','?
   11056      826180 :         if (p->error_indicator) {
   11057           0 :             p->level--;
   11058           0 :             return NULL;
   11059             :         }
   11060      826180 :         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      826180 :         if (
   11065      826180 :             (a = (asdl_expr_seq*)_gather_82_rule(p))  // ','.star_named_expression+
   11066      650587 :             &&
   11067      650587 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   11068             :         )
   11069             :         {
   11070      650560 :             D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
   11071      650560 :             _res = a;
   11072      650560 :             if (_res == NULL && PyErr_Occurred()) {
   11073           0 :                 p->error_indicator = 1;
   11074           0 :                 p->level--;
   11075           0 :                 return NULL;
   11076             :             }
   11077      650560 :             goto done;
   11078             :         }
   11079      175620 :         p->mark = _mark;
   11080      175620 :         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      175620 :     _res = NULL;
   11084      826180 :   done:
   11085      826180 :     p->level--;
   11086      826180 :     return _res;
   11087             : }
   11088             : 
   11089             : // star_named_expression: '*' bitwise_or | named_expression
   11090             : static expr_ty
   11091     4674380 : star_named_expression_rule(Parser *p)
   11092             : {
   11093     4674380 :     if (p->level++ == MAXSTACK) {
   11094           0 :         p->error_indicator = 1;
   11095           0 :         PyErr_NoMemory();
   11096             :     }
   11097     4674380 :     if (p->error_indicator) {
   11098           0 :         p->level--;
   11099           0 :         return NULL;
   11100             :     }
   11101     4674380 :     expr_ty _res = NULL;
   11102     4674380 :     int _mark = p->mark;
   11103     4674380 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   11104          44 :         p->error_indicator = 1;
   11105          44 :         p->level--;
   11106          44 :         return NULL;
   11107             :     }
   11108     4674330 :     int _start_lineno = p->tokens[_mark]->lineno;
   11109             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   11110     4674330 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   11111             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   11112             :     { // '*' bitwise_or
   11113     4674330 :         if (p->error_indicator) {
   11114           0 :             p->level--;
   11115           0 :             return NULL;
   11116             :         }
   11117     4674330 :         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     4674330 :         if (
   11121     4674330 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   11122        2676 :             &&
   11123        2676 :             (a = bitwise_or_rule(p))  // bitwise_or
   11124             :         )
   11125             :         {
   11126        2651 :             D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
   11127        2651 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   11128        2651 :             if (_token == NULL) {
   11129           0 :                 p->level--;
   11130           0 :                 return NULL;
   11131             :             }
   11132        2651 :             int _end_lineno = _token->end_lineno;
   11133             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   11134        2651 :             int _end_col_offset = _token->end_col_offset;
   11135             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   11136        2651 :             _res = _PyAST_Starred ( a , Load , EXTRA );
   11137        2651 :             if (_res == NULL && PyErr_Occurred()) {
   11138           0 :                 p->error_indicator = 1;
   11139           0 :                 p->level--;
   11140           0 :                 return NULL;
   11141             :             }
   11142        2651 :             goto done;
   11143             :         }
   11144     4671680 :         p->mark = _mark;
   11145     4671680 :         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     4671680 :         if (p->error_indicator) {
   11150           0 :             p->level--;
   11151           0 :             return NULL;
   11152             :         }
   11153     4671680 :         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     4671680 :         if (
   11156     4671680 :             (named_expression_var = named_expression_rule(p))  // named_expression
   11157             :         )
   11158             :         {
   11159     4447710 :             D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
   11160     4447710 :             _res = named_expression_var;
   11161     4447710 :             goto done;
   11162             :         }
   11163      223967 :         p->mark = _mark;
   11164      223967 :         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      223967 :     _res = NULL;
   11168     4674330 :   done:
   11169     4674330 :     p->level--;
   11170     4674330 :     return _res;
   11171             : }
   11172             : 
   11173             : // assignment_expression: NAME ':=' ~ expression
   11174             : static expr_ty
   11175    12893000 : assignment_expression_rule(Parser *p)
   11176             : {
   11177    12893000 :     if (p->level++ == MAXSTACK) {
   11178           0 :         p->error_indicator = 1;
   11179           0 :         PyErr_NoMemory();
   11180             :     }
   11181    12893000 :     if (p->error_indicator) {
   11182           0 :         p->level--;
   11183           0 :         return NULL;
   11184             :     }
   11185    12893000 :     expr_ty _res = NULL;
   11186    12893000 :     int _mark = p->mark;
   11187    12893000 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   11188          15 :         p->error_indicator = 1;
   11189          15 :         p->level--;
   11190          15 :         return NULL;
   11191             :     }
   11192    12893000 :     int _start_lineno = p->tokens[_mark]->lineno;
   11193             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   11194    12893000 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   11195             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   11196             :     { // NAME ':=' ~ expression
   11197    12893000 :         if (p->error_indicator) {
   11198           0 :             p->level--;
   11199           0 :             return NULL;
   11200             :         }
   11201    12893000 :         D(fprintf(stderr, "%*c> assignment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
   11202    12893000 :         int _cut_var = 0;
   11203             :         Token * _literal;
   11204             :         expr_ty a;
   11205             :         expr_ty b;
   11206    12893000 :         if (
   11207    12893000 :             (a = _PyPegen_name_token(p))  // NAME
   11208     5423750 :             &&
   11209     5423750 :             (_literal = _PyPegen_expect_token(p, 53))  // token=':='
   11210             :             &&
   11211        3709 :             (_cut_var = 1)
   11212        3709 :             &&
   11213        3709 :             (b = expression_rule(p))  // expression
   11214             :         )
   11215             :         {
   11216        3709 :             D(fprintf(stderr, "%*c+ assignment_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
   11217        3709 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   11218        3709 :             if (_token == NULL) {
   11219           0 :                 p->level--;
   11220           0 :                 return NULL;
   11221             :             }
   11222        3709 :             int _end_lineno = _token->end_lineno;
   11223             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   11224        3709 :             int _end_col_offset = _token->end_col_offset;
   11225             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   11226        3709 :             _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
   11227        3709 :             if (_res == NULL && PyErr_Occurred()) {
   11228           0 :                 p->error_indicator = 1;
   11229           0 :                 p->level--;
   11230           0 :                 return NULL;
   11231             :             }
   11232        3709 :             goto done;
   11233             :         }
   11234    12889300 :         p->mark = _mark;
   11235    12889300 :         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    12889300 :         if (_cut_var) {
   11238           0 :             p->level--;
   11239           0 :             return NULL;
   11240             :         }
   11241             :     }
   11242    12889300 :     _res = NULL;
   11243    12893000 :   done:
   11244    12893000 :     p->level--;
   11245    12893000 :     return _res;
   11246             : }
   11247             : 
   11248             : // named_expression: assignment_expression | invalid_named_expression | expression !':='
   11249             : static expr_ty
   11250     7043630 : named_expression_rule(Parser *p)
   11251             : {
   11252     7043630 :     if (p->level++ == MAXSTACK) {
   11253           0 :         p->error_indicator = 1;
   11254           0 :         PyErr_NoMemory();
   11255             :     }
   11256     7043630 :     if (p->error_indicator) {
   11257           0 :         p->level--;
   11258           0 :         return NULL;
   11259             :     }
   11260     7043630 :     expr_ty _res = NULL;
   11261     7043630 :     int _mark = p->mark;
   11262             :     { // assignment_expression
   11263     7043630 :         if (p->error_indicator) {
   11264           0 :             p->level--;
   11265           0 :             return NULL;
   11266             :         }
   11267     7043630 :         D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
   11268             :         expr_ty assignment_expression_var;
   11269     7043630 :         if (
   11270     7043630 :             (assignment_expression_var = assignment_expression_rule(p))  // assignment_expression
   11271             :         )
   11272             :         {
   11273        3618 :             D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
   11274        3618 :             _res = assignment_expression_var;
   11275        3618 :             goto done;
   11276             :         }
   11277     7040010 :         p->mark = _mark;
   11278     7040010 :         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     7040010 :     if (p->call_invalid_rules) { // invalid_named_expression
   11282        2435 :         if (p->error_indicator) {
   11283           0 :             p->level--;
   11284           0 :             return NULL;
   11285             :         }
   11286        2435 :         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        2435 :         if (
   11289        2435 :             (invalid_named_expression_var = invalid_named_expression_rule(p))  // invalid_named_expression
   11290             :         )
   11291             :         {
   11292           0 :             D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
   11293           0 :             _res = invalid_named_expression_var;
   11294           0 :             goto done;
   11295             :         }
   11296        2435 :         p->mark = _mark;
   11297        2435 :         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     7040010 :         if (p->error_indicator) {
   11302         131 :             p->level--;
   11303         131 :             return NULL;
   11304             :         }
   11305     7039880 :         D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
   11306             :         expr_ty expression_var;
   11307     7039880 :         if (
   11308     7039880 :             (expression_var = expression_rule(p))  // expression
   11309     6811820 :             &&
   11310     6811820 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53)  // token=':='
   11311             :         )
   11312             :         {
   11313     6811800 :             D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
   11314     6811800 :             _res = expression_var;
   11315     6811800 :             goto done;
   11316             :         }
   11317      228077 :         p->mark = _mark;
   11318      228077 :         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      228077 :     _res = NULL;
   11322     7043500 :   done:
   11323     7043500 :     p->level--;
   11324     7043500 :     return _res;
   11325             : }
   11326             : 
   11327             : // disjunction: conjunction (('or' conjunction))+ | conjunction
   11328             : static expr_ty
   11329    24096000 : disjunction_rule(Parser *p)
   11330             : {
   11331    24096000 :     if (p->level++ == MAXSTACK) {
   11332           0 :         p->error_indicator = 1;
   11333           0 :         PyErr_NoMemory();
   11334             :     }
   11335    24096000 :     if (p->error_indicator) {
   11336           0 :         p->level--;
   11337           0 :         return NULL;
   11338             :     }
   11339    24096000 :     expr_ty _res = NULL;
   11340    24096000 :     if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
   11341    12043500 :         p->level--;
   11342    12043500 :         return _res;
   11343             :     }
   11344    12052500 :     int _mark = p->mark;
   11345    12052500 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   11346           0 :         p->error_indicator = 1;
   11347           0 :         p->level--;
   11348           0 :         return NULL;
   11349             :     }
   11350    12052500 :     int _start_lineno = p->tokens[_mark]->lineno;
   11351             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   11352    12052500 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   11353             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   11354             :     { // conjunction (('or' conjunction))+
   11355    12052500 :         if (p->error_indicator) {
   11356           0 :             p->level--;
   11357           0 :             return NULL;
   11358             :         }
   11359    12052500 :         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    12052500 :         if (
   11363    12052500 :             (a = conjunction_rule(p))  // conjunction
   11364     9747010 :             &&
   11365     9747010 :             (b = _loop1_84_rule(p))  // (('or' conjunction))+
   11366             :         )
   11367             :         {
   11368       26195 :             D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
   11369       26195 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   11370       26195 :             if (_token == NULL) {
   11371           0 :                 p->level--;
   11372           0 :                 return NULL;
   11373             :             }
   11374       26195 :             int _end_lineno = _token->end_lineno;
   11375             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   11376       26195 :             int _end_col_offset = _token->end_col_offset;
   11377             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   11378       26195 :             _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
   11379       26195 :             if (_res == NULL && PyErr_Occurred()) {
   11380           0 :                 p->error_indicator = 1;
   11381           0 :                 p->level--;
   11382           0 :                 return NULL;
   11383             :             }
   11384       26195 :             goto done;
   11385             :         }
   11386    12026300 :         p->mark = _mark;
   11387    12026300 :         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    12026300 :         if (p->error_indicator) {
   11392         851 :             p->level--;
   11393         851 :             return NULL;
   11394             :         }
   11395    12025400 :         D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
   11396             :         expr_ty conjunction_var;
   11397    12025400 :         if (
   11398    12025400 :             (conjunction_var = conjunction_rule(p))  // conjunction
   11399             :         )
   11400             :         {
   11401     9720810 :             D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
   11402     9720810 :             _res = conjunction_var;
   11403     9720810 :             goto done;
   11404             :         }
   11405     2304620 :         p->mark = _mark;
   11406     2304620 :         D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
   11407             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
   11408             :     }
   11409     2304620 :     _res = NULL;
   11410    12051600 :   done:
   11411    12051600 :     _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
   11412    12051600 :     p->level--;
   11413    12051600 :     return _res;
   11414             : }
   11415             : 
   11416             : // conjunction: inversion (('and' inversion))+ | inversion
   11417             : static expr_ty
   11418    24106900 : conjunction_rule(Parser *p)
   11419             : {
   11420    24106900 :     if (p->level++ == MAXSTACK) {
   11421           0 :         p->error_indicator = 1;
   11422           0 :         PyErr_NoMemory();
   11423             :     }
   11424    24106900 :     if (p->error_indicator) {
   11425           0 :         p->level--;
   11426           0 :         return NULL;
   11427             :     }
   11428    24106900 :     expr_ty _res = NULL;
   11429    24106900 :     if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
   11430    12025400 :         p->level--;
   11431    12025400 :         return _res;
   11432             :     }
   11433    12081400 :     int _mark = p->mark;
   11434    12081400 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   11435           0 :         p->error_indicator = 1;
   11436           0 :         p->level--;
   11437           0 :         return NULL;
   11438             :     }
   11439    12081400 :     int _start_lineno = p->tokens[_mark]->lineno;
   11440             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   11441    12081400 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   11442             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   11443             :     { // inversion (('and' inversion))+
   11444    12081400 :         if (p->error_indicator) {
   11445           0 :             p->level--;
   11446           0 :             return NULL;
   11447             :         }
   11448    12081400 :         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    12081400 :         if (
   11452    12081400 :             (a = inversion_rule(p))  // inversion
   11453     9775950 :             &&
   11454     9775950 :             (b = _loop1_85_rule(p))  // (('and' inversion))+
   11455             :         )
   11456             :         {
   11457       39371 :             D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
   11458       39371 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   11459       39371 :             if (_token == NULL) {
   11460           0 :                 p->level--;
   11461           0 :                 return NULL;
   11462             :             }
   11463       39371 :             int _end_lineno = _token->end_lineno;
   11464             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   11465       39371 :             int _end_col_offset = _token->end_col_offset;
   11466             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   11467       39371 :             _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
   11468       39371 :             if (_res == NULL && PyErr_Occurred()) {
   11469           0 :                 p->error_indicator = 1;
   11470           0 :                 p->level--;
   11471           0 :                 return NULL;
   11472             :             }
   11473       39371 :             goto done;
   11474             :         }
   11475    12042100 :         p->mark = _mark;
   11476    12042100 :         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    12042100 :         if (p->error_indicator) {
   11481         851 :             p->level--;
   11482         851 :             return NULL;
   11483             :         }
   11484    12041200 :         D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
   11485             :         expr_ty inversion_var;
   11486    12041200 :         if (
   11487    12041200 :             (inversion_var = inversion_rule(p))  // inversion
   11488             :         )
   11489             :         {
   11490     9736580 :             D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
   11491     9736580 :             _res = inversion_var;
   11492     9736580 :             goto done;
   11493             :         }
   11494     2304620 :         p->mark = _mark;
   11495     2304620 :         D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
   11496             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
   11497             :     }
   11498     2304620 :     _res = NULL;
   11499    12080600 :   done:
   11500    12080600 :     _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
   11501    12080600 :     p->level--;
   11502    12080600 :     return _res;
   11503             : }
   11504             : 
   11505             : // inversion: 'not' inversion | comparison
   11506             : static expr_ty
   11507    24226300 : inversion_rule(Parser *p)
   11508             : {
   11509    24226300 :     if (p->level++ == MAXSTACK) {
   11510           0 :         p->error_indicator = 1;
   11511           0 :         PyErr_NoMemory();
   11512             :     }
   11513    24226300 :     if (p->error_indicator) {
   11514           0 :         p->level--;
   11515           0 :         return NULL;
   11516             :     }
   11517    24226300 :     expr_ty _res = NULL;
   11518    24226300 :     if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
   11519    12041200 :         p->level--;
   11520    12041200 :         return _res;
   11521             :     }
   11522    12185100 :     int _mark = p->mark;
   11523    12185100 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   11524           0 :         p->error_indicator = 1;
   11525           0 :         p->level--;
   11526           0 :         return NULL;
   11527             :     }
   11528    12185100 :     int _start_lineno = p->tokens[_mark]->lineno;
   11529             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   11530    12185100 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   11531             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   11532             :     { // 'not' inversion
   11533    12185100 :         if (p->error_indicator) {
   11534           0 :             p->level--;
   11535           0 :             return NULL;
   11536             :         }
   11537    12185100 :         D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
   11538             :         Token * _keyword;
   11539             :         expr_ty a;
   11540    12185100 :         if (
   11541    12185100 :             (_keyword = _PyPegen_expect_token(p, 581))  // token='not'
   11542       57435 :             &&
   11543       57435 :             (a = inversion_rule(p))  // inversion
   11544             :         )
   11545             :         {
   11546       57433 :             D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
   11547       57433 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   11548       57433 :             if (_token == NULL) {
   11549           0 :                 p->level--;
   11550           0 :                 return NULL;
   11551             :             }
   11552       57433 :             int _end_lineno = _token->end_lineno;
   11553             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   11554       57433 :             int _end_col_offset = _token->end_col_offset;
   11555             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   11556       57433 :             _res = _PyAST_UnaryOp ( Not , a , EXTRA );
   11557       57433 :             if (_res == NULL && PyErr_Occurred()) {
   11558           0 :                 p->error_indicator = 1;
   11559           0 :                 p->level--;
   11560           0 :                 return NULL;
   11561             :             }
   11562       57433 :             goto done;
   11563             :         }
   11564    12127700 :         p->mark = _mark;
   11565    12127700 :         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    12127700 :         if (p->error_indicator) {
   11570           0 :             p->level--;
   11571           0 :             return NULL;
   11572             :         }
   11573    12127700 :         D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
   11574             :         expr_ty comparison_var;
   11575    12127700 :         if (
   11576    12127700 :             (comparison_var = comparison_rule(p))  // comparison
   11577             :         )
   11578             :         {
   11579     9822190 :             D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
   11580     9822190 :             _res = comparison_var;
   11581     9822190 :             goto done;
   11582             :         }
   11583     2305480 :         p->mark = _mark;
   11584     2305480 :         D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
   11585             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
   11586             :     }
   11587     2305480 :     _res = NULL;
   11588    12185100 :   done:
   11589    12185100 :     _PyPegen_insert_memo(p, _mark, inversion_type, _res);
   11590    12185100 :     p->level--;
   11591    12185100 :     return _res;
   11592             : }
   11593             : 
   11594             : // comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
   11595             : static expr_ty
   11596    12127700 : comparison_rule(Parser *p)
   11597             : {
   11598    12127700 :     if (p->level++ == MAXSTACK) {
   11599           0 :         p->error_indicator = 1;
   11600           0 :         PyErr_NoMemory();
   11601             :     }
   11602    12127700 :     if (p->error_indicator) {
   11603           0 :         p->level--;
   11604           0 :         return NULL;
   11605             :     }
   11606    12127700 :     expr_ty _res = NULL;
   11607    12127700 :     int _mark = p->mark;
   11608    12127700 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   11609           0 :         p->error_indicator = 1;
   11610           0 :         p->level--;
   11611           0 :         return NULL;
   11612             :     }
   11613    12127700 :     int _start_lineno = p->tokens[_mark]->lineno;
   11614             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   11615    12127700 :     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    12127700 :         if (p->error_indicator) {
   11619           0 :             p->level--;
   11620           0 :             return NULL;
   11621             :         }
   11622    12127700 :         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    12127700 :         if (
   11626    12127700 :             (a = bitwise_or_rule(p))  // bitwise_or
   11627     9822190 :             &&
   11628     9822190 :             (b = _loop1_86_rule(p))  // compare_op_bitwise_or_pair+
   11629             :         )
   11630             :         {
   11631      242788 :             D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
   11632      242788 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   11633      242788 :             if (_token == NULL) {
   11634           0 :                 p->level--;
   11635           0 :                 return NULL;
   11636             :             }
   11637      242788 :             int _end_lineno = _token->end_lineno;
   11638             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   11639      242788 :             int _end_col_offset = _token->end_col_offset;
   11640             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   11641      242788 :             _res = _PyAST_Compare ( a , CHECK ( asdl_int_seq* , _PyPegen_get_cmpops ( p , b ) ) , CHECK ( asdl_expr_seq* , _PyPegen_get_exprs ( p , b ) ) , EXTRA );
   11642      242788 :             if (_res == NULL && PyErr_Occurred()) {
   11643           0 :                 p->error_indicator = 1;
   11644           0 :                 p->level--;
   11645           0 :                 return NULL;
   11646             :             }
   11647      242788 :             goto done;
   11648             :         }
   11649    11884900 :         p->mark = _mark;
   11650    11884900 :         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    11884900 :         if (p->error_indicator) {
   11655         851 :             p->level--;
   11656         851 :             return NULL;
   11657             :         }
   11658    11884000 :         D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
   11659             :         expr_ty bitwise_or_var;
   11660    11884000 :         if (
   11661    11884000 :             (bitwise_or_var = bitwise_or_rule(p))  // bitwise_or
   11662             :         )
   11663             :         {
   11664     9579400 :             D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
   11665     9579400 :             _res = bitwise_or_var;
   11666     9579400 :             goto done;
   11667             :         }
   11668     2304630 :         p->mark = _mark;
   11669     2304630 :         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     2304630 :     _res = NULL;
   11673    12126800 :   done:
   11674    12126800 :     p->level--;
   11675    12126800 :     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*
   11690    10068300 : compare_op_bitwise_or_pair_rule(Parser *p)
   11691             : {
   11692    10068300 :     if (p->level++ == MAXSTACK) {
   11693           0 :         p->error_indicator = 1;
   11694           0 :         PyErr_NoMemory();
   11695             :     }
   11696    10068300 :     if (p->error_indicator) {
   11697           0 :         p->level--;
   11698           0 :         return NULL;
   11699             :     }
   11700    10068300 :     CmpopExprPair* _res = NULL;
   11701    10068300 :     int _mark = p->mark;
   11702             :     { // eq_bitwise_or
   11703    10068300 :         if (p->error_indicator) {
   11704           0 :             p->level--;
   11705           0 :             return NULL;
   11706             :         }
   11707    10068300 :         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    10068300 :         if (
   11710    10068300 :             (eq_bitwise_or_var = eq_bitwise_or_rule(p))  // eq_bitwise_or
   11711             :         )
   11712             :         {
   11713       71614 :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
   11714       71614 :             _res = eq_bitwise_or_var;
   11715       71614 :             goto done;
   11716             :         }
   11717     9996680 :         p->mark = _mark;
   11718     9996680 :         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     9996680 :         if (p->error_indicator) {
   11723           0 :             p->level--;
   11724           0 :             return NULL;
   11725             :         }
   11726     9996680 :         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     9996680 :         if (
   11729     9996680 :             (noteq_bitwise_or_var = noteq_bitwise_or_rule(p))  // noteq_bitwise_or
   11730             :         )
   11731             :         {
   11732       17658 :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
   11733       17658 :             _res = noteq_bitwise_or_var;
   11734       17658 :             goto done;
   11735             :         }
   11736     9979020 :         p->mark = _mark;
   11737     9979020 :         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     9979020 :         if (p->error_indicator) {
   11742           1 :             p->level--;
   11743           1 :             return NULL;
   11744             :         }
   11745     9979020 :         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     9979020 :         if (
   11748     9979020 :             (lte_bitwise_or_var = lte_bitwise_or_rule(p))  // lte_bitwise_or
   11749             :         )
   11750             :         {
   11751        8794 :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
   11752        8794 :             _res = lte_bitwise_or_var;
   11753        8794 :             goto done;
   11754             :         }
   11755     9970220 :         p->mark = _mark;
   11756     9970220 :         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     9970220 :         if (p->error_indicator) {
   11761           0 :             p->level--;
   11762           0 :             return NULL;
   11763             :         }
   11764     9970220 :         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     9970220 :         if (
   11767     9970220 :             (lt_bitwise_or_var = lt_bitwise_or_rule(p))  // lt_bitwise_or
   11768             :         )
   11769             :         {
   11770       15067 :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
   11771       15067 :             _res = lt_bitwise_or_var;
   11772       15067 :             goto done;
   11773             :         }
   11774     9955160 :         p->mark = _mark;
   11775     9955160 :         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     9955160 :         if (p->error_indicator) {
   11780           0 :             p->level--;
   11781           0 :             return NULL;
   11782             :         }
   11783     9955160 :         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     9955160 :         if (
   11786     9955160 :             (gte_bitwise_or_var = gte_bitwise_or_rule(p))  // gte_bitwise_or
   11787             :         )
   11788             :         {
   11789        8171 :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
   11790        8171 :             _res = gte_bitwise_or_var;
   11791        8171 :             goto done;
   11792             :         }
   11793     9946980 :         p->mark = _mark;
   11794     9946980 :         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     9946980 :         if (p->error_indicator) {
   11799           0 :             p->level--;
   11800           0 :             return NULL;
   11801             :         }
   11802     9946980 :         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     9946980 :         if (
   11805     9946980 :             (gt_bitwise_or_var = gt_bitwise_or_rule(p))  // gt_bitwise_or
   11806             :         )
   11807             :         {
   11808       13354 :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
   11809       13354 :             _res = gt_bitwise_or_var;
   11810       13354 :             goto done;
   11811             :         }
   11812     9933630 :         p->mark = _mark;
   11813     9933630 :         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     9933630 :         if (p->error_indicator) {
   11818           0 :             p->level--;
   11819           0 :             return NULL;
   11820             :         }
   11821     9933630 :         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     9933630 :         if (
   11824     9933630 :             (notin_bitwise_or_var = notin_bitwise_or_rule(p))  // notin_bitwise_or
   11825             :         )
   11826             :         {
   11827       10940 :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
   11828       10940 :             _res = notin_bitwise_or_var;
   11829       10940 :             goto done;
   11830             :         }
   11831     9922690 :         p->mark = _mark;
   11832     9922690 :         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     9922690 :         if (p->error_indicator) {
   11837           0 :             p->level--;
   11838           0 :             return NULL;
   11839             :         }
   11840     9922690 :         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     9922690 :         if (
   11843     9922690 :             (in_bitwise_or_var = in_bitwise_or_rule(p))  // in_bitwise_or
   11844             :         )
   11845             :         {
   11846       32118 :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
   11847       32118 :             _res = in_bitwise_or_var;
   11848       32118 :             goto done;
   11849             :         }
   11850     9890570 :         p->mark = _mark;
   11851     9890570 :         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     9890570 :         if (p->error_indicator) {
   11856           0 :             p->level--;
   11857           0 :             return NULL;
   11858             :         }
   11859     9890570 :         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     9890570 :         if (
   11862     9890570 :             (isnot_bitwise_or_var = isnot_bitwise_or_rule(p))  // isnot_bitwise_or
   11863             :         )
   11864             :         {
   11865       28396 :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
   11866       28396 :             _res = isnot_bitwise_or_var;
   11867       28396 :             goto done;
   11868             :         }
   11869     9862180 :         p->mark = _mark;
   11870     9862180 :         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     9862180 :         if (p->error_indicator) {
   11875           0 :             p->level--;
   11876           0 :             return NULL;
   11877             :         }
   11878     9862180 :         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     9862180 :         if (
   11881     9862180 :             (is_bitwise_or_var = is_bitwise_or_rule(p))  // is_bitwise_or
   11882             :         )
   11883             :         {
   11884       39989 :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
   11885       39989 :             _res = is_bitwise_or_var;
   11886       39989 :             goto done;
   11887             :         }
   11888     9822190 :         p->mark = _mark;
   11889     9822190 :         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     9822190 :     _res = NULL;
   11893    10068300 :   done:
   11894    10068300 :     p->level--;
   11895    10068300 :     return _res;
   11896             : }
   11897             : 
   11898             : // eq_bitwise_or: '==' bitwise_or
   11899             : static CmpopExprPair*
   11900    10068300 : eq_bitwise_or_rule(Parser *p)
   11901             : {
   11902    10068300 :     if (p->level++ == MAXSTACK) {
   11903           0 :         p->error_indicator = 1;
   11904           0 :         PyErr_NoMemory();
   11905             :     }
   11906    10068300 :     if (p->error_indicator) {
   11907           0 :         p->level--;
   11908           0 :         return NULL;
   11909             :     }
   11910    10068300 :     CmpopExprPair* _res = NULL;
   11911    10068300 :     int _mark = p->mark;
   11912             :     { // '==' bitwise_or
   11913    10068300 :         if (p->error_indicator) {
   11914           0 :             p->level--;
   11915           0 :             return NULL;
   11916             :         }
   11917    10068300 :         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    10068300 :         if (
   11921    10068300 :             (_literal = _PyPegen_expect_token(p, 27))  // token='=='
   11922       71614 :             &&
   11923       71614 :             (a = bitwise_or_rule(p))  // bitwise_or
   11924             :         )
   11925             :         {
   11926       71614 :             D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
   11927       71614 :             _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
   11928       71614 :             if (_res == NULL && PyErr_Occurred()) {
   11929           0 :                 p->error_indicator = 1;
   11930           0 :                 p->level--;
   11931           0 :                 return NULL;
   11932             :             }
   11933       71614 :             goto done;
   11934             :         }
   11935     9996680 :         p->mark = _mark;
   11936     9996680 :         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     9996680 :     _res = NULL;
   11940    10068300 :   done:
   11941    10068300 :     p->level--;
   11942    10068300 :     return _res;
   11943             : }
   11944             : 
   11945             : // noteq_bitwise_or: ('!=') bitwise_or
   11946             : static CmpopExprPair*
   11947     9996680 : noteq_bitwise_or_rule(Parser *p)
   11948             : {
   11949     9996680 :     if (p->level++ == MAXSTACK) {
   11950           0 :         p->error_indicator = 1;
   11951           0 :         PyErr_NoMemory();
   11952             :     }
   11953     9996680 :     if (p->error_indicator) {
   11954           0 :         p->level--;
   11955           0 :         return NULL;
   11956             :     }
   11957     9996680 :     CmpopExprPair* _res = NULL;
   11958     9996680 :     int _mark = p->mark;
   11959             :     { // ('!=') bitwise_or
   11960     9996680 :         if (p->error_indicator) {
   11961           0 :             p->level--;
   11962           0 :             return NULL;
   11963             :         }
   11964     9996680 :         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     9996680 :         if (
   11968     9996680 :             (_tmp_87_var = _tmp_87_rule(p))  // '!='
   11969       17658 :             &&
   11970       17658 :             (a = bitwise_or_rule(p))  // bitwise_or
   11971             :         )
   11972             :         {
   11973       17658 :             D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
   11974       17658 :             _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
   11975       17658 :             if (_res == NULL && PyErr_Occurred()) {
   11976           0 :                 p->error_indicator = 1;
   11977           0 :                 p->level--;
   11978           0 :                 return NULL;
   11979             :             }
   11980       17658 :             goto done;
   11981             :         }
   11982     9979020 :         p->mark = _mark;
   11983     9979020 :         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     9979020 :     _res = NULL;
   11987     9996680 :   done:
   11988     9996680 :     p->level--;
   11989     9996680 :     return _res;
   11990             : }
   11991             : 
   11992             : // lte_bitwise_or: '<=' bitwise_or
   11993             : static CmpopExprPair*
   11994     9979020 : lte_bitwise_or_rule(Parser *p)
   11995             : {
   11996     9979020 :     if (p->level++ == MAXSTACK) {
   11997           0 :         p->error_indicator = 1;
   11998           0 :         PyErr_NoMemory();
   11999             :     }
   12000     9979020 :     if (p->error_indicator) {
   12001           0 :         p->level--;
   12002           0 :         return NULL;
   12003             :     }
   12004     9979020 :     CmpopExprPair* _res = NULL;
   12005     9979020 :     int _mark = p->mark;
   12006             :     { // '<=' bitwise_or
   12007     9979020 :         if (p->error_indicator) {
   12008           0 :             p->level--;
   12009           0 :             return NULL;
   12010             :         }
   12011     9979020 :         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     9979020 :         if (
   12015     9979020 :             (_literal = _PyPegen_expect_token(p, 29))  // token='<='
   12016        8794 :             &&
   12017        8794 :             (a = bitwise_or_rule(p))  // bitwise_or
   12018             :         )
   12019             :         {
   12020        8794 :             D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
   12021        8794 :             _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
   12022        8794 :             if (_res == NULL && PyErr_Occurred()) {
   12023           0 :                 p->error_indicator = 1;
   12024           0 :                 p->level--;
   12025           0 :                 return NULL;
   12026             :             }
   12027        8794 :             goto done;
   12028             :         }
   12029     9970220 :         p->mark = _mark;
   12030     9970220 :         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     9970220 :     _res = NULL;
   12034     9979020 :   done:
   12035     9979020 :     p->level--;
   12036     9979020 :     return _res;
   12037             : }
   12038             : 
   12039             : // lt_bitwise_or: '<' bitwise_or
   12040             : static CmpopExprPair*
   12041     9970220 : lt_bitwise_or_rule(Parser *p)
   12042             : {
   12043     9970220 :     if (p->level++ == MAXSTACK) {
   12044           0 :         p->error_indicator = 1;
   12045           0 :         PyErr_NoMemory();
   12046             :     }
   12047     9970220 :     if (p->error_indicator) {
   12048           0 :         p->level--;
   12049           0 :         return NULL;
   12050             :     }
   12051     9970220 :     CmpopExprPair* _res = NULL;
   12052     9970220 :     int _mark = p->mark;
   12053             :     { // '<' bitwise_or
   12054     9970220 :         if (p->error_indicator) {
   12055           0 :             p->level--;
   12056           0 :             return NULL;
   12057             :         }
   12058     9970220 :         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     9970220 :         if (
   12062     9970220 :             (_literal = _PyPegen_expect_token(p, 20))  // token='<'
   12063       15067 :             &&
   12064       15067 :             (a = bitwise_or_rule(p))  // bitwise_or
   12065             :         )
   12066             :         {
   12067       15067 :             D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
   12068       15067 :             _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
   12069       15067 :             if (_res == NULL && PyErr_Occurred()) {
   12070           0 :                 p->error_indicator = 1;
   12071           0 :                 p->level--;
   12072           0 :                 return NULL;
   12073             :             }
   12074       15067 :             goto done;
   12075             :         }
   12076     9955160 :         p->mark = _mark;
   12077     9955160 :         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     9955160 :     _res = NULL;
   12081     9970220 :   done:
   12082     9970220 :     p->level--;
   12083     9970220 :     return _res;
   12084             : }
   12085             : 
   12086             : // gte_bitwise_or: '>=' bitwise_or
   12087             : static CmpopExprPair*
   12088     9955160 : gte_bitwise_or_rule(Parser *p)
   12089             : {
   12090     9955160 :     if (p->level++ == MAXSTACK) {
   12091           0 :         p->error_indicator = 1;
   12092           0 :         PyErr_NoMemory();
   12093             :     }
   12094     9955160 :     if (p->error_indicator) {
   12095           0 :         p->level--;
   12096           0 :         return NULL;
   12097             :     }
   12098     9955160 :     CmpopExprPair* _res = NULL;
   12099     9955160 :     int _mark = p->mark;
   12100             :     { // '>=' bitwise_or
   12101     9955160 :         if (p->error_indicator) {
   12102           0 :             p->level--;
   12103           0 :             return NULL;
   12104             :         }
   12105     9955160 :         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     9955160 :         if (
   12109     9955160 :             (_literal = _PyPegen_expect_token(p, 30))  // token='>='
   12110        8171 :             &&
   12111        8171 :             (a = bitwise_or_rule(p))  // bitwise_or
   12112             :         )
   12113             :         {
   12114        8171 :             D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
   12115        8171 :             _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
   12116        8171 :             if (_res == NULL && PyErr_Occurred()) {
   12117           0 :                 p->error_indicator = 1;
   12118           0 :                 p->level--;
   12119           0 :                 return NULL;
   12120             :             }
   12121        8171 :             goto done;
   12122             :         }
   12123     9946980 :         p->mark = _mark;
   12124     9946980 :         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     9946980 :     _res = NULL;
   12128     9955160 :   done:
   12129     9955160 :     p->level--;
   12130     9955160 :     return _res;
   12131             : }
   12132             : 
   12133             : // gt_bitwise_or: '>' bitwise_or
   12134             : static CmpopExprPair*
   12135     9946980 : gt_bitwise_or_rule(Parser *p)
   12136             : {
   12137     9946980 :     if (p->level++ == MAXSTACK) {
   12138           0 :         p->error_indicator = 1;
   12139           0 :         PyErr_NoMemory();
   12140             :     }
   12141     9946980 :     if (p->error_indicator) {
   12142           0 :         p->level--;
   12143           0 :         return NULL;
   12144             :     }
   12145     9946980 :     CmpopExprPair* _res = NULL;
   12146     9946980 :     int _mark = p->mark;
   12147             :     { // '>' bitwise_or
   12148     9946980 :         if (p->error_indicator) {
   12149           0 :             p->level--;
   12150           0 :             return NULL;
   12151             :         }
   12152     9946980 :         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     9946980 :         if (
   12156     9946980 :             (_literal = _PyPegen_expect_token(p, 21))  // token='>'
   12157       13354 :             &&
   12158       13354 :             (a = bitwise_or_rule(p))  // bitwise_or
   12159             :         )
   12160             :         {
   12161       13354 :             D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
   12162       13354 :             _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
   12163       13354 :             if (_res == NULL && PyErr_Occurred()) {
   12164           0 :                 p->error_indicator = 1;
   12165           0 :                 p->level--;
   12166           0 :                 return NULL;
   12167             :             }
   12168       13354 :             goto done;
   12169             :         }
   12170     9933630 :         p->mark = _mark;
   12171     9933630 :         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     9933630 :     _res = NULL;
   12175     9946980 :   done:
   12176     9946980 :     p->level--;
   12177     9946980 :     return _res;
   12178             : }
   12179             : 
   12180             : // notin_bitwise_or: 'not' 'in' bitwise_or
   12181             : static CmpopExprPair*
   12182     9933630 : notin_bitwise_or_rule(Parser *p)
   12183             : {
   12184     9933630 :     if (p->level++ == MAXSTACK) {
   12185           0 :         p->error_indicator = 1;
   12186           0 :         PyErr_NoMemory();
   12187             :     }
   12188     9933630 :     if (p->error_indicator) {
   12189           0 :         p->level--;
   12190           0 :         return NULL;
   12191             :     }
   12192     9933630 :     CmpopExprPair* _res = NULL;
   12193     9933630 :     int _mark = p->mark;
   12194             :     { // 'not' 'in' bitwise_or
   12195     9933630 :         if (p->error_indicator) {
   12196           0 :             p->level--;
   12197           0 :             return NULL;
   12198             :         }
   12199     9933630 :         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     9933630 :         if (
   12204     9933630 :             (_keyword = _PyPegen_expect_token(p, 581))  // token='not'
   12205       10940 :             &&
   12206       10940 :             (_keyword_1 = _PyPegen_expect_token(p, 643))  // token='in'
   12207       10940 :             &&
   12208       10940 :             (a = bitwise_or_rule(p))  // bitwise_or
   12209             :         )
   12210             :         {
   12211       10940 :             D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
   12212       10940 :             _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
   12213       10940 :             if (_res == NULL && PyErr_Occurred()) {
   12214           0 :                 p->error_indicator = 1;
   12215           0 :                 p->level--;
   12216           0 :                 return NULL;
   12217             :             }
   12218       10940 :             goto done;
   12219             :         }
   12220     9922690 :         p->mark = _mark;
   12221     9922690 :         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     9922690 :     _res = NULL;
   12225     9933630 :   done:
   12226     9933630 :     p->level--;
   12227     9933630 :     return _res;
   12228             : }
   12229             : 
   12230             : // in_bitwise_or: 'in' bitwise_or
   12231             : static CmpopExprPair*
   12232     9922690 : in_bitwise_or_rule(Parser *p)
   12233             : {
   12234     9922690 :     if (p->level++ == MAXSTACK) {
   12235           0 :         p->error_indicator = 1;
   12236           0 :         PyErr_NoMemory();
   12237             :     }
   12238     9922690 :     if (p->error_indicator) {
   12239           0 :         p->level--;
   12240           0 :         return NULL;
   12241             :     }
   12242     9922690 :     CmpopExprPair* _res = NULL;
   12243     9922690 :     int _mark = p->mark;
   12244             :     { // 'in' bitwise_or
   12245     9922690 :         if (p->error_indicator) {
   12246           0 :             p->level--;
   12247           0 :             return NULL;
   12248             :         }
   12249     9922690 :         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     9922690 :         if (
   12253     9922690 :             (_keyword = _PyPegen_expect_token(p, 643))  // token='in'
   12254       32118 :             &&
   12255       32118 :             (a = bitwise_or_rule(p))  // bitwise_or
   12256             :         )
   12257             :         {
   12258       32118 :             D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
   12259       32118 :             _res = _PyPegen_cmpop_expr_pair ( p , In , a );
   12260       32118 :             if (_res == NULL && PyErr_Occurred()) {
   12261           0 :                 p->error_indicator = 1;
   12262           0 :                 p->level--;
   12263           0 :                 return NULL;
   12264             :             }
   12265       32118 :             goto done;
   12266             :         }
   12267     9890570 :         p->mark = _mark;
   12268     9890570 :         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     9890570 :     _res = NULL;
   12272     9922690 :   done:
   12273     9922690 :     p->level--;
   12274     9922690 :     return _res;
   12275             : }
   12276             : 
   12277             : // isnot_bitwise_or: 'is' 'not' bitwise_or
   12278             : static CmpopExprPair*
   12279     9890570 : isnot_bitwise_or_rule(Parser *p)
   12280             : {
   12281     9890570 :     if (p->level++ == MAXSTACK) {
   12282           0 :         p->error_indicator = 1;
   12283           0 :         PyErr_NoMemory();
   12284             :     }
   12285     9890570 :     if (p->error_indicator) {
   12286           0 :         p->level--;
   12287           0 :         return NULL;
   12288             :     }
   12289     9890570 :     CmpopExprPair* _res = NULL;
   12290     9890570 :     int _mark = p->mark;
   12291             :     { // 'is' 'not' bitwise_or
   12292     9890570 :         if (p->error_indicator) {
   12293           0 :             p->level--;
   12294           0 :             return NULL;
   12295             :         }
   12296     9890570 :         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     9890570 :         if (
   12301     9890570 :             (_keyword = _PyPegen_expect_token(p, 582))  // token='is'
   12302       68385 :             &&
   12303       68385 :             (_keyword_1 = _PyPegen_expect_token(p, 581))  // token='not'
   12304       28396 :             &&
   12305       28396 :             (a = bitwise_or_rule(p))  // bitwise_or
   12306             :         )
   12307             :         {
   12308       28396 :             D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
   12309       28396 :             _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
   12310       28396 :             if (_res == NULL && PyErr_Occurred()) {
   12311           0 :                 p->error_indicator = 1;
   12312           0 :                 p->level--;
   12313           0 :                 return NULL;
   12314             :             }
   12315       28396 :             goto done;
   12316             :         }
   12317     9862180 :         p->mark = _mark;
   12318     9862180 :         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     9862180 :     _res = NULL;
   12322     9890570 :   done:
   12323     9890570 :     p->level--;
   12324     9890570 :     return _res;
   12325             : }
   12326             : 
   12327             : // is_bitwise_or: 'is' bitwise_or
   12328             : static CmpopExprPair*
   12329     9862180 : is_bitwise_or_rule(Parser *p)
   12330             : {
   12331     9862180 :     if (p->level++ == MAXSTACK) {
   12332           0 :         p->error_indicator = 1;
   12333           0 :         PyErr_NoMemory();
   12334             :     }
   12335     9862180 :     if (p->error_indicator) {
   12336           0 :         p->level--;
   12337           0 :         return NULL;
   12338             :     }
   12339     9862180 :     CmpopExprPair* _res = NULL;
   12340     9862180 :     int _mark = p->mark;
   12341             :     { // 'is' bitwise_or
   12342     9862180 :         if (p->error_indicator) {
   12343           0 :             p->level--;
   12344           0 :             return NULL;
   12345             :         }
   12346     9862180 :         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     9862180 :         if (
   12350     9862180 :             (_keyword = _PyPegen_expect_token(p, 582))  // token='is'
   12351       39989 :             &&
   12352       39989 :             (a = bitwise_or_rule(p))  // bitwise_or
   12353             :         )
   12354             :         {
   12355       39989 :             D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
   12356       39989 :             _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
   12357       39989 :             if (_res == NULL && PyErr_Occurred()) {
   12358           0 :                 p->error_indicator = 1;
   12359           0 :                 p->level--;
   12360           0 :                 return NULL;
   12361             :             }
   12362       39989 :             goto done;
   12363             :         }
   12364     9822190 :         p->mark = _mark;
   12365     9822190 :         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     9822190 :     _res = NULL;
   12369     9862180 :   done:
   12370     9862180 :     p->level--;
   12371     9862180 :     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
   12378    46720000 : bitwise_or_rule(Parser *p)
   12379             : {
   12380    46720000 :     if (p->level++ == MAXSTACK) {
   12381           0 :         p->error_indicator = 1;
   12382           0 :         PyErr_NoMemory();
   12383             :     }
   12384    46720000 :     expr_ty _res = NULL;
   12385    46720000 :     if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
   12386    34343700 :         p->level--;
   12387    34343700 :         return _res;
   12388             :     }
   12389    12376300 :     int _mark = p->mark;
   12390    12376300 :     int _resmark = p->mark;
   12391    10078800 :     while (1) {
   12392    22455200 :         int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
   12393    22455200 :         if (tmpvar_2) {
   12394           0 :             p->level--;
   12395           0 :             return _res;
   12396             :         }
   12397    22455200 :         p->mark = _mark;
   12398    22455200 :         void *_raw = bitwise_or_raw(p);
   12399    22455200 :         if (p->error_indicator) {
   12400         850 :             p->level--;
   12401         850 :             return NULL;
   12402             :         }
   12403    22454300 :         if (_raw == NULL || p->mark <= _resmark)
   12404             :             break;
   12405    10078800 :         _resmark = p->mark;
   12406    10078800 :         _res = _raw;
   12407             :     }
   12408    12375500 :     p->mark = _resmark;
   12409    12375500 :     p->level--;
   12410    12375500 :     return _res;
   12411             : }
   12412             : static expr_ty
   12413    22455200 : bitwise_or_raw(Parser *p)
   12414             : {
   12415    22455200 :     if (p->level++ == MAXSTACK) {
   12416           0 :         p->error_indicator = 1;
   12417           0 :         PyErr_NoMemory();
   12418             :     }
   12419    22455200 :     if (p->error_indicator) {
   12420           0 :         p->level--;
   12421           0 :         return NULL;
   12422             :     }
   12423    22455200 :     expr_ty _res = NULL;
   12424    22455200 :     int _mark = p->mark;
   12425    22455200 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   12426           0 :         p->error_indicator = 1;
   12427           0 :         p->level--;
   12428           0 :         return NULL;
   12429             :     }
   12430    22455200 :     int _start_lineno = p->tokens[_mark]->lineno;
   12431             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   12432    22455200 :     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    22455200 :         if (p->error_indicator) {
   12436           0 :             p->level--;
   12437           0 :             return NULL;
   12438             :         }
   12439    22455200 :         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    22455200 :         if (
   12444    22455200 :             (a = bitwise_or_rule(p))  // bitwise_or
   12445    10078800 :             &&
   12446    10078800 :             (_literal = _PyPegen_expect_token(p, 18))  // token='|'
   12447        7994 :             &&
   12448        7994 :             (b = bitwise_xor_rule(p))  // bitwise_xor
   12449             :         )
   12450             :         {
   12451        7990 :             D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
   12452        7990 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   12453        7990 :             if (_token == NULL) {
   12454           0 :                 p->level--;
   12455           0 :                 return NULL;
   12456             :             }
   12457        7990 :             int _end_lineno = _token->end_lineno;
   12458             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   12459        7990 :             int _end_col_offset = _token->end_col_offset;
   12460             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   12461        7990 :             _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
   12462        7990 :             if (_res == NULL && PyErr_Occurred()) {
   12463           0 :                 p->error_indicator = 1;
   12464           0 :                 p->level--;
   12465           0 :                 return NULL;
   12466             :             }
   12467        7990 :             goto done;
   12468             :         }
   12469    22447200 :         p->mark = _mark;
   12470    22447200 :         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    22447200 :         if (p->error_indicator) {
   12475           0 :             p->level--;
   12476           0 :             return NULL;
   12477             :         }
   12478    22447200 :         D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
   12479             :         expr_ty bitwise_xor_var;
   12480    22447200 :         if (
   12481    22447200 :             (bitwise_xor_var = bitwise_xor_rule(p))  // bitwise_xor
   12482             :         )
   12483             :         {
   12484    20141700 :             D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
   12485    20141700 :             _res = bitwise_xor_var;
   12486    20141700 :             goto done;
   12487             :         }
   12488     2305480 :         p->mark = _mark;
   12489     2305480 :         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     2305480 :     _res = NULL;
   12493    22455200 :   done:
   12494    22455200 :     p->level--;
   12495    22455200 :     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
   12502    44919300 : bitwise_xor_rule(Parser *p)
   12503             : {
   12504    44919300 :     if (p->level++ == MAXSTACK) {
   12505           0 :         p->error_indicator = 1;
   12506           0 :         PyErr_NoMemory();
   12507             :     }
   12508    44919300 :     expr_ty _res = NULL;
   12509    44919300 :     if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
   12510    32535000 :         p->level--;
   12511    32535000 :         return _res;
   12512             :     }
   12513    12384300 :     int _mark = p->mark;
   12514    12384300 :     int _resmark = p->mark;
   12515    10079900 :     while (1) {
   12516    22464200 :         int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
   12517    22464200 :         if (tmpvar_3) {
   12518           0 :             p->level--;
   12519           0 :             return _res;
   12520             :         }
   12521    22464200 :         p->mark = _mark;
   12522    22464200 :         void *_raw = bitwise_xor_raw(p);
   12523    22464200 :         if (p->error_indicator) {
   12524         850 :             p->level--;
   12525         850 :             return NULL;
   12526             :         }
   12527    22463300 :         if (_raw == NULL || p->mark <= _resmark)
   12528             :             break;
   12529    10079900 :         _resmark = p->mark;
   12530    10079900 :         _res = _raw;
   12531             :     }
   12532    12383500 :     p->mark = _resmark;
   12533    12383500 :     p->level--;
   12534    12383500 :     return _res;
   12535             : }
   12536             : static expr_ty
   12537    22464200 : bitwise_xor_raw(Parser *p)
   12538             : {
   12539    22464200 :     if (p->level++ == MAXSTACK) {
   12540           0 :         p->error_indicator = 1;
   12541           0 :         PyErr_NoMemory();
   12542             :     }
   12543    22464200 :     if (p->error_indicator) {
   12544           0 :         p->level--;
   12545           0 :         return NULL;
   12546             :     }
   12547    22464200 :     expr_ty _res = NULL;
   12548    22464200 :     int _mark = p->mark;
   12549    22464200 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   12550           0 :         p->error_indicator = 1;
   12551           0 :         p->level--;
   12552           0 :         return NULL;
   12553             :     }
   12554    22464200 :     int _start_lineno = p->tokens[_mark]->lineno;
   12555             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   12556    22464200 :     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    22464200 :         if (p->error_indicator) {
   12560           0 :             p->level--;
   12561           0 :             return NULL;
   12562             :         }
   12563    22464200 :         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    22464200 :         if (
   12568    22464200 :             (a = bitwise_xor_rule(p))  // bitwise_xor
   12569    10079900 :             &&
   12570    10079900 :             (_literal = _PyPegen_expect_token(p, 32))  // token='^'
   12571        1034 :             &&
   12572        1034 :             (b = bitwise_and_rule(p))  // bitwise_and
   12573             :         )
   12574             :         {
   12575        1034 :             D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
   12576        1034 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   12577        1034 :             if (_token == NULL) {
   12578           0 :                 p->level--;
   12579           0 :                 return NULL;
   12580             :             }
   12581        1034 :             int _end_lineno = _token->end_lineno;
   12582             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   12583        1034 :             int _end_col_offset = _token->end_col_offset;
   12584             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   12585        1034 :             _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
   12586        1034 :             if (_res == NULL && PyErr_Occurred()) {
   12587           0 :                 p->error_indicator = 1;
   12588           0 :                 p->level--;
   12589           0 :                 return NULL;
   12590             :             }
   12591        1034 :             goto done;
   12592             :         }
   12593    22463200 :         p->mark = _mark;
   12594    22463200 :         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    22463200 :         if (p->error_indicator) {
   12599           0 :             p->level--;
   12600           0 :             return NULL;
   12601             :         }
   12602    22463200 :         D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
   12603             :         expr_ty bitwise_and_var;
   12604    22463200 :         if (
   12605    22463200 :             (bitwise_and_var = bitwise_and_rule(p))  // bitwise_and
   12606             :         )
   12607             :         {
   12608    20157700 :             D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
   12609    20157700 :             _res = bitwise_and_var;
   12610    20157700 :             goto done;
   12611             :         }
   12612     2305480 :         p->mark = _mark;
   12613     2305480 :         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     2305480 :     _res = NULL;
   12617    22464200 :   done:
   12618    22464200 :     p->level--;
   12619    22464200 :     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
   12626    44935800 : bitwise_and_rule(Parser *p)
   12627             : {
   12628    44935800 :     if (p->level++ == MAXSTACK) {
   12629           0 :         p->error_indicator = 1;
   12630           0 :         PyErr_NoMemory();
   12631             :     }
   12632    44935800 :     expr_ty _res = NULL;
   12633    44935800 :     if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
   12634    32550400 :         p->level--;
   12635    32550400 :         return _res;
   12636             :     }
   12637    12385400 :     int _mark = p->mark;
   12638    12385400 :     int _resmark = p->mark;
   12639    10086200 :     while (1) {
   12640    22471600 :         int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
   12641    22471600 :         if (tmpvar_4) {
   12642           0 :             p->level--;
   12643           0 :             return _res;
   12644             :         }
   12645    22471600 :         p->mark = _mark;
   12646    22471600 :         void *_raw = bitwise_and_raw(p);
   12647    22471600 :         if (p->error_indicator) {
   12648         850 :             p->level--;
   12649         850 :             return NULL;
   12650             :         }
   12651    22470700 :         if (_raw == NULL || p->mark <= _resmark)
   12652             :             break;
   12653    10086200 :         _resmark = p->mark;
   12654    10086200 :         _res = _raw;
   12655             :     }
   12656    12384500 :     p->mark = _resmark;
   12657    12384500 :     p->level--;
   12658    12384500 :     return _res;
   12659             : }
   12660             : static expr_ty
   12661    22471600 : bitwise_and_raw(Parser *p)
   12662             : {
   12663    22471600 :     if (p->level++ == MAXSTACK) {
   12664           0 :         p->error_indicator = 1;
   12665           0 :         PyErr_NoMemory();
   12666             :     }
   12667    22471600 :     if (p->error_indicator) {
   12668           0 :         p->level--;
   12669           0 :         return NULL;
   12670             :     }
   12671    22471600 :     expr_ty _res = NULL;
   12672    22471600 :     int _mark = p->mark;
   12673    22471600 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   12674           0 :         p->error_indicator = 1;
   12675           0 :         p->level--;
   12676           0 :         return NULL;
   12677             :     }
   12678    22471600 :     int _start_lineno = p->tokens[_mark]->lineno;
   12679             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   12680    22471600 :     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    22471600 :         if (p->error_indicator) {
   12684           0 :             p->level--;
   12685           0 :             return NULL;
   12686             :         }
   12687    22471600 :         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    22471600 :         if (
   12692    22471600 :             (a = bitwise_and_rule(p))  // bitwise_and
   12693    10086200 :             &&
   12694    10086200 :             (_literal = _PyPegen_expect_token(p, 19))  // token='&'
   12695        6370 :             &&
   12696        6370 :             (b = shift_expr_rule(p))  // shift_expr
   12697             :         )
   12698             :         {
   12699        6370 :             D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
   12700        6370 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   12701        6370 :             if (_token == NULL) {
   12702           0 :                 p->level--;
   12703           0 :                 return NULL;
   12704             :             }
   12705        6370 :             int _end_lineno = _token->end_lineno;
   12706             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   12707        6370 :             int _end_col_offset = _token->end_col_offset;
   12708             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   12709        6370 :             _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
   12710        6370 :             if (_res == NULL && PyErr_Occurred()) {
   12711           0 :                 p->error_indicator = 1;
   12712           0 :                 p->level--;
   12713           0 :                 return NULL;
   12714             :             }
   12715        6370 :             goto done;
   12716             :         }
   12717    22465200 :         p->mark = _mark;
   12718    22465200 :         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    22465200 :         if (p->error_indicator) {
   12723           0 :             p->level--;
   12724           0 :             return NULL;
   12725             :         }
   12726    22465200 :         D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
   12727             :         expr_ty shift_expr_var;
   12728    22465200 :         if (
   12729    22465200 :             (shift_expr_var = shift_expr_rule(p))  // shift_expr
   12730             :         )
   12731             :         {
   12732    20159700 :             D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
   12733    20159700 :             _res = shift_expr_var;
   12734    20159700 :             goto done;
   12735             :         }
   12736     2305480 :         p->mark = _mark;
   12737     2305480 :         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     2305480 :     _res = NULL;
   12741    22471600 :   done:
   12742    22471600 :     p->level--;
   12743    22471600 :     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
   12750    67433700 : shift_expr_rule(Parser *p)
   12751             : {
   12752    67433700 :     if (p->level++ == MAXSTACK) {
   12753           0 :         p->error_indicator = 1;
   12754           0 :         PyErr_NoMemory();
   12755             :     }
   12756    67433700 :     expr_ty _res = NULL;
   12757    67433700 :     if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
   12758    55042000 :         p->level--;
   12759    55042000 :         return _res;
   12760             :     }
   12761    12391700 :     int _mark = p->mark;
   12762    12391700 :     int _resmark = p->mark;
   12763    10091100 :     while (1) {
   12764    22482800 :         int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
   12765    22482800 :         if (tmpvar_5) {
   12766           0 :             p->level--;
   12767           0 :             return _res;
   12768             :         }
   12769    22482800 :         p->mark = _mark;
   12770    22482800 :         void *_raw = shift_expr_raw(p);
   12771    22482800 :         if (p->error_indicator) {
   12772         850 :             p->level--;
   12773         850 :             return NULL;
   12774             :         }
   12775    22482000 :         if (_raw == NULL || p->mark <= _resmark)
   12776             :             break;
   12777    10091100 :         _resmark = p->mark;
   12778    10091100 :         _res = _raw;
   12779             :     }
   12780    12390900 :     p->mark = _resmark;
   12781    12390900 :     p->level--;
   12782    12390900 :     return _res;
   12783             : }
   12784             : static expr_ty
   12785    22482800 : shift_expr_raw(Parser *p)
   12786             : {
   12787    22482800 :     if (p->level++ == MAXSTACK) {
   12788           0 :         p->error_indicator = 1;
   12789           0 :         PyErr_NoMemory();
   12790             :     }
   12791    22482800 :     if (p->error_indicator) {
   12792           0 :         p->level--;
   12793           0 :         return NULL;
   12794             :     }
   12795    22482800 :     expr_ty _res = NULL;
   12796    22482800 :     int _mark = p->mark;
   12797    22482800 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   12798           0 :         p->error_indicator = 1;
   12799           0 :         p->level--;
   12800           0 :         return NULL;
   12801             :     }
   12802    22482800 :     int _start_lineno = p->tokens[_mark]->lineno;
   12803             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   12804    22482800 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   12805             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   12806             :     { // shift_expr '<<' sum
   12807    22482800 :         if (p->error_indicator) {
   12808           0 :             p->level--;
   12809           0 :             return NULL;
   12810             :         }
   12811    22482800 :         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    22482800 :         if (
   12816    22482800 :             (a = shift_expr_rule(p))  // shift_expr
   12817    10091100 :             &&
   12818    10091100 :             (_literal = _PyPegen_expect_token(p, 33))  // token='<<'
   12819        3533 :             &&
   12820        3533 :             (b = sum_rule(p))  // sum
   12821             :         )
   12822             :         {
   12823        3533 :             D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
   12824        3533 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   12825        3533 :             if (_token == NULL) {
   12826           0 :                 p->level--;
   12827           0 :                 return NULL;
   12828             :             }
   12829        3533 :             int _end_lineno = _token->end_lineno;
   12830             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   12831        3533 :             int _end_col_offset = _token->end_col_offset;
   12832             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   12833        3533 :             _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
   12834        3533 :             if (_res == NULL && PyErr_Occurred()) {
   12835           0 :                 p->error_indicator = 1;
   12836           0 :                 p->level--;
   12837           0 :                 return NULL;
   12838             :             }
   12839        3533 :             goto done;
   12840             :         }
   12841    22479300 :         p->mark = _mark;
   12842    22479300 :         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    22479300 :         if (p->error_indicator) {
   12847           0 :             p->level--;
   12848           0 :             return NULL;
   12849             :         }
   12850    22479300 :         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    22479300 :         if (
   12855    22479300 :             (a = shift_expr_rule(p))  // shift_expr
   12856    10087600 :             &&
   12857    10087600 :             (_literal = _PyPegen_expect_token(p, 34))  // token='>>'
   12858        1328 :             &&
   12859        1328 :             (b = sum_rule(p))  // sum
   12860             :         )
   12861             :         {
   12862        1328 :             D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
   12863        1328 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   12864        1328 :             if (_token == NULL) {
   12865           0 :                 p->level--;
   12866           0 :                 return NULL;
   12867             :             }
   12868        1328 :             int _end_lineno = _token->end_lineno;
   12869             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   12870        1328 :             int _end_col_offset = _token->end_col_offset;
   12871             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   12872        1328 :             _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
   12873        1328 :             if (_res == NULL && PyErr_Occurred()) {
   12874           0 :                 p->error_indicator = 1;
   12875           0 :                 p->level--;
   12876           0 :                 return NULL;
   12877             :             }
   12878        1328 :             goto done;
   12879             :         }
   12880    22478000 :         p->mark = _mark;
   12881    22478000 :         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    22478000 :         if (p->error_indicator) {
   12886           0 :             p->level--;
   12887           0 :             return NULL;
   12888             :         }
   12889    22478000 :         D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
   12890             :         expr_ty sum_var;
   12891    22478000 :         if (
   12892    22478000 :             (sum_var = sum_rule(p))  // sum
   12893             :         )
   12894             :         {
   12895    20172500 :             D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
   12896    20172500 :             _res = sum_var;
   12897    20172500 :             goto done;
   12898             :         }
   12899     2305480 :         p->mark = _mark;
   12900     2305480 :         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     2305480 :     _res = NULL;
   12904    22482800 :   done:
   12905    22482800 :     p->level--;
   12906    22482800 :     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
   12913    67649600 : sum_rule(Parser *p)
   12914             : {
   12915    67649600 :     if (p->level++ == MAXSTACK) {
   12916           0 :         p->error_indicator = 1;
   12917           0 :         PyErr_NoMemory();
   12918             :     }
   12919    67649600 :     expr_ty _res = NULL;
   12920    67649600 :     if (_PyPegen_is_memoized(p, sum_type, &_res)) {
   12921    55253000 :         p->level--;
   12922    55253000 :         return _res;
   12923             :     }
   12924    12396600 :     int _mark = p->mark;
   12925    12396600 :     int _resmark = p->mark;
   12926    10233800 :     while (1) {
   12927    22630400 :         int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
   12928    22630400 :         if (tmpvar_6) {
   12929           0 :             p->level--;
   12930           0 :             return _res;
   12931             :         }
   12932    22630400 :         p->mark = _mark;
   12933    22630400 :         void *_raw = sum_raw(p);
   12934    22630400 :         if (p->error_indicator) {
   12935         850 :             p->level--;
   12936         850 :             return NULL;
   12937             :         }
   12938    22629600 :         if (_raw == NULL || p->mark <= _resmark)
   12939             :             break;
   12940    10233800 :         _resmark = p->mark;
   12941    10233800 :         _res = _raw;
   12942             :     }
   12943    12395700 :     p->mark = _resmark;
   12944    12395700 :     p->level--;
   12945    12395700 :     return _res;
   12946             : }
   12947             : static expr_ty
   12948    22630400 : sum_raw(Parser *p)
   12949             : {
   12950    22630400 :     if (p->level++ == MAXSTACK) {
   12951           0 :         p->error_indicator = 1;
   12952           0 :         PyErr_NoMemory();
   12953             :     }
   12954    22630400 :     if (p->error_indicator) {
   12955           0 :         p->level--;
   12956           0 :         return NULL;
   12957             :     }
   12958    22630400 :     expr_ty _res = NULL;
   12959    22630400 :     int _mark = p->mark;
   12960    22630400 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   12961           0 :         p->error_indicator = 1;
   12962           0 :         p->level--;
   12963           0 :         return NULL;
   12964             :     }
   12965    22630400 :     int _start_lineno = p->tokens[_mark]->lineno;
   12966             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   12967    22630400 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   12968             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   12969             :     { // sum '+' term
   12970    22630400 :         if (p->error_indicator) {
   12971           0 :             p->level--;
   12972           0 :             return NULL;
   12973             :         }
   12974    22630400 :         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    22630400 :         if (
   12979    22630400 :             (a = sum_rule(p))  // sum
   12980    10233800 :             &&
   12981    10233800 :             (_literal = _PyPegen_expect_token(p, 14))  // token='+'
   12982       94055 :             &&
   12983       94055 :             (b = term_rule(p))  // term
   12984             :         )
   12985             :         {
   12986       94007 :             D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
   12987       94007 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   12988       94007 :             if (_token == NULL) {
   12989           0 :                 p->level--;
   12990           0 :                 return NULL;
   12991             :             }
   12992       94007 :             int _end_lineno = _token->end_lineno;
   12993             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   12994       94007 :             int _end_col_offset = _token->end_col_offset;
   12995             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   12996       94007 :             _res = _PyAST_BinOp ( a , Add , b , EXTRA );
   12997       94007 :             if (_res == NULL && PyErr_Occurred()) {
   12998           0 :                 p->error_indicator = 1;
   12999           0 :                 p->level--;
   13000           0 :                 return NULL;
   13001             :             }
   13002       94007 :             goto done;
   13003             :         }
   13004    22536400 :         p->mark = _mark;
   13005    22536400 :         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    22536400 :         if (p->error_indicator) {
   13010          16 :             p->level--;
   13011          16 :             return NULL;
   13012             :         }
   13013    22536400 :         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    22536400 :         if (
   13018    22536400 :             (a = sum_rule(p))  // sum
   13019    10139800 :             &&
   13020    10139800 :             (_literal = _PyPegen_expect_token(p, 15))  // token='-'
   13021       48703 :             &&
   13022       48703 :             (b = term_rule(p))  // term
   13023             :         )
   13024             :         {
   13025       48702 :             D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
   13026       48702 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13027       48702 :             if (_token == NULL) {
   13028           0 :                 p->level--;
   13029           0 :                 return NULL;
   13030             :             }
   13031       48702 :             int _end_lineno = _token->end_lineno;
   13032             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13033       48702 :             int _end_col_offset = _token->end_col_offset;
   13034             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13035       48702 :             _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
   13036       48702 :             if (_res == NULL && PyErr_Occurred()) {
   13037           0 :                 p->error_indicator = 1;
   13038           0 :                 p->level--;
   13039           0 :                 return NULL;
   13040             :             }
   13041       48702 :             goto done;
   13042             :         }
   13043    22487700 :         p->mark = _mark;
   13044    22487700 :         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    22487700 :         if (p->error_indicator) {
   13049           1 :             p->level--;
   13050           1 :             return NULL;
   13051             :         }
   13052    22487700 :         D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
   13053             :         expr_ty term_var;
   13054    22487700 :         if (
   13055    22487700 :             (term_var = term_rule(p))  // term
   13056             :         )
   13057             :         {
   13058    20182200 :             D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
   13059    20182200 :             _res = term_var;
   13060    20182200 :             goto done;
   13061             :         }
   13062     2305460 :         p->mark = _mark;
   13063     2305460 :         D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
   13064             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
   13065             :     }
   13066     2305460 :     _res = NULL;
   13067    22630400 :   done:
   13068    22630400 :     p->level--;
   13069    22630400 :     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
   13082   137113000 : term_rule(Parser *p)
   13083             : {
   13084   137113000 :     if (p->level++ == MAXSTACK) {
   13085           0 :         p->error_indicator = 1;
   13086           0 :         PyErr_NoMemory();
   13087             :     }
   13088   137113000 :     expr_ty _res = NULL;
   13089   137113000 :     if (_PyPegen_is_memoized(p, term_type, &_res)) {
   13090   124574000 :         p->level--;
   13091   124574000 :         return _res;
   13092             :     }
   13093    12539300 :     int _mark = p->mark;
   13094    12539300 :     int _resmark = p->mark;
   13095    10640500 :     while (1) {
   13096    23179800 :         int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
   13097    23179800 :         if (tmpvar_7) {
   13098           0 :             p->level--;
   13099           0 :             return _res;
   13100             :         }
   13101    23179800 :         p->mark = _mark;
   13102    23179800 :         void *_raw = term_raw(p);
   13103    23179800 :         if (p->error_indicator) {
   13104         840 :             p->level--;
   13105         840 :             return NULL;
   13106             :         }
   13107    23179000 :         if (_raw == NULL || p->mark <= _resmark)
   13108             :             break;
   13109    10640500 :         _resmark = p->mark;
   13110    10640500 :         _res = _raw;
   13111             :     }
   13112    12538500 :     p->mark = _resmark;
   13113    12538500 :     p->level--;
   13114    12538500 :     return _res;
   13115             : }
   13116             : static expr_ty
   13117    23179800 : term_raw(Parser *p)
   13118             : {
   13119    23179800 :     if (p->level++ == MAXSTACK) {
   13120           0 :         p->error_indicator = 1;
   13121           0 :         PyErr_NoMemory();
   13122             :     }
   13123    23179800 :     if (p->error_indicator) {
   13124           0 :         p->level--;
   13125           0 :         return NULL;
   13126             :     }
   13127    23179800 :     expr_ty _res = NULL;
   13128    23179800 :     int _mark = p->mark;
   13129    23179800 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   13130           0 :         p->error_indicator = 1;
   13131           0 :         p->level--;
   13132           0 :         return NULL;
   13133             :     }
   13134    23179800 :     int _start_lineno = p->tokens[_mark]->lineno;
   13135             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   13136    23179800 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   13137             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   13138             :     { // term '*' factor
   13139    23179800 :         if (p->error_indicator) {
   13140           0 :             p->level--;
   13141           0 :             return NULL;
   13142             :         }
   13143    23179800 :         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    23179800 :         if (
   13148    23179800 :             (a = term_rule(p))  // term
   13149    10640500 :             &&
   13150    10640500 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   13151      330764 :             &&
   13152      330764 :             (b = factor_rule(p))  // factor
   13153             :         )
   13154             :         {
   13155      330764 :             D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
   13156      330764 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13157      330764 :             if (_token == NULL) {
   13158           0 :                 p->level--;
   13159           0 :                 return NULL;
   13160             :             }
   13161      330764 :             int _end_lineno = _token->end_lineno;
   13162             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13163      330764 :             int _end_col_offset = _token->end_col_offset;
   13164             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13165      330764 :             _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
   13166      330764 :             if (_res == NULL && PyErr_Occurred()) {
   13167           0 :                 p->error_indicator = 1;
   13168           0 :                 p->level--;
   13169           0 :                 return NULL;
   13170             :             }
   13171      330764 :             goto done;
   13172             :         }
   13173    22849100 :         p->mark = _mark;
   13174    22849100 :         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    22849100 :         if (p->error_indicator) {
   13179           0 :             p->level--;
   13180           0 :             return NULL;
   13181             :         }
   13182    22849100 :         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    22849100 :         if (
   13187    22849100 :             (a = term_rule(p))  // term
   13188    10309700 :             &&
   13189    10309700 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
   13190        7071 :             &&
   13191        7071 :             (b = factor_rule(p))  // factor
   13192             :         )
   13193             :         {
   13194        7065 :             D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
   13195        7065 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13196        7065 :             if (_token == NULL) {
   13197           0 :                 p->level--;
   13198           0 :                 return NULL;
   13199             :             }
   13200        7065 :             int _end_lineno = _token->end_lineno;
   13201             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13202        7065 :             int _end_col_offset = _token->end_col_offset;
   13203             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13204        7065 :             _res = _PyAST_BinOp ( a , Div , b , EXTRA );
   13205        7065 :             if (_res == NULL && PyErr_Occurred()) {
   13206           0 :                 p->error_indicator = 1;
   13207           0 :                 p->level--;
   13208           0 :                 return NULL;
   13209             :             }
   13210        7065 :             goto done;
   13211             :         }
   13212    22842000 :         p->mark = _mark;
   13213    22842000 :         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    22842000 :         if (p->error_indicator) {
   13218           0 :             p->level--;
   13219           0 :             return NULL;
   13220             :         }
   13221    22842000 :         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    22842000 :         if (
   13226    22842000 :             (a = term_rule(p))  // term
   13227    10302700 :             &&
   13228    10302700 :             (_literal = _PyPegen_expect_token(p, 47))  // token='//'
   13229        3465 :             &&
   13230        3465 :             (b = factor_rule(p))  // factor
   13231             :         )
   13232             :         {
   13233        3465 :             D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
   13234        3465 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13235        3465 :             if (_token == NULL) {
   13236           0 :                 p->level--;
   13237           0 :                 return NULL;
   13238             :             }
   13239        3465 :             int _end_lineno = _token->end_lineno;
   13240             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13241        3465 :             int _end_col_offset = _token->end_col_offset;
   13242             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13243        3465 :             _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
   13244        3465 :             if (_res == NULL && PyErr_Occurred()) {
   13245           0 :                 p->error_indicator = 1;
   13246           0 :                 p->level--;
   13247           0 :                 return NULL;
   13248             :             }
   13249        3465 :             goto done;
   13250             :         }
   13251    22838500 :         p->mark = _mark;
   13252    22838500 :         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    22838500 :         if (p->error_indicator) {
   13257           0 :             p->level--;
   13258           0 :             return NULL;
   13259             :         }
   13260    22838500 :         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    22838500 :         if (
   13265    22838500 :             (a = term_rule(p))  // term
   13266    10299200 :             &&
   13267    10299200 :             (_literal = _PyPegen_expect_token(p, 24))  // token='%'
   13268       65313 :             &&
   13269       65313 :             (b = factor_rule(p))  // factor
   13270             :         )
   13271             :         {
   13272       65313 :             D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
   13273       65313 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13274       65313 :             if (_token == NULL) {
   13275           0 :                 p->level--;
   13276           0 :                 return NULL;
   13277             :             }
   13278       65313 :             int _end_lineno = _token->end_lineno;
   13279             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13280       65313 :             int _end_col_offset = _token->end_col_offset;
   13281             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13282       65313 :             _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
   13283       65313 :             if (_res == NULL && PyErr_Occurred()) {
   13284           0 :                 p->error_indicator = 1;
   13285           0 :                 p->level--;
   13286           0 :                 return NULL;
   13287             :             }
   13288       65313 :             goto done;
   13289             :         }
   13290    22773200 :         p->mark = _mark;
   13291    22773200 :         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    22773200 :         if (p->error_indicator) {
   13296           0 :             p->level--;
   13297           0 :             return NULL;
   13298             :         }
   13299    22773200 :         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    22773200 :         if (
   13304    22773200 :             (a = term_rule(p))  // term
   13305    10233900 :             &&
   13306    10233900 :             (_literal = _PyPegen_expect_token(p, 49))  // token='@'
   13307          77 :             &&
   13308          77 :             (b = factor_rule(p))  // factor
   13309             :         )
   13310             :         {
   13311          72 :             D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
   13312          72 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13313          72 :             if (_token == NULL) {
   13314           0 :                 p->level--;
   13315           0 :                 return NULL;
   13316             :             }
   13317          72 :             int _end_lineno = _token->end_lineno;
   13318             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13319          72 :             int _end_col_offset = _token->end_col_offset;
   13320             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13321          72 :             _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
   13322          72 :             if (_res == NULL && PyErr_Occurred()) {
   13323           1 :                 p->error_indicator = 1;
   13324           1 :                 p->level--;
   13325           1 :                 return NULL;
   13326             :             }
   13327          71 :             goto done;
   13328             :         }
   13329    22773200 :         p->mark = _mark;
   13330    22773200 :         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    22773200 :         if (p->error_indicator) {
   13335           0 :             p->level--;
   13336           0 :             return NULL;
   13337             :         }
   13338    22773200 :         D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
   13339             :         expr_ty factor_var;
   13340    22773200 :         if (
   13341    22773200 :             (factor_var = factor_rule(p))  // factor
   13342             :         )
   13343             :         {
   13344    20467700 :             D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
   13345    20467700 :             _res = factor_var;
   13346    20467700 :             goto done;
   13347             :         }
   13348     2305500 :         p->mark = _mark;
   13349     2305500 :         D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
   13350             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
   13351             :     }
   13352     2305500 :     _res = NULL;
   13353    23179800 :   done:
   13354    23179800 :     p->level--;
   13355    23179800 :     return _res;
   13356             : }
   13357             : 
   13358             : // factor: '+' factor | '-' factor | '~' factor | power
   13359             : static expr_ty
   13360    23248900 : factor_rule(Parser *p)
   13361             : {
   13362    23248900 :     if (p->level++ == MAXSTACK) {
   13363           3 :         p->error_indicator = 1;
   13364           3 :         PyErr_NoMemory();
   13365             :     }
   13366    23248900 :     if (p->error_indicator) {
   13367           3 :         p->level--;
   13368           3 :         return NULL;
   13369             :     }
   13370    23248900 :     expr_ty _res = NULL;
   13371    23248900 :     if (_PyPegen_is_memoized(p, factor_type, &_res)) {
   13372    10233900 :         p->level--;
   13373    10233900 :         return _res;
   13374             :     }
   13375    13015100 :     int _mark = p->mark;
   13376    13015100 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   13377           0 :         p->error_indicator = 1;
   13378           0 :         p->level--;
   13379           0 :         return NULL;
   13380             :     }
   13381    13015100 :     int _start_lineno = p->tokens[_mark]->lineno;
   13382             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   13383    13015100 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   13384             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   13385             :     { // '+' factor
   13386    13015100 :         if (p->error_indicator) {
   13387           0 :             p->level--;
   13388           0 :             return NULL;
   13389             :         }
   13390    13015100 :         D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
   13391             :         Token * _literal;
   13392             :         expr_ty a;
   13393    13015100 :         if (
   13394    13015100 :             (_literal = _PyPegen_expect_token(p, 14))  // token='+'
   13395         888 :             &&
   13396         888 :             (a = factor_rule(p))  // factor
   13397             :         )
   13398             :         {
   13399         864 :             D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
   13400         864 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13401         864 :             if (_token == NULL) {
   13402           0 :                 p->level--;
   13403           0 :                 return NULL;
   13404             :             }
   13405         864 :             int _end_lineno = _token->end_lineno;
   13406             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13407         864 :             int _end_col_offset = _token->end_col_offset;
   13408             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13409         864 :             _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
   13410         864 :             if (_res == NULL && PyErr_Occurred()) {
   13411           0 :                 p->error_indicator = 1;
   13412           0 :                 p->level--;
   13413           0 :                 return NULL;
   13414             :             }
   13415         864 :             goto done;
   13416             :         }
   13417    13014200 :         p->mark = _mark;
   13418    13014200 :         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    13014200 :         if (p->error_indicator) {
   13423           0 :             p->level--;
   13424           0 :             return NULL;
   13425             :         }
   13426    13014200 :         D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
   13427             :         Token * _literal;
   13428             :         expr_ty a;
   13429    13014200 :         if (
   13430    13014200 :             (_literal = _PyPegen_expect_token(p, 15))  // token='-'
   13431       61648 :             &&
   13432       61648 :             (a = factor_rule(p))  // factor
   13433             :         )
   13434             :         {
   13435       43715 :             D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
   13436       43715 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13437       43715 :             if (_token == NULL) {
   13438           0 :                 p->level--;
   13439           0 :                 return NULL;
   13440             :             }
   13441       43715 :             int _end_lineno = _token->end_lineno;
   13442             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13443       43715 :             int _end_col_offset = _token->end_col_offset;
   13444             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13445       43715 :             _res = _PyAST_UnaryOp ( USub , a , EXTRA );
   13446       43715 :             if (_res == NULL && PyErr_Occurred()) {
   13447           0 :                 p->error_indicator = 1;
   13448           0 :                 p->level--;
   13449           0 :                 return NULL;
   13450             :             }
   13451       43715 :             goto done;
   13452             :         }
   13453    12970500 :         p->mark = _mark;
   13454    12970500 :         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    12970500 :         if (p->error_indicator) {
   13459       17933 :             p->level--;
   13460       17933 :             return NULL;
   13461             :         }
   13462    12952500 :         D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
   13463             :         Token * _literal;
   13464             :         expr_ty a;
   13465    12952500 :         if (
   13466    12952500 :             (_literal = _PyPegen_expect_token(p, 31))  // token='~'
   13467        1063 :             &&
   13468        1063 :             (a = factor_rule(p))  // factor
   13469             :         )
   13470             :         {
   13471        1063 :             D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
   13472        1063 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13473        1063 :             if (_token == NULL) {
   13474           0 :                 p->level--;
   13475           0 :                 return NULL;
   13476             :             }
   13477        1063 :             int _end_lineno = _token->end_lineno;
   13478             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13479        1063 :             int _end_col_offset = _token->end_col_offset;
   13480             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13481        1063 :             _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
   13482        1063 :             if (_res == NULL && PyErr_Occurred()) {
   13483           0 :                 p->error_indicator = 1;
   13484           0 :                 p->level--;
   13485           0 :                 return NULL;
   13486             :             }
   13487        1063 :             goto done;
   13488             :         }
   13489    12951500 :         p->mark = _mark;
   13490    12951500 :         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    12951500 :         if (p->error_indicator) {
   13495           0 :             p->level--;
   13496           0 :             return NULL;
   13497             :         }
   13498    12951500 :         D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
   13499             :         expr_ty power_var;
   13500    12951500 :         if (
   13501    12951500 :             (power_var = power_rule(p))  // power
   13502             :         )
   13503             :         {
   13504    10646000 :             D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
   13505    10646000 :             _res = power_var;
   13506    10646000 :             goto done;
   13507             :         }
   13508     2305520 :         p->mark = _mark;
   13509     2305520 :         D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
   13510             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
   13511             :     }
   13512     2305520 :     _res = NULL;
   13513    12997100 :   done:
   13514    12997100 :     _PyPegen_insert_memo(p, _mark, factor_type, _res);
   13515    12997100 :     p->level--;
   13516    12997100 :     return _res;
   13517             : }
   13518             : 
   13519             : // power: await_primary '**' factor | await_primary
   13520             : static expr_ty
   13521    12951500 : power_rule(Parser *p)
   13522             : {
   13523    12951500 :     if (p->level++ == MAXSTACK) {
   13524           0 :         p->error_indicator = 1;
   13525           0 :         PyErr_NoMemory();
   13526             :     }
   13527    12951500 :     if (p->error_indicator) {
   13528           0 :         p->level--;
   13529           0 :         return NULL;
   13530             :     }
   13531    12951500 :     expr_ty _res = NULL;
   13532    12951500 :     int _mark = p->mark;
   13533    12951500 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   13534           0 :         p->error_indicator = 1;
   13535           0 :         p->level--;
   13536           0 :         return NULL;
   13537             :     }
   13538    12951500 :     int _start_lineno = p->tokens[_mark]->lineno;
   13539             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   13540    12951500 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   13541             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   13542             :     { // await_primary '**' factor
   13543    12951500 :         if (p->error_indicator) {
   13544           0 :             p->level--;
   13545           0 :             return NULL;
   13546             :         }
   13547    12951500 :         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    12951500 :         if (
   13552    12951500 :             (a = await_primary_rule(p))  // await_primary
   13553    10646000 :             &&
   13554    10646000 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   13555        5475 :             &&
   13556        5475 :             (b = factor_rule(p))  // factor
   13557             :         )
   13558             :         {
   13559        5470 :             D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
   13560        5470 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13561        5470 :             if (_token == NULL) {
   13562           0 :                 p->level--;
   13563           0 :                 return NULL;
   13564             :             }
   13565        5470 :             int _end_lineno = _token->end_lineno;
   13566             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13567        5470 :             int _end_col_offset = _token->end_col_offset;
   13568             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13569        5470 :             _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
   13570        5470 :             if (_res == NULL && PyErr_Occurred()) {
   13571           0 :                 p->error_indicator = 1;
   13572           0 :                 p->level--;
   13573           0 :                 return NULL;
   13574             :             }
   13575        5470 :             goto done;
   13576             :         }
   13577    12946000 :         p->mark = _mark;
   13578    12946000 :         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    12946000 :         if (p->error_indicator) {
   13583         836 :             p->level--;
   13584         836 :             return NULL;
   13585             :         }
   13586    12945200 :         D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
   13587             :         expr_ty await_primary_var;
   13588    12945200 :         if (
   13589    12945200 :             (await_primary_var = await_primary_rule(p))  // await_primary
   13590             :         )
   13591             :         {
   13592    10640500 :             D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
   13593    10640500 :             _res = await_primary_var;
   13594    10640500 :             goto done;
   13595             :         }
   13596     2304690 :         p->mark = _mark;
   13597     2304690 :         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     2304690 :     _res = NULL;
   13601    12950600 :   done:
   13602    12950600 :     p->level--;
   13603    12950600 :     return _res;
   13604             : }
   13605             : 
   13606             : // await_primary: AWAIT primary | primary
   13607             : static expr_ty
   13608    25896700 : await_primary_rule(Parser *p)
   13609             : {
   13610    25896700 :     if (p->level++ == MAXSTACK) {
   13611           0 :         p->error_indicator = 1;
   13612           0 :         PyErr_NoMemory();
   13613             :     }
   13614    25896700 :     if (p->error_indicator) {
   13615           0 :         p->level--;
   13616           0 :         return NULL;
   13617             :     }
   13618    25896700 :     expr_ty _res = NULL;
   13619    25896700 :     if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
   13620    12945200 :         p->level--;
   13621    12945200 :         return _res;
   13622             :     }
   13623    12951500 :     int _mark = p->mark;
   13624    12951500 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   13625           0 :         p->error_indicator = 1;
   13626           0 :         p->level--;
   13627           0 :         return NULL;
   13628             :     }
   13629    12951500 :     int _start_lineno = p->tokens[_mark]->lineno;
   13630             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   13631    12951500 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   13632             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   13633             :     { // AWAIT primary
   13634    12951500 :         if (p->error_indicator) {
   13635           0 :             p->level--;
   13636           0 :             return NULL;
   13637             :         }
   13638    12951500 :         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    12951500 :         if (
   13642    12951500 :             (await_var = _PyPegen_expect_token(p, AWAIT))  // token='AWAIT'
   13643        2406 :             &&
   13644        2406 :             (a = primary_rule(p))  // primary
   13645             :         )
   13646             :         {
   13647        2374 :             D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
   13648        2374 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13649        2374 :             if (_token == NULL) {
   13650           0 :                 p->level--;
   13651           0 :                 return NULL;
   13652             :             }
   13653        2374 :             int _end_lineno = _token->end_lineno;
   13654             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13655        2374 :             int _end_col_offset = _token->end_col_offset;
   13656             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13657        2374 :             _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
   13658        2374 :             if (_res == NULL && PyErr_Occurred()) {
   13659           1 :                 p->error_indicator = 1;
   13660           1 :                 p->level--;
   13661           1 :                 return NULL;
   13662             :             }
   13663        2373 :             goto done;
   13664             :         }
   13665    12949100 :         p->mark = _mark;
   13666    12949100 :         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    12949100 :         if (p->error_indicator) {
   13671           0 :             p->level--;
   13672           0 :             return NULL;
   13673             :         }
   13674    12949100 :         D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
   13675             :         expr_ty primary_var;
   13676    12949100 :         if (
   13677    12949100 :             (primary_var = primary_rule(p))  // primary
   13678             :         )
   13679             :         {
   13680    10643600 :             D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
   13681    10643600 :             _res = primary_var;
   13682    10643600 :             goto done;
   13683             :         }
   13684     2305520 :         p->mark = _mark;
   13685     2305520 :         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     2305520 :     _res = NULL;
   13689    12951500 :   done:
   13690    12951500 :     _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
   13691    12951500 :     p->level--;
   13692    12951500 :     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
   13704   116932000 : primary_rule(Parser *p)
   13705             : {
   13706   116932000 :     if (p->level++ == MAXSTACK) {
   13707           0 :         p->error_indicator = 1;
   13708           0 :         PyErr_NoMemory();
   13709             :     }
   13710   116932000 :     expr_ty _res = NULL;
   13711   116932000 :     if (_PyPegen_is_memoized(p, primary_type, &_res)) {
   13712   103980000 :         p->level--;
   13713   103980000 :         return _res;
   13714             :     }
   13715    12951500 :     int _mark = p->mark;
   13716    12951500 :     int _resmark = p->mark;
   13717    14990200 :     while (1) {
   13718    27941700 :         int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
   13719    27941700 :         if (tmpvar_8) {
   13720           0 :             p->level--;
   13721           0 :             return _res;
   13722             :         }
   13723    27941700 :         p->mark = _mark;
   13724    27941700 :         void *_raw = primary_raw(p);
   13725    27941700 :         if (p->error_indicator) {
   13726         833 :             p->level--;
   13727         833 :             return NULL;
   13728             :         }
   13729    27940900 :         if (_raw == NULL || p->mark <= _resmark)
   13730             :             break;
   13731    14990200 :         _resmark = p->mark;
   13732    14990200 :         _res = _raw;
   13733             :     }
   13734    12950700 :     p->mark = _resmark;
   13735    12950700 :     p->level--;
   13736    12950700 :     return _res;
   13737             : }
   13738             : static expr_ty
   13739    27941700 : primary_raw(Parser *p)
   13740             : {
   13741    27941700 :     if (p->level++ == MAXSTACK) {
   13742           0 :         p->error_indicator = 1;
   13743           0 :         PyErr_NoMemory();
   13744             :     }
   13745    27941700 :     if (p->error_indicator) {
   13746           0 :         p->level--;
   13747           0 :         return NULL;
   13748             :     }
   13749    27941700 :     expr_ty _res = NULL;
   13750    27941700 :     int _mark = p->mark;
   13751    27941700 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   13752           0 :         p->error_indicator = 1;
   13753           0 :         p->level--;
   13754           0 :         return NULL;
   13755             :     }
   13756    27941700 :     int _start_lineno = p->tokens[_mark]->lineno;
   13757             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   13758    27941700 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   13759             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   13760             :     { // primary '.' NAME
   13761    27941700 :         if (p->error_indicator) {
   13762           0 :             p->level--;
   13763           0 :             return NULL;
   13764             :         }
   13765    27941700 :         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    27941700 :         if (
   13770    27941700 :             (a = primary_rule(p))  // primary
   13771    14990200 :             &&
   13772    14990200 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   13773     1961640 :             &&
   13774     1961640 :             (b = _PyPegen_name_token(p))  // NAME
   13775             :         )
   13776             :         {
   13777     1961620 :             D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
   13778     1961620 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13779     1961620 :             if (_token == NULL) {
   13780           0 :                 p->level--;
   13781           0 :                 return NULL;
   13782             :             }
   13783     1961620 :             int _end_lineno = _token->end_lineno;
   13784             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13785     1961620 :             int _end_col_offset = _token->end_col_offset;
   13786             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13787     1961620 :             _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
   13788     1961620 :             if (_res == NULL && PyErr_Occurred()) {
   13789           0 :                 p->error_indicator = 1;
   13790           0 :                 p->level--;
   13791           0 :                 return NULL;
   13792             :             }
   13793     1961620 :             goto done;
   13794             :         }
   13795    25980100 :         p->mark = _mark;
   13796    25980100 :         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    25980100 :         if (p->error_indicator) {
   13801          23 :             p->level--;
   13802          23 :             return NULL;
   13803             :         }
   13804    25980000 :         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    25980000 :         if (
   13808    25980000 :             (a = primary_rule(p))  // primary
   13809    13028500 :             &&
   13810    13028500 :             (b = genexp_rule(p))  // genexp
   13811             :         )
   13812             :         {
   13813        6824 :             D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
   13814        6824 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13815        6824 :             if (_token == NULL) {
   13816           0 :                 p->level--;
   13817           0 :                 return NULL;
   13818             :             }
   13819        6824 :             int _end_lineno = _token->end_lineno;
   13820             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13821        6824 :             int _end_col_offset = _token->end_col_offset;
   13822             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13823        6824 :             _res = _PyAST_Call ( a , CHECK ( asdl_expr_seq* , ( asdl_expr_seq* ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
   13824        6824 :             if (_res == NULL && PyErr_Occurred()) {
   13825           0 :                 p->error_indicator = 1;
   13826           0 :                 p->level--;
   13827           0 :                 return NULL;
   13828             :             }
   13829        6824 :             goto done;
   13830             :         }
   13831    25973200 :         p->mark = _mark;
   13832    25973200 :         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    25973200 :         if (p->error_indicator) {
   13837           4 :             p->level--;
   13838           4 :             return NULL;
   13839             :         }
   13840    25973200 :         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    25973200 :         if (
   13846    25973200 :             (a = primary_rule(p))  // primary
   13847    13021700 :             &&
   13848    13021700 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   13849     1888060 :             &&
   13850     1888060 :             (b = arguments_rule(p), !p->error_indicator)  // arguments?
   13851     1888040 :             &&
   13852     1888040 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   13853             :         )
   13854             :         {
   13855     1887960 :             D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
   13856     1887960 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13857     1887960 :             if (_token == NULL) {
   13858           0 :                 p->level--;
   13859           0 :                 return NULL;
   13860             :             }
   13861     1887960 :             int _end_lineno = _token->end_lineno;
   13862             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13863     1887960 :             int _end_col_offset = _token->end_col_offset;
   13864             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13865     1887960 :             _res = _PyAST_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
   13866     1887960 :             if (_res == NULL && PyErr_Occurred()) {
   13867           0 :                 p->error_indicator = 1;
   13868           0 :                 p->level--;
   13869           0 :                 return NULL;
   13870             :             }
   13871     1887960 :             goto done;
   13872             :         }
   13873    24085300 :         p->mark = _mark;
   13874    24085300 :         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    24085300 :         if (p->error_indicator) {
   13879          14 :             p->level--;
   13880          14 :             return NULL;
   13881             :         }
   13882    24085200 :         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    24085200 :         if (
   13888    24085200 :             (a = primary_rule(p))  // primary
   13889    11133700 :             &&
   13890    11133700 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   13891      487808 :             &&
   13892      487808 :             (b = slices_rule(p))  // slices
   13893      487788 :             &&
   13894      487788 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   13895             :         )
   13896             :         {
   13897      487770 :             D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
   13898      487770 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13899      487770 :             if (_token == NULL) {
   13900           0 :                 p->level--;
   13901           0 :                 return NULL;
   13902             :             }
   13903      487770 :             int _end_lineno = _token->end_lineno;
   13904             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13905      487770 :             int _end_col_offset = _token->end_col_offset;
   13906             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13907      487770 :             _res = _PyAST_Subscript ( a , b , Load , EXTRA );
   13908      487770 :             if (_res == NULL && PyErr_Occurred()) {
   13909           0 :                 p->error_indicator = 1;
   13910           0 :                 p->level--;
   13911           0 :                 return NULL;
   13912             :             }
   13913      487770 :             goto done;
   13914             :         }
   13915    23597500 :         p->mark = _mark;
   13916    23597500 :         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    23597500 :         if (p->error_indicator) {
   13921           1 :             p->level--;
   13922           1 :             return NULL;
   13923             :         }
   13924    23597500 :         D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
   13925             :         expr_ty atom_var;
   13926    23597500 :         if (
   13927    23597500 :             (atom_var = atom_rule(p))  // atom
   13928             :         )
   13929             :         {
   13930    21292000 :             D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
   13931    21292000 :             _res = atom_var;
   13932    21292000 :             goto done;
   13933             :         }
   13934     2305510 :         p->mark = _mark;
   13935     2305510 :         D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
   13936             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
   13937             :     }
   13938     2305510 :     _res = NULL;
   13939    27941600 :   done:
   13940    27941600 :     p->level--;
   13941    27941600 :     return _res;
   13942             : }
   13943             : 
   13944             : // slices: slice !',' | ','.(slice | starred_expression)+ ','?
   13945             : static expr_ty
   13946     1001270 : slices_rule(Parser *p)
   13947             : {
   13948     1001270 :     if (p->level++ == MAXSTACK) {
   13949           0 :         p->error_indicator = 1;
   13950           0 :         PyErr_NoMemory();
   13951             :     }
   13952     1001270 :     if (p->error_indicator) {
   13953           0 :         p->level--;
   13954           0 :         return NULL;
   13955             :     }
   13956     1001270 :     expr_ty _res = NULL;
   13957     1001270 :     int _mark = p->mark;
   13958     1001270 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   13959           2 :         p->error_indicator = 1;
   13960           2 :         p->level--;
   13961           2 :         return NULL;
   13962             :     }
   13963     1001270 :     int _start_lineno = p->tokens[_mark]->lineno;
   13964             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   13965     1001270 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   13966             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   13967             :     { // slice !','
   13968     1001270 :         if (p->error_indicator) {
   13969           0 :             p->level--;
   13970           0 :             return NULL;
   13971             :         }
   13972     1001270 :         D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
   13973             :         expr_ty a;
   13974     1001270 :         if (
   13975     1001270 :             (a = slice_rule(p))  // slice
   13976     1000340 :             &&
   13977     1000340 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12)  // token=','
   13978             :         )
   13979             :         {
   13980      979490 :             D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
   13981      979490 :             _res = a;
   13982      979490 :             if (_res == NULL && PyErr_Occurred()) {
   13983           0 :                 p->error_indicator = 1;
   13984           0 :                 p->level--;
   13985           0 :                 return NULL;
   13986             :             }
   13987      979490 :             goto done;
   13988             :         }
   13989       21777 :         p->mark = _mark;
   13990       21777 :         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       21777 :         if (p->error_indicator) {
   13995          13 :             p->level--;
   13996          13 :             return NULL;
   13997             :         }
   13998       21764 :         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       21764 :         if (
   14003       21764 :             (a = (asdl_expr_seq*)_gather_88_rule(p))  // ','.(slice | starred_expression)+
   14004       21669 :             &&
   14005       21669 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   14006             :         )
   14007             :         {
   14008       21667 :             D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(slice | starred_expression)+ ','?"));
   14009       21667 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   14010       21667 :             if (_token == NULL) {
   14011           0 :                 p->level--;
   14012           0 :                 return NULL;
   14013             :             }
   14014       21667 :             int _end_lineno = _token->end_lineno;
   14015             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   14016       21667 :             int _end_col_offset = _token->end_col_offset;
   14017             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   14018       21667 :             _res = _PyAST_Tuple ( a , Load , EXTRA );
   14019       21667 :             if (_res == NULL && PyErr_Occurred()) {
   14020           0 :                 p->error_indicator = 1;
   14021           0 :                 p->level--;
   14022           0 :                 return NULL;
   14023             :             }
   14024       21667 :             goto done;
   14025             :         }
   14026          97 :         p->mark = _mark;
   14027          97 :         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          97 :     _res = NULL;
   14031     1001250 :   done:
   14032     1001250 :     p->level--;
   14033     1001250 :     return _res;
   14034             : }
   14035             : 
   14036             : // slice: expression? ':' expression? [':' expression?] | named_expression
   14037             : static expr_ty
   14038     1049280 : slice_rule(Parser *p)
   14039             : {
   14040     1049280 :     if (p->level++ == MAXSTACK) {
   14041           0 :         p->error_indicator = 1;
   14042           0 :         PyErr_NoMemory();
   14043             :     }
   14044     1049280 :     if (p->error_indicator) {
   14045           0 :         p->level--;
   14046           0 :         return NULL;
   14047             :     }
   14048     1049280 :     expr_ty _res = NULL;
   14049     1049280 :     int _mark = p->mark;
   14050     1049280 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   14051           2 :         p->error_indicator = 1;
   14052           2 :         p->level--;
   14053           2 :         return NULL;
   14054             :     }
   14055     1049280 :     int _start_lineno = p->tokens[_mark]->lineno;
   14056             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   14057     1049280 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   14058             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   14059             :     { // expression? ':' expression? [':' expression?]
   14060     1049280 :         if (p->error_indicator) {
   14061           0 :             p->level--;
   14062           0 :             return NULL;
   14063             :         }
   14064     1049280 :         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     1049280 :         if (
   14070     1049280 :             (a = expression_rule(p), !p->error_indicator)  // expression?
   14071     1049280 :             &&
   14072     1049280 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   14073       69162 :             &&
   14074       69162 :             (b = expression_rule(p), !p->error_indicator)  // expression?
   14075       69157 :             &&
   14076       69157 :             (c = _tmp_90_rule(p), !p->error_indicator)  // [':' expression?]
   14077             :         )
   14078             :         {
   14079       69153 :             D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
   14080       69153 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   14081       69153 :             if (_token == NULL) {
   14082           0 :                 p->level--;
   14083           0 :                 return NULL;
   14084             :             }
   14085       69153 :             int _end_lineno = _token->end_lineno;
   14086             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   14087       69153 :             int _end_col_offset = _token->end_col_offset;
   14088             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   14089       69153 :             _res = _PyAST_Slice ( a , b , c , EXTRA );
   14090       69153 :             if (_res == NULL && PyErr_Occurred()) {
   14091           0 :                 p->error_indicator = 1;
   14092           0 :                 p->level--;
   14093           0 :                 return NULL;
   14094             :             }
   14095       69153 :             goto done;
   14096             :         }
   14097      980126 :         p->mark = _mark;
   14098      980126 :         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      980126 :         if (p->error_indicator) {
   14103          13 :             p->level--;
   14104          13 :             return NULL;
   14105             :         }
   14106      980113 :         D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
   14107             :         expr_ty a;
   14108      980113 :         if (
   14109      980113 :             (a = named_expression_rule(p))  // named_expression
   14110             :         )
   14111             :         {
   14112      977132 :             D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
   14113      977132 :             _res = a;
   14114      977132 :             if (_res == NULL && PyErr_Occurred()) {
   14115           0 :                 p->error_indicator = 1;
   14116           0 :                 p->level--;
   14117           0 :                 return NULL;
   14118             :             }
   14119      977132 :             goto done;
   14120             :         }
   14121        2981 :         p->mark = _mark;
   14122        2981 :         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        2981 :     _res = NULL;
   14126     1049270 :   done:
   14127     1049270 :     p->level--;
   14128     1049270 :     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
   14143    29092800 : atom_rule(Parser *p)
   14144             : {
   14145    29092800 :     if (p->level++ == MAXSTACK) {
   14146           0 :         p->error_indicator = 1;
   14147           0 :         PyErr_NoMemory();
   14148             :     }
   14149    29092800 :     if (p->error_indicator) {
   14150           0 :         p->level--;
   14151           0 :         return NULL;
   14152             :     }
   14153    29092800 :     expr_ty _res = NULL;
   14154    29092800 :     int _mark = p->mark;
   14155    29092800 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   14156           0 :         p->error_indicator = 1;
   14157           0 :         p->level--;
   14158           0 :         return NULL;
   14159             :     }
   14160    29092800 :     int _start_lineno = p->tokens[_mark]->lineno;
   14161             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   14162    29092800 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   14163             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   14164             :     { // NAME
   14165    29092800 :         if (p->error_indicator) {
   14166           0 :             p->level--;
   14167           0 :             return NULL;
   14168             :         }
   14169    29092800 :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
   14170             :         expr_ty name_var;
   14171    29092800 :         if (
   14172    29092800 :             (name_var = _PyPegen_name_token(p))  // NAME
   14173             :         )
   14174             :         {
   14175    14072600 :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
   14176    14072600 :             _res = name_var;
   14177    14072600 :             goto done;
   14178             :         }
   14179    15020300 :         p->mark = _mark;
   14180    15020300 :         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    15020300 :         if (p->error_indicator) {
   14185           0 :             p->level--;
   14186           0 :             return NULL;
   14187             :         }
   14188    15020300 :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
   14189             :         Token * _keyword;
   14190    15020300 :         if (
   14191    15020300 :             (_keyword = _PyPegen_expect_token(p, 600))  // token='True'
   14192             :         )
   14193             :         {
   14194      120986 :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
   14195      120986 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   14196      120986 :             if (_token == NULL) {
   14197           0 :                 p->level--;
   14198           0 :                 return NULL;
   14199             :             }
   14200      120986 :             int _end_lineno = _token->end_lineno;
   14201             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   14202      120986 :             int _end_col_offset = _token->end_col_offset;
   14203             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   14204      120986 :             _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
   14205      120986 :             if (_res == NULL && PyErr_Occurred()) {
   14206           0 :                 p->error_indicator = 1;
   14207           0 :                 p->level--;
   14208           0 :                 return NULL;
   14209             :             }
   14210      120986 :             goto done;
   14211             :         }
   14212    14899300 :         p->mark = _mark;
   14213    14899300 :         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    14899300 :         if (p->error_indicator) {
   14218           0 :             p->level--;
   14219           0 :             return NULL;
   14220             :         }
   14221    14899300 :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
   14222             :         Token * _keyword;
   14223    14899300 :         if (
   14224    14899300 :             (_keyword = _PyPegen_expect_token(p, 602))  // token='False'
   14225             :         )
   14226             :         {
   14227      115644 :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
   14228      115644 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   14229      115644 :             if (_token == NULL) {
   14230           0 :                 p->level--;
   14231           0 :                 return NULL;
   14232             :             }
   14233      115644 :             int _end_lineno = _token->end_lineno;
   14234             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   14235      115644 :             int _end_col_offset = _token->end_col_offset;
   14236             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   14237      115644 :             _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
   14238      115644 :             if (_res == NULL && PyErr_Occurred()) {
   14239           0 :                 p->error_indicator = 1;
   14240           0 :                 p->level--;
   14241           0 :                 return NULL;
   14242             :             }
   14243      115644 :             goto done;
   14244             :         }
   14245    14783600 :         p->mark = _mark;
   14246    14783600 :         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    14783600 :         if (p->error_indicator) {
   14251           0 :             p->level--;
   14252           0 :             return NULL;
   14253             :         }
   14254    14783600 :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
   14255             :         Token * _keyword;
   14256    14783600 :         if (
   14257    14783600 :             (_keyword = _PyPegen_expect_token(p, 601))  // token='None'
   14258             :         )
   14259             :         {
   14260      377668 :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
   14261      377668 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   14262      377668 :             if (_token == NULL) {
   14263           0 :                 p->level--;
   14264           0 :                 return NULL;
   14265             :             }
   14266      377668 :             int _end_lineno = _token->end_lineno;
   14267             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   14268      377668 :             int _end_col_offset = _token->end_col_offset;
   14269             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   14270      377668 :             _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
   14271      377668 :             if (_res == NULL && PyErr_Occurred()) {
   14272           0 :                 p->error_indicator = 1;
   14273           0 :                 p->level--;
   14274           0 :                 return NULL;
   14275             :             }
   14276      377668 :             goto done;
   14277             :         }
   14278    14406000 :         p->mark = _mark;
   14279    14406000 :         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    14406000 :         if (p->error_indicator) {
   14284           0 :             p->level--;
   14285           0 :             return NULL;
   14286             :         }
   14287    14406000 :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
   14288             :         expr_ty strings_var;
   14289    14406000 :         if (
   14290    14406000 :             _PyPegen_lookahead(1, _PyPegen_string_token, p)
   14291     3423980 :             &&
   14292     3423980 :             (strings_var = strings_rule(p))  // strings
   14293             :         )
   14294             :         {
   14295     3423210 :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
   14296     3423210 :             _res = strings_var;
   14297     3423210 :             goto done;
   14298             :         }
   14299    10982800 :         p->mark = _mark;
   14300    10982800 :         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    10982800 :         if (p->error_indicator) {
   14305         769 :             p->level--;
   14306         769 :             return NULL;
   14307             :         }
   14308    10982000 :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
   14309             :         expr_ty number_var;
   14310    10982000 :         if (
   14311    10982000 :             (number_var = _PyPegen_number_token(p))  // NUMBER
   14312             :         )
   14313             :         {
   14314     5872680 :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
   14315     5872680 :             _res = number_var;
   14316     5872680 :             goto done;
   14317             :         }
   14318     5109310 :         p->mark = _mark;
   14319     5109310 :         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     5109310 :         if (p->error_indicator) {
   14324           2 :             p->level--;
   14325           2 :             return NULL;
   14326             :         }
   14327     5109310 :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
   14328             :         void *_tmp_91_var;
   14329     5109310 :         if (
   14330     5109310 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7)  // token='('
   14331      866593 :             &&
   14332      866593 :             (_tmp_91_var = _tmp_91_rule(p))  // tuple | group | genexp
   14333             :         )
   14334             :         {
   14335      866413 :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
   14336      866413 :             _res = _tmp_91_var;
   14337      866413 :             goto done;
   14338             :         }
   14339     4242900 :         p->mark = _mark;
   14340     4242900 :         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     4242900 :         if (p->error_indicator) {
   14345          67 :             p->level--;
   14346          67 :             return NULL;
   14347             :         }
   14348     4242830 :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
   14349             :         void *_tmp_92_var;
   14350     4242830 :         if (
   14351     4242830 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9)  // token='['
   14352      262274 :             &&
   14353      262274 :             (_tmp_92_var = _tmp_92_rule(p))  // list | listcomp
   14354             :         )
   14355             :         {
   14356      262151 :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
   14357      262151 :             _res = _tmp_92_var;
   14358      262151 :             goto done;
   14359             :         }
   14360     3980680 :         p->mark = _mark;
   14361     3980680 :         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     3980680 :         if (p->error_indicator) {
   14366          53 :             p->level--;
   14367          53 :             return NULL;
   14368             :         }
   14369     3980620 :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
   14370             :         void *_tmp_93_var;
   14371     3980620 :         if (
   14372     3980620 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25)  // token='{'
   14373      112966 :             &&
   14374      112966 :             (_tmp_93_var = _tmp_93_rule(p))  // dict | set | dictcomp | setcomp
   14375             :         )
   14376             :         {
   14377      112870 :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
   14378      112870 :             _res = _tmp_93_var;
   14379      112870 :             goto done;
   14380             :         }
   14381     3867760 :         p->mark = _mark;
   14382     3867760 :         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     3867760 :         if (p->error_indicator) {
   14387          39 :             p->level--;
   14388          39 :             return NULL;
   14389             :         }
   14390     3867720 :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
   14391             :         Token * _literal;
   14392     3867720 :         if (
   14393     3867720 :             (_literal = _PyPegen_expect_token(p, 52))  // token='...'
   14394             :         )
   14395             :         {
   14396       11959 :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
   14397       11959 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   14398       11959 :             if (_token == NULL) {
   14399           0 :                 p->level--;
   14400           0 :                 return NULL;
   14401             :             }
   14402       11959 :             int _end_lineno = _token->end_lineno;
   14403             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   14404       11959 :             int _end_col_offset = _token->end_col_offset;
   14405             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   14406       11959 :             _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
   14407       11959 :             if (_res == NULL && PyErr_Occurred()) {
   14408           0 :                 p->error_indicator = 1;
   14409           0 :                 p->level--;
   14410           0 :                 return NULL;
   14411             :             }
   14412       11959 :             goto done;
   14413             :         }
   14414     3855760 :         p->mark = _mark;
   14415     3855760 :         D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
   14416             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
   14417             :     }
   14418     3855760 :     _res = NULL;
   14419    29091900 :   done:
   14420    29091900 :     p->level--;
   14421    29091900 :     return _res;
   14422             : }
   14423             : 
   14424             : // group: '(' (yield_expr | named_expression) ')' | invalid_group
   14425             : static expr_ty
   14426      293962 : group_rule(Parser *p)
   14427             : {
   14428      293962 :     if (p->level++ == MAXSTACK) {
   14429           0 :         p->error_indicator = 1;
   14430           0 :         PyErr_NoMemory();
   14431             :     }
   14432      293962 :     if (p->error_indicator) {
   14433           0 :         p->level--;
   14434           0 :         return NULL;
   14435             :     }
   14436      293962 :     expr_ty _res = NULL;
   14437      293962 :     int _mark = p->mark;
   14438             :     { // '(' (yield_expr | named_expression) ')'
   14439      293962 :         if (p->error_indicator) {
   14440           0 :             p->level--;
   14441           0 :             return NULL;
   14442             :         }
   14443      293962 :         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      293962 :         if (
   14448      293962 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   14449      293962 :             &&
   14450      293962 :             (a = _tmp_94_rule(p))  // yield_expr | named_expression
   14451      293902 :             &&
   14452      293902 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   14453             :         )
   14454             :         {
   14455      288434 :             D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
   14456      288434 :             _res = a;
   14457      288434 :             if (_res == NULL && PyErr_Occurred()) {
   14458           0 :                 p->error_indicator = 1;
   14459           0 :                 p->level--;
   14460           0 :                 return NULL;
   14461             :             }
   14462      288434 :             goto done;
   14463             :         }
   14464        5528 :         p->mark = _mark;
   14465        5528 :         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        5528 :     if (p->call_invalid_rules) { // invalid_group
   14469          50 :         if (p->error_indicator) {
   14470           0 :             p->level--;
   14471           0 :             return NULL;
   14472             :         }
   14473          50 :         D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
   14474             :         void *invalid_group_var;
   14475          50 :         if (
   14476          50 :             (invalid_group_var = invalid_group_rule(p))  // invalid_group
   14477             :         )
   14478             :         {
   14479           0 :             D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
   14480           0 :             _res = invalid_group_var;
   14481           0 :             goto done;
   14482             :         }
   14483          50 :         p->mark = _mark;
   14484          50 :         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        5528 :     _res = NULL;
   14488      293962 :   done:
   14489      293962 :     p->level--;
   14490      293962 :     return _res;
   14491             : }
   14492             : 
   14493             : // lambdef: 'lambda' lambda_params? ':' expression
   14494             : static expr_ty
   14495     2305080 : lambdef_rule(Parser *p)
   14496             : {
   14497     2305080 :     if (p->level++ == MAXSTACK) {
   14498           0 :         p->error_indicator = 1;
   14499           0 :         PyErr_NoMemory();
   14500             :     }
   14501     2305080 :     if (p->error_indicator) {
   14502           0 :         p->level--;
   14503           0 :         return NULL;
   14504             :     }
   14505     2305080 :     expr_ty _res = NULL;
   14506     2305080 :     int _mark = p->mark;
   14507     2305080 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   14508           0 :         p->error_indicator = 1;
   14509           0 :         p->level--;
   14510           0 :         return NULL;
   14511             :     }
   14512     2305080 :     int _start_lineno = p->tokens[_mark]->lineno;
   14513             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   14514     2305080 :     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     2305080 :         if (p->error_indicator) {
   14518           0 :             p->level--;
   14519           0 :             return NULL;
   14520             :         }
   14521     2305080 :         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     2305080 :         if (
   14527     2305080 :             (_keyword = _PyPegen_expect_token(p, 586))  // token='lambda'
   14528       37587 :             &&
   14529       37587 :             (a = lambda_params_rule(p), !p->error_indicator)  // lambda_params?
   14530       37547 :             &&
   14531       37547 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   14532       37497 :             &&
   14533       37497 :             (b = expression_rule(p))  // expression
   14534             :         )
   14535             :         {
   14536       37490 :             D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
   14537       37490 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   14538       37490 :             if (_token == NULL) {
   14539           0 :                 p->level--;
   14540           0 :                 return NULL;
   14541             :             }
   14542       37490 :             int _end_lineno = _token->end_lineno;
   14543             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   14544       37490 :             int _end_col_offset = _token->end_col_offset;
   14545             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   14546       37490 :             _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
   14547       37490 :             if (_res == NULL && PyErr_Occurred()) {
   14548           0 :                 p->error_indicator = 1;
   14549           0 :                 p->level--;
   14550           0 :                 return NULL;
   14551             :             }
   14552       37490 :             goto done;
   14553             :         }
   14554     2267590 :         p->mark = _mark;
   14555     2267590 :         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     2267590 :     _res = NULL;
   14559     2305080 :   done:
   14560     2305080 :     p->level--;
   14561     2305080 :     return _res;
   14562             : }
   14563             : 
   14564             : // lambda_params: invalid_lambda_parameters | lambda_parameters
   14565             : static arguments_ty
   14566       37587 : lambda_params_rule(Parser *p)
   14567             : {
   14568       37587 :     if (p->level++ == MAXSTACK) {
   14569           0 :         p->error_indicator = 1;
   14570           0 :         PyErr_NoMemory();
   14571             :     }
   14572       37587 :     if (p->error_indicator) {
   14573           0 :         p->level--;
   14574           0 :         return NULL;
   14575             :     }
   14576       37587 :     arguments_ty _res = NULL;
   14577       37587 :     int _mark = p->mark;
   14578       37587 :     if (p->call_invalid_rules) { // invalid_lambda_parameters
   14579          52 :         if (p->error_indicator) {
   14580           0 :             p->level--;
   14581           0 :             return NULL;
   14582             :         }
   14583          52 :         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          52 :         if (
   14586          52 :             (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p))  // invalid_lambda_parameters
   14587             :         )
   14588             :         {
   14589           0 :             D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
   14590           0 :             _res = invalid_lambda_parameters_var;
   14591           0 :             goto done;
   14592             :         }
   14593          52 :         p->mark = _mark;
   14594          52 :         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       37587 :         if (p->error_indicator) {
   14599          27 :             p->level--;
   14600          27 :             return NULL;
   14601             :         }
   14602       37560 :         D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
   14603             :         arguments_ty lambda_parameters_var;
   14604       37560 :         if (
   14605       37560 :             (lambda_parameters_var = lambda_parameters_rule(p))  // lambda_parameters
   14606             :         )
   14607             :         {
   14608       34819 :             D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
   14609       34819 :             _res = lambda_parameters_var;
   14610       34819 :             goto done;
   14611             :         }
   14612        2741 :         p->mark = _mark;
   14613        2741 :         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        2741 :     _res = NULL;
   14617       37560 :   done:
   14618       37560 :     p->level--;
   14619       37560 :     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
   14629       37560 : lambda_parameters_rule(Parser *p)
   14630             : {
   14631       37560 :     if (p->level++ == MAXSTACK) {
   14632           0 :         p->error_indicator = 1;
   14633           0 :         PyErr_NoMemory();
   14634             :     }
   14635       37560 :     if (p->error_indicator) {
   14636           0 :         p->level--;
   14637           0 :         return NULL;
   14638             :     }
   14639       37560 :     arguments_ty _res = NULL;
   14640       37560 :     int _mark = p->mark;
   14641             :     { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
   14642       37560 :         if (p->error_indicator) {
   14643           0 :             p->level--;
   14644           0 :             return NULL;
   14645             :         }
   14646       37560 :         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       37560 :         if (
   14652       37560 :             (a = lambda_slash_no_default_rule(p))  // lambda_slash_no_default
   14653          79 :             &&
   14654          79 :             (b = (asdl_arg_seq*)_loop0_95_rule(p))  // lambda_param_no_default*
   14655          79 :             &&
   14656          79 :             (c = _loop0_96_rule(p))  // lambda_param_with_default*
   14657          79 :             &&
   14658          79 :             (d = lambda_star_etc_rule(p), !p->error_indicator)  // lambda_star_etc?
   14659             :         )
   14660             :         {
   14661          77 :             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          77 :             _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
   14663          77 :             if (_res == NULL && PyErr_Occurred()) {
   14664           0 :                 p->error_indicator = 1;
   14665           0 :                 p->level--;
   14666           0 :                 return NULL;
   14667             :             }
   14668          77 :             goto done;
   14669             :         }
   14670       37483 :         p->mark = _mark;
   14671       37483 :         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       37483 :         if (p->error_indicator) {
   14676           2 :             p->level--;
   14677           2 :             return NULL;
   14678             :         }
   14679       37481 :         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       37481 :         if (
   14684       37481 :             (a = lambda_slash_with_default_rule(p))  // lambda_slash_with_default
   14685          58 :             &&
   14686          58 :             (b = _loop0_97_rule(p))  // lambda_param_with_default*
   14687          58 :             &&
   14688          58 :             (c = lambda_star_etc_rule(p), !p->error_indicator)  // lambda_star_etc?
   14689             :         )
   14690             :         {
   14691          57 :             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          57 :             _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
   14693          57 :             if (_res == NULL && PyErr_Occurred()) {
   14694           0 :                 p->error_indicator = 1;
   14695           0 :                 p->level--;
   14696           0 :                 return NULL;
   14697             :             }
   14698          57 :             goto done;
   14699             :         }
   14700       37424 :         p->mark = _mark;
   14701       37424 :         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       37424 :         if (p->error_indicator) {
   14706           1 :             p->level--;
   14707           1 :             return NULL;
   14708             :         }
   14709       37423 :         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       37423 :         if (
   14714       37423 :             (a = (asdl_arg_seq*)_loop1_98_rule(p))  // lambda_param_no_default+
   14715       34292 :             &&
   14716       34292 :             (b = _loop0_99_rule(p))  // lambda_param_with_default*
   14717       34292 :             &&
   14718       34292 :             (c = lambda_star_etc_rule(p), !p->error_indicator)  // lambda_star_etc?
   14719             :         )
   14720             :         {
   14721       34285 :             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       34285 :             _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
   14723       34285 :             if (_res == NULL && PyErr_Occurred()) {
   14724           0 :                 p->error_indicator = 1;
   14725           0 :                 p->level--;
   14726           0 :                 return NULL;
   14727             :             }
   14728       34285 :             goto done;
   14729             :         }
   14730        3138 :         p->mark = _mark;
   14731        3138 :         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        3138 :         if (p->error_indicator) {
   14736           7 :             p->level--;
   14737           7 :             return NULL;
   14738             :         }
   14739        3131 :         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        3131 :         if (
   14743        3131 :             (a = _loop1_100_rule(p))  // lambda_param_with_default+
   14744         144 :             &&
   14745         144 :             (b = lambda_star_etc_rule(p), !p->error_indicator)  // lambda_star_etc?
   14746             :         )
   14747             :         {
   14748         144 :             D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
   14749         144 :             _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
   14750         144 :             if (_res == NULL && PyErr_Occurred()) {
   14751           0 :                 p->error_indicator = 1;
   14752           0 :                 p->level--;
   14753           0 :                 return NULL;
   14754             :             }
   14755         144 :             goto done;
   14756             :         }
   14757        2987 :         p->mark = _mark;
   14758        2987 :         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        2987 :         if (p->error_indicator) {
   14763           0 :             p->level--;
   14764           0 :             return NULL;
   14765             :         }
   14766        2987 :         D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
   14767             :         StarEtc* a;
   14768        2987 :         if (
   14769        2987 :             (a = lambda_star_etc_rule(p))  // lambda_star_etc
   14770             :         )
   14771             :         {
   14772         256 :             D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
   14773         256 :             _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
   14774         256 :             if (_res == NULL && PyErr_Occurred()) {
   14775           0 :                 p->error_indicator = 1;
   14776           0 :                 p->level--;
   14777           0 :                 return NULL;
   14778             :             }
   14779         256 :             goto done;
   14780             :         }
   14781        2731 :         p->mark = _mark;
   14782        2731 :         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        2731 :     _res = NULL;
   14786       37550 :   done:
   14787       37550 :     p->level--;
   14788       37550 :     return _res;
   14789             : }
   14790             : 
   14791             : // lambda_slash_no_default:
   14792             : //     | lambda_param_no_default+ '/' ','
   14793             : //     | lambda_param_no_default+ '/' &':'
   14794             : static asdl_arg_seq*
   14795       37633 : lambda_slash_no_default_rule(Parser *p)
   14796             : {
   14797       37633 :     if (p->level++ == MAXSTACK) {
   14798           0 :         p->error_indicator = 1;
   14799           0 :         PyErr_NoMemory();
   14800             :     }
   14801       37633 :     if (p->error_indicator) {
   14802           0 :         p->level--;
   14803           0 :         return NULL;
   14804             :     }
   14805       37633 :     asdl_arg_seq* _res = NULL;
   14806       37633 :     int _mark = p->mark;
   14807             :     { // lambda_param_no_default+ '/' ','
   14808       37633 :         if (p->error_indicator) {
   14809           0 :             p->level--;
   14810           0 :             return NULL;
   14811             :         }
   14812       37633 :         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       37633 :         if (
   14817       37633 :             (a = (asdl_arg_seq*)_loop1_101_rule(p))  // lambda_param_no_default+
   14818       34410 :             &&
   14819       34410 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
   14820          89 :             &&
   14821          89 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
   14822             :         )
   14823             :         {
   14824          76 :             D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
   14825          76 :             _res = a;
   14826          76 :             if (_res == NULL && PyErr_Occurred()) {
   14827           0 :                 p->error_indicator = 1;
   14828           0 :                 p->level--;
   14829           0 :                 return NULL;
   14830             :             }
   14831          76 :             goto done;
   14832             :         }
   14833       37557 :         p->mark = _mark;
   14834       37557 :         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       37557 :         if (p->error_indicator) {
   14839           0 :             p->level--;
   14840           0 :             return NULL;
   14841             :         }
   14842       37557 :         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       37557 :         if (
   14846       37557 :             (a = (asdl_arg_seq*)_loop1_102_rule(p))  // lambda_param_no_default+
   14847       34334 :             &&
   14848       34334 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
   14849          13 :             &&
   14850          13 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11)  // token=':'
   14851             :         )
   14852             :         {
   14853          13 :             D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
   14854          13 :             _res = a;
   14855          13 :             if (_res == NULL && PyErr_Occurred()) {
   14856           0 :                 p->error_indicator = 1;
   14857           0 :                 p->level--;
   14858           0 :                 return NULL;
   14859             :             }
   14860          13 :             goto done;
   14861             :         }
   14862       37544 :         p->mark = _mark;
   14863       37544 :         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       37544 :     _res = NULL;
   14867       37633 :   done:
   14868       37633 :     p->level--;
   14869       37633 :     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*
   14876       37596 : lambda_slash_with_default_rule(Parser *p)
   14877             : {
   14878       37596 :     if (p->level++ == MAXSTACK) {
   14879           0 :         p->error_indicator = 1;
   14880           0 :         PyErr_NoMemory();
   14881             :     }
   14882       37596 :     if (p->error_indicator) {
   14883           0 :         p->level--;
   14884           0 :         return NULL;
   14885             :     }
   14886       37596 :     SlashWithDefault* _res = NULL;
   14887       37596 :     int _mark = p->mark;
   14888             :     { // lambda_param_no_default* lambda_param_with_default+ '/' ','
   14889       37596 :         if (p->error_indicator) {
   14890           0 :             p->level--;
   14891           0 :             return NULL;
   14892             :         }
   14893       37596 :         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       37596 :         if (
   14899       37596 :             (a = _loop0_103_rule(p))  // lambda_param_no_default*
   14900       37596 :             &&
   14901       37596 :             (b = _loop1_104_rule(p))  // lambda_param_with_default+
   14902         312 :             &&
   14903         312 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
   14904          68 :             &&
   14905          68 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
   14906             :         )
   14907             :         {
   14908          55 :             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          55 :             _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq* ) a , b );
   14910          55 :             if (_res == NULL && PyErr_Occurred()) {
   14911           0 :                 p->error_indicator = 1;
   14912           0 :                 p->level--;
   14913           0 :                 return NULL;
   14914             :             }
   14915          55 :             goto done;
   14916             :         }
   14917       37541 :         p->mark = _mark;
   14918       37541 :         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       37541 :         if (p->error_indicator) {
   14923           2 :             p->level--;
   14924           2 :             return NULL;
   14925             :         }
   14926       37539 :         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       37539 :         if (
   14931       37539 :             (a = _loop0_105_rule(p))  // lambda_param_no_default*
   14932       37539 :             &&
   14933       37539 :             (b = _loop1_106_rule(p))  // lambda_param_with_default+
   14934         257 :             &&
   14935         257 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
   14936          13 :             &&
   14937          13 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11)  // token=':'
   14938             :         )
   14939             :         {
   14940           9 :             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           9 :             _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq* ) a , b );
   14942           9 :             if (_res == NULL && PyErr_Occurred()) {
   14943           0 :                 p->error_indicator = 1;
   14944           0 :                 p->level--;
   14945           0 :                 return NULL;
   14946             :             }
   14947           9 :             goto done;
   14948             :         }
   14949       37530 :         p->mark = _mark;
   14950       37530 :         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       37530 :     _res = NULL;
   14954       37594 :   done:
   14955       37594 :     p->level--;
   14956       37594 :     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*
   14965       37560 : lambda_star_etc_rule(Parser *p)
   14966             : {
   14967       37560 :     if (p->level++ == MAXSTACK) {
   14968           0 :         p->error_indicator = 1;
   14969           0 :         PyErr_NoMemory();
   14970             :     }
   14971       37560 :     if (p->error_indicator) {
   14972           0 :         p->level--;
   14973           0 :         return NULL;
   14974             :     }
   14975       37560 :     StarEtc* _res = NULL;
   14976       37560 :     int _mark = p->mark;
   14977       37560 :     if (p->call_invalid_rules) { // invalid_lambda_star_etc
   14978          25 :         if (p->error_indicator) {
   14979           0 :             p->level--;
   14980           0 :             return NULL;
   14981             :         }
   14982          25 :         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          25 :         if (
   14985          25 :             (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p))  // invalid_lambda_star_etc
   14986             :         )
   14987             :         {
   14988           0 :             D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
   14989           0 :             _res = invalid_lambda_star_etc_var;
   14990           0 :             goto done;
   14991             :         }
   14992          25 :         p->mark = _mark;
   14993          25 :         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       37560 :         if (p->error_indicator) {
   14998           6 :             p->level--;
   14999           6 :             return NULL;
   15000             :         }
   15001       37554 :         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       37554 :         if (
   15007       37554 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   15008         407 :             &&
   15009         407 :             (a = lambda_param_no_default_rule(p))  // lambda_param_no_default
   15010         302 :             &&
   15011         302 :             (b = _loop0_107_rule(p))  // lambda_param_maybe_default*
   15012         302 :             &&
   15013         302 :             (c = lambda_kwds_rule(p), !p->error_indicator)  // lambda_kwds?
   15014             :         )
   15015             :         {
   15016         298 :             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         298 :             _res = _PyPegen_star_etc ( p , a , b , c );
   15018         298 :             if (_res == NULL && PyErr_Occurred()) {
   15019           0 :                 p->error_indicator = 1;
   15020           0 :                 p->level--;
   15021           0 :                 return NULL;
   15022             :             }
   15023         298 :             goto done;
   15024             :         }
   15025       37256 :         p->mark = _mark;
   15026       37256 :         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       37256 :         if (p->error_indicator) {
   15031           4 :             p->level--;
   15032           4 :             return NULL;
   15033             :         }
   15034       37252 :         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       37252 :         if (
   15040       37252 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   15041         105 :             &&
   15042         105 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
   15043         103 :             &&
   15044         103 :             (b = _loop1_108_rule(p))  // lambda_param_maybe_default+
   15045         102 :             &&
   15046         102 :             (c = lambda_kwds_rule(p), !p->error_indicator)  // lambda_kwds?
   15047             :         )
   15048             :         {
   15049         102 :             D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
   15050         102 :             _res = _PyPegen_star_etc ( p , NULL , b , c );
   15051         102 :             if (_res == NULL && PyErr_Occurred()) {
   15052           0 :                 p->error_indicator = 1;
   15053           0 :                 p->level--;
   15054           0 :                 return NULL;
   15055             :             }
   15056         102 :             goto done;
   15057             :         }
   15058       37150 :         p->mark = _mark;
   15059       37150 :         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       37150 :         if (p->error_indicator) {
   15064           0 :             p->level--;
   15065           0 :             return NULL;
   15066             :         }
   15067       37150 :         D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
   15068             :         arg_ty a;
   15069       37150 :         if (
   15070       37150 :             (a = lambda_kwds_rule(p))  // lambda_kwds
   15071             :         )
   15072             :         {
   15073          19 :             D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
   15074          19 :             _res = _PyPegen_star_etc ( p , NULL , NULL , a );
   15075          19 :             if (_res == NULL && PyErr_Occurred()) {
   15076           0 :                 p->error_indicator = 1;
   15077           0 :                 p->level--;
   15078           0 :                 return NULL;
   15079             :             }
   15080          19 :             goto done;
   15081             :         }
   15082       37131 :         p->mark = _mark;
   15083       37131 :         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       37131 :     _res = NULL;
   15087       37550 :   done:
   15088       37550 :     p->level--;
   15089       37550 :     return _res;
   15090             : }
   15091             : 
   15092             : // lambda_kwds: invalid_lambda_kwds | '**' lambda_param_no_default
   15093             : static arg_ty
   15094       37554 : lambda_kwds_rule(Parser *p)
   15095             : {
   15096       37554 :     if (p->level++ == MAXSTACK) {
   15097           0 :         p->error_indicator = 1;
   15098           0 :         PyErr_NoMemory();
   15099             :     }
   15100       37554 :     if (p->error_indicator) {
   15101           0 :         p->level--;
   15102           0 :         return NULL;
   15103             :     }
   15104       37554 :     arg_ty _res = NULL;
   15105       37554 :     int _mark = p->mark;
   15106       37554 :     if (p->call_invalid_rules) { // invalid_lambda_kwds
   15107          19 :         if (p->error_indicator) {
   15108           0 :             p->level--;
   15109           0 :             return NULL;
   15110             :         }
   15111          19 :         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          19 :         if (
   15114          19 :             (invalid_lambda_kwds_var = invalid_lambda_kwds_rule(p))  // invalid_lambda_kwds
   15115             :         )
   15116             :         {
   15117           0 :             D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_kwds"));
   15118           0 :             _res = invalid_lambda_kwds_var;
   15119           0 :             goto done;
   15120             :         }
   15121          19 :         p->mark = _mark;
   15122          19 :         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       37554 :         if (p->error_indicator) {
   15127           7 :             p->level--;
   15128           7 :             return NULL;
   15129             :         }
   15130       37547 :         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       37547 :         if (
   15134       37547 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   15135         133 :             &&
   15136         133 :             (a = lambda_param_no_default_rule(p))  // lambda_param_no_default
   15137             :         )
   15138             :         {
   15139         132 :             D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
   15140         132 :             _res = a;
   15141         132 :             if (_res == NULL && PyErr_Occurred()) {
   15142           0 :                 p->error_indicator = 1;
   15143           0 :                 p->level--;
   15144           0 :                 return NULL;
   15145             :             }
   15146         132 :             goto done;
   15147             :         }
   15148       37415 :         p->mark = _mark;
   15149       37415 :         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       37415 :     _res = NULL;
   15153       37547 :   done:
   15154       37547 :     p->level--;
   15155       37547 :     return _res;
   15156             : }
   15157             : 
   15158             : // lambda_param_no_default: lambda_param ',' | lambda_param &':'
   15159             : static arg_ty
   15160     1034510 : lambda_param_no_default_rule(Parser *p)
   15161             : {
   15162     1034510 :     if (p->level++ == MAXSTACK) {
   15163           0 :         p->error_indicator = 1;
   15164           0 :         PyErr_NoMemory();
   15165             :     }
   15166     1034510 :     if (p->error_indicator) {
   15167           0 :         p->level--;
   15168           0 :         return NULL;
   15169             :     }
   15170     1034510 :     arg_ty _res = NULL;
   15171     1034510 :     int _mark = p->mark;
   15172             :     { // lambda_param ','
   15173     1034510 :         if (p->error_indicator) {
   15174           0 :             p->level--;
   15175           0 :             return NULL;
   15176             :         }
   15177     1034510 :         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     1034510 :         if (
   15181     1034510 :             (a = lambda_param_rule(p))  // lambda_param
   15182      847972 :             &&
   15183      847972 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   15184             :         )
   15185             :         {
   15186      675609 :             D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
   15187      675609 :             _res = a;
   15188      675609 :             if (_res == NULL && PyErr_Occurred()) {
   15189           0 :                 p->error_indicator = 1;
   15190           0 :                 p->level--;
   15191           0 :                 return NULL;
   15192             :             }
   15193      675609 :             goto done;
   15194             :         }
   15195      358897 :         p->mark = _mark;
   15196      358897 :         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      358897 :         if (p->error_indicator) {
   15201           0 :             p->level--;
   15202           0 :             return NULL;
   15203             :         }
   15204      358897 :         D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
   15205             :         arg_ty a;
   15206      358897 :         if (
   15207      358897 :             (a = lambda_param_rule(p))  // lambda_param
   15208      172363 :             &&
   15209      172363 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11)  // token=':'
   15210             :         )
   15211             :         {
   15212      170859 :             D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
   15213      170859 :             _res = a;
   15214      170859 :             if (_res == NULL && PyErr_Occurred()) {
   15215           0 :                 p->error_indicator = 1;
   15216           0 :                 p->level--;
   15217           0 :                 return NULL;
   15218             :             }
   15219      170859 :             goto done;
   15220             :         }
   15221      188038 :         p->mark = _mark;
   15222      188038 :         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      188038 :     _res = NULL;
   15226     1034510 :   done:
   15227     1034510 :     p->level--;
   15228     1034510 :     return _res;
   15229             : }
   15230             : 
   15231             : // lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
   15232             : static NameDefaultPair*
   15233      113713 : lambda_param_with_default_rule(Parser *p)
   15234             : {
   15235      113713 :     if (p->level++ == MAXSTACK) {
   15236           0 :         p->error_indicator = 1;
   15237           0 :         PyErr_NoMemory();
   15238             :     }
   15239      113713 :     if (p->error_indicator) {
   15240           0 :         p->level--;
   15241           0 :         return NULL;
   15242             :     }
   15243      113713 :     NameDefaultPair* _res = NULL;
   15244      113713 :     int _mark = p->mark;
   15245             :     { // lambda_param default ','
   15246      113713 :         if (p->error_indicator) {
   15247           0 :             p->level--;
   15248           0 :             return NULL;
   15249             :         }
   15250      113713 :         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      113713 :         if (
   15255      113713 :             (a = lambda_param_rule(p))  // lambda_param
   15256        1005 :             &&
   15257        1005 :             (c = default_rule(p))  // default
   15258         971 :             &&
   15259         971 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   15260             :         )
   15261             :         {
   15262         353 :             D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
   15263         353 :             _res = _PyPegen_name_default_pair ( p , a , c , NULL );
   15264         353 :             if (_res == NULL && PyErr_Occurred()) {
   15265           0 :                 p->error_indicator = 1;
   15266           0 :                 p->level--;
   15267           0 :                 return NULL;
   15268             :             }
   15269         353 :             goto done;
   15270             :         }
   15271      113360 :         p->mark = _mark;
   15272      113360 :         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      113360 :         if (p->error_indicator) {
   15277           2 :             p->level--;
   15278           2 :             return NULL;
   15279             :         }
   15280      113358 :         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      113358 :         if (
   15284      113358 :             (a = lambda_param_rule(p))  // lambda_param
   15285         650 :             &&
   15286         650 :             (c = default_rule(p))  // default
   15287         618 :             &&
   15288         618 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11)  // token=':'
   15289             :         )
   15290             :         {
   15291         618 :             D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
   15292         618 :             _res = _PyPegen_name_default_pair ( p , a , c , NULL );
   15293         618 :             if (_res == NULL && PyErr_Occurred()) {
   15294           0 :                 p->error_indicator = 1;
   15295           0 :                 p->level--;
   15296           0 :                 return NULL;
   15297             :             }
   15298         618 :             goto done;
   15299             :         }
   15300      112740 :         p->mark = _mark;
   15301      112740 :         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      112740 :     _res = NULL;
   15305      113711 :   done:
   15306      113711 :     p->level--;
   15307      113711 :     return _res;
   15308             : }
   15309             : 
   15310             : // lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
   15311             : static NameDefaultPair*
   15312         775 : lambda_param_maybe_default_rule(Parser *p)
   15313             : {
   15314         775 :     if (p->level++ == MAXSTACK) {
   15315           0 :         p->error_indicator = 1;
   15316           0 :         PyErr_NoMemory();
   15317             :     }
   15318         775 :     if (p->error_indicator) {
   15319           0 :         p->level--;
   15320           0 :         return NULL;
   15321             :     }
   15322         775 :     NameDefaultPair* _res = NULL;
   15323         775 :     int _mark = p->mark;
   15324             :     { // lambda_param default? ','
   15325         775 :         if (p->error_indicator) {
   15326           0 :             p->level--;
   15327           0 :             return NULL;
   15328             :         }
   15329         775 :         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         775 :         if (
   15334         775 :             (a = lambda_param_rule(p))  // lambda_param
   15335         280 :             &&
   15336         280 :             (c = default_rule(p), !p->error_indicator)  // default?
   15337         280 :             &&
   15338         280 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   15339             :         )
   15340             :         {
   15341         186 :             D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
   15342         186 :             _res = _PyPegen_name_default_pair ( p , a , c , NULL );
   15343         186 :             if (_res == NULL && PyErr_Occurred()) {
   15344           0 :                 p->error_indicator = 1;
   15345           0 :                 p->level--;
   15346           0 :                 return NULL;
   15347             :             }
   15348         186 :             goto done;
   15349             :         }
   15350         589 :         p->mark = _mark;
   15351         589 :         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         589 :         if (p->error_indicator) {
   15356           0 :             p->level--;
   15357           0 :             return NULL;
   15358             :         }
   15359         589 :         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         589 :         if (
   15363         589 :             (a = lambda_param_rule(p))  // lambda_param
   15364          94 :             &&
   15365          94 :             (c = default_rule(p), !p->error_indicator)  // default?
   15366          94 :             &&
   15367          94 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11)  // token=':'
   15368             :         )
   15369             :         {
   15370          92 :             D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
   15371          92 :             _res = _PyPegen_name_default_pair ( p , a , c , NULL );
   15372          92 :             if (_res == NULL && PyErr_Occurred()) {
   15373           0 :                 p->error_indicator = 1;
   15374           0 :                 p->level--;
   15375           0 :                 return NULL;
   15376             :             }
   15377          92 :             goto done;
   15378             :         }
   15379         497 :         p->mark = _mark;
   15380         497 :         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         497 :     _res = NULL;
   15384         775 :   done:
   15385         775 :     p->level--;
   15386         775 :     return _res;
   15387             : }
   15388             : 
   15389             : // lambda_param: NAME
   15390             : static arg_ty
   15391     1621880 : lambda_param_rule(Parser *p)
   15392             : {
   15393     1621880 :     if (p->level++ == MAXSTACK) {
   15394           0 :         p->error_indicator = 1;
   15395           0 :         PyErr_NoMemory();
   15396             :     }
   15397     1621880 :     if (p->error_indicator) {
   15398           0 :         p->level--;
   15399           0 :         return NULL;
   15400             :     }
   15401     1621880 :     arg_ty _res = NULL;
   15402     1621880 :     int _mark = p->mark;
   15403     1621880 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   15404           0 :         p->error_indicator = 1;
   15405           0 :         p->level--;
   15406           0 :         return NULL;
   15407             :     }
   15408     1621880 :     int _start_lineno = p->tokens[_mark]->lineno;
   15409             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   15410     1621880 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   15411             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   15412             :     { // NAME
   15413     1621880 :         if (p->error_indicator) {
   15414           0 :             p->level--;
   15415           0 :             return NULL;
   15416             :         }
   15417     1621880 :         D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
   15418             :         expr_ty a;
   15419     1621880 :         if (
   15420     1621880 :             (a = _PyPegen_name_token(p))  // NAME
   15421             :         )
   15422             :         {
   15423     1022400 :             D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
   15424     1022400 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   15425     1022400 :             if (_token == NULL) {
   15426           0 :                 p->level--;
   15427           0 :                 return NULL;
   15428             :             }
   15429     1022400 :             int _end_lineno = _token->end_lineno;
   15430             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   15431     1022400 :             int _end_col_offset = _token->end_col_offset;
   15432             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   15433     1022400 :             _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
   15434     1022400 :             if (_res == NULL && PyErr_Occurred()) {
   15435           0 :                 p->error_indicator = 1;
   15436           0 :                 p->level--;
   15437           0 :                 return NULL;
   15438             :             }
   15439     1022400 :             goto done;
   15440             :         }
   15441      599479 :         p->mark = _mark;
   15442      599479 :         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      599479 :     _res = NULL;
   15446     1621880 :   done:
   15447     1621880 :     p->level--;
   15448     1621880 :     return _res;
   15449             : }
   15450             : 
   15451             : // strings: STRING+
   15452             : static expr_ty
   15453     3427630 : strings_rule(Parser *p)
   15454             : {
   15455     3427630 :     if (p->level++ == MAXSTACK) {
   15456           0 :         p->error_indicator = 1;
   15457           0 :         PyErr_NoMemory();
   15458             :     }
   15459     3427630 :     if (p->error_indicator) {
   15460           0 :         p->level--;
   15461           0 :         return NULL;
   15462             :     }
   15463     3427630 :     expr_ty _res = NULL;
   15464     3427630 :     if (_PyPegen_is_memoized(p, strings_type, &_res)) {
   15465     1816620 :         p->level--;
   15466     1816620 :         return _res;
   15467             :     }
   15468     1611000 :     int _mark = p->mark;
   15469             :     { // STRING+
   15470     1611000 :         if (p->error_indicator) {
   15471           0 :             p->level--;
   15472           0 :             return NULL;
   15473             :         }
   15474     1611000 :         D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
   15475             :         asdl_seq * a;
   15476     1611000 :         if (
   15477     1611000 :             (a = _loop1_109_rule(p))  // STRING+
   15478             :         )
   15479             :         {
   15480     1607680 :             D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
   15481     1607680 :             _res = _PyPegen_concatenate_strings ( p , a );
   15482     1607680 :             if (_res == NULL && PyErr_Occurred()) {
   15483         767 :                 p->error_indicator = 1;
   15484         767 :                 p->level--;
   15485         767 :                 return NULL;
   15486             :             }
   15487     1606910 :             goto done;
   15488             :         }
   15489        3328 :         p->mark = _mark;
   15490        3328 :         D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
   15491             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
   15492             :     }
   15493        3328 :     _res = NULL;
   15494     1610240 :   done:
   15495     1610240 :     _PyPegen_insert_memo(p, _mark, strings_type, _res);
   15496     1610240 :     p->level--;
   15497     1610240 :     return _res;
   15498             : }
   15499             : 
   15500             : // list: '[' star_named_expressions? ']'
   15501             : static expr_ty
   15502      264426 : list_rule(Parser *p)
   15503             : {
   15504      264426 :     if (p->level++ == MAXSTACK) {
   15505           0 :         p->error_indicator = 1;
   15506           0 :         PyErr_NoMemory();
   15507             :     }
   15508      264426 :     if (p->error_indicator) {
   15509           0 :         p->level--;
   15510           0 :         return NULL;
   15511             :     }
   15512      264426 :     expr_ty _res = NULL;
   15513      264426 :     int _mark = p->mark;
   15514      264426 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   15515           0 :         p->error_indicator = 1;
   15516           0 :         p->level--;
   15517           0 :         return NULL;
   15518             :     }
   15519      264426 :     int _start_lineno = p->tokens[_mark]->lineno;
   15520             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   15521      264426 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   15522             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   15523             :     { // '[' star_named_expressions? ']'
   15524      264426 :         if (p->error_indicator) {
   15525           0 :             p->level--;
   15526           0 :             return NULL;
   15527             :         }
   15528      264426 :         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      264426 :         if (
   15533      264426 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   15534      262299 :             &&
   15535      262299 :             (a = star_named_expressions_rule(p), !p->error_indicator)  // star_named_expressions?
   15536      262265 :             &&
   15537      262265 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   15538             :         )
   15539             :         {
   15540      232831 :             D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
   15541      232831 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   15542      232831 :             if (_token == NULL) {
   15543           0 :                 p->level--;
   15544           0 :                 return NULL;
   15545             :             }
   15546      232831 :             int _end_lineno = _token->end_lineno;
   15547             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   15548      232831 :             int _end_col_offset = _token->end_col_offset;
   15549             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   15550      232831 :             _res = _PyAST_List ( a , Load , EXTRA );
   15551      232831 :             if (_res == NULL && PyErr_Occurred()) {
   15552           0 :                 p->error_indicator = 1;
   15553           0 :                 p->level--;
   15554           0 :                 return NULL;
   15555             :             }
   15556      232831 :             goto done;
   15557             :         }
   15558       31595 :         p->mark = _mark;
   15559       31595 :         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       31595 :     _res = NULL;
   15563      264426 :   done:
   15564      264426 :     p->level--;
   15565      264426 :     return _res;
   15566             : }
   15567             : 
   15568             : // tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
   15569             : static expr_ty
   15570      868733 : tuple_rule(Parser *p)
   15571             : {
   15572      868733 :     if (p->level++ == MAXSTACK) {
   15573           0 :         p->error_indicator = 1;
   15574           0 :         PyErr_NoMemory();
   15575             :     }
   15576      868733 :     if (p->error_indicator) {
   15577           0 :         p->level--;
   15578           0 :         return NULL;
   15579             :     }
   15580      868733 :     expr_ty _res = NULL;
   15581      868733 :     int _mark = p->mark;
   15582      868733 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   15583           0 :         p->error_indicator = 1;
   15584           0 :         p->level--;
   15585           0 :         return NULL;
   15586             :     }
   15587      868733 :     int _start_lineno = p->tokens[_mark]->lineno;
   15588             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   15589      868733 :     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      868733 :         if (p->error_indicator) {
   15593           0 :             p->level--;
   15594           0 :             return NULL;
   15595             :         }
   15596      868733 :         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      868733 :         if (
   15601      868733 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   15602      866646 :             &&
   15603      866646 :             (a = _tmp_110_rule(p), !p->error_indicator)  // [star_named_expression ',' star_named_expressions?]
   15604      866595 :             &&
   15605      866595 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   15606             :         )
   15607             :         {
   15608      572607 :             D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
   15609      572607 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   15610      572607 :             if (_token == NULL) {
   15611           0 :                 p->level--;
   15612           0 :                 return NULL;
   15613             :             }
   15614      572607 :             int _end_lineno = _token->end_lineno;
   15615             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   15616      572607 :             int _end_col_offset = _token->end_col_offset;
   15617             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   15618      572607 :             _res = _PyAST_Tuple ( a , Load , EXTRA );
   15619      572607 :             if (_res == NULL && PyErr_Occurred()) {
   15620           0 :                 p->error_indicator = 1;
   15621           0 :                 p->level--;
   15622           0 :                 return NULL;
   15623             :             }
   15624      572607 :             goto done;
   15625             :         }
   15626      296126 :         p->mark = _mark;
   15627      296126 :         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      296126 :     _res = NULL;
   15631      868733 :   done:
   15632      868733 :     p->level--;
   15633      868733 :     return _res;
   15634             : }
   15635             : 
   15636             : // set: '{' star_named_expressions '}'
   15637             : static expr_ty
   15638       13742 : set_rule(Parser *p)
   15639             : {
   15640       13742 :     if (p->level++ == MAXSTACK) {
   15641           0 :         p->error_indicator = 1;
   15642           0 :         PyErr_NoMemory();
   15643             :     }
   15644       13742 :     if (p->error_indicator) {
   15645           0 :         p->level--;
   15646           0 :         return NULL;
   15647             :     }
   15648       13742 :     expr_ty _res = NULL;
   15649       13742 :     int _mark = p->mark;
   15650       13742 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   15651           0 :         p->error_indicator = 1;
   15652           0 :         p->level--;
   15653           0 :         return NULL;
   15654             :     }
   15655       13742 :     int _start_lineno = p->tokens[_mark]->lineno;
   15656             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   15657       13742 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   15658             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   15659             :     { // '{' star_named_expressions '}'
   15660       13742 :         if (p->error_indicator) {
   15661           0 :             p->level--;
   15662           0 :             return NULL;
   15663             :         }
   15664       13742 :         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       13742 :         if (
   15669       13742 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
   15670       13742 :             &&
   15671       13742 :             (a = star_named_expressions_rule(p))  // star_named_expressions
   15672       13709 :             &&
   15673       13709 :             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
   15674             :         )
   15675             :         {
   15676        8371 :             D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
   15677        8371 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   15678        8371 :             if (_token == NULL) {
   15679           0 :                 p->level--;
   15680           0 :                 return NULL;
   15681             :             }
   15682        8371 :             int _end_lineno = _token->end_lineno;
   15683             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   15684        8371 :             int _end_col_offset = _token->end_col_offset;
   15685             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   15686        8371 :             _res = _PyAST_Set ( a , EXTRA );
   15687        8371 :             if (_res == NULL && PyErr_Occurred()) {
   15688           0 :                 p->error_indicator = 1;
   15689           0 :                 p->level--;
   15690           0 :                 return NULL;
   15691             :             }
   15692        8371 :             goto done;
   15693             :         }
   15694        5371 :         p->mark = _mark;
   15695        5371 :         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        5371 :     _res = NULL;
   15699       13742 :   done:
   15700       13742 :     p->level--;
   15701       13742 :     return _res;
   15702             : }
   15703             : 
   15704             : // dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
   15705             : static expr_ty
   15706      112966 : dict_rule(Parser *p)
   15707             : {
   15708      112966 :     if (p->level++ == MAXSTACK) {
   15709           0 :         p->error_indicator = 1;
   15710           0 :         PyErr_NoMemory();
   15711             :     }
   15712      112966 :     if (p->error_indicator) {
   15713           0 :         p->level--;
   15714           0 :         return NULL;
   15715             :     }
   15716      112966 :     expr_ty _res = NULL;
   15717      112966 :     int _mark = p->mark;
   15718      112966 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   15719           0 :         p->error_indicator = 1;
   15720           0 :         p->level--;
   15721           0 :         return NULL;
   15722             :     }
   15723      112966 :     int _start_lineno = p->tokens[_mark]->lineno;
   15724             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   15725      112966 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   15726             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   15727             :     { // '{' double_starred_kvpairs? '}'
   15728      112966 :         if (p->error_indicator) {
   15729           0 :             p->level--;
   15730           0 :             return NULL;
   15731             :         }
   15732      112966 :         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      112966 :         if (
   15737      112966 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
   15738      112966 :             &&
   15739      112966 :             (a = double_starred_kvpairs_rule(p), !p->error_indicator)  // double_starred_kvpairs?
   15740      112940 :             &&
   15741      112940 :             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
   15742             :         )
   15743             :         {
   15744       99192 :             D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
   15745       99192 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   15746       99192 :             if (_token == NULL) {
   15747           0 :                 p->level--;
   15748           0 :                 return NULL;
   15749             :             }
   15750       99192 :             int _end_lineno = _token->end_lineno;
   15751             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   15752       99192 :             int _end_col_offset = _token->end_col_offset;
   15753             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   15754       99192 :             _res = _PyAST_Dict ( CHECK ( asdl_expr_seq* , _PyPegen_get_keys ( p , a ) ) , CHECK ( asdl_expr_seq* , _PyPegen_get_values ( p , a ) ) , EXTRA );
   15755       99192 :             if (_res == NULL && PyErr_Occurred()) {
   15756           0 :                 p->error_indicator = 1;
   15757           0 :                 p->level--;
   15758           0 :                 return NULL;
   15759             :             }
   15760       99192 :             goto done;
   15761             :         }
   15762       13774 :         p->mark = _mark;
   15763       13774 :         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       13774 :         if (p->error_indicator) {
   15768          26 :             p->level--;
   15769          26 :             return NULL;
   15770             :         }
   15771       13748 :         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       13748 :         if (
   15776       13748 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
   15777       13748 :             &&
   15778       13748 :             (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p))  // invalid_double_starred_kvpairs
   15779           0 :             &&
   15780           0 :             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
   15781             :         )
   15782             :         {
   15783           0 :             D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
   15784           0 :             _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
   15785           0 :             goto done;
   15786             :         }
   15787       13748 :         p->mark = _mark;
   15788       13748 :         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       13748 :     _res = NULL;
   15792      112940 :   done:
   15793      112940 :     p->level--;
   15794      112940 :     return _res;
   15795             : }
   15796             : 
   15797             : // double_starred_kvpairs: ','.double_starred_kvpair+ ','?
   15798             : static asdl_seq*
   15799      112966 : double_starred_kvpairs_rule(Parser *p)
   15800             : {
   15801      112966 :     if (p->level++ == MAXSTACK) {
   15802           0 :         p->error_indicator = 1;
   15803           0 :         PyErr_NoMemory();
   15804             :     }
   15805      112966 :     if (p->error_indicator) {
   15806           0 :         p->level--;
   15807           0 :         return NULL;
   15808             :     }
   15809      112966 :     asdl_seq* _res = NULL;
   15810      112966 :     int _mark = p->mark;
   15811             :     { // ','.double_starred_kvpair+ ','?
   15812      112966 :         if (p->error_indicator) {
   15813           0 :             p->level--;
   15814           0 :             return NULL;
   15815             :         }
   15816      112966 :         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      112966 :         if (
   15821      112966 :             (a = _gather_111_rule(p))  // ','.double_starred_kvpair+
   15822       65010 :             &&
   15823       65010 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   15824             :         )
   15825             :         {
   15826       64997 :             D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
   15827       64997 :             _res = a;
   15828       64997 :             if (_res == NULL && PyErr_Occurred()) {
   15829           0 :                 p->error_indicator = 1;
   15830           0 :                 p->level--;
   15831           0 :                 return NULL;
   15832             :             }
   15833       64997 :             goto done;
   15834             :         }
   15835       47969 :         p->mark = _mark;
   15836       47969 :         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       47969 :     _res = NULL;
   15840      112966 :   done:
   15841      112966 :     p->level--;
   15842      112966 :     return _res;
   15843             : }
   15844             : 
   15845             : // double_starred_kvpair: '**' bitwise_or | kvpair
   15846             : static KeyValuePair*
   15847     1608460 : double_starred_kvpair_rule(Parser *p)
   15848             : {
   15849     1608460 :     if (p->level++ == MAXSTACK) {
   15850           0 :         p->error_indicator = 1;
   15851           0 :         PyErr_NoMemory();
   15852             :     }
   15853     1608460 :     if (p->error_indicator) {
   15854           0 :         p->level--;
   15855           0 :         return NULL;
   15856             :     }
   15857     1608460 :     KeyValuePair* _res = NULL;
   15858     1608460 :     int _mark = p->mark;
   15859             :     { // '**' bitwise_or
   15860     1608460 :         if (p->error_indicator) {
   15861           0 :             p->level--;
   15862           0 :             return NULL;
   15863             :         }
   15864     1608460 :         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     1608460 :         if (
   15868     1608460 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   15869        3090 :             &&
   15870        3090 :             (a = bitwise_or_rule(p))  // bitwise_or
   15871             :         )
   15872             :         {
   15873        3090 :             D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
   15874        3090 :             _res = _PyPegen_key_value_pair ( p , NULL , a );
   15875        3090 :             if (_res == NULL && PyErr_Occurred()) {
   15876           0 :                 p->error_indicator = 1;
   15877           0 :                 p->level--;
   15878           0 :                 return NULL;
   15879             :             }
   15880        3090 :             goto done;
   15881             :         }
   15882     1605370 :         p->mark = _mark;
   15883     1605370 :         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     1605370 :         if (p->error_indicator) {
   15888          12 :             p->level--;
   15889          12 :             return NULL;
   15890             :         }
   15891     1605360 :         D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
   15892             :         KeyValuePair* kvpair_var;
   15893     1605360 :         if (
   15894     1605360 :             (kvpair_var = kvpair_rule(p))  // kvpair
   15895             :         )
   15896             :         {
   15897     1525020 :             D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
   15898     1525020 :             _res = kvpair_var;
   15899     1525020 :             goto done;
   15900             :         }
   15901       80339 :         p->mark = _mark;
   15902       80339 :         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       80339 :     _res = NULL;
   15906     1608450 :   done:
   15907     1608450 :     p->level--;
   15908     1608450 :     return _res;
   15909             : }
   15910             : 
   15911             : // kvpair: expression ':' expression
   15912             : static KeyValuePair*
   15913     1610720 : kvpair_rule(Parser *p)
   15914             : {
   15915     1610720 :     if (p->level++ == MAXSTACK) {
   15916           0 :         p->error_indicator = 1;
   15917           0 :         PyErr_NoMemory();
   15918             :     }
   15919     1610720 :     if (p->error_indicator) {
   15920           0 :         p->level--;
   15921           0 :         return NULL;
   15922             :     }
   15923     1610720 :     KeyValuePair* _res = NULL;
   15924     1610720 :     int _mark = p->mark;
   15925             :     { // expression ':' expression
   15926     1610720 :         if (p->error_indicator) {
   15927           0 :             p->level--;
   15928           0 :             return NULL;
   15929             :         }
   15930     1610720 :         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     1610720 :         if (
   15935     1610720 :             (a = expression_rule(p))  // expression
   15936     1550100 :             &&
   15937     1550100 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   15938     1528870 :             &&
   15939     1528870 :             (b = expression_rule(p))  // expression
   15940             :         )
   15941             :         {
   15942     1528810 :             D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
   15943     1528810 :             _res = _PyPegen_key_value_pair ( p , a , b );
   15944     1528810 :             if (_res == NULL && PyErr_Occurred()) {
   15945           0 :                 p->error_indicator = 1;
   15946           0 :                 p->level--;
   15947           0 :                 return NULL;
   15948             :             }
   15949     1528810 :             goto done;
   15950             :         }
   15951       81911 :         p->mark = _mark;
   15952       81911 :         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       81911 :     _res = NULL;
   15956     1610720 :   done:
   15957     1610720 :     p->level--;
   15958     1610720 :     return _res;
   15959             : }
   15960             : 
   15961             : // for_if_clauses: for_if_clause+
   15962             : static asdl_comprehension_seq*
   15963     2133110 : for_if_clauses_rule(Parser *p)
   15964             : {
   15965     2133110 :     if (p->level++ == MAXSTACK) {
   15966           0 :         p->error_indicator = 1;
   15967           0 :         PyErr_NoMemory();
   15968             :     }
   15969     2133110 :     if (p->error_indicator) {
   15970           0 :         p->level--;
   15971           0 :         return NULL;
   15972             :     }
   15973     2133110 :     asdl_comprehension_seq* _res = NULL;
   15974     2133110 :     int _mark = p->mark;
   15975             :     { // for_if_clause+
   15976     2133110 :         if (p->error_indicator) {
   15977           0 :             p->level--;
   15978           0 :             return NULL;
   15979             :         }
   15980     2133110 :         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     2133110 :         if (
   15983     2133110 :             (a = (asdl_comprehension_seq*)_loop1_113_rule(p))  // for_if_clause+
   15984             :         )
   15985             :         {
   15986       49885 :             D(fprintf(stderr, "%*c+ for_if_clauses[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
   15987       49885 :             _res = a;
   15988       49885 :             if (_res == NULL && PyErr_Occurred()) {
   15989           0 :                 p->error_indicator = 1;
   15990           0 :                 p->level--;
   15991           0 :                 return NULL;
   15992             :             }
   15993       49885 :             goto done;
   15994             :         }
   15995     2083230 :         p->mark = _mark;
   15996     2083230 :         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     2083230 :     _res = NULL;
   16000     2133110 :   done:
   16001     2133110 :     p->level--;
   16002     2133110 :     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
   16010     2185000 : for_if_clause_rule(Parser *p)
   16011             : {
   16012     2185000 :     if (p->level++ == MAXSTACK) {
   16013           0 :         p->error_indicator = 1;
   16014           0 :         PyErr_NoMemory();
   16015             :     }
   16016     2185000 :     if (p->error_indicator) {
   16017           0 :         p->level--;
   16018           0 :         return NULL;
   16019             :     }
   16020     2185000 :     comprehension_ty _res = NULL;
   16021     2185000 :     int _mark = p->mark;
   16022             :     { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
   16023     2185000 :         if (p->error_indicator) {
   16024           0 :             p->level--;
   16025           0 :             return NULL;
   16026             :         }
   16027     2185000 :         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     2185000 :         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     2185000 :         if (
   16036     2185000 :             (async_var = _PyPegen_expect_token(p, ASYNC))  // token='ASYNC'
   16037         508 :             &&
   16038         508 :             (_keyword = _PyPegen_expect_token(p, 642))  // token='for'
   16039         508 :             &&
   16040         508 :             (a = star_targets_rule(p))  // star_targets
   16041         508 :             &&
   16042         508 :             (_keyword_1 = _PyPegen_expect_token(p, 643))  // token='in'
   16043             :             &&
   16044         508 :             (_cut_var = 1)
   16045         508 :             &&
   16046         508 :             (b = disjunction_rule(p))  // disjunction
   16047         508 :             &&
   16048         508 :             (c = (asdl_expr_seq*)_loop0_114_rule(p))  // (('if' disjunction))*
   16049             :         )
   16050             :         {
   16051         508 :             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         508 :             _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
   16053         508 :             if (_res == NULL && PyErr_Occurred()) {
   16054           2 :                 p->error_indicator = 1;
   16055           2 :                 p->level--;
   16056           2 :                 return NULL;
   16057             :             }
   16058         506 :             goto done;
   16059             :         }
   16060     2184490 :         p->mark = _mark;
   16061     2184490 :         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     2184490 :         if (_cut_var) {
   16064           0 :             p->level--;
   16065           0 :             return NULL;
   16066             :         }
   16067             :     }
   16068             :     { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
   16069     2184490 :         if (p->error_indicator) {
   16070           0 :             p->level--;
   16071           0 :             return NULL;
   16072             :         }
   16073     2184490 :         D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
   16074     2184490 :         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     2184490 :         if (
   16081     2184490 :             (_keyword = _PyPegen_expect_token(p, 642))  // token='for'
   16082       51404 :             &&
   16083       51404 :             (a = star_targets_rule(p))  // star_targets
   16084       51400 :             &&
   16085       51400 :             (_keyword_1 = _PyPegen_expect_token(p, 643))  // token='in'
   16086             :             &&
   16087       51391 :             (_cut_var = 1)
   16088       51391 :             &&
   16089       51391 :             (b = disjunction_rule(p))  // disjunction
   16090       51383 :             &&
   16091       51383 :             (c = (asdl_expr_seq*)_loop0_115_rule(p))  // (('if' disjunction))*
   16092             :         )
   16093             :         {
   16094       51383 :             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       51383 :             _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
   16096       51383 :             if (_res == NULL && PyErr_Occurred()) {
   16097           0 :                 p->error_indicator = 1;
   16098           0 :                 p->level--;
   16099           0 :                 return NULL;
   16100             :             }
   16101       51383 :             goto done;
   16102             :         }
   16103     2133110 :         p->mark = _mark;
   16104     2133110 :         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     2133110 :         if (_cut_var) {
   16107           8 :             p->level--;
   16108           8 :             return NULL;
   16109             :         }
   16110             :     }
   16111     2133100 :     if (p->call_invalid_rules) { // invalid_for_target
   16112         488 :         if (p->error_indicator) {
   16113           0 :             p->level--;
   16114           0 :             return NULL;
   16115             :         }
   16116         488 :         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         488 :         if (
   16119         488 :             (invalid_for_target_var = invalid_for_target_rule(p))  // invalid_for_target
   16120             :         )
   16121             :         {
   16122           0 :             D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
   16123           0 :             _res = invalid_for_target_var;
   16124           0 :             goto done;
   16125             :         }
   16126         488 :         p->mark = _mark;
   16127         488 :         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     2133100 :     _res = NULL;
   16131     2184990 :   done:
   16132     2184990 :     p->level--;
   16133     2184990 :     return _res;
   16134             : }
   16135             : 
   16136             : // listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
   16137             : static expr_ty
   16138       29421 : listcomp_rule(Parser *p)
   16139             : {
   16140       29421 :     if (p->level++ == MAXSTACK) {
   16141           0 :         p->error_indicator = 1;
   16142           0 :         PyErr_NoMemory();
   16143             :     }
   16144       29421 :     if (p->error_indicator) {
   16145           0 :         p->level--;
   16146           0 :         return NULL;
   16147             :     }
   16148       29421 :     expr_ty _res = NULL;
   16149       29421 :     int _mark = p->mark;
   16150       29421 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   16151           0 :         p->error_indicator = 1;
   16152           0 :         p->level--;
   16153           0 :         return NULL;
   16154             :     }
   16155       29421 :     int _start_lineno = p->tokens[_mark]->lineno;
   16156             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16157       29421 :     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       29421 :         if (p->error_indicator) {
   16161           0 :             p->level--;
   16162           0 :             return NULL;
   16163             :         }
   16164       29421 :         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       29421 :         if (
   16170       29421 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   16171       29421 :             &&
   16172       29421 :             (a = named_expression_rule(p))  // named_expression
   16173       29378 :             &&
   16174       29378 :             (b = for_if_clauses_rule(p))  // for_if_clauses
   16175       29336 :             &&
   16176       29336 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   16177             :         )
   16178             :         {
   16179       29332 :             D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
   16180       29332 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16181       29332 :             if (_token == NULL) {
   16182           0 :                 p->level--;
   16183           0 :                 return NULL;
   16184             :             }
   16185       29332 :             int _end_lineno = _token->end_lineno;
   16186             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16187       29332 :             int _end_col_offset = _token->end_col_offset;
   16188             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16189       29332 :             _res = _PyAST_ListComp ( a , b , EXTRA );
   16190       29332 :             if (_res == NULL && PyErr_Occurred()) {
   16191           0 :                 p->error_indicator = 1;
   16192           0 :                 p->level--;
   16193           0 :                 return NULL;
   16194             :             }
   16195       29332 :             goto done;
   16196             :         }
   16197          89 :         p->mark = _mark;
   16198          89 :         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          89 :     if (p->call_invalid_rules) { // invalid_comprehension
   16202          17 :         if (p->error_indicator) {
   16203           3 :             p->level--;
   16204           3 :             return NULL;
   16205             :         }
   16206          14 :         D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
   16207             :         void *invalid_comprehension_var;
   16208          14 :         if (
   16209          14 :             (invalid_comprehension_var = invalid_comprehension_rule(p))  // invalid_comprehension
   16210             :         )
   16211             :         {
   16212           0 :             D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
   16213           0 :             _res = invalid_comprehension_var;
   16214           0 :             goto done;
   16215             :         }
   16216          14 :         p->mark = _mark;
   16217          14 :         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          86 :     _res = NULL;
   16221       29418 :   done:
   16222       29418 :     p->level--;
   16223       29418 :     return _res;
   16224             : }
   16225             : 
   16226             : // setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
   16227             : static expr_ty
   16228        1577 : setcomp_rule(Parser *p)
   16229             : {
   16230        1577 :     if (p->level++ == MAXSTACK) {
   16231           0 :         p->error_indicator = 1;
   16232           0 :         PyErr_NoMemory();
   16233             :     }
   16234        1577 :     if (p->error_indicator) {
   16235           0 :         p->level--;
   16236           0 :         return NULL;
   16237             :     }
   16238        1577 :     expr_ty _res = NULL;
   16239        1577 :     int _mark = p->mark;
   16240        1577 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   16241           0 :         p->error_indicator = 1;
   16242           0 :         p->level--;
   16243           0 :         return NULL;
   16244             :     }
   16245        1577 :     int _start_lineno = p->tokens[_mark]->lineno;
   16246             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16247        1577 :     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        1577 :         if (p->error_indicator) {
   16251           0 :             p->level--;
   16252           0 :             return NULL;
   16253             :         }
   16254        1577 :         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        1577 :         if (
   16260        1577 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
   16261        1577 :             &&
   16262        1577 :             (a = named_expression_rule(p))  // named_expression
   16263        1550 :             &&
   16264        1550 :             (b = for_if_clauses_rule(p))  // for_if_clauses
   16265        1519 :             &&
   16266        1519 :             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
   16267             :         )
   16268             :         {
   16269        1519 :             D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
   16270        1519 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16271        1519 :             if (_token == NULL) {
   16272           0 :                 p->level--;
   16273           0 :                 return NULL;
   16274             :             }
   16275        1519 :             int _end_lineno = _token->end_lineno;
   16276             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16277        1519 :             int _end_col_offset = _token->end_col_offset;
   16278             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16279        1519 :             _res = _PyAST_SetComp ( a , b , EXTRA );
   16280        1519 :             if (_res == NULL && PyErr_Occurred()) {
   16281           0 :                 p->error_indicator = 1;
   16282           0 :                 p->level--;
   16283           0 :                 return NULL;
   16284             :             }
   16285        1519 :             goto done;
   16286             :         }
   16287          58 :         p->mark = _mark;
   16288          58 :         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          58 :     if (p->call_invalid_rules) { // invalid_comprehension
   16292          30 :         if (p->error_indicator) {
   16293           0 :             p->level--;
   16294           0 :             return NULL;
   16295             :         }
   16296          30 :         D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
   16297             :         void *invalid_comprehension_var;
   16298          30 :         if (
   16299          30 :             (invalid_comprehension_var = invalid_comprehension_rule(p))  // invalid_comprehension
   16300             :         )
   16301             :         {
   16302           0 :             D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
   16303           0 :             _res = invalid_comprehension_var;
   16304           0 :             goto done;
   16305             :         }
   16306          30 :         p->mark = _mark;
   16307          30 :         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          58 :     _res = NULL;
   16311        1577 :   done:
   16312        1577 :     p->level--;
   16313        1577 :     return _res;
   16314             : }
   16315             : 
   16316             : // genexp:
   16317             : //     | '(' (assignment_expression | expression !':=') for_if_clauses ')'
   16318             : //     | invalid_comprehension
   16319             : static expr_ty
   16320    14536600 : genexp_rule(Parser *p)
   16321             : {
   16322    14536600 :     if (p->level++ == MAXSTACK) {
   16323           0 :         p->error_indicator = 1;
   16324           0 :         PyErr_NoMemory();
   16325             :     }
   16326    14536600 :     if (p->error_indicator) {
   16327           0 :         p->level--;
   16328           0 :         return NULL;
   16329             :     }
   16330    14536600 :     expr_ty _res = NULL;
   16331    14536600 :     int _mark = p->mark;
   16332    14536600 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   16333           0 :         p->error_indicator = 1;
   16334           0 :         p->level--;
   16335           0 :         return NULL;
   16336             :     }
   16337    14536600 :     int _start_lineno = p->tokens[_mark]->lineno;
   16338             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16339    14536600 :     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    14536600 :         if (p->error_indicator) {
   16343           0 :             p->level--;
   16344           0 :             return NULL;
   16345             :         }
   16346    14536600 :         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    14536600 :         if (
   16352    14536600 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   16353     3099980 :             &&
   16354     3099980 :             (a = _tmp_116_rule(p))  // assignment_expression | expression !':='
   16355     2098110 :             &&
   16356     2098110 :             (b = for_if_clauses_rule(p))  // for_if_clauses
   16357       15208 :             &&
   16358       15208 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   16359             :         )
   16360             :         {
   16361       15174 :             D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
   16362       15174 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16363       15174 :             if (_token == NULL) {
   16364           0 :                 p->level--;
   16365           0 :                 return NULL;
   16366             :             }
   16367       15174 :             int _end_lineno = _token->end_lineno;
   16368             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16369       15174 :             int _end_col_offset = _token->end_col_offset;
   16370             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16371       15174 :             _res = _PyAST_GeneratorExp ( a , b , EXTRA );
   16372       15174 :             if (_res == NULL && PyErr_Occurred()) {
   16373           0 :                 p->error_indicator = 1;
   16374           0 :                 p->level--;
   16375           0 :                 return NULL;
   16376             :             }
   16377       15174 :             goto done;
   16378             :         }
   16379    14521400 :         p->mark = _mark;
   16380    14521400 :         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    14521400 :     if (p->call_invalid_rules) { // invalid_comprehension
   16384        2862 :         if (p->error_indicator) {
   16385           0 :             p->level--;
   16386           0 :             return NULL;
   16387             :         }
   16388        2862 :         D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
   16389             :         void *invalid_comprehension_var;
   16390        2862 :         if (
   16391        2862 :             (invalid_comprehension_var = invalid_comprehension_rule(p))  // invalid_comprehension
   16392             :         )
   16393             :         {
   16394           0 :             D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
   16395           0 :             _res = invalid_comprehension_var;
   16396           0 :             goto done;
   16397             :         }
   16398        2862 :         p->mark = _mark;
   16399        2862 :         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    14521400 :     _res = NULL;
   16403    14536600 :   done:
   16404    14536600 :     p->level--;
   16405    14536600 :     return _res;
   16406             : }
   16407             : 
   16408             : // dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
   16409             : static expr_ty
   16410        5366 : dictcomp_rule(Parser *p)
   16411             : {
   16412        5366 :     if (p->level++ == MAXSTACK) {
   16413           0 :         p->error_indicator = 1;
   16414           0 :         PyErr_NoMemory();
   16415             :     }
   16416        5366 :     if (p->error_indicator) {
   16417           0 :         p->level--;
   16418           0 :         return NULL;
   16419             :     }
   16420        5366 :     expr_ty _res = NULL;
   16421        5366 :     int _mark = p->mark;
   16422        5366 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   16423           0 :         p->error_indicator = 1;
   16424           0 :         p->level--;
   16425           0 :         return NULL;
   16426             :     }
   16427        5366 :     int _start_lineno = p->tokens[_mark]->lineno;
   16428             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16429        5366 :     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        5366 :         if (p->error_indicator) {
   16433           0 :             p->level--;
   16434           0 :             return NULL;
   16435             :         }
   16436        5366 :         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        5366 :         if (
   16442        5366 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
   16443        5366 :             &&
   16444        5366 :             (a = kvpair_rule(p))  // kvpair
   16445        3794 :             &&
   16446        3794 :             (b = for_if_clauses_rule(p))  // for_if_clauses
   16447        3788 :             &&
   16448        3788 :             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
   16449             :         )
   16450             :         {
   16451        3788 :             D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
   16452        3788 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16453        3788 :             if (_token == NULL) {
   16454           0 :                 p->level--;
   16455           0 :                 return NULL;
   16456             :             }
   16457        3788 :             int _end_lineno = _token->end_lineno;
   16458             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16459        3788 :             int _end_col_offset = _token->end_col_offset;
   16460             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16461        3788 :             _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
   16462        3788 :             if (_res == NULL && PyErr_Occurred()) {
   16463           0 :                 p->error_indicator = 1;
   16464           0 :                 p->level--;
   16465           0 :                 return NULL;
   16466             :             }
   16467        3788 :             goto done;
   16468             :         }
   16469        1578 :         p->mark = _mark;
   16470        1578 :         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        1578 :     if (p->call_invalid_rules) { // invalid_dict_comprehension
   16474          37 :         if (p->error_indicator) {
   16475           0 :             p->level--;
   16476           0 :             return NULL;
   16477             :         }
   16478          37 :         D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
   16479             :         void *invalid_dict_comprehension_var;
   16480          37 :         if (
   16481          37 :             (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p))  // invalid_dict_comprehension
   16482             :         )
   16483             :         {
   16484           0 :             D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
   16485           0 :             _res = invalid_dict_comprehension_var;
   16486           0 :             goto done;
   16487             :         }
   16488          37 :         p->mark = _mark;
   16489          37 :         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        1578 :     _res = NULL;
   16493        5366 :   done:
   16494        5366 :     p->level--;
   16495        5366 :     return _res;
   16496             : }
   16497             : 
   16498             : // arguments: args ','? &')' | invalid_arguments
   16499             : static expr_ty
   16500     3130560 : arguments_rule(Parser *p)
   16501             : {
   16502     3130560 :     if (p->level++ == MAXSTACK) {
   16503           0 :         p->error_indicator = 1;
   16504           0 :         PyErr_NoMemory();
   16505             :     }
   16506     3130560 :     if (p->error_indicator) {
   16507           0 :         p->level--;
   16508           0 :         return NULL;
   16509             :     }
   16510     3130560 :     expr_ty _res = NULL;
   16511     3130560 :     if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
   16512     1195990 :         p->level--;
   16513     1195990 :         return _res;
   16514             :     }
   16515     1934560 :     int _mark = p->mark;
   16516             :     { // args ','? &')'
   16517     1934560 :         if (p->error_indicator) {
   16518           0 :             p->level--;
   16519           0 :             return NULL;
   16520             :         }
   16521     1934560 :         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     1934560 :         if (
   16526     1934560 :             (a = args_rule(p))  // args
   16527     1388560 :             &&
   16528     1388560 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   16529     1388560 :             &&
   16530     1388560 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8)  // token=')'
   16531             :         )
   16532             :         {
   16533     1385550 :             D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
   16534     1385550 :             _res = a;
   16535     1385550 :             if (_res == NULL && PyErr_Occurred()) {
   16536           0 :                 p->error_indicator = 1;
   16537           0 :                 p->level--;
   16538           0 :                 return NULL;
   16539             :             }
   16540     1385550 :             goto done;
   16541             :         }
   16542      549009 :         p->mark = _mark;
   16543      549009 :         D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
   16544             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
   16545             :     }
   16546      549009 :     if (p->call_invalid_rules) { // invalid_arguments
   16547         109 :         if (p->error_indicator) {
   16548          15 :             p->level--;
   16549          15 :             return NULL;
   16550             :         }
   16551          94 :         D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
   16552             :         void *invalid_arguments_var;
   16553          94 :         if (
   16554          94 :             (invalid_arguments_var = invalid_arguments_rule(p))  // invalid_arguments
   16555             :         )
   16556             :         {
   16557           0 :             D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
   16558           0 :             _res = invalid_arguments_var;
   16559           0 :             goto done;
   16560             :         }
   16561          94 :         p->mark = _mark;
   16562          94 :         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      548994 :     _res = NULL;
   16566     1934550 :   done:
   16567     1934550 :     _PyPegen_insert_memo(p, _mark, arguments_type, _res);
   16568     1934550 :     p->level--;
   16569     1934550 :     return _res;
   16570             : }
   16571             : 
   16572             : // args:
   16573             : //     | ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]
   16574             : //     | kwargs
   16575             : static expr_ty
   16576     1934900 : args_rule(Parser *p)
   16577             : {
   16578     1934900 :     if (p->level++ == MAXSTACK) {
   16579           0 :         p->error_indicator = 1;
   16580           0 :         PyErr_NoMemory();
   16581             :     }
   16582     1934900 :     if (p->error_indicator) {
   16583           0 :         p->level--;
   16584           0 :         return NULL;
   16585             :     }
   16586     1934900 :     expr_ty _res = NULL;
   16587     1934900 :     int _mark = p->mark;
   16588     1934900 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   16589           1 :         p->error_indicator = 1;
   16590           1 :         p->level--;
   16591           1 :         return NULL;
   16592             :     }
   16593     1934900 :     int _start_lineno = p->tokens[_mark]->lineno;
   16594             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16595     1934900 :     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     1934900 :         if (p->error_indicator) {
   16599           0 :             p->level--;
   16600           0 :             return NULL;
   16601             :         }
   16602     1934900 :         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     1934900 :         if (
   16606     1934900 :             (a = (asdl_expr_seq*)_gather_117_rule(p))  // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+
   16607     1349900 :             &&
   16608     1349900 :             (b = _tmp_119_rule(p), !p->error_indicator)  // [',' kwargs]
   16609             :         )
   16610             :         {
   16611     1349880 :             D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
   16612     1349880 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16613     1349880 :             if (_token == NULL) {
   16614           0 :                 p->level--;
   16615           0 :                 return NULL;
   16616             :             }
   16617     1349880 :             int _end_lineno = _token->end_lineno;
   16618             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16619     1349880 :             int _end_col_offset = _token->end_col_offset;
   16620             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16621     1349880 :             _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
   16622     1349880 :             if (_res == NULL && PyErr_Occurred()) {
   16623           0 :                 p->error_indicator = 1;
   16624           0 :                 p->level--;
   16625           0 :                 return NULL;
   16626             :             }
   16627     1349880 :             goto done;
   16628             :         }
   16629      585019 :         p->mark = _mark;
   16630      585019 :         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      585019 :         if (p->error_indicator) {
   16635          16 :             p->level--;
   16636          16 :             return NULL;
   16637             :         }
   16638      585003 :         D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
   16639             :         asdl_seq* a;
   16640      585003 :         if (
   16641      585003 :             (a = kwargs_rule(p))  // kwargs
   16642             :         )
   16643             :         {
   16644       38818 :             D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
   16645       38818 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16646       38818 :             if (_token == NULL) {
   16647           0 :                 p->level--;
   16648           0 :                 return NULL;
   16649             :             }
   16650       38818 :             int _end_lineno = _token->end_lineno;
   16651             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16652       38818 :             int _end_col_offset = _token->end_col_offset;
   16653             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16654       38818 :             _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       38818 :             if (_res == NULL && PyErr_Occurred()) {
   16656           0 :                 p->error_indicator = 1;
   16657           0 :                 p->level--;
   16658           0 :                 return NULL;
   16659             :             }
   16660       38818 :             goto done;
   16661             :         }
   16662      546185 :         p->mark = _mark;
   16663      546185 :         D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
   16664             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
   16665             :     }
   16666      546185 :     _res = NULL;
   16667     1934890 :   done:
   16668     1934890 :     p->level--;
   16669     1934890 :     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*
   16677      657731 : kwargs_rule(Parser *p)
   16678             : {
   16679      657731 :     if (p->level++ == MAXSTACK) {
   16680           0 :         p->error_indicator = 1;
   16681           0 :         PyErr_NoMemory();
   16682             :     }
   16683      657731 :     if (p->error_indicator) {
   16684           0 :         p->level--;
   16685           0 :         return NULL;
   16686             :     }
   16687      657731 :     asdl_seq* _res = NULL;
   16688      657731 :     int _mark = p->mark;
   16689             :     { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
   16690      657731 :         if (p->error_indicator) {
   16691           0 :             p->level--;
   16692           0 :             return NULL;
   16693             :         }
   16694      657731 :         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      657731 :         if (
   16699      657731 :             (a = _gather_120_rule(p))  // ','.kwarg_or_starred+
   16700       98915 :             &&
   16701       98915 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   16702        8559 :             &&
   16703        8559 :             (b = _gather_122_rule(p))  // ','.kwarg_or_double_starred+
   16704             :         )
   16705             :         {
   16706        1039 :             D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
   16707        1039 :             _res = _PyPegen_join_sequences ( p , a , b );
   16708        1039 :             if (_res == NULL && PyErr_Occurred()) {
   16709           0 :                 p->error_indicator = 1;
   16710           0 :                 p->level--;
   16711           0 :                 return NULL;
   16712             :             }
   16713        1039 :             goto done;
   16714             :         }
   16715      656692 :         p->mark = _mark;
   16716      656692 :         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      656692 :         if (p->error_indicator) {
   16721          14 :             p->level--;
   16722          14 :             return NULL;
   16723             :         }
   16724      656678 :         D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
   16725             :         asdl_seq * _gather_124_var;
   16726      656678 :         if (
   16727      656678 :             (_gather_124_var = _gather_124_rule(p))  // ','.kwarg_or_starred+
   16728             :         )
   16729             :         {
   16730       97876 :             D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
   16731       97876 :             _res = _gather_124_var;
   16732       97876 :             goto done;
   16733             :         }
   16734      558802 :         p->mark = _mark;
   16735      558802 :         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      558802 :         if (p->error_indicator) {
   16740           0 :             p->level--;
   16741           0 :             return NULL;
   16742             :         }
   16743      558802 :         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      558802 :         if (
   16746      558802 :             (_gather_126_var = _gather_126_rule(p))  // ','.kwarg_or_double_starred+
   16747             :         )
   16748             :         {
   16749        7541 :             D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
   16750        7541 :             _res = _gather_126_var;
   16751        7541 :             goto done;
   16752             :         }
   16753      551261 :         p->mark = _mark;
   16754      551261 :         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      551261 :     _res = NULL;
   16758      657717 :   done:
   16759      657717 :     p->level--;
   16760      657717 :     return _res;
   16761             : }
   16762             : 
   16763             : // starred_expression: '*' expression
   16764             : static expr_ty
   16765     3896780 : starred_expression_rule(Parser *p)
   16766             : {
   16767     3896780 :     if (p->level++ == MAXSTACK) {
   16768           0 :         p->error_indicator = 1;
   16769           0 :         PyErr_NoMemory();
   16770             :     }
   16771     3896780 :     if (p->error_indicator) {
   16772           0 :         p->level--;
   16773           0 :         return NULL;
   16774             :     }
   16775     3896780 :     expr_ty _res = NULL;
   16776     3896780 :     int _mark = p->mark;
   16777     3896780 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   16778          10 :         p->error_indicator = 1;
   16779          10 :         p->level--;
   16780          10 :         return NULL;
   16781             :     }
   16782     3896770 :     int _start_lineno = p->tokens[_mark]->lineno;
   16783             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16784     3896770 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   16785             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   16786             :     { // '*' expression
   16787     3896770 :         if (p->error_indicator) {
   16788           0 :             p->level--;
   16789           0 :             return NULL;
   16790             :         }
   16791     3896770 :         D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
   16792             :         Token * _literal;
   16793             :         expr_ty a;
   16794     3896770 :         if (
   16795     3896770 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   16796       12784 :             &&
   16797       12784 :             (a = expression_rule(p))  // expression
   16798             :         )
   16799             :         {
   16800       12728 :             D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
   16801       12728 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16802       12728 :             if (_token == NULL) {
   16803           0 :                 p->level--;
   16804           0 :                 return NULL;
   16805             :             }
   16806       12728 :             int _end_lineno = _token->end_lineno;
   16807             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16808       12728 :             int _end_col_offset = _token->end_col_offset;
   16809             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16810       12728 :             _res = _PyAST_Starred ( a , Load , EXTRA );
   16811       12728 :             if (_res == NULL && PyErr_Occurred()) {
   16812           0 :                 p->error_indicator = 1;
   16813           0 :                 p->level--;
   16814           0 :                 return NULL;
   16815             :             }
   16816       12728 :             goto done;
   16817             :         }
   16818     3884040 :         p->mark = _mark;
   16819     3884040 :         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     3884040 :     _res = NULL;
   16823     3896770 :   done:
   16824     3896770 :     p->level--;
   16825     3896770 :     return _res;
   16826             : }
   16827             : 
   16828             : // kwarg_or_starred: invalid_kwarg | NAME '=' expression | starred_expression
   16829             : static KeywordOrStarred*
   16830     1482340 : kwarg_or_starred_rule(Parser *p)
   16831             : {
   16832     1482340 :     if (p->level++ == MAXSTACK) {
   16833           0 :         p->error_indicator = 1;
   16834           0 :         PyErr_NoMemory();
   16835             :     }
   16836     1482340 :     if (p->error_indicator) {
   16837           0 :         p->level--;
   16838           0 :         return NULL;
   16839             :     }
   16840     1482340 :     KeywordOrStarred* _res = NULL;
   16841     1482340 :     int _mark = p->mark;
   16842     1482340 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   16843           0 :         p->error_indicator = 1;
   16844           0 :         p->level--;
   16845           0 :         return NULL;
   16846             :     }
   16847     1482340 :     int _start_lineno = p->tokens[_mark]->lineno;
   16848             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16849     1482340 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   16850             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   16851     1482340 :     if (p->call_invalid_rules) { // invalid_kwarg
   16852         804 :         if (p->error_indicator) {
   16853           0 :             p->level--;
   16854           0 :             return NULL;
   16855             :         }
   16856         804 :         D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
   16857             :         void *invalid_kwarg_var;
   16858         804 :         if (
   16859         804 :             (invalid_kwarg_var = invalid_kwarg_rule(p))  // invalid_kwarg
   16860             :         )
   16861             :         {
   16862           0 :             D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
   16863           0 :             _res = invalid_kwarg_var;
   16864           0 :             goto done;
   16865             :         }
   16866         804 :         p->mark = _mark;
   16867         804 :         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     1482340 :         if (p->error_indicator) {
   16872          14 :             p->level--;
   16873          14 :             return NULL;
   16874             :         }
   16875     1482330 :         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     1482330 :         if (
   16880     1482330 :             (a = _PyPegen_name_token(p))  // NAME
   16881      348553 :             &&
   16882      348553 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   16883      348461 :             &&
   16884      348461 :             (b = expression_rule(p))  // expression
   16885             :         )
   16886             :         {
   16887      348449 :             D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
   16888      348449 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16889      348449 :             if (_token == NULL) {
   16890           0 :                 p->level--;
   16891           0 :                 return NULL;
   16892             :             }
   16893      348449 :             int _end_lineno = _token->end_lineno;
   16894             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16895      348449 :             int _end_col_offset = _token->end_col_offset;
   16896             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16897      348449 :             _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
   16898      348449 :             if (_res == NULL && PyErr_Occurred()) {
   16899           0 :                 p->error_indicator = 1;
   16900           0 :                 p->level--;
   16901           0 :                 return NULL;
   16902             :             }
   16903      348449 :             goto done;
   16904             :         }
   16905     1133880 :         p->mark = _mark;
   16906     1133880 :         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     1133880 :         if (p->error_indicator) {
   16911           0 :             p->level--;
   16912           0 :             return NULL;
   16913             :         }
   16914     1133880 :         D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
   16915             :         expr_ty a;
   16916     1133880 :         if (
   16917     1133880 :             (a = starred_expression_rule(p))  // starred_expression
   16918             :         )
   16919             :         {
   16920         199 :             D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
   16921         199 :             _res = _PyPegen_keyword_or_starred ( p , a , 0 );
   16922         199 :             if (_res == NULL && PyErr_Occurred()) {
   16923           0 :                 p->error_indicator = 1;
   16924           0 :                 p->level--;
   16925           0 :                 return NULL;
   16926             :             }
   16927         199 :             goto done;
   16928             :         }
   16929     1133680 :         p->mark = _mark;
   16930     1133680 :         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     1133680 :     _res = NULL;
   16934     1482330 :   done:
   16935     1482330 :     p->level--;
   16936     1482330 :     return _res;
   16937             : }
   16938             : 
   16939             : // kwarg_or_double_starred: invalid_kwarg | NAME '=' expression | '**' expression
   16940             : static KeywordOrStarred*
   16941      567452 : kwarg_or_double_starred_rule(Parser *p)
   16942             : {
   16943      567452 :     if (p->level++ == MAXSTACK) {
   16944           0 :         p->error_indicator = 1;
   16945           0 :         PyErr_NoMemory();
   16946             :     }
   16947      567452 :     if (p->error_indicator) {
   16948           0 :         p->level--;
   16949           0 :         return NULL;
   16950             :     }
   16951      567452 :     KeywordOrStarred* _res = NULL;
   16952      567452 :     int _mark = p->mark;
   16953      567452 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   16954           0 :         p->error_indicator = 1;
   16955           0 :         p->level--;
   16956           0 :         return NULL;
   16957             :     }
   16958      567452 :     int _start_lineno = p->tokens[_mark]->lineno;
   16959             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16960      567452 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   16961             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   16962      567452 :     if (p->call_invalid_rules) { // invalid_kwarg
   16963         326 :         if (p->error_indicator) {
   16964           0 :             p->level--;
   16965           0 :             return NULL;
   16966             :         }
   16967         326 :         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         326 :         if (
   16970         326 :             (invalid_kwarg_var = invalid_kwarg_rule(p))  // invalid_kwarg
   16971             :         )
   16972             :         {
   16973           0 :             D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
   16974           0 :             _res = invalid_kwarg_var;
   16975           0 :             goto done;
   16976             :         }
   16977         326 :         p->mark = _mark;
   16978         326 :         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      567452 :         if (p->error_indicator) {
   16983           0 :             p->level--;
   16984           0 :             return NULL;
   16985             :         }
   16986      567452 :         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      567452 :         if (
   16991      567452 :             (a = _PyPegen_name_token(p))  // NAME
   16992          93 :             &&
   16993          93 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   16994          47 :             &&
   16995          47 :             (b = expression_rule(p))  // expression
   16996             :         )
   16997             :         {
   16998          41 :             D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
   16999          41 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17000          41 :             if (_token == NULL) {
   17001           0 :                 p->level--;
   17002           0 :                 return NULL;
   17003             :             }
   17004          41 :             int _end_lineno = _token->end_lineno;
   17005             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17006          41 :             int _end_col_offset = _token->end_col_offset;
   17007             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17008          41 :             _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
   17009          41 :             if (_res == NULL && PyErr_Occurred()) {
   17010           0 :                 p->error_indicator = 1;
   17011           0 :                 p->level--;
   17012           0 :                 return NULL;
   17013             :             }
   17014          41 :             goto done;
   17015             :         }
   17016      567411 :         p->mark = _mark;
   17017      567411 :         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      567411 :         if (p->error_indicator) {
   17022           0 :             p->level--;
   17023           0 :             return NULL;
   17024             :         }
   17025      567411 :         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      567411 :         if (
   17029      567411 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   17030        8604 :             &&
   17031        8604 :             (a = expression_rule(p))  // expression
   17032             :         )
   17033             :         {
   17034        8603 :             D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
   17035        8603 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17036        8603 :             if (_token == NULL) {
   17037           0 :                 p->level--;
   17038           0 :                 return NULL;
   17039             :             }
   17040        8603 :             int _end_lineno = _token->end_lineno;
   17041             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17042        8603 :             int _end_col_offset = _token->end_col_offset;
   17043             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17044        8603 :             _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
   17045        8603 :             if (_res == NULL && PyErr_Occurred()) {
   17046           0 :                 p->error_indicator = 1;
   17047           0 :                 p->level--;
   17048           0 :                 return NULL;
   17049             :             }
   17050        8603 :             goto done;
   17051             :         }
   17052      558808 :         p->mark = _mark;
   17053      558808 :         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      558808 :     _res = NULL;
   17057      567452 :   done:
   17058      567452 :     p->level--;
   17059      567452 :     return _res;
   17060             : }
   17061             : 
   17062             : // star_targets: star_target !',' | star_target ((',' star_target))* ','?
   17063             : static expr_ty
   17064     4151060 : star_targets_rule(Parser *p)
   17065             : {
   17066     4151060 :     if (p->level++ == MAXSTACK) {
   17067           0 :         p->error_indicator = 1;
   17068           0 :         PyErr_NoMemory();
   17069             :     }
   17070     4151060 :     if (p->error_indicator) {
   17071           0 :         p->level--;
   17072           0 :         return NULL;
   17073             :     }
   17074     4151060 :     expr_ty _res = NULL;
   17075     4151060 :     int _mark = p->mark;
   17076     4151060 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   17077          20 :         p->error_indicator = 1;
   17078          20 :         p->level--;
   17079          20 :         return NULL;
   17080             :     }
   17081     4151040 :     int _start_lineno = p->tokens[_mark]->lineno;
   17082             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   17083     4151040 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   17084             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   17085             :     { // star_target !','
   17086     4151040 :         if (p->error_indicator) {
   17087           0 :             p->level--;
   17088           0 :             return NULL;
   17089             :         }
   17090     4151040 :         D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
   17091             :         expr_ty a;
   17092     4151040 :         if (
   17093     4151040 :             (a = star_target_rule(p))  // star_target
   17094     2281920 :             &&
   17095     2281920 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12)  // token=','
   17096             :         )
   17097             :         {
   17098     2224820 :             D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
   17099     2224820 :             _res = a;
   17100     2224820 :             if (_res == NULL && PyErr_Occurred()) {
   17101           0 :                 p->error_indicator = 1;
   17102           0 :                 p->level--;
   17103           0 :                 return NULL;
   17104             :             }
   17105     2224820 :             goto done;
   17106             :         }
   17107     1926220 :         p->mark = _mark;
   17108     1926220 :         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     1926220 :         if (p->error_indicator) {
   17113          18 :             p->level--;
   17114          18 :             return NULL;
   17115             :         }
   17116     1926200 :         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     1926200 :         if (
   17122     1926200 :             (a = star_target_rule(p))  // star_target
   17123       57095 :             &&
   17124       57095 :             (b = _loop0_128_rule(p))  // ((',' star_target))*
   17125       57095 :             &&
   17126       57095 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   17127             :         )
   17128             :         {
   17129       57093 :             D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
   17130       57093 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17131       57093 :             if (_token == NULL) {
   17132           0 :                 p->level--;
   17133           0 :                 return NULL;
   17134             :             }
   17135       57093 :             int _end_lineno = _token->end_lineno;
   17136             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17137       57093 :             int _end_col_offset = _token->end_col_offset;
   17138             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17139       57093 :             _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
   17140       57093 :             if (_res == NULL && PyErr_Occurred()) {
   17141           0 :                 p->error_indicator = 1;
   17142           0 :                 p->level--;
   17143           0 :                 return NULL;
   17144             :             }
   17145       57093 :             goto done;
   17146             :         }
   17147     1869100 :         p->mark = _mark;
   17148     1869100 :         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     1869100 :     _res = NULL;
   17152     4151020 :   done:
   17153     4151020 :     p->level--;
   17154     4151020 :     return _res;
   17155             : }
   17156             : 
   17157             : // star_targets_list_seq: ','.star_target+ ','?
   17158             : static asdl_expr_seq*
   17159       42800 : star_targets_list_seq_rule(Parser *p)
   17160             : {
   17161       42800 :     if (p->level++ == MAXSTACK) {
   17162           0 :         p->error_indicator = 1;
   17163           0 :         PyErr_NoMemory();
   17164             :     }
   17165       42800 :     if (p->error_indicator) {
   17166           0 :         p->level--;
   17167           0 :         return NULL;
   17168             :     }
   17169       42800 :     asdl_expr_seq* _res = NULL;
   17170       42800 :     int _mark = p->mark;
   17171             :     { // ','.star_target+ ','?
   17172       42800 :         if (p->error_indicator) {
   17173           0 :             p->level--;
   17174           0 :             return NULL;
   17175             :         }
   17176       42800 :         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       42800 :         if (
   17181       42800 :             (a = (asdl_expr_seq*)_gather_129_rule(p))  // ','.star_target+
   17182       12171 :             &&
   17183       12171 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   17184             :         )
   17185             :         {
   17186       12171 :             D(fprintf(stderr, "%*c+ star_targets_list_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
   17187       12171 :             _res = a;
   17188       12171 :             if (_res == NULL && PyErr_Occurred()) {
   17189           0 :                 p->error_indicator = 1;
   17190           0 :                 p->level--;
   17191           0 :                 return NULL;
   17192             :             }
   17193       12171 :             goto done;
   17194             :         }
   17195       30629 :         p->mark = _mark;
   17196       30629 :         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       30629 :     _res = NULL;
   17200       42800 :   done:
   17201       42800 :     p->level--;
   17202       42800 :     return _res;
   17203             : }
   17204             : 
   17205             : // star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
   17206             : static asdl_expr_seq*
   17207       31707 : star_targets_tuple_seq_rule(Parser *p)
   17208             : {
   17209       31707 :     if (p->level++ == MAXSTACK) {
   17210           0 :         p->error_indicator = 1;
   17211           0 :         PyErr_NoMemory();
   17212             :     }
   17213       31707 :     if (p->error_indicator) {
   17214           0 :         p->level--;
   17215           0 :         return NULL;
   17216             :     }
   17217       31707 :     asdl_expr_seq* _res = NULL;
   17218       31707 :     int _mark = p->mark;
   17219             :     { // star_target ((',' star_target))+ ','?
   17220       31707 :         if (p->error_indicator) {
   17221           0 :             p->level--;
   17222           0 :             return NULL;
   17223             :         }
   17224       31707 :         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       31707 :         if (
   17230       31707 :             (a = star_target_rule(p))  // star_target
   17231       16570 :             &&
   17232       16570 :             (b = _loop1_131_rule(p))  // ((',' star_target))+
   17233        7626 :             &&
   17234        7626 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   17235             :         )
   17236             :         {
   17237        7626 :             D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
   17238        7626 :             _res = ( asdl_expr_seq* ) _PyPegen_seq_insert_in_front ( p , a , b );
   17239        7626 :             if (_res == NULL && PyErr_Occurred()) {
   17240           0 :                 p->error_indicator = 1;
   17241           0 :                 p->level--;
   17242           0 :                 return NULL;
   17243             :             }
   17244        7626 :             goto done;
   17245             :         }
   17246       24081 :         p->mark = _mark;
   17247       24081 :         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       24081 :         if (p->error_indicator) {
   17252           0 :             p->level--;
   17253           0 :             return NULL;
   17254             :         }
   17255       24081 :         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       24081 :         if (
   17259       24081 :             (a = star_target_rule(p))  // star_target
   17260        8944 :             &&
   17261        8944 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   17262             :         )
   17263             :         {
   17264        1878 :             D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
   17265        1878 :             _res = ( asdl_expr_seq* ) _PyPegen_singleton_seq ( p , a );
   17266        1878 :             if (_res == NULL && PyErr_Occurred()) {
   17267           0 :                 p->error_indicator = 1;
   17268           0 :                 p->level--;
   17269           0 :                 return NULL;
   17270             :             }
   17271        1878 :             goto done;
   17272             :         }
   17273       22203 :         p->mark = _mark;
   17274       22203 :         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       22203 :     _res = NULL;
   17278       31707 :   done:
   17279       31707 :     p->level--;
   17280       31707 :     return _res;
   17281             : }
   17282             : 
   17283             : // star_target: '*' (!'*' star_target) | target_with_star_atom
   17284             : static expr_ty
   17285     6296950 : star_target_rule(Parser *p)
   17286             : {
   17287     6296950 :     if (p->level++ == MAXSTACK) {
   17288           0 :         p->error_indicator = 1;
   17289           0 :         PyErr_NoMemory();
   17290             :     }
   17291     6296950 :     if (p->error_indicator) {
   17292           0 :         p->level--;
   17293           0 :         return NULL;
   17294             :     }
   17295     6296950 :     expr_ty _res = NULL;
   17296     6296950 :     if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
   17297     1985490 :         p->level--;
   17298     1985490 :         return _res;
   17299             :     }
   17300     4311460 :     int _mark = p->mark;
   17301     4311460 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   17302           0 :         p->error_indicator = 1;
   17303           0 :         p->level--;
   17304           0 :         return NULL;
   17305             :     }
   17306     4311460 :     int _start_lineno = p->tokens[_mark]->lineno;
   17307             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   17308     4311460 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   17309             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   17310             :     { // '*' (!'*' star_target)
   17311     4311460 :         if (p->error_indicator) {
   17312           0 :             p->level--;
   17313           0 :             return NULL;
   17314             :         }
   17315     4311460 :         D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
   17316             :         Token * _literal;
   17317             :         void *a;
   17318     4311460 :         if (
   17319     4311460 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   17320         735 :             &&
   17321         735 :             (a = _tmp_132_rule(p))  // !'*' star_target
   17322             :         )
   17323             :         {
   17324         699 :             D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
   17325         699 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17326         699 :             if (_token == NULL) {
   17327           0 :                 p->level--;
   17328           0 :                 return NULL;
   17329             :             }
   17330         699 :             int _end_lineno = _token->end_lineno;
   17331             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17332         699 :             int _end_col_offset = _token->end_col_offset;
   17333             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17334         699 :             _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
   17335         699 :             if (_res == NULL && PyErr_Occurred()) {
   17336           0 :                 p->error_indicator = 1;
   17337           0 :                 p->level--;
   17338           0 :                 return NULL;
   17339             :             }
   17340         699 :             goto done;
   17341             :         }
   17342     4310760 :         p->mark = _mark;
   17343     4310760 :         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     4310760 :         if (p->error_indicator) {
   17348           0 :             p->level--;
   17349           0 :             return NULL;
   17350             :         }
   17351     4310760 :         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     4310760 :         if (
   17354     4310760 :             (target_with_star_atom_var = target_with_star_atom_rule(p))  // target_with_star_atom
   17355             :         )
   17356             :         {
   17357     2393250 :             D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
   17358     2393250 :             _res = target_with_star_atom_var;
   17359     2393250 :             goto done;
   17360             :         }
   17361     1917510 :         p->mark = _mark;
   17362     1917510 :         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     1917510 :     _res = NULL;
   17366     4311460 :   done:
   17367     4311460 :     _PyPegen_insert_memo(p, _mark, star_target_type, _res);
   17368     4311460 :     p->level--;
   17369     4311460 :     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
   17377     4342570 : target_with_star_atom_rule(Parser *p)
   17378             : {
   17379     4342570 :     if (p->level++ == MAXSTACK) {
   17380           0 :         p->error_indicator = 1;
   17381           0 :         PyErr_NoMemory();
   17382             :     }
   17383     4342570 :     if (p->error_indicator) {
   17384           0 :         p->level--;
   17385           0 :         return NULL;
   17386             :     }
   17387     4342570 :     expr_ty _res = NULL;
   17388     4342570 :     if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
   17389       31564 :         p->level--;
   17390       31564 :         return _res;
   17391             :     }
   17392     4311000 :     int _mark = p->mark;
   17393     4311000 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   17394           0 :         p->error_indicator = 1;
   17395           0 :         p->level--;
   17396           0 :         return NULL;
   17397             :     }
   17398     4311000 :     int _start_lineno = p->tokens[_mark]->lineno;
   17399             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   17400     4311000 :     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     4311000 :         if (p->error_indicator) {
   17404           0 :             p->level--;
   17405           0 :             return NULL;
   17406             :         }
   17407     4311000 :         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     4311000 :         if (
   17412     4311000 :             (a = t_primary_rule(p))  // t_primary
   17413     1163050 :             &&
   17414     1163050 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   17415      217608 :             &&
   17416      217608 :             (b = _PyPegen_name_token(p))  // NAME
   17417      217600 :             &&
   17418      217600 :             _PyPegen_lookahead(0, t_lookahead_rule, p)
   17419             :         )
   17420             :         {
   17421      217600 :             D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
   17422      217600 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17423      217600 :             if (_token == NULL) {
   17424           0 :                 p->level--;
   17425           0 :                 return NULL;
   17426             :             }
   17427      217600 :             int _end_lineno = _token->end_lineno;
   17428             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17429      217600 :             int _end_col_offset = _token->end_col_offset;
   17430             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17431      217600 :             _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
   17432      217600 :             if (_res == NULL && PyErr_Occurred()) {
   17433           0 :                 p->error_indicator = 1;
   17434           0 :                 p->level--;
   17435           0 :                 return NULL;
   17436             :             }
   17437      217600 :             goto done;
   17438             :         }
   17439     4093400 :         p->mark = _mark;
   17440     4093400 :         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     4093400 :         if (p->error_indicator) {
   17445          20 :             p->level--;
   17446          20 :             return NULL;
   17447             :         }
   17448     4093380 :         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     4093380 :         if (
   17454     4093380 :             (a = t_primary_rule(p))  // t_primary
   17455      945450 :             &&
   17456      945450 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   17457       75995 :             &&
   17458       75995 :             (b = slices_rule(p))  // slices
   17459       75978 :             &&
   17460       75978 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   17461       75963 :             &&
   17462       75963 :             _PyPegen_lookahead(0, t_lookahead_rule, p)
   17463             :         )
   17464             :         {
   17465       75963 :             D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
   17466       75963 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17467       75963 :             if (_token == NULL) {
   17468           0 :                 p->level--;
   17469           0 :                 return NULL;
   17470             :             }
   17471       75963 :             int _end_lineno = _token->end_lineno;
   17472             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17473       75963 :             int _end_col_offset = _token->end_col_offset;
   17474             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17475       75963 :             _res = _PyAST_Subscript ( a , b , Store , EXTRA );
   17476       75963 :             if (_res == NULL && PyErr_Occurred()) {
   17477           0 :                 p->error_indicator = 1;
   17478           0 :                 p->level--;
   17479           0 :                 return NULL;
   17480             :             }
   17481       75963 :             goto done;
   17482             :         }
   17483     4017420 :         p->mark = _mark;
   17484     4017420 :         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     4017420 :         if (p->error_indicator) {
   17489           0 :             p->level--;
   17490           0 :             return NULL;
   17491             :         }
   17492     4017420 :         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     4017420 :         if (
   17495     4017420 :             (star_atom_var = star_atom_rule(p))  // star_atom
   17496             :         )
   17497             :         {
   17498     2099790 :             D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_atom"));
   17499     2099790 :             _res = star_atom_var;
   17500     2099790 :             goto done;
   17501             :         }
   17502     1917630 :         p->mark = _mark;
   17503     1917630 :         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     1917630 :     _res = NULL;
   17507     4310980 :   done:
   17508     4310980 :     _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
   17509     4310980 :     p->level--;
   17510     4310980 :     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
   17519     4017420 : star_atom_rule(Parser *p)
   17520             : {
   17521     4017420 :     if (p->level++ == MAXSTACK) {
   17522           0 :         p->error_indicator = 1;
   17523           0 :         PyErr_NoMemory();
   17524             :     }
   17525     4017420 :     if (p->error_indicator) {
   17526           0 :         p->level--;
   17527           0 :         return NULL;
   17528             :     }
   17529     4017420 :     expr_ty _res = NULL;
   17530     4017420 :     int _mark = p->mark;
   17531     4017420 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   17532           0 :         p->error_indicator = 1;
   17533           0 :         p->level--;
   17534           0 :         return NULL;
   17535             :     }
   17536     4017420 :     int _start_lineno = p->tokens[_mark]->lineno;
   17537             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   17538     4017420 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   17539             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   17540             :     { // NAME
   17541     4017420 :         if (p->error_indicator) {
   17542           0 :             p->level--;
   17543           0 :             return NULL;
   17544             :         }
   17545     4017420 :         D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
   17546             :         expr_ty a;
   17547     4017420 :         if (
   17548     4017420 :             (a = _PyPegen_name_token(p))  // NAME
   17549             :         )
   17550             :         {
   17551     2068960 :             D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
   17552     2068960 :             _res = _PyPegen_set_expr_context ( p , a , Store );
   17553     2068960 :             if (_res == NULL && PyErr_Occurred()) {
   17554           0 :                 p->error_indicator = 1;
   17555           0 :                 p->level--;
   17556           0 :                 return NULL;
   17557             :             }
   17558     2068960 :             goto done;
   17559             :         }
   17560     1948460 :         p->mark = _mark;
   17561     1948460 :         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     1948460 :         if (p->error_indicator) {
   17566           0 :             p->level--;
   17567           0 :             return NULL;
   17568             :         }
   17569     1948460 :         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     1948460 :         if (
   17574     1948460 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   17575       31807 :             &&
   17576       31807 :             (a = target_with_star_atom_rule(p))  // target_with_star_atom
   17577       16527 :             &&
   17578       16527 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   17579             :         )
   17580             :         {
   17581         100 :             D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target_with_star_atom ')'"));
   17582         100 :             _res = _PyPegen_set_expr_context ( p , a , Store );
   17583         100 :             if (_res == NULL && PyErr_Occurred()) {
   17584           0 :                 p->error_indicator = 1;
   17585           0 :                 p->level--;
   17586           0 :                 return NULL;
   17587             :             }
   17588         100 :             goto done;
   17589             :         }
   17590     1948360 :         p->mark = _mark;
   17591     1948360 :         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     1948360 :         if (p->error_indicator) {
   17596           0 :             p->level--;
   17597           0 :             return NULL;
   17598             :         }
   17599     1948360 :         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     1948360 :         if (
   17604     1948360 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   17605       31707 :             &&
   17606       31707 :             (a = star_targets_tuple_seq_rule(p), !p->error_indicator)  // star_targets_tuple_seq?
   17607       31707 :             &&
   17608       31707 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   17609             :         )
   17610             :         {
   17611       10440 :             D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
   17612       10440 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17613       10440 :             if (_token == NULL) {
   17614           0 :                 p->level--;
   17615           0 :                 return NULL;
   17616             :             }
   17617       10440 :             int _end_lineno = _token->end_lineno;
   17618             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17619       10440 :             int _end_col_offset = _token->end_col_offset;
   17620             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17621       10440 :             _res = _PyAST_Tuple ( a , Store , EXTRA );
   17622       10440 :             if (_res == NULL && PyErr_Occurred()) {
   17623           0 :                 p->error_indicator = 1;
   17624           0 :                 p->level--;
   17625           0 :                 return NULL;
   17626             :             }
   17627       10440 :             goto done;
   17628             :         }
   17629     1937920 :         p->mark = _mark;
   17630     1937920 :         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     1937920 :         if (p->error_indicator) {
   17635           0 :             p->level--;
   17636           0 :             return NULL;
   17637             :         }
   17638     1937920 :         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     1937920 :         if (
   17643     1937920 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   17644       42800 :             &&
   17645       42800 :             (a = star_targets_list_seq_rule(p), !p->error_indicator)  // star_targets_list_seq?
   17646       42800 :             &&
   17647       42800 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   17648             :         )
   17649             :         {
   17650       20287 :             D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_targets_list_seq? ']'"));
   17651       20287 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17652       20287 :             if (_token == NULL) {
   17653           0 :                 p->level--;
   17654           0 :                 return NULL;
   17655             :             }
   17656       20287 :             int _end_lineno = _token->end_lineno;
   17657             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17658       20287 :             int _end_col_offset = _token->end_col_offset;
   17659             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17660       20287 :             _res = _PyAST_List ( a , Store , EXTRA );
   17661       20287 :             if (_res == NULL && PyErr_Occurred()) {
   17662           0 :                 p->error_indicator = 1;
   17663           0 :                 p->level--;
   17664           0 :                 return NULL;
   17665             :             }
   17666       20287 :             goto done;
   17667             :         }
   17668     1917630 :         p->mark = _mark;
   17669     1917630 :         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     1917630 :     _res = NULL;
   17673     4017420 :   done:
   17674     4017420 :     p->level--;
   17675     4017420 :     return _res;
   17676             : }
   17677             : 
   17678             : // single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
   17679             : static expr_ty
   17680     2413360 : single_target_rule(Parser *p)
   17681             : {
   17682     2413360 :     if (p->level++ == MAXSTACK) {
   17683           0 :         p->error_indicator = 1;
   17684           0 :         PyErr_NoMemory();
   17685             :     }
   17686     2413360 :     if (p->error_indicator) {
   17687           0 :         p->level--;
   17688           0 :         return NULL;
   17689             :     }
   17690     2413360 :     expr_ty _res = NULL;
   17691     2413360 :     int _mark = p->mark;
   17692             :     { // single_subscript_attribute_target
   17693     2413360 :         if (p->error_indicator) {
   17694           0 :             p->level--;
   17695           0 :             return NULL;
   17696             :         }
   17697     2413360 :         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     2413360 :         if (
   17700     2413360 :             (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p))  // single_subscript_attribute_target
   17701             :         )
   17702             :         {
   17703        8857 :             D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
   17704        8857 :             _res = single_subscript_attribute_target_var;
   17705        8857 :             goto done;
   17706             :         }
   17707     2404510 :         p->mark = _mark;
   17708     2404510 :         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     2404510 :         if (p->error_indicator) {
   17713           8 :             p->level--;
   17714           8 :             return NULL;
   17715             :         }
   17716     2404500 :         D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
   17717             :         expr_ty a;
   17718     2404500 :         if (
   17719     2404500 :             (a = _PyPegen_name_token(p))  // NAME
   17720             :         )
   17721             :         {
   17722      757011 :             D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
   17723      757011 :             _res = _PyPegen_set_expr_context ( p , a , Store );
   17724      757011 :             if (_res == NULL && PyErr_Occurred()) {
   17725           0 :                 p->error_indicator = 1;
   17726           0 :                 p->level--;
   17727           0 :                 return NULL;
   17728             :             }
   17729      757011 :             goto done;
   17730             :         }
   17731     1647490 :         p->mark = _mark;
   17732     1647490 :         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     1647490 :         if (p->error_indicator) {
   17737           0 :             p->level--;
   17738           0 :             return NULL;
   17739             :         }
   17740     1647490 :         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     1647490 :         if (
   17745     1647490 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   17746         480 :             &&
   17747         480 :             (a = single_target_rule(p))  // single_target
   17748         351 :             &&
   17749         351 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   17750             :         )
   17751             :         {
   17752          18 :             D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
   17753          18 :             _res = a;
   17754          18 :             if (_res == NULL && PyErr_Occurred()) {
   17755           0 :                 p->error_indicator = 1;
   17756           0 :                 p->level--;
   17757           0 :                 return NULL;
   17758             :             }
   17759          18 :             goto done;
   17760             :         }
   17761     1647470 :         p->mark = _mark;
   17762     1647470 :         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     1647470 :     _res = NULL;
   17766     2413360 :   done:
   17767     2413360 :     p->level--;
   17768     2413360 :     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
   17775     5634280 : single_subscript_attribute_target_rule(Parser *p)
   17776             : {
   17777     5634280 :     if (p->level++ == MAXSTACK) {
   17778           0 :         p->error_indicator = 1;
   17779           0 :         PyErr_NoMemory();
   17780             :     }
   17781     5634280 :     if (p->error_indicator) {
   17782           0 :         p->level--;
   17783           0 :         return NULL;
   17784             :     }
   17785     5634280 :     expr_ty _res = NULL;
   17786     5634280 :     int _mark = p->mark;
   17787     5634280 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   17788           4 :         p->error_indicator = 1;
   17789           4 :         p->level--;
   17790           4 :         return NULL;
   17791             :     }
   17792     5634270 :     int _start_lineno = p->tokens[_mark]->lineno;
   17793             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   17794     5634270 :     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     5634270 :         if (p->error_indicator) {
   17798           0 :             p->level--;
   17799           0 :             return NULL;
   17800             :         }
   17801     5634270 :         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     5634270 :         if (
   17806     5634270 :             (a = t_primary_rule(p))  // t_primary
   17807     1251520 :             &&
   17808     1251520 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   17809      149422 :             &&
   17810      149422 :             (b = _PyPegen_name_token(p))  // NAME
   17811      149406 :             &&
   17812      149406 :             _PyPegen_lookahead(0, t_lookahead_rule, p)
   17813             :         )
   17814             :         {
   17815      149406 :             D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
   17816      149406 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17817      149406 :             if (_token == NULL) {
   17818           0 :                 p->level--;
   17819           0 :                 return NULL;
   17820             :             }
   17821      149406 :             int _end_lineno = _token->end_lineno;
   17822             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17823      149406 :             int _end_col_offset = _token->end_col_offset;
   17824             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17825      149406 :             _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
   17826      149406 :             if (_res == NULL && PyErr_Occurred()) {
   17827           0 :                 p->error_indicator = 1;
   17828           0 :                 p->level--;
   17829           0 :                 return NULL;
   17830             :             }
   17831      149406 :             goto done;
   17832             :         }
   17833     5484870 :         p->mark = _mark;
   17834     5484870 :         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     5484870 :         if (p->error_indicator) {
   17839         219 :             p->level--;
   17840         219 :             return NULL;
   17841             :         }
   17842     5484650 :         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     5484650 :         if (
   17848     5484650 :             (a = t_primary_rule(p))  // t_primary
   17849     1102110 :             &&
   17850     1102110 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   17851       38416 :             &&
   17852       38416 :             (b = slices_rule(p))  // slices
   17853       38382 :             &&
   17854       38382 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   17855       38352 :             &&
   17856       38352 :             _PyPegen_lookahead(0, t_lookahead_rule, p)
   17857             :         )
   17858             :         {
   17859       38352 :             D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
   17860       38352 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17861       38352 :             if (_token == NULL) {
   17862           0 :                 p->level--;
   17863           0 :                 return NULL;
   17864             :             }
   17865       38352 :             int _end_lineno = _token->end_lineno;
   17866             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17867       38352 :             int _end_col_offset = _token->end_col_offset;
   17868             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17869       38352 :             _res = _PyAST_Subscript ( a , b , Store , EXTRA );
   17870       38352 :             if (_res == NULL && PyErr_Occurred()) {
   17871           0 :                 p->error_indicator = 1;
   17872           0 :                 p->level--;
   17873           0 :                 return NULL;
   17874             :             }
   17875       38352 :             goto done;
   17876             :         }
   17877     5446300 :         p->mark = _mark;
   17878     5446300 :         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     5446300 :     _res = NULL;
   17882     5634060 :   done:
   17883     5634060 :     p->level--;
   17884     5634060 :     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
   17896    44542100 : t_primary_rule(Parser *p)
   17897             : {
   17898    44542100 :     if (p->level++ == MAXSTACK) {
   17899           0 :         p->error_indicator = 1;
   17900           0 :         PyErr_NoMemory();
   17901             :     }
   17902    44542100 :     expr_ty _res = NULL;
   17903    44542100 :     if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
   17904    40218000 :         p->level--;
   17905    40218000 :         return _res;
   17906             :     }
   17907     4324100 :     int _mark = p->mark;
   17908     4324100 :     int _resmark = p->mark;
   17909     2884740 :     while (1) {
   17910     7208840 :         int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
   17911     7208840 :         if (tmpvar_9) {
   17912           0 :             p->level--;
   17913           0 :             return _res;
   17914             :         }
   17915     7208840 :         p->mark = _mark;
   17916     7208840 :         void *_raw = t_primary_raw(p);
   17917     7208840 :         if (p->error_indicator) {
   17918         240 :             p->level--;
   17919         240 :             return NULL;
   17920             :         }
   17921     7208600 :         if (_raw == NULL || p->mark <= _resmark)
   17922             :             break;
   17923     2884740 :         _resmark = p->mark;
   17924     2884740 :         _res = _raw;
   17925             :     }
   17926     4323860 :     p->mark = _resmark;
   17927     4323860 :     p->level--;
   17928     4323860 :     return _res;
   17929             : }
   17930             : static expr_ty
   17931     7208840 : t_primary_raw(Parser *p)
   17932             : {
   17933     7208840 :     if (p->level++ == MAXSTACK) {
   17934           0 :         p->error_indicator = 1;
   17935           0 :         PyErr_NoMemory();
   17936             :     }
   17937     7208840 :     if (p->error_indicator) {
   17938           0 :         p->level--;
   17939           0 :         return NULL;
   17940             :     }
   17941     7208840 :     expr_ty _res = NULL;
   17942     7208840 :     int _mark = p->mark;
   17943     7208840 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   17944           0 :         p->error_indicator = 1;
   17945           0 :         p->level--;
   17946           0 :         return NULL;
   17947             :     }
   17948     7208840 :     int _start_lineno = p->tokens[_mark]->lineno;
   17949             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   17950     7208840 :     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     7208840 :         if (p->error_indicator) {
   17954           0 :             p->level--;
   17955           0 :             return NULL;
   17956             :         }
   17957     7208840 :         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     7208840 :         if (
   17962     7208840 :             (a = t_primary_rule(p))  // t_primary
   17963     2884740 :             &&
   17964     2884740 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   17965     1290940 :             &&
   17966     1290940 :             (b = _PyPegen_name_token(p))  // NAME
   17967     1290930 :             &&
   17968     1290930 :             _PyPegen_lookahead(1, t_lookahead_rule, p)
   17969             :         )
   17970             :         {
   17971     1069970 :             D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
   17972     1069970 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17973     1069970 :             if (_token == NULL) {
   17974           0 :                 p->level--;
   17975           0 :                 return NULL;
   17976             :             }
   17977     1069970 :             int _end_lineno = _token->end_lineno;
   17978             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17979     1069970 :             int _end_col_offset = _token->end_col_offset;
   17980             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17981     1069970 :             _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
   17982     1069970 :             if (_res == NULL && PyErr_Occurred()) {
   17983           0 :                 p->error_indicator = 1;
   17984           0 :                 p->level--;
   17985           0 :                 return NULL;
   17986             :             }
   17987     1069970 :             goto done;
   17988             :         }
   17989     6138870 :         p->mark = _mark;
   17990     6138870 :         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     6138870 :         if (p->error_indicator) {
   17995           2 :             p->level--;
   17996           2 :             return NULL;
   17997             :         }
   17998     6138860 :         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     6138860 :         if (
   18004     6138860 :             (a = t_primary_rule(p))  // t_primary
   18005     1814760 :             &&
   18006     1814760 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   18007      394235 :             &&
   18008      394235 :             (b = slices_rule(p))  // slices
   18009      394198 :             &&
   18010      394198 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   18011      394177 :             &&
   18012      394177 :             _PyPegen_lookahead(1, t_lookahead_rule, p)
   18013             :         )
   18014             :         {
   18015      313390 :             D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
   18016      313390 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   18017      313390 :             if (_token == NULL) {
   18018           0 :                 p->level--;
   18019           0 :                 return NULL;
   18020             :             }
   18021      313390 :             int _end_lineno = _token->end_lineno;
   18022             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   18023      313390 :             int _end_col_offset = _token->end_col_offset;
   18024             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   18025      313390 :             _res = _PyAST_Subscript ( a , b , Load , EXTRA );
   18026      313390 :             if (_res == NULL && PyErr_Occurred()) {
   18027           0 :                 p->error_indicator = 1;
   18028           0 :                 p->level--;
   18029           0 :                 return NULL;
   18030             :             }
   18031      313390 :             goto done;
   18032             :         }
   18033     5825480 :         p->mark = _mark;
   18034     5825480 :         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     5825480 :         if (p->error_indicator) {
   18039          16 :             p->level--;
   18040          16 :             return NULL;
   18041             :         }
   18042     5825460 :         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     5825460 :         if (
   18046     5825460 :             (a = t_primary_rule(p))  // t_primary
   18047     1501350 :             &&
   18048     1501350 :             (b = genexp_rule(p))  // genexp
   18049        2947 :             &&
   18050        2947 :             _PyPegen_lookahead(1, t_lookahead_rule, p)
   18051             :         )
   18052             :         {
   18053          28 :             D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
   18054          28 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   18055          28 :             if (_token == NULL) {
   18056           0 :                 p->level--;
   18057           0 :                 return NULL;
   18058             :             }
   18059          28 :             int _end_lineno = _token->end_lineno;
   18060             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   18061          28 :             int _end_col_offset = _token->end_col_offset;
   18062             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   18063          28 :             _res = _PyAST_Call ( a , CHECK ( asdl_expr_seq* , ( asdl_expr_seq* ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
   18064          28 :             if (_res == NULL && PyErr_Occurred()) {
   18065           0 :                 p->error_indicator = 1;
   18066           0 :                 p->level--;
   18067           0 :                 return NULL;
   18068             :             }
   18069          28 :             goto done;
   18070             :         }
   18071     5825430 :         p->mark = _mark;
   18072     5825430 :         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     5825430 :         if (p->error_indicator) {
   18077          33 :             p->level--;
   18078          33 :             return NULL;
   18079             :         }
   18080     5825400 :         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     5825400 :         if (
   18086     5825400 :             (a = t_primary_rule(p))  // t_primary
   18087     1501290 :             &&
   18088     1501290 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   18089     1199500 :             &&
   18090     1199500 :             (b = arguments_rule(p), !p->error_indicator)  // arguments?
   18091     1199450 :             &&
   18092     1199450 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   18093     1196460 :             &&
   18094     1196460 :             _PyPegen_lookahead(1, t_lookahead_rule, p)
   18095             :         )
   18096             :         {
   18097      329991 :             D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
   18098      329991 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   18099      329991 :             if (_token == NULL) {
   18100           0 :                 p->level--;
   18101           0 :                 return NULL;
   18102             :             }
   18103      329991 :             int _end_lineno = _token->end_lineno;
   18104             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   18105      329991 :             int _end_col_offset = _token->end_col_offset;
   18106             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   18107      329991 :             _res = _PyAST_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
   18108      329991 :             if (_res == NULL && PyErr_Occurred()) {
   18109           0 :                 p->error_indicator = 1;
   18110           0 :                 p->level--;
   18111           0 :                 return NULL;
   18112             :             }
   18113      329991 :             goto done;
   18114             :         }
   18115     5495410 :         p->mark = _mark;
   18116     5495410 :         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     5495410 :         if (p->error_indicator) {
   18121          45 :             p->level--;
   18122          45 :             return NULL;
   18123             :         }
   18124     5495360 :         D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
   18125             :         expr_ty a;
   18126     5495360 :         if (
   18127     5495360 :             (a = atom_rule(p))  // atom
   18128     3944190 :             &&
   18129     3944190 :             _PyPegen_lookahead(1, t_lookahead_rule, p)
   18130             :         )
   18131             :         {
   18132     2342610 :             D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
   18133     2342610 :             _res = a;
   18134     2342610 :             if (_res == NULL && PyErr_Occurred()) {
   18135           0 :                 p->error_indicator = 1;
   18136           0 :                 p->level--;
   18137           0 :                 return NULL;
   18138             :             }
   18139     2342610 :             goto done;
   18140             :         }
   18141     3152750 :         p->mark = _mark;
   18142     3152750 :         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     3152750 :     _res = NULL;
   18146     7208740 :   done:
   18147     7208740 :     p->level--;
   18148     7208740 :     return _res;
   18149             : }
   18150             : 
   18151             : // t_lookahead: '(' | '[' | '.'
   18152             : static void *
   18153     7316250 : t_lookahead_rule(Parser *p)
   18154             : {
   18155     7316250 :     if (p->level++ == MAXSTACK) {
   18156           0 :         p->error_indicator = 1;
   18157           0 :         PyErr_NoMemory();
   18158             :     }
   18159     7316250 :     if (p->error_indicator) {
   18160           0 :         p->level--;
   18161           0 :         return NULL;
   18162             :     }
   18163     7316250 :     void * _res = NULL;
   18164     7316250 :     int _mark = p->mark;
   18165             :     { // '('
   18166     7316250 :         if (p->error_indicator) {
   18167           0 :             p->level--;
   18168           0 :             return NULL;
   18169             :         }
   18170     7316250 :         D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
   18171             :         Token * _literal;
   18172     7316250 :         if (
   18173     7316250 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   18174             :         )
   18175             :         {
   18176     1441830 :             D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
   18177     1441830 :             _res = _literal;
   18178     1441830 :             goto done;
   18179             :         }
   18180     5874420 :         p->mark = _mark;
   18181     5874420 :         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     5874420 :         if (p->error_indicator) {
   18186           7 :             p->level--;
   18187           7 :             return NULL;
   18188             :         }
   18189     5874410 :         D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
   18190             :         Token * _literal;
   18191     5874410 :         if (
   18192     5874410 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   18193             :         )
   18194             :         {
   18195      455087 :             D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
   18196      455087 :             _res = _literal;
   18197      455087 :             goto done;
   18198             :         }
   18199     5419320 :         p->mark = _mark;
   18200     5419320 :         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     5419320 :         if (p->error_indicator) {
   18205           0 :             p->level--;
   18206           0 :             return NULL;
   18207             :         }
   18208     5419320 :         D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
   18209             :         Token * _literal;
   18210     5419320 :         if (
   18211     5419320 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   18212             :         )
   18213             :         {
   18214     2159080 :             D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
   18215     2159080 :             _res = _literal;
   18216     2159080 :             goto done;
   18217             :         }
   18218     3260250 :         p->mark = _mark;
   18219     3260250 :         D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
   18220             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
   18221             :     }
   18222     3260250 :     _res = NULL;
   18223     7316240 :   done:
   18224     7316240 :     p->level--;
   18225     7316240 :     return _res;
   18226             : }
   18227             : 
   18228             : // del_targets: ','.del_target+ ','?
   18229             : static asdl_expr_seq*
   18230        9065 : del_targets_rule(Parser *p)
   18231             : {
   18232        9065 :     if (p->level++ == MAXSTACK) {
   18233           0 :         p->error_indicator = 1;
   18234           0 :         PyErr_NoMemory();
   18235             :     }
   18236        9065 :     if (p->error_indicator) {
   18237           0 :         p->level--;
   18238           0 :         return NULL;
   18239             :     }
   18240        9065 :     asdl_expr_seq* _res = NULL;
   18241        9065 :     int _mark = p->mark;
   18242             :     { // ','.del_target+ ','?
   18243        9065 :         if (p->error_indicator) {
   18244           0 :             p->level--;
   18245           0 :             return NULL;
   18246             :         }
   18247        9065 :         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        9065 :         if (
   18252        9065 :             (a = (asdl_expr_seq*)_gather_133_rule(p))  // ','.del_target+
   18253        8999 :             &&
   18254        8999 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   18255             :         )
   18256             :         {
   18257        8999 :             D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
   18258        8999 :             _res = a;
   18259        8999 :             if (_res == NULL && PyErr_Occurred()) {
   18260           0 :                 p->error_indicator = 1;
   18261           0 :                 p->level--;
   18262           0 :                 return NULL;
   18263             :             }
   18264        8999 :             goto done;
   18265             :         }
   18266          66 :         p->mark = _mark;
   18267          66 :         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          66 :     _res = NULL;
   18271        9065 :   done:
   18272        9065 :     p->level--;
   18273        9065 :     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
   18281       10900 : del_target_rule(Parser *p)
   18282             : {
   18283       10900 :     if (p->level++ == MAXSTACK) {
   18284           0 :         p->error_indicator = 1;
   18285           0 :         PyErr_NoMemory();
   18286             :     }
   18287       10900 :     if (p->error_indicator) {
   18288           0 :         p->level--;
   18289           0 :         return NULL;
   18290             :     }
   18291       10900 :     expr_ty _res = NULL;
   18292       10900 :     if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
   18293          68 :         p->level--;
   18294          68 :         return _res;
   18295             :     }
   18296       10832 :     int _mark = p->mark;
   18297       10832 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   18298           0 :         p->error_indicator = 1;
   18299           0 :         p->level--;
   18300           0 :         return NULL;
   18301             :     }
   18302       10832 :     int _start_lineno = p->tokens[_mark]->lineno;
   18303             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   18304       10832 :     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       10832 :         if (p->error_indicator) {
   18308           0 :             p->level--;
   18309           0 :             return NULL;
   18310             :         }
   18311       10832 :         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       10832 :         if (
   18316       10832 :             (a = t_primary_rule(p))  // t_primary
   18317        6247 :             &&
   18318        6247 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   18319        1416 :             &&
   18320        1416 :             (b = _PyPegen_name_token(p))  // NAME
   18321        1416 :             &&
   18322        1416 :             _PyPegen_lookahead(0, t_lookahead_rule, p)
   18323             :         )
   18324             :         {
   18325        1416 :             D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
   18326        1416 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   18327        1416 :             if (_token == NULL) {
   18328           0 :                 p->level--;
   18329           0 :                 return NULL;
   18330             :             }
   18331        1416 :             int _end_lineno = _token->end_lineno;
   18332             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   18333        1416 :             int _end_col_offset = _token->end_col_offset;
   18334             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   18335        1416 :             _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
   18336        1416 :             if (_res == NULL && PyErr_Occurred()) {
   18337           0 :                 p->error_indicator = 1;
   18338           0 :                 p->level--;
   18339           0 :                 return NULL;
   18340             :             }
   18341        1416 :             goto done;
   18342             :         }
   18343        9416 :         p->mark = _mark;
   18344        9416 :         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        9416 :         if (p->error_indicator) {
   18349           1 :             p->level--;
   18350           1 :             return NULL;
   18351             :         }
   18352        9415 :         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        9415 :         if (
   18358        9415 :             (a = t_primary_rule(p))  // t_primary
   18359        4831 :             &&
   18360        4831 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   18361        4815 :             &&
   18362        4815 :             (b = slices_rule(p))  // slices
   18363        4811 :             &&
   18364        4811 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   18365        4805 :             &&
   18366        4805 :             _PyPegen_lookahead(0, t_lookahead_rule, p)
   18367             :         )
   18368             :         {
   18369        4805 :             D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
   18370        4805 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   18371        4805 :             if (_token == NULL) {
   18372           0 :                 p->level--;
   18373           0 :                 return NULL;
   18374             :             }
   18375        4805 :             int _end_lineno = _token->end_lineno;
   18376             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   18377        4805 :             int _end_col_offset = _token->end_col_offset;
   18378             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   18379        4805 :             _res = _PyAST_Subscript ( a , b , Del , EXTRA );
   18380        4805 :             if (_res == NULL && PyErr_Occurred()) {
   18381           0 :                 p->error_indicator = 1;
   18382           0 :                 p->level--;
   18383           0 :                 return NULL;
   18384             :             }
   18385        4805 :             goto done;
   18386             :         }
   18387        4610 :         p->mark = _mark;
   18388        4610 :         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        4610 :         if (p->error_indicator) {
   18393           0 :             p->level--;
   18394           0 :             return NULL;
   18395             :         }
   18396        4610 :         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        4610 :         if (
   18399        4610 :             (del_t_atom_var = del_t_atom_rule(p))  // del_t_atom
   18400             :         )
   18401             :         {
   18402        4532 :             D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
   18403        4532 :             _res = del_t_atom_var;
   18404        4532 :             goto done;
   18405             :         }
   18406          78 :         p->mark = _mark;
   18407          78 :         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          78 :     _res = NULL;
   18411       10831 :   done:
   18412       10831 :     _PyPegen_insert_memo(p, _mark, del_target_type, _res);
   18413       10831 :     p->level--;
   18414       10831 :     return _res;
   18415             : }
   18416             : 
   18417             : // del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
   18418             : static expr_ty
   18419        4610 : del_t_atom_rule(Parser *p)
   18420             : {
   18421        4610 :     if (p->level++ == MAXSTACK) {
   18422           0 :         p->error_indicator = 1;
   18423           0 :         PyErr_NoMemory();
   18424             :     }
   18425        4610 :     if (p->error_indicator) {
   18426           0 :         p->level--;
   18427           0 :         return NULL;
   18428             :     }
   18429        4610 :     expr_ty _res = NULL;
   18430        4610 :     int _mark = p->mark;
   18431        4610 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   18432           0 :         p->error_indicator = 1;
   18433           0 :         p->level--;
   18434           0 :         return NULL;
   18435             :     }
   18436        4610 :     int _start_lineno = p->tokens[_mark]->lineno;
   18437             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   18438        4610 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   18439             :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   18440             :     { // NAME
   18441        4610 :         if (p->error_indicator) {
   18442           0 :             p->level--;
   18443           0 :             return NULL;
   18444             :         }
   18445        4610 :         D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
   18446             :         expr_ty a;
   18447        4610 :         if (
   18448        4610 :             (a = _PyPegen_name_token(p))  // NAME
   18449             :         )
   18450             :         {
   18451        4471 :             D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
   18452        4471 :             _res = _PyPegen_set_expr_context ( p , a , Del );
   18453        4471 :             if (_res == NULL && PyErr_Occurred()) {
   18454           0 :                 p->error_indicator = 1;
   18455           0 :                 p->level--;
   18456           0 :                 return NULL;
   18457             :             }
   18458        4471 :             goto done;
   18459             :         }
   18460         139 :         p->mark = _mark;
   18461         139 :         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         139 :         if (p->error_indicator) {
   18466           0 :             p->level--;
   18467           0 :             return NULL;
   18468             :         }
   18469         139 :         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         139 :         if (
   18474         139 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   18475          78 :             &&
   18476          78 :             (a = del_target_rule(p))  // del_target
   18477          63 :             &&
   18478          63 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   18479             :         )
   18480             :         {
   18481          10 :             D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
   18482          10 :             _res = _PyPegen_set_expr_context ( p , a , Del );
   18483          10 :             if (_res == NULL && PyErr_Occurred()) {
   18484           0 :                 p->error_indicator = 1;
   18485           0 :                 p->level--;
   18486           0 :                 return NULL;
   18487             :             }
   18488          10 :             goto done;
   18489             :         }
   18490         129 :         p->mark = _mark;
   18491         129 :         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         129 :         if (p->error_indicator) {
   18496           0 :             p->level--;
   18497           0 :             return NULL;
   18498             :         }
   18499         129 :         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         129 :         if (
   18504         129 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   18505          68 :             &&
   18506          68 :             (a = del_targets_rule(p), !p->error_indicator)  // del_targets?
   18507          68 :             &&
   18508          68 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   18509             :         )
   18510             :         {
   18511          42 :             D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
   18512          42 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   18513          42 :             if (_token == NULL) {
   18514           0 :                 p->level--;
   18515           0 :                 return NULL;
   18516             :             }
   18517          42 :             int _end_lineno = _token->end_lineno;
   18518             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   18519          42 :             int _end_col_offset = _token->end_col_offset;
   18520             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   18521          42 :             _res = _PyAST_Tuple ( a , Del , EXTRA );
   18522          42 :             if (_res == NULL && PyErr_Occurred()) {
   18523           0 :                 p->error_indicator = 1;
   18524           0 :                 p->level--;
   18525           0 :                 return NULL;
   18526             :             }
   18527          42 :             goto done;
   18528             :         }
   18529          87 :         p->mark = _mark;
   18530          87 :         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          87 :         if (p->error_indicator) {
   18535           0 :             p->level--;
   18536           0 :             return NULL;
   18537             :         }
   18538          87 :         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          87 :         if (
   18543          87 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   18544          18 :             &&
   18545          18 :             (a = del_targets_rule(p), !p->error_indicator)  // del_targets?
   18546          18 :             &&
   18547          18 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   18548             :         )
   18549             :         {
   18550           9 :             D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
   18551           9 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   18552           9 :             if (_token == NULL) {
   18553           0 :                 p->level--;
   18554           0 :                 return NULL;
   18555             :             }
   18556           9 :             int _end_lineno = _token->end_lineno;
   18557             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   18558           9 :             int _end_col_offset = _token->end_col_offset;
   18559             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   18560           9 :             _res = _PyAST_List ( a , Del , EXTRA );
   18561           9 :             if (_res == NULL && PyErr_Occurred()) {
   18562           0 :                 p->error_indicator = 1;
   18563           0 :                 p->level--;
   18564           0 :                 return NULL;
   18565             :             }
   18566           9 :             goto done;
   18567             :         }
   18568          78 :         p->mark = _mark;
   18569          78 :         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          78 :     _res = NULL;
   18573        4610 :   done:
   18574        4610 :     p->level--;
   18575        4610 :     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*
   18587          18 : type_expressions_rule(Parser *p)
   18588             : {
   18589          18 :     if (p->level++ == MAXSTACK) {
   18590           0 :         p->error_indicator = 1;
   18591           0 :         PyErr_NoMemory();
   18592             :     }
   18593          18 :     if (p->error_indicator) {
   18594           0 :         p->level--;
   18595           0 :         return NULL;
   18596             :     }
   18597          18 :     asdl_expr_seq* _res = NULL;
   18598          18 :     int _mark = p->mark;
   18599             :     { // ','.expression+ ',' '*' expression ',' '**' expression
   18600          18 :         if (p->error_indicator) {
   18601           0 :             p->level--;
   18602           0 :             return NULL;
   18603             :         }
   18604          18 :         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          18 :         if (
   18613          18 :             (a = _gather_135_rule(p))  // ','.expression+
   18614          10 :             &&
   18615          10 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   18616           5 :             &&
   18617           5 :             (_literal_1 = _PyPegen_expect_token(p, 16))  // token='*'
   18618           3 :             &&
   18619           3 :             (b = expression_rule(p))  // expression
   18620           3 :             &&
   18621           3 :             (_literal_2 = _PyPegen_expect_token(p, 12))  // token=','
   18622           3 :             &&
   18623           3 :             (_literal_3 = _PyPegen_expect_token(p, 35))  // token='**'
   18624           1 :             &&
   18625           1 :             (c = expression_rule(p))  // expression
   18626             :         )
   18627             :         {
   18628           1 :             D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
   18629           1 :             _res = ( asdl_expr_seq* ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq* , _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
   18630           1 :             if (_res == NULL && PyErr_Occurred()) {
   18631           0 :                 p->error_indicator = 1;
   18632           0 :                 p->level--;
   18633           0 :                 return NULL;
   18634             :             }
   18635           1 :             goto done;
   18636             :         }
   18637          17 :         p->mark = _mark;
   18638          17 :         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          17 :         if (p->error_indicator) {
   18643           0 :             p->level--;
   18644           0 :             return NULL;
   18645             :         }
   18646          17 :         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          17 :         if (
   18652          17 :             (a = _gather_137_rule(p))  // ','.expression+
   18653           9 :             &&
   18654           9 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   18655           4 :             &&
   18656           4 :             (_literal_1 = _PyPegen_expect_token(p, 16))  // token='*'
   18657           2 :             &&
   18658           2 :             (b = expression_rule(p))  // expression
   18659             :         )
   18660             :         {
   18661           2 :             D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
   18662           2 :             _res = ( asdl_expr_seq* ) _PyPegen_seq_append_to_end ( p , a , b );
   18663           2 :             if (_res == NULL && PyErr_Occurred()) {
   18664           0 :                 p->error_indicator = 1;
   18665           0 :                 p->level--;
   18666           0 :                 return NULL;
   18667             :             }
   18668           2 :             goto done;
   18669             :         }
   18670          15 :         p->mark = _mark;
   18671          15 :         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          15 :         if (p->error_indicator) {
   18676           0 :             p->level--;
   18677           0 :             return NULL;
   18678             :         }
   18679          15 :         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          15 :         if (
   18685          15 :             (a = _gather_139_rule(p))  // ','.expression+
   18686           7 :             &&
   18687           7 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   18688           2 :             &&
   18689           2 :             (_literal_1 = _PyPegen_expect_token(p, 35))  // token='**'
   18690           2 :             &&
   18691           2 :             (b = expression_rule(p))  // expression
   18692             :         )
   18693             :         {
   18694           2 :             D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
   18695           2 :             _res = ( asdl_expr_seq* ) _PyPegen_seq_append_to_end ( p , a , b );
   18696           2 :             if (_res == NULL && PyErr_Occurred()) {
   18697           0 :                 p->error_indicator = 1;
   18698           0 :                 p->level--;
   18699           0 :                 return NULL;
   18700             :             }
   18701           2 :             goto done;
   18702             :         }
   18703          13 :         p->mark = _mark;
   18704          13 :         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          13 :         if (p->error_indicator) {
   18709           0 :             p->level--;
   18710           0 :             return NULL;
   18711             :         }
   18712          13 :         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          13 :         if (
   18719          13 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   18720           2 :             &&
   18721           2 :             (a = expression_rule(p))  // expression
   18722           2 :             &&
   18723           2 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
   18724           1 :             &&
   18725           1 :             (_literal_2 = _PyPegen_expect_token(p, 35))  // token='**'
   18726           1 :             &&
   18727           1 :             (b = expression_rule(p))  // expression
   18728             :         )
   18729             :         {
   18730           1 :             D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
   18731           1 :             _res = ( asdl_expr_seq* ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq* , _PyPegen_singleton_seq ( p , a ) ) , b );
   18732           1 :             if (_res == NULL && PyErr_Occurred()) {
   18733           0 :                 p->error_indicator = 1;
   18734           0 :                 p->level--;
   18735           0 :                 return NULL;
   18736             :             }
   18737           1 :             goto done;
   18738             :         }
   18739          12 :         p->mark = _mark;
   18740          12 :         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          12 :         if (p->error_indicator) {
   18745           0 :             p->level--;
   18746           0 :             return NULL;
   18747             :         }
   18748          12 :         D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
   18749             :         Token * _literal;
   18750             :         expr_ty a;
   18751          12 :         if (
   18752          12 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   18753           1 :             &&
   18754           1 :             (a = expression_rule(p))  // expression
   18755             :         )
   18756             :         {
   18757           1 :             D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
   18758           1 :             _res = ( asdl_expr_seq* ) _PyPegen_singleton_seq ( p , a );
   18759           1 :             if (_res == NULL && PyErr_Occurred()) {
   18760           0 :                 p->error_indicator = 1;
   18761           0 :                 p->level--;
   18762           0 :                 return NULL;
   18763             :             }
   18764           1 :             goto done;
   18765             :         }
   18766          11 :         p->mark = _mark;
   18767          11 :         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          11 :         if (p->error_indicator) {
   18772           0 :             p->level--;
   18773           0 :             return NULL;
   18774             :         }
   18775          11 :         D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
   18776             :         Token * _literal;
   18777             :         expr_ty a;
   18778          11 :         if (
   18779          11 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   18780           3 :             &&
   18781           3 :             (a = expression_rule(p))  // expression
   18782             :         )
   18783             :         {
   18784           3 :             D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
   18785           3 :             _res = ( asdl_expr_seq* ) _PyPegen_singleton_seq ( p , a );
   18786           3 :             if (_res == NULL && PyErr_Occurred()) {
   18787           0 :                 p->error_indicator = 1;
   18788           0 :                 p->level--;
   18789           0 :                 return NULL;
   18790             :             }
   18791           3 :             goto done;
   18792             :         }
   18793           8 :         p->mark = _mark;
   18794           8 :         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           8 :         if (p->error_indicator) {
   18799           0 :             p->level--;
   18800           0 :             return NULL;
   18801             :         }
   18802           8 :         D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
   18803             :         asdl_expr_seq* a;
   18804           8 :         if (
   18805           8 :             (a = (asdl_expr_seq*)_gather_141_rule(p))  // ','.expression+
   18806             :         )
   18807             :         {
   18808           5 :             D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
   18809           5 :             _res = a;
   18810           5 :             if (_res == NULL && PyErr_Occurred()) {
   18811           0 :                 p->error_indicator = 1;
   18812           0 :                 p->level--;
   18813           0 :                 return NULL;
   18814             :             }
   18815           5 :             goto done;
   18816             :         }
   18817           3 :         p->mark = _mark;
   18818           3 :         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           3 :     _res = NULL;
   18822          18 :   done:
   18823          18 :     p->level--;
   18824          18 :     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*
   18832      342507 : func_type_comment_rule(Parser *p)
   18833             : {
   18834      342507 :     if (p->level++ == MAXSTACK) {
   18835           0 :         p->error_indicator = 1;
   18836           0 :         PyErr_NoMemory();
   18837             :     }
   18838      342507 :     if (p->error_indicator) {
   18839           0 :         p->level--;
   18840           0 :         return NULL;
   18841             :     }
   18842      342507 :     Token* _res = NULL;
   18843      342507 :     int _mark = p->mark;
   18844             :     { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
   18845      342507 :         if (p->error_indicator) {
   18846           0 :             p->level--;
   18847           0 :             return NULL;
   18848             :         }
   18849      342507 :         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      342507 :         if (
   18853      342507 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   18854      336442 :             &&
   18855      336442 :             (t = _PyPegen_expect_token(p, TYPE_COMMENT))  // token='TYPE_COMMENT'
   18856          27 :             &&
   18857          27 :             _PyPegen_lookahead(1, _tmp_143_rule, p)
   18858             :         )
   18859             :         {
   18860          27 :             D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
   18861          27 :             _res = t;
   18862          27 :             if (_res == NULL && PyErr_Occurred()) {
   18863           0 :                 p->error_indicator = 1;
   18864           0 :                 p->level--;
   18865           0 :                 return NULL;
   18866             :             }
   18867          27 :             goto done;
   18868             :         }
   18869      342480 :         p->mark = _mark;
   18870      342480 :         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      342480 :     if (p->call_invalid_rules) { // invalid_double_type_comments
   18874          63 :         if (p->error_indicator) {
   18875           0 :             p->level--;
   18876           0 :             return NULL;
   18877             :         }
   18878          63 :         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          63 :         if (
   18881          63 :             (invalid_double_type_comments_var = invalid_double_type_comments_rule(p))  // invalid_double_type_comments
   18882             :         )
   18883             :         {
   18884           0 :             D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
   18885           0 :             _res = invalid_double_type_comments_var;
   18886           0 :             goto done;
   18887             :         }
   18888          63 :         p->mark = _mark;
   18889          63 :         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      342480 :         if (p->error_indicator) {
   18894           9 :             p->level--;
   18895           9 :             return NULL;
   18896             :         }
   18897      342471 :         D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
   18898             :         Token * type_comment_var;
   18899      342471 :         if (
   18900      342471 :             (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT))  // token='TYPE_COMMENT'
   18901             :         )
   18902             :         {
   18903          34 :             D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
   18904          34 :             _res = type_comment_var;
   18905          34 :             goto done;
   18906             :         }
   18907      342437 :         p->mark = _mark;
   18908      342437 :         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      342437 :     _res = NULL;
   18912      342498 :   done:
   18913      342498 :     p->level--;
   18914      342498 :     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 *
   18925          94 : invalid_arguments_rule(Parser *p)
   18926             : {
   18927          94 :     if (p->level++ == MAXSTACK) {
   18928           0 :         p->error_indicator = 1;
   18929           0 :         PyErr_NoMemory();
   18930             :     }
   18931          94 :     if (p->error_indicator) {
   18932           0 :         p->level--;
   18933           0 :         return NULL;
   18934             :     }
   18935          94 :     void * _res = NULL;
   18936          94 :     int _mark = p->mark;
   18937             :     { // args ',' '*'
   18938          94 :         if (p->error_indicator) {
   18939           0 :             p->level--;
   18940           0 :             return NULL;
   18941             :         }
   18942          94 :         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          94 :         if (
   18947          94 :             (a = args_rule(p))  // args
   18948          44 :             &&
   18949          44 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   18950          13 :             &&
   18951          13 :             (_literal_1 = _PyPegen_expect_token(p, 16))  // token='*'
   18952             :         )
   18953             :         {
   18954           1 :             D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
   18955           1 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
   18956           1 :             if (_res == NULL && PyErr_Occurred()) {
   18957           1 :                 p->error_indicator = 1;
   18958           1 :                 p->level--;
   18959           1 :                 return NULL;
   18960             :             }
   18961           0 :             goto done;
   18962             :         }
   18963          93 :         p->mark = _mark;
   18964          93 :         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          93 :         if (p->error_indicator) {
   18969           0 :             p->level--;
   18970           0 :             return NULL;
   18971             :         }
   18972          93 :         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          93 :         if (
   18979          93 :             (a = expression_rule(p))  // expression
   18980          42 :             &&
   18981          42 :             (b = for_if_clauses_rule(p))  // for_if_clauses
   18982          12 :             &&
   18983          12 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   18984          11 :             &&
   18985          11 :             (_opt_var = _tmp_144_rule(p), !p->error_indicator)  // [args | expression for_if_clauses]
   18986             :         )
   18987             :         {
   18988          10 :             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          10 :             _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , _PyPegen_get_last_comprehension_item ( PyPegen_last_item ( b , comprehension_ty ) ) , "Generator expression must be parenthesized" );
   18990          10 :             if (_res == NULL && PyErr_Occurred()) {
   18991          10 :                 p->error_indicator = 1;
   18992          10 :                 p->level--;
   18993          10 :                 return NULL;
   18994             :             }
   18995           0 :             goto done;
   18996             :         }
   18997          83 :         p->mark = _mark;
   18998          83 :         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          83 :         if (p->error_indicator) {
   19003           1 :             p->level--;
   19004           1 :             return NULL;
   19005             :         }
   19006          82 :         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          82 :         if (
   19012          82 :             (a = _PyPegen_name_token(p))  // NAME
   19013          28 :             &&
   19014          28 :             (b = _PyPegen_expect_token(p, 22))  // token='='
   19015          13 :             &&
   19016          13 :             (expression_var = expression_rule(p))  // expression
   19017          12 :             &&
   19018          12 :             (for_if_clauses_var = for_if_clauses_rule(p))  // for_if_clauses
   19019             :         )
   19020             :         {
   19021           0 :             D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
   19022           0 :             _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
   19023           0 :             if (_res == NULL && PyErr_Occurred()) {
   19024           0 :                 p->error_indicator = 1;
   19025           0 :                 p->level--;
   19026           0 :                 return NULL;
   19027             :             }
   19028           0 :             goto done;
   19029             :         }
   19030          82 :         p->mark = _mark;
   19031          82 :         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          82 :         if (p->error_indicator) {
   19036           0 :             p->level--;
   19037           0 :             return NULL;
   19038             :         }
   19039          82 :         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          82 :         if (
   19043          82 :             (a = args_rule(p))  // args
   19044          32 :             &&
   19045          32 :             (b = for_if_clauses_rule(p))  // for_if_clauses
   19046             :         )
   19047             :         {
   19048          11 :             D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
   19049          11 :             _res = _PyPegen_nonparen_genexp_in_call ( p , a , b );
   19050          11 :             if (_res == NULL && PyErr_Occurred()) {
   19051           9 :                 p->error_indicator = 1;
   19052           9 :                 p->level--;
   19053           9 :                 return NULL;
   19054             :             }
   19055           2 :             goto done;
   19056             :         }
   19057          71 :         p->mark = _mark;
   19058          71 :         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          71 :         if (p->error_indicator) {
   19063           0 :             p->level--;
   19064           0 :             return NULL;
   19065             :         }
   19066          71 :         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          71 :         if (
   19072          71 :             (args_var = args_rule(p))  // args
   19073          21 :             &&
   19074          21 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   19075          12 :             &&
   19076          12 :             (a = expression_rule(p))  // expression
   19077          11 :             &&
   19078          11 :             (b = for_if_clauses_rule(p))  // for_if_clauses
   19079             :         )
   19080             :         {
   19081           0 :             D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
   19082           0 :             _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , _PyPegen_get_last_comprehension_item ( PyPegen_last_item ( b , comprehension_ty ) ) , "Generator expression must be parenthesized" );
   19083           0 :             if (_res == NULL && PyErr_Occurred()) {
   19084           0 :                 p->error_indicator = 1;
   19085           0 :                 p->level--;
   19086           0 :                 return NULL;
   19087             :             }
   19088           0 :             goto done;
   19089             :         }
   19090          71 :         p->mark = _mark;
   19091          71 :         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          71 :         if (p->error_indicator) {
   19096           0 :             p->level--;
   19097           0 :             return NULL;
   19098             :         }
   19099          71 :         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          71 :         if (
   19104          71 :             (a = args_rule(p))  // args
   19105          21 :             &&
   19106          21 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   19107          12 :             &&
   19108          12 :             (args_var = args_rule(p))  // args
   19109             :         )
   19110             :         {
   19111          11 :             D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' args"));
   19112          11 :             _res = _PyPegen_arguments_parsing_error ( p , a );
   19113          11 :             if (_res == NULL && PyErr_Occurred()) {
   19114          11 :                 p->error_indicator = 1;
   19115          11 :                 p->level--;
   19116          11 :                 return NULL;
   19117             :             }
   19118           0 :             goto done;
   19119             :         }
   19120          60 :         p->mark = _mark;
   19121          60 :         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          60 :     _res = NULL;
   19125          62 :   done:
   19126          62 :     p->level--;
   19127          62 :     return _res;
   19128             : }
   19129             : 
   19130             : // invalid_kwarg:
   19131             : //     | ('True' | 'False' | 'None') '='
   19132             : //     | NAME '=' expression for_if_clauses
   19133             : //     | !(NAME '=') expression '='
   19134             : static void *
   19135        1130 : invalid_kwarg_rule(Parser *p)
   19136             : {
   19137        1130 :     if (p->level++ == MAXSTACK) {
   19138           0 :         p->error_indicator = 1;
   19139           0 :         PyErr_NoMemory();
   19140             :     }
   19141        1130 :     if (p->error_indicator) {
   19142           0 :         p->level--;
   19143           0 :         return NULL;
   19144             :     }
   19145        1130 :     void * _res = NULL;
   19146        1130 :     int _mark = p->mark;
   19147             :     { // ('True' | 'False' | 'None') '='
   19148        1130 :         if (p->error_indicator) {
   19149           0 :             p->level--;
   19150           0 :             return NULL;
   19151             :         }
   19152        1130 :         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        1130 :         if (
   19156        1130 :             (a = (Token*)_tmp_145_rule(p))  // 'True' | 'False' | 'None'
   19157           4 :             &&
   19158           4 :             (b = _PyPegen_expect_token(p, 22))  // token='='
   19159             :         )
   19160             :         {
   19161           4 :             D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('True' | 'False' | 'None') '='"));
   19162           4 :             _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot assign to %s" , PyBytes_AS_STRING ( a -> bytes ) );
   19163           4 :             if (_res == NULL && PyErr_Occurred()) {
   19164           4 :                 p->error_indicator = 1;
   19165           4 :                 p->level--;
   19166           4 :                 return NULL;
   19167             :             }
   19168           0 :             goto done;
   19169             :         }
   19170        1126 :         p->mark = _mark;
   19171        1126 :         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        1126 :         if (p->error_indicator) {
   19176           0 :             p->level--;
   19177           0 :             return NULL;
   19178             :         }
   19179        1126 :         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        1126 :         if (
   19185        1126 :             (a = _PyPegen_name_token(p))  // NAME
   19186         277 :             &&
   19187         277 :             (b = _PyPegen_expect_token(p, 22))  // token='='
   19188         168 :             &&
   19189         168 :             (expression_var = expression_rule(p))  // expression
   19190         153 :             &&
   19191         153 :             (for_if_clauses_var = for_if_clauses_rule(p))  // for_if_clauses
   19192             :         )
   19193             :         {
   19194           1 :             D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
   19195           1 :             _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
   19196           1 :             if (_res == NULL && PyErr_Occurred()) {
   19197           1 :                 p->error_indicator = 1;
   19198           1 :                 p->level--;
   19199           1 :                 return NULL;
   19200             :             }
   19201           0 :             goto done;
   19202             :         }
   19203        1125 :         p->mark = _mark;
   19204        1125 :         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        1125 :         if (p->error_indicator) {
   19209           0 :             p->level--;
   19210           0 :             return NULL;
   19211             :         }
   19212        1125 :         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        1125 :         if (
   19216        1125 :             _PyPegen_lookahead(0, _tmp_146_rule, p)
   19217         958 :             &&
   19218         958 :             (a = expression_rule(p))  // expression
   19219         164 :             &&
   19220         164 :             (b = _PyPegen_expect_token(p, 22))  // token='='
   19221             :         )
   19222             :         {
   19223           9 :             D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
   19224           9 :             _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
   19225           9 :             if (_res == NULL && PyErr_Occurred()) {
   19226           9 :                 p->error_indicator = 1;
   19227           9 :                 p->level--;
   19228           9 :                 return NULL;
   19229             :             }
   19230           0 :             goto done;
   19231             :         }
   19232        1116 :         p->mark = _mark;
   19233        1116 :         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        1116 :     _res = NULL;
   19237        1116 :   done:
   19238        1116 :     p->level--;
   19239        1116 :     return _res;
   19240             : }
   19241             : 
   19242             : // expression_without_invalid:
   19243             : //     | disjunction 'if' disjunction 'else' expression
   19244             : //     | disjunction
   19245             : //     | lambdef
   19246             : static expr_ty
   19247        1161 : expression_without_invalid_rule(Parser *p)
   19248             : {
   19249        1161 :     int _prev_call_invalid = p->call_invalid_rules;
   19250        1161 :     p->call_invalid_rules = 0;
   19251        1161 :     if (p->level++ == MAXSTACK) {
   19252           0 :         p->error_indicator = 1;
   19253           0 :         PyErr_NoMemory();
   19254             :     }
   19255        1161 :     if (p->error_indicator) {
   19256           0 :         p->call_invalid_rules = _prev_call_invalid;
   19257           0 :         p->level--;
   19258           0 :         return NULL;
   19259             :     }
   19260        1161 :     expr_ty _res = NULL;
   19261        1161 :     int _mark = p->mark;
   19262        1161 :     if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
   19263           0 :         p->error_indicator = 1;
   19264           0 :         p->call_invalid_rules = _prev_call_invalid;
   19265           0 :         p->level--;
   19266           0 :         return NULL;
   19267             :     }
   19268        1161 :     int _start_lineno = p->tokens[_mark]->lineno;
   19269             :     UNUSED(_start_lineno); // Only used by EXTRA macro
   19270        1161 :     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        1161 :         if (p->error_indicator) {
   19274           0 :             p->call_invalid_rules = _prev_call_invalid;
   19275           0 :             p->level--;
   19276           0 :             return NULL;
   19277             :         }
   19278        1161 :         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        1161 :         if (
   19285        1161 :             (a = disjunction_rule(p))  // disjunction
   19286          53 :             &&
   19287          53 :             (_keyword = _PyPegen_expect_token(p, 634))  // token='if'
   19288           0 :             &&
   19289           0 :             (b = disjunction_rule(p))  // disjunction
   19290           0 :             &&
   19291           0 :             (_keyword_1 = _PyPegen_expect_token(p, 637))  // token='else'
   19292           0 :             &&
   19293           0 :             (c = expression_rule(p))  // expression
   19294             :         )
   19295             :         {
   19296           0 :             D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
   19297           0 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   19298           0 :             if (_token == NULL) {
   19299           0 :                 p->call_invalid_rules = _prev_call_invalid;
   19300           0 :                 p->level--;
   19301           0 :                 return NULL;
   19302             :             }
   19303           0 :             int _end_lineno = _token->end_lineno;
   19304             :             UNUSED(_end_lineno); // Only used by EXTRA macro
   19305           0 :             int _end_col_offset = _token->end_col_offset;
   19306             :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   19307           0 :             _res = _PyAST_IfExp ( b , a , c , EXTRA );
   19308           0 :             if (_res == NULL && PyErr_Occurred()) {
   19309           0 :                 p->error_indicator = 1;
   19310           0 :                 p->call_invalid_rules = _prev_call_invalid;
   19311           0 :                 p->level--;
   19312           0 :                 return NULL;
   19313             :             }
   19314           0 :             goto done;
   19315             :         }
   19316        1161 :         p->mark = _mark;
   19317        1161 :         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        1161 :         if (p->error_indicator) {
   19322           2 :             p->call_invalid_rules = _prev_call_invalid;
   19323           2 :             p->level--;
   19324           2 :             return NULL;
   19325             :         }
   19326        1159 :         D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
   19327             :         expr_ty disjunction_var;
   19328        1159 :         if (
   19329        1159 :             (disjunction_var = disjunction_rule(p))  // disjunction
   19330             :         )
   19331             :         {
   19332          53 :             D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
   19333          53 :             _res = disjunction_var;
   19334          53 :             goto done;
   19335             :         }
   19336        1106 :         p->mark = _mark;
   19337        1106 :         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        1106 :         if (p->error_indicator) {
   19342           0 :             p->call_invalid_rules = _prev_call_invalid;
   19343           0 :             p->level--;
   19344           0 :             return NULL;
   19345             :         }
   19346        1106 :         D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
   19347             :         expr_ty lambdef_var;
   19348        1106 :         if (
   19349        1106 :             (lambdef_var = lambdef_rule(p))  // lambdef
   19350             :         )
   19351             :         {
   19352           0 :             D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
   19353           0 :             _res = lambdef_var;
   19354           0 :             goto done;
   19355             :         }
   19356        1106 :         p->mark = _mark;
   19357        1106 :         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        1106 :     _res = NULL;
   19361        1159 :   done:
   19362        1159 :     p->call_invalid_rules = _prev_call_invalid;
   19363        1159 :     p->level--;
   19364        1159 :     return _res;
   19365             : }
   19366             : 
   19367             : // invalid_legacy_expression: NAME !'(' star_expressions
   19368             : static void *
   19369        2674 : invalid_legacy_expression_rule(Parser *p)
   19370             : {
   19371        2674 :     if (p->level++ == MAXSTACK) {
   19372           0 :         p->error_indicator = 1;
   19373           0 :         PyErr_NoMemory();
   19374             :     }
   19375        2674 :     if (p->error_indicator) {
   19376           0 :         p->level--;
   19377           0 :         return NULL;
   19378             :     }
   19379        2674 :     void * _res = NULL;
   19380        2674 :     int _mark = p->mark;
   19381             :     { // NAME !'(' star_expressions
   19382        2674 :         if (p->error_indicator) {
   19383           0 :             p->level--;
   19384           0 :             return NULL;
   19385             :         }
   19386        2674 :         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        2674 :         if (
   19390        2674 :             (a = _PyPegen_name_token(p))  // NAME
   19391         693 :             &&
   19392         693 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 7)  // token='('
   19393         598 :             &&
   19394         598 :             (b = star_expressions_rule(p))  // star_expressions
   19395             :         )
   19396             :         {
   19397         126 :             D(fprintf(stderr, "%*c+ invalid_legacy_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));
   19398         126 :             _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         126 :             if (_res == NULL && PyErr_Occurred()) {
   19400          27 :                 p->error_indicator = 1;
   19401          27 :                 p->level--;
   19402          27 :                 return NULL;
   19403             :             }
   19404          99 :             goto done;
   19405             :         }
   19406        2548 :         p->mark = _mark;
   19407        2548 :         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        2548 :     _res = NULL;
   19411        2647 :   done:
   19412        2647 :     p->level--;
   19413        2647 :     return _res;
   19414             : }
   19415             : 
   19416             : // invalid_expression:
   19417             : //     | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
   19418             : //     | disjunction 'if' disjunction !('else' | ':')
   19419             : static void *
   19420        2706 : invalid_expression_rule(Parser *p)
   19421             : {
   19422        2706 :     if (p->level++ == MAXSTACK) {
   19423           0 :         p->error_indicator = 1;
   19424           0 :         PyErr_NoMemory();
   19425             :     }
   19426        2706 :     if (p->error_indicator) {
   19427           0 :         p->level--;
   19428           0 :         return NULL;
   19429             :     }
   19430        2706 :     void * _res = NULL;
   19431        2706 :     int _mark = p->mark;
   19432             :     { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
   19433        2706 :         if (p->error_indicator) {
   19434           0 :             p->level--;
   19435           0 :             return NULL;
   19436             :         }
   19437        2706 :         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        2706 :         if (
   19441        2706 :             _PyPegen_lookahead(0, _tmp_147_rule, p)
   19442        2612 :             &&
   19443        2612 :             (a = disjunction_rule(p))  // disjunction
   19444        1161 :             &&
   19445        1161 :             (b = expression_without_invalid_rule(p))  // expression_without_invalid
   19446             :         )
   19447             :         {
   19448          53 :             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          53 :             _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          53 :             if (_res == NULL && PyErr_Occurred()) {
   19451          10 :                 p->error_indicator = 1;
   19452          10 :                 p->level--;
   19453          10 :                 return NULL;
   19454             :             }
   19455          43 :             goto done;
   19456             :         }
   19457        2653 :         p->mark = _mark;
   19458        2653 :         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        2653 :         if (p->error_indicator) {
   19463          18 :             p->level--;
   19464          18 :             return NULL;
   19465             :         }
   19466        2635 :         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        2635 :         if (
   19471        2635 :             (a = disjunction_rule(p))  // disjunction
   19472        1200 :             &&
   19473        1200 :             (_keyword = _PyPegen_expect_token(p, 634))  // token='if'
   19474           7 :             &&
   19475           7 :             (b = disjunction_rule(p))  // disjunction
   19476           7 :             &&
   19477           7 :             _PyPegen_lookahead(0, _tmp_148_rule, p)
   19478             :         )
   19479             :         {
   19480           4 :             D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
   19481           4 :             _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expected 'else' after 'if' expression" );
   19482           4 :             if (_res == NULL && PyErr_Occurred()) {
   19483           4 :                 p->error_indicator = 1;
   19484           4 :                 p->level--;
   19485           4 :                 return NULL;
   19486             :             }
   19487           0 :             goto done;
   19488             :         }
   19489        2631 :         p->mark = _mark;
   19490        2631 :         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        2631 :     _res = NULL;
   19494        2674 :   done:
   19495        2674 :     p->level--;
   19496        2674 :     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 *
   19504        2435 : invalid_named_expression_rule(Parser *p)
   19505             : {
   19506        2435 :     if (p->level++ == MAXSTACK) {
   19507           0 :         p->error_indicator = 1;
   19508           0 :         PyErr_NoMemory();
   19509             :     }
   19510        2435 :     if (p->error_indicator) {
   19511           0 :         p->level--;
   19512           0 :         return NULL;
   19513             :     }
   19514        2435 :     void * _res = NULL;
   19515        2435 :     if (_PyPegen_is_memoized(p, invalid_named_expression_type, &_res)) {
   19516        1102 :         p->level--;
   19517        1102 :         return _res;
   19518             :     }
   19519        1333 :     int _mark = p->mark;
   19520             :     { // expression ':=' expression
   19521        1333 :         if (p->error_indicator) {
   19522           0 :             p->level--;
   19523           0 :             return NULL;
   19524             :         }
   19525        1333 :         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        1333 :         if (
   19530        1333 :             (a = expression_rule(p))  // expression
   19531         502 :             &&
   19532         502 :             (_literal = _PyPegen_expect_token(p, 53))  // token=':='
   19533           3 :             &&
   19534           3 :             (expression_var = expression_rule(p))  // expression
   19535             :         )
   19536             :         {
   19537           3 :             D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
   19538           3 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
   19539           3 :             if (_res == NULL && PyErr_Occurred()) {
   19540           3 :                 p->error_indicator = 1;
   19541           3 :                 p->level--;
   19542           3 :                 return NULL;
   19543             :             }
   19544           0 :             goto done;
   19545             :         }
   19546        1330 :         p->mark = _mark;
   19547        1330 :         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        1330 :         if (p->error_indicator) {
   19552          83 :             p->level--;
   19553          83 :             return NULL;
   19554             :         }
   19555        1247 :         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        1247 :         if (
   19560        1247 :             (a = _PyPegen_name_token(p))  // NAME
   19561         258 :             &&
   19562         258 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   19563          12 :             &&
   19564          12 :             (b = bitwise_or_rule(p))  // bitwise_or
   19565          11 :             &&
   19566          11 :             _PyPegen_lookahead(0, _tmp_149_rule, p)
   19567             :         )
   19568             :         {
   19569           8 :             D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
   19570           8 :             _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
   19571           8 :             if (_res == NULL && PyErr_Occurred()) {
   19572           8 :                 p->error_indicator = 1;
   19573           8 :                 p->level--;
   19574           8 :                 return NULL;
   19575             :             }
   19576           0 :             goto done;
   19577             :         }
   19578        1239 :         p->mark = _mark;
   19579        1239 :         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        1239 :         if (p->error_indicator) {
   19584           0 :             p->level--;
   19585           0 :             return NULL;
   19586             :         }
   19587        1239 :         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        1239 :         if (
   19592        1239 :             _PyPegen_lookahead(0, _tmp_150_rule, p)
   19593        1173 :             &&
   19594        1173 :             (a = bitwise_or_rule(p))  // bitwise_or
   19595         423 :             &&
   19596         423 :             (b = _PyPegen_expect_token(p, 22))  // token='='
   19597          35 :             &&
   19598          35 :             (bitwise_or_var = bitwise_or_rule(p))  // bitwise_or
   19599          34 :             &&
   19600          34 :             _PyPegen_lookahead(0, _tmp_151_rule, p)
   19601             :         )
   19602             :         {
   19603          31 :             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          31 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
   19605          31 :             if (_res == NULL && PyErr_Occurred()) {
   19606          31 :                 p->error_indicator = 1;
   19607          31 :                 p->level--;
   19608          31 :                 return NULL;
   19609             :             }
   19610           0 :             goto done;
   19611             :         }
   19612        1208 :         p->mark = _mark;
   19613        1208 :         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        1208 :     _res = NULL;
   19617        1208 :   done:
   19618        1208 :     _PyPegen_insert_memo(p, _mark, invalid_named_expression_type, _res);
   19619        1208 :     p->level--;
   19620        1208 :     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 *
   19631         901 : invalid_assignment_rule(Parser *p)
   19632             : {
   19633         901 :     if (p->level++ == MAXSTACK) {
   19634           0 :         p->error_indicator = 1;
   19635           0 :         PyErr_NoMemory();
   19636             :     }
   19637         901 :     if (p->error_indicator) {
   19638           0 :         p->level--;
   19639           0 :         return NULL;
   19640             :     }
   19641         901 :     void * _res = NULL;
   19642         901 :     int _mark = p->mark;
   19643             :     { // invalid_ann_assign_target ':' expression
   19644         901 :         if (p->error_indicator) {
   19645           0 :             p->level--;
   19646           0 :             return NULL;
   19647             :         }
   19648         901 :         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         901 :         if (
   19653         901 :             (a = invalid_ann_assign_target_rule(p))  // invalid_ann_assign_target
   19654          17 :             &&
   19655          17 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   19656           7 :             &&
   19657           7 :             (expression_var = expression_rule(p))  // expression
   19658             :         )
   19659             :         {
   19660           7 :             D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
   19661           7 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not %s) can be annotated" , _PyPegen_get_expr_name ( a ) );
   19662           7 :             if (_res == NULL && PyErr_Occurred()) {
   19663           7 :                 p->error_indicator = 1;
   19664           7 :                 p->level--;
   19665           7 :                 return NULL;
   19666             :             }
   19667           0 :             goto done;
   19668             :         }
   19669         894 :         p->mark = _mark;
   19670         894 :         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         894 :         if (p->error_indicator) {
   19675           0 :             p->level--;
   19676           0 :             return NULL;
   19677             :         }
   19678         894 :         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         894 :         if (
   19685         894 :             (a = star_named_expression_rule(p))  // star_named_expression
   19686         156 :             &&
   19687         156 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   19688           5 :             &&
   19689           5 :             (_loop0_152_var = _loop0_152_rule(p))  // star_named_expressions*
   19690           5 :             &&
   19691           5 :             (_literal_1 = _PyPegen_expect_token(p, 11))  // token=':'
   19692           1 :             &&
   19693           1 :             (expression_var = expression_rule(p))  // expression
   19694             :         )
   19695             :         {
   19696           1 :             D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
   19697           1 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
   19698           1 :             if (_res == NULL && PyErr_Occurred()) {
   19699           1 :                 p->error_indicator = 1;
   19700           1 :                 p->level--;
   19701           1 :                 return NULL;
   19702             :             }
   19703           0 :             goto done;
   19704             :         }
   19705         893 :         p->mark = _mark;
   19706         893 :         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         893 :         if (p->error_indicator) {
   19711          96 :             p->level--;
   19712          96 :             return NULL;
   19713             :         }
   19714         797 :         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         797 :         if (
   19719         797 :             (a = expression_rule(p))  // expression
   19720         155 :             &&
   19721         155 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   19722           3 :             &&
   19723           3 :             (expression_var = expression_rule(p))  // expression
   19724             :         )
   19725             :         {
   19726           1 :             D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
   19727           1 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
   19728           1 :             if (_res == NULL && PyErr_Occurred()) {
   19729           1 :                 p->error_indicator = 1;
   19730           1 :                 p->level--;
   19731           1 :                 return NULL;
   19732             :             }
   19733           0 :             goto done;
   19734             :         }
   19735         796 :         p->mark = _mark;
   19736         796 :         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         796 :         if (p->error_indicator) {
   19741           0 :             p->level--;
   19742           0 :             return NULL;
   19743             :         }
   19744         796 :         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         796 :         if (
   19749         796 :             (_loop0_153_var = _loop0_153_rule(p))  // ((star_targets '='))*
   19750         796 :             &&
   19751         796 :             (a = star_expressions_rule(p))  // star_expressions
   19752         151 :             &&
   19753         151 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   19754             :         )
   19755             :         {
   19756          22 :             D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
   19757          22 :             _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
   19758          22 :             if (_res == NULL && PyErr_Occurred()) {
   19759          22 :                 p->error_indicator = 1;
   19760          22 :                 p->level--;
   19761          22 :                 return NULL;
   19762             :             }
   19763           0 :             goto done;
   19764             :         }
   19765         774 :         p->mark = _mark;
   19766         774 :         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         774 :         if (p->error_indicator) {
   19771           0 :             p->level--;
   19772           0 :             return NULL;
   19773             :         }
   19774         774 :         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         774 :         if (
   19779         774 :             (_loop0_154_var = _loop0_154_rule(p))  // ((star_targets '='))*
   19780         774 :             &&
   19781         774 :             (a = yield_expr_rule(p))  // yield_expr
   19782           5 :             &&
   19783           5 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   19784             :         )
   19785             :         {
   19786           3 :             D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
   19787           3 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
   19788           3 :             if (_res == NULL && PyErr_Occurred()) {
   19789           3 :                 p->error_indicator = 1;
   19790           3 :                 p->level--;
   19791           3 :                 return NULL;
   19792             :             }
   19793           0 :             goto done;
   19794             :         }
   19795         771 :         p->mark = _mark;
   19796         771 :         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         771 :         if (p->error_indicator) {
   19801           0 :             p->level--;
   19802           0 :             return NULL;
   19803             :         }
   19804         771 :         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         771 :         if (
   19809         771 :             (a = star_expressions_rule(p))  // star_expressions
   19810         131 :             &&
   19811         131 :             (augassign_var = augassign_rule(p))  // augassign
   19812          14 :             &&
   19813          14 :             (_tmp_155_var = _tmp_155_rule(p))  // yield_expr | star_expressions
   19814             :         )
   19815             :         {
   19816          14 :             D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
   19817          14 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
   19818          14 :             if (_res == NULL && PyErr_Occurred()) {
   19819          14 :                 p->error_indicator = 1;
   19820          14 :                 p->level--;
   19821          14 :                 return NULL;
   19822             :             }
   19823           0 :             goto done;
   19824             :         }
   19825         757 :         p->mark = _mark;
   19826         757 :         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         757 :     _res = NULL;
   19830         757 :   done:
   19831         757 :     p->level--;
   19832         757 :     return _res;
   19833             : }
   19834             : 
   19835             : // invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
   19836             : static expr_ty
   19837         913 : invalid_ann_assign_target_rule(Parser *p)
   19838             : {
   19839         913 :     if (p->level++ == MAXSTACK) {
   19840           0 :         p->error_indicator = 1;
   19841           0 :         PyErr_NoMemory();
   19842             :     }
   19843         913 :     if (p->error_indicator) {
   19844           0 :         p->level--;
   19845           0 :         return NULL;
   19846             :     }
   19847         913 :     expr_ty _res = NULL;
   19848         913 :     int _mark = p->mark;
   19849             :     { // list
   19850         913 :         if (p->error_indicator) {
   19851           0 :             p->level--;
   19852           0 :             return NULL;
   19853             :         }
   19854         913 :         D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
   19855             :         expr_ty list_var;
   19856         913 :         if (
   19857         913 :             (list_var = list_rule(p))  // list
   19858             :         )
   19859             :         {
   19860           7 :             D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
   19861           7 :             _res = list_var;
   19862           7 :             goto done;
   19863             :         }
   19864         906 :         p->mark = _mark;
   19865         906 :         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         906 :         if (p->error_indicator) {
   19870           0 :             p->level--;
   19871           0 :             return NULL;
   19872             :         }
   19873         906 :         D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
   19874             :         expr_ty tuple_var;
   19875         906 :         if (
   19876         906 :             (tuple_var = tuple_rule(p))  // tuple
   19877             :         )
   19878             :         {
   19879          10 :             D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
   19880          10 :             _res = tuple_var;
   19881          10 :             goto done;
   19882             :         }
   19883         896 :         p->mark = _mark;
   19884         896 :         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         896 :         if (p->error_indicator) {
   19889           0 :             p->level--;
   19890           0 :             return NULL;
   19891             :         }
   19892         896 :         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         896 :         if (
   19897         896 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   19898          12 :             &&
   19899          12 :             (a = invalid_ann_assign_target_rule(p))  // invalid_ann_assign_target
   19900           2 :             &&
   19901           2 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   19902             :         )
   19903             :         {
   19904           2 :             D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
   19905           2 :             _res = a;
   19906           2 :             if (_res == NULL && PyErr_Occurred()) {
   19907           0 :                 p->error_indicator = 1;
   19908           0 :                 p->level--;
   19909           0 :                 return NULL;
   19910             :             }
   19911           2 :             goto done;
   19912             :         }
   19913         894 :         p->mark = _mark;
   19914         894 :         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         894 :     _res = NULL;
   19918         913 :   done:
   19919         913 :     p->level--;
   19920         913 :     return _res;
   19921             : }
   19922             : 
   19923             : // invalid_del_stmt: 'del' star_expressions
   19924             : static void *
   19925          37 : invalid_del_stmt_rule(Parser *p)
   19926             : {
   19927          37 :     if (p->level++ == MAXSTACK) {
   19928           0 :         p->error_indicator = 1;
   19929           0 :         PyErr_NoMemory();
   19930             :     }
   19931          37 :     if (p->error_indicator) {
   19932           0 :         p->level--;
   19933           0 :         return NULL;
   19934             :     }
   19935          37 :     void * _res = NULL;
   19936          37 :     int _mark = p->mark;
   19937             :     { // 'del' star_expressions
   19938          37 :         if (p->error_indicator) {
   19939           0 :             p->level--;
   19940           0 :             return NULL;
   19941             :         }
   19942          37 :         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          37 :         if (
   19946          37 :             (_keyword = _PyPegen_expect_token(p, 603))  // token='del'
   19947          37 :             &&
   19948          37 :             (a = star_expressions_rule(p))  // star_expressions
   19949             :         )
   19950             :         {
   19951          35 :             D(fprintf(stderr, "%*c+ invalid_del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
   19952          35 :             _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
   19953          35 :             if (_res == NULL && PyErr_Occurred()) {
   19954          29 :                 p->error_indicator = 1;
   19955          29 :                 p->level--;
   19956          29 :                 return NULL;
   19957             :             }
   19958           6 :             goto done;
   19959             :         }
   19960           2 :         p->mark = _mark;
   19961           2 :         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           2 :     _res = NULL;
   19965           8 :   done:
   19966           8 :     p->level--;
   19967           8 :     return _res;
   19968             : }
   19969             : 
   19970             : // invalid_block: NEWLINE !INDENT
   19971             : static void *
   19972         136 : invalid_block_rule(Parser *p)
   19973             : {
   19974         136 :     if (p->level++ == MAXSTACK) {
   19975           0 :         p->error_indicator = 1;
   19976           0 :         PyErr_NoMemory();
   19977             :     }
   19978         136 :     if (p->error_indicator) {
   19979           0 :         p->level--;
   19980           0 :         return NULL;
   19981             :     }
   19982         136 :     void * _res = NULL;
   19983         136 :     int _mark = p->mark;
   19984             :     { // NEWLINE !INDENT
   19985         136 :         if (p->error_indicator) {
   19986           0 :             p->level--;
   19987           0 :             return NULL;
   19988             :         }
   19989         136 :         D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
   19990             :         Token * newline_var;
   19991         136 :         if (
   19992         136 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   19993          50 :             &&
   19994          50 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   19995             :         )
   19996             :         {
   19997           4 :             D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
   19998           4 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
   19999           4 :             if (_res == NULL && PyErr_Occurred()) {
   20000           4 :                 p->error_indicator = 1;
   20001           4 :                 p->level--;
   20002           4 :                 return NULL;
   20003             :             }
   20004           0 :             goto done;
   20005             :         }
   20006         132 :         p->mark = _mark;
   20007         132 :         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         132 :     _res = NULL;
   20011         132 :   done:
   20012         132 :     p->level--;
   20013         132 :     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 *
   20021        2906 : invalid_comprehension_rule(Parser *p)
   20022             : {
   20023        2906 :     if (p->level++ == MAXSTACK) {
   20024           0 :         p->error_indicator = 1;
   20025           0 :         PyErr_NoMemory();
   20026             :     }
   20027        2906 :     if (p->error_indicator) {
   20028           0 :         p->level--;
   20029           0 :         return NULL;
   20030             :     }
   20031        2906 :     void * _res = NULL;
   20032        2906 :     int _mark = p->mark;
   20033             :     { // ('[' | '(' | '{') starred_expression for_if_clauses
   20034        2906 :         if (p->error_indicator) {
   20035           0 :             p->level--;
   20036           0 :             return NULL;
   20037             :         }
   20038        2906 :         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        2906 :         if (
   20043        2906 :             (_tmp_156_var = _tmp_156_rule(p))  // '[' | '(' | '{'
   20044         422 :             &&
   20045         422 :             (a = starred_expression_rule(p))  // starred_expression
   20046          19 :             &&
   20047          19 :             (for_if_clauses_var = for_if_clauses_rule(p))  // for_if_clauses
   20048             :         )
   20049             :         {
   20050           5 :             D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
   20051           5 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
   20052           5 :             if (_res == NULL && PyErr_Occurred()) {
   20053           5 :                 p->error_indicator = 1;
   20054           5 :                 p->level--;
   20055           5 :                 return NULL;
   20056             :             }
   20057           0 :             goto done;
   20058             :         }
   20059        2901 :         p->mark = _mark;
   20060        2901 :         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        2901 :         if (p->error_indicator) {
   20065           1 :             p->level--;
   20066           1 :             return NULL;
   20067             :         }
   20068        2900 :         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        2900 :         if (
   20075        2900 :             (_tmp_157_var = _tmp_157_rule(p))  // '[' | '{'
   20076         145 :             &&
   20077         145 :             (a = star_named_expression_rule(p))  // star_named_expression
   20078          61 :             &&
   20079          61 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   20080           5 :             &&
   20081           5 :             (b = star_named_expressions_rule(p))  // star_named_expressions
   20082           5 :             &&
   20083           5 :             (for_if_clauses_var = for_if_clauses_rule(p))  // for_if_clauses
   20084             :         )
   20085             :         {
   20086           4 :             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           4 :             _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , PyPegen_last_item ( b , expr_ty ) , "did you forget parentheses around the comprehension target?" );
   20088           4 :             if (_res == NULL && PyErr_Occurred()) {
   20089           4 :                 p->error_indicator = 1;
   20090           4 :                 p->level--;
   20091           4 :                 return NULL;
   20092             :             }
   20093           0 :             goto done;
   20094             :         }
   20095        2896 :         p->mark = _mark;
   20096        2896 :         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        2896 :         if (p->error_indicator) {
   20101           0 :             p->level--;
   20102           0 :             return NULL;
   20103             :         }
   20104        2896 :         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        2896 :         if (
   20110        2896 :             (_tmp_158_var = _tmp_158_rule(p))  // '[' | '{'
   20111         141 :             &&
   20112         141 :             (a = star_named_expression_rule(p))  // star_named_expression
   20113          57 :             &&
   20114          57 :             (b = _PyPegen_expect_token(p, 12))  // token=','
   20115           1 :             &&
   20116           1 :             (for_if_clauses_var = for_if_clauses_rule(p))  // for_if_clauses
   20117             :         )
   20118             :         {
   20119           0 :             D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
   20120           0 :             _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
   20121           0 :             if (_res == NULL && PyErr_Occurred()) {
   20122           0 :                 p->error_indicator = 1;
   20123           0 :                 p->level--;
   20124           0 :                 return NULL;
   20125             :             }
   20126           0 :             goto done;
   20127             :         }
   20128        2896 :         p->mark = _mark;
   20129        2896 :         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        2896 :     _res = NULL;
   20133        2896 :   done:
   20134        2896 :     p->level--;
   20135        2896 :     return _res;
   20136             : }
   20137             : 
   20138             : // invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
   20139             : static void *
   20140          37 : invalid_dict_comprehension_rule(Parser *p)
   20141             : {
   20142          37 :     if (p->level++ == MAXSTACK) {
   20143           0 :         p->error_indicator = 1;
   20144           0 :         PyErr_NoMemory();
   20145             :     }
   20146          37 :     if (p->error_indicator) {
   20147           0 :         p->level--;
   20148           0 :         return NULL;
   20149             :     }
   20150          37 :     void * _res = NULL;
   20151          37 :     int _mark = p->mark;
   20152             :     { // '{' '**' bitwise_or for_if_clauses '}'
   20153          37 :         if (p->error_indicator) {
   20154           0 :             p->level--;
   20155           0 :             return NULL;
   20156             :         }
   20157          37 :         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          37 :         if (
   20164          37 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
   20165          37 :             &&
   20166          37 :             (a = _PyPegen_expect_token(p, 35))  // token='**'
   20167           1 :             &&
   20168           1 :             (bitwise_or_var = bitwise_or_rule(p))  // bitwise_or
   20169           1 :             &&
   20170           1 :             (for_if_clauses_var = for_if_clauses_rule(p))  // for_if_clauses
   20171           1 :             &&
   20172           1 :             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
   20173             :         )
   20174             :         {
   20175           1 :             D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
   20176           1 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
   20177           1 :             if (_res == NULL && PyErr_Occurred()) {
   20178           1 :                 p->error_indicator = 1;
   20179           1 :                 p->level--;
   20180           1 :                 return NULL;
   20181             :             }
   20182           0 :             goto done;
   20183             :         }
   20184          36 :         p->mark = _mark;
   20185          36 :         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          36 :     _res = NULL;
   20189          36 :   done:
   20190          36 :     p->level--;
   20191          36 :     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 *
   20202         302 : invalid_parameters_rule(Parser *p)
   20203             : {
   20204         302 :     if (p->level++ == MAXSTACK) {
   20205           0 :         p->error_indicator = 1;
   20206           0 :         PyErr_NoMemory();
   20207             :     }
   20208         302 :     if (p->error_indicator) {
   20209           0 :         p->level--;
   20210           0 :         return NULL;
   20211             :     }
   20212         302 :     void * _res = NULL;
   20213         302 :     int _mark = p->mark;
   20214             :     { // param_no_default* invalid_parameters_helper param_no_default
   20215         302 :         if (p->error_indicator) {
   20216           0 :             p->level--;
   20217           0 :             return NULL;
   20218             :         }
   20219         302 :         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         302 :         if (
   20224         302 :             (_loop0_159_var = _loop0_159_rule(p))  // param_no_default*
   20225         302 :             &&
   20226         302 :             (invalid_parameters_helper_var = invalid_parameters_helper_rule(p))  // invalid_parameters_helper
   20227          14 :             &&
   20228          14 :             (a = param_no_default_rule(p))  // param_no_default
   20229             :         )
   20230             :         {
   20231          10 :             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          10 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
   20233          10 :             if (_res == NULL && PyErr_Occurred()) {
   20234          10 :                 p->error_indicator = 1;
   20235          10 :                 p->level--;
   20236          10 :                 return NULL;
   20237             :             }
   20238           0 :             goto done;
   20239             :         }
   20240         292 :         p->mark = _mark;
   20241         292 :         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         292 :         if (p->error_indicator) {
   20246           8 :             p->level--;
   20247           8 :             return NULL;
   20248             :         }
   20249         284 :         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         284 :         if (
   20257         284 :             (_loop0_160_var = _loop0_160_rule(p))  // param_no_default*
   20258         284 :             &&
   20259         284 :             (a = _PyPegen_expect_token(p, 7))  // token='('
   20260           4 :             &&
   20261           4 :             (_loop1_161_var = _loop1_161_rule(p))  // param_no_default+
   20262           4 :             &&
   20263           4 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   20264           4 :             &&
   20265           4 :             (b = _PyPegen_expect_token(p, 8))  // token=')'
   20266             :         )
   20267             :         {
   20268           4 :             D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* '(' param_no_default+ ','? ')'"));
   20269           4 :             _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "Function parameters cannot be parenthesized" );
   20270           4 :             if (_res == NULL && PyErr_Occurred()) {
   20271           4 :                 p->error_indicator = 1;
   20272           4 :                 p->level--;
   20273           4 :                 return NULL;
   20274             :             }
   20275           0 :             goto done;
   20276             :         }
   20277         280 :         p->mark = _mark;
   20278         280 :         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         280 :         if (p->error_indicator) {
   20283           0 :             p->level--;
   20284           0 :             return NULL;
   20285             :         }
   20286         280 :         D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"/\" ','"));
   20287             :         Token * _literal;
   20288             :         Token * a;
   20289         280 :         if (
   20290         280 :             (a = _PyPegen_expect_token(p, 17))  // token='/'
   20291           9 :             &&
   20292           9 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   20293             :         )
   20294             :         {
   20295           5 :             D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"/\" ','"));
   20296           5 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "at least one argument must precede /" );
   20297           5 :             if (_res == NULL && PyErr_Occurred()) {
   20298           5 :                 p->error_indicator = 1;
   20299           5 :                 p->level--;
   20300           5 :                 return NULL;
   20301             :             }
   20302           0 :             goto done;
   20303             :         }
   20304         275 :         p->mark = _mark;
   20305         275 :         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         275 :         if (p->error_indicator) {
   20310           0 :             p->level--;
   20311           0 :             return NULL;
   20312             :         }
   20313         275 :         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         275 :         if (
   20318         275 :             (_tmp_162_var = _tmp_162_rule(p))  // slash_no_default | slash_with_default
   20319          14 :             &&
   20320          14 :             (_loop0_163_var = _loop0_163_rule(p))  // param_maybe_default*
   20321          14 :             &&
   20322          14 :             (a = _PyPegen_expect_token(p, 17))  // token='/'
   20323             :         )
   20324             :         {
   20325          10 :             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          10 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "/ may appear only once" );
   20327          10 :             if (_res == NULL && PyErr_Occurred()) {
   20328          10 :                 p->error_indicator = 1;
   20329          10 :                 p->level--;
   20330          10 :                 return NULL;
   20331             :             }
   20332           0 :             goto done;
   20333             :         }
   20334         265 :         p->mark = _mark;
   20335         265 :         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         265 :         if (p->error_indicator) {
   20340           0 :             p->level--;
   20341           0 :             return NULL;
   20342             :         }
   20343         265 :         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         265 :         if (
   20352         265 :             (_opt_var = _tmp_164_rule(p), !p->error_indicator)  // [(slash_no_default | slash_with_default)]
   20353         265 :             &&
   20354         265 :             (_loop0_165_var = _loop0_165_rule(p))  // param_maybe_default*
   20355         265 :             &&
   20356         265 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   20357          41 :             &&
   20358          41 :             (_tmp_166_var = _tmp_166_rule(p))  // ',' | param_no_default
   20359          33 :             &&
   20360          33 :             (_loop0_167_var = _loop0_167_rule(p))  // param_maybe_default*
   20361          33 :             &&
   20362          33 :             (a = _PyPegen_expect_token(p, 17))  // token='/'
   20363             :         )
   20364             :         {
   20365          12 :             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          12 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "/ must be ahead of *" );
   20367          12 :             if (_res == NULL && PyErr_Occurred()) {
   20368          12 :                 p->error_indicator = 1;
   20369          12 :                 p->level--;
   20370          12 :                 return NULL;
   20371             :             }
   20372           0 :             goto done;
   20373             :         }
   20374         253 :         p->mark = _mark;
   20375         253 :         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         253 :         if (p->error_indicator) {
   20380           0 :             p->level--;
   20381           0 :             return NULL;
   20382             :         }
   20383         253 :         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         253 :         if (
   20388         253 :             (_loop1_168_var = _loop1_168_rule(p))  // param_maybe_default+
   20389          42 :             &&
   20390          42 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
   20391           5 :             &&
   20392           5 :             (a = _PyPegen_expect_token(p, 16))  // token='*'
   20393             :         )
   20394             :         {
   20395           1 :             D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_maybe_default+ '/' '*'"));
   20396           1 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expected comma between / and *" );
   20397           1 :             if (_res == NULL && PyErr_Occurred()) {
   20398           1 :                 p->error_indicator = 1;
   20399           1 :                 p->level--;
   20400           1 :                 return NULL;
   20401             :             }
   20402           0 :             goto done;
   20403             :         }
   20404         252 :         p->mark = _mark;
   20405         252 :         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         252 :     _res = NULL;
   20409         252 :   done:
   20410         252 :     p->level--;
   20411         252 :     return _res;
   20412             : }
   20413             : 
   20414             : // invalid_default: '=' &(')' | ',')
   20415             : static void *
   20416        1775 : invalid_default_rule(Parser *p)
   20417             : {
   20418        1775 :     if (p->level++ == MAXSTACK) {
   20419           0 :         p->error_indicator = 1;
   20420           0 :         PyErr_NoMemory();
   20421             :     }
   20422        1775 :     if (p->error_indicator) {
   20423           0 :         p->level--;
   20424           0 :         return NULL;
   20425             :     }
   20426        1775 :     void * _res = NULL;
   20427        1775 :     int _mark = p->mark;
   20428             :     { // '=' &(')' | ',')
   20429        1775 :         if (p->error_indicator) {
   20430           0 :             p->level--;
   20431           0 :             return NULL;
   20432             :         }
   20433        1775 :         D(fprintf(stderr, "%*c> invalid_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' &(')' | ',')"));
   20434             :         Token * a;
   20435        1775 :         if (
   20436        1775 :             (a = _PyPegen_expect_token(p, 22))  // token='='
   20437         245 :             &&
   20438         245 :             _PyPegen_lookahead(1, _tmp_169_rule, p)
   20439             :         )
   20440             :         {
   20441           5 :             D(fprintf(stderr, "%*c+ invalid_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' &(')' | ',')"));
   20442           5 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expected default value expression" );
   20443           5 :             if (_res == NULL && PyErr_Occurred()) {
   20444           5 :                 p->error_indicator = 1;
   20445           5 :                 p->level--;
   20446           5 :                 return NULL;
   20447             :             }
   20448           0 :             goto done;
   20449             :         }
   20450        1770 :         p->mark = _mark;
   20451        1770 :         D(fprintf(stderr, "%*c%s invalid_default[%d-%d]: %s failed!\n", p->level, ' ',
   20452             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' &(')' | ',')"));
   20453             :     }
   20454        1770 :     _res = NULL;
   20455        1770 :   done:
   20456        1770 :     p->level--;
   20457        1770 :     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 *
   20466         252 : invalid_star_etc_rule(Parser *p)
   20467             : {
   20468         252 :     if (p->level++ == MAXSTACK) {
   20469           0 :         p->error_indicator = 1;
   20470           0 :         PyErr_NoMemory();
   20471             :     }
   20472         252 :     if (p->error_indicator) {
   20473           0 :         p->level--;
   20474           0 :         return NULL;
   20475             :     }
   20476         252 :     void * _res = NULL;
   20477         252 :     int _mark = p->mark;
   20478             :     { // '*' (')' | ',' (')' | '**'))
   20479         252 :         if (p->error_indicator) {
   20480           0 :             p->level--;
   20481           0 :             return NULL;
   20482             :         }
   20483         252 :         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         252 :         if (
   20487         252 :             (a = _PyPegen_expect_token(p, 16))  // token='*'
   20488          29 :             &&
   20489          29 :             (_tmp_170_var = _tmp_170_rule(p))  // ')' | ',' (')' | '**')
   20490             :         )
   20491             :         {
   20492           3 :             D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
   20493           3 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
   20494           3 :             if (_res == NULL && PyErr_Occurred()) {
   20495           3 :                 p->error_indicator = 1;
   20496           3 :                 p->level--;
   20497           3 :                 return NULL;
   20498             :             }
   20499           0 :             goto done;
   20500             :         }
   20501         249 :         p->mark = _mark;
   20502         249 :         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         249 :         if (p->error_indicator) {
   20507           0 :             p->level--;
   20508           0 :             return NULL;
   20509             :         }
   20510         249 :         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         249 :         if (
   20515         249 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   20516          26 :             &&
   20517          26 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
   20518           8 :             &&
   20519           8 :             (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT))  // token='TYPE_COMMENT'
   20520             :         )
   20521             :         {
   20522           1 :             D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
   20523           1 :             _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
   20524           1 :             if (_res == NULL && PyErr_Occurred()) {
   20525           1 :                 p->error_indicator = 1;
   20526           1 :                 p->level--;
   20527           1 :                 return NULL;
   20528             :             }
   20529           0 :             goto done;
   20530             :         }
   20531         248 :         p->mark = _mark;
   20532         248 :         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         248 :         if (p->error_indicator) {
   20537           0 :             p->level--;
   20538           0 :             return NULL;
   20539             :         }
   20540         248 :         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         248 :         if (
   20545         248 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   20546          25 :             &&
   20547          25 :             (param_var = param_rule(p))  // param
   20548          16 :             &&
   20549          16 :             (a = _PyPegen_expect_token(p, 22))  // token='='
   20550             :         )
   20551             :         {
   20552           2 :             D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param '='"));
   20553           2 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "var-positional argument cannot have default value" );
   20554           2 :             if (_res == NULL && PyErr_Occurred()) {
   20555           2 :                 p->error_indicator = 1;
   20556           2 :                 p->level--;
   20557           2 :                 return NULL;
   20558             :             }
   20559           0 :             goto done;
   20560             :         }
   20561         246 :         p->mark = _mark;
   20562         246 :         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         246 :         if (p->error_indicator) {
   20567           0 :             p->level--;
   20568           0 :             return NULL;
   20569             :         }
   20570         246 :         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         246 :         if (
   20577         246 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   20578          23 :             &&
   20579          23 :             (_tmp_171_var = _tmp_171_rule(p))  // param_no_default | ','
   20580          19 :             &&
   20581          19 :             (_loop0_172_var = _loop0_172_rule(p))  // param_maybe_default*
   20582          19 :             &&
   20583          19 :             (a = _PyPegen_expect_token(p, 16))  // token='*'
   20584           4 :             &&
   20585           4 :             (_tmp_173_var = _tmp_173_rule(p))  // param_no_default | ','
   20586             :         )
   20587             :         {
   20588           4 :             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           4 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "* argument may appear only once" );
   20590           4 :             if (_res == NULL && PyErr_Occurred()) {
   20591           4 :                 p->error_indicator = 1;
   20592           4 :                 p->level--;
   20593           4 :                 return NULL;
   20594             :             }
   20595           0 :             goto done;
   20596             :         }
   20597         242 :         p->mark = _mark;
   20598         242 :         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         242 :     _res = NULL;
   20602         242 :   done:
   20603         242 :     p->level--;
   20604         242 :     return _res;
   20605             : }
   20606             : 
   20607             : // invalid_kwds: '**' param '=' | '**' param ',' param | '**' param ',' ('*' | '**' | '/')
   20608             : static void *
   20609         242 : invalid_kwds_rule(Parser *p)
   20610             : {
   20611         242 :     if (p->level++ == MAXSTACK) {
   20612           0 :         p->error_indicator = 1;
   20613           0 :         PyErr_NoMemory();
   20614             :     }
   20615         242 :     if (p->error_indicator) {
   20616           0 :         p->level--;
   20617           0 :         return NULL;
   20618             :     }
   20619         242 :     void * _res = NULL;
   20620         242 :     int _mark = p->mark;
   20621             :     { // '**' param '='
   20622         242 :         if (p->error_indicator) {
   20623           0 :             p->level--;
   20624           0 :             return NULL;
   20625             :         }
   20626         242 :         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         242 :         if (
   20631         242 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   20632          17 :             &&
   20633          17 :             (param_var = param_rule(p))  // param
   20634          15 :             &&
   20635          15 :             (a = _PyPegen_expect_token(p, 22))  // token='='
   20636             :         )
   20637             :         {
   20638           2 :             D(fprintf(stderr, "%*c+ invalid_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param '='"));
   20639           2 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "var-keyword argument cannot have default value" );
   20640           2 :             if (_res == NULL && PyErr_Occurred()) {
   20641           2 :                 p->error_indicator = 1;
   20642           2 :                 p->level--;
   20643           2 :                 return NULL;
   20644             :             }
   20645           0 :             goto done;
   20646             :         }
   20647         240 :         p->mark = _mark;
   20648         240 :         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         240 :         if (p->error_indicator) {
   20653           0 :             p->level--;
   20654           0 :             return NULL;
   20655             :         }
   20656         240 :         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         240 :         if (
   20662         240 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   20663          15 :             &&
   20664          15 :             (param_var = param_rule(p))  // param
   20665          13 :             &&
   20666          13 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
   20667           7 :             &&
   20668           7 :             (a = param_rule(p))  // param
   20669             :         )
   20670             :         {
   20671           2 :             D(fprintf(stderr, "%*c+ invalid_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param ',' param"));
   20672           2 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "arguments cannot follow var-keyword argument" );
   20673           2 :             if (_res == NULL && PyErr_Occurred()) {
   20674           2 :                 p->error_indicator = 1;
   20675           2 :                 p->level--;
   20676           2 :                 return NULL;
   20677             :             }
   20678           0 :             goto done;
   20679             :         }
   20680         238 :         p->mark = _mark;
   20681         238 :         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         238 :         if (p->error_indicator) {
   20686           0 :             p->level--;
   20687           0 :             return NULL;
   20688             :         }
   20689         238 :         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         238 :         if (
   20695         238 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   20696          13 :             &&
   20697          13 :             (param_var = param_rule(p))  // param
   20698          11 :             &&
   20699          11 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
   20700           5 :             &&
   20701           5 :             (a = (Token*)_tmp_174_rule(p))  // '*' | '**' | '/'
   20702             :         )
   20703             :         {
   20704           5 :             D(fprintf(stderr, "%*c+ invalid_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param ',' ('*' | '**' | '/')"));
   20705           5 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "arguments cannot follow var-keyword argument" );
   20706           5 :             if (_res == NULL && PyErr_Occurred()) {
   20707           5 :                 p->error_indicator = 1;
   20708           5 :                 p->level--;
   20709           5 :                 return NULL;
   20710             :             }
   20711           0 :             goto done;
   20712             :         }
   20713         233 :         p->mark = _mark;
   20714         233 :         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         233 :     _res = NULL;
   20718         233 :   done:
   20719         233 :     p->level--;
   20720         233 :     return _res;
   20721             : }
   20722             : 
   20723             : // invalid_parameters_helper: slash_with_default | param_with_default+
   20724             : static void *
   20725         302 : invalid_parameters_helper_rule(Parser *p)
   20726             : {
   20727         302 :     if (p->level++ == MAXSTACK) {
   20728           0 :         p->error_indicator = 1;
   20729           0 :         PyErr_NoMemory();
   20730             :     }
   20731         302 :     if (p->error_indicator) {
   20732           5 :         p->level--;
   20733           5 :         return NULL;
   20734             :     }
   20735         297 :     void * _res = NULL;
   20736         297 :     int _mark = p->mark;
   20737             :     { // slash_with_default
   20738         297 :         if (p->error_indicator) {
   20739           0 :             p->level--;
   20740           0 :             return NULL;
   20741             :         }
   20742         297 :         D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
   20743             :         SlashWithDefault* a;
   20744         297 :         if (
   20745         297 :             (a = slash_with_default_rule(p))  // slash_with_default
   20746             :         )
   20747             :         {
   20748           6 :             D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
   20749           6 :             _res = _PyPegen_singleton_seq ( p , a );
   20750           6 :             if (_res == NULL && PyErr_Occurred()) {
   20751           0 :                 p->error_indicator = 1;
   20752           0 :                 p->level--;
   20753           0 :                 return NULL;
   20754             :             }
   20755           6 :             goto done;
   20756             :         }
   20757         291 :         p->mark = _mark;
   20758         291 :         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         291 :         if (p->error_indicator) {
   20763           3 :             p->level--;
   20764           3 :             return NULL;
   20765             :         }
   20766         288 :         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         288 :         if (
   20769         288 :             (_loop1_175_var = _loop1_175_rule(p))  // param_with_default+
   20770             :         )
   20771             :         {
   20772           8 :             D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
   20773           8 :             _res = _loop1_175_var;
   20774           8 :             goto done;
   20775             :         }
   20776         280 :         p->mark = _mark;
   20777         280 :         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         280 :     _res = NULL;
   20781         294 :   done:
   20782         294 :     p->level--;
   20783         294 :     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 *
   20794          52 : invalid_lambda_parameters_rule(Parser *p)
   20795             : {
   20796          52 :     if (p->level++ == MAXSTACK) {
   20797           0 :         p->error_indicator = 1;
   20798           0 :         PyErr_NoMemory();
   20799             :     }
   20800          52 :     if (p->error_indicator) {
   20801           0 :         p->level--;
   20802           0 :         return NULL;
   20803             :     }
   20804          52 :     void * _res = NULL;
   20805          52 :     int _mark = p->mark;
   20806             :     { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
   20807          52 :         if (p->error_indicator) {
   20808           0 :             p->level--;
   20809           0 :             return NULL;
   20810             :         }
   20811          52 :         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          52 :         if (
   20816          52 :             (_loop0_176_var = _loop0_176_rule(p))  // lambda_param_no_default*
   20817          52 :             &&
   20818          52 :             (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p))  // invalid_lambda_parameters_helper
   20819           7 :             &&
   20820           7 :             (a = lambda_param_no_default_rule(p))  // lambda_param_no_default
   20821             :         )
   20822             :         {
   20823           3 :             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           3 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
   20825           3 :             if (_res == NULL && PyErr_Occurred()) {
   20826           3 :                 p->error_indicator = 1;
   20827           3 :                 p->level--;
   20828           3 :                 return NULL;
   20829             :             }
   20830           0 :             goto done;
   20831             :         }
   20832          49 :         p->mark = _mark;
   20833          49 :         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          49 :         if (p->error_indicator) {
   20838           2 :             p->level--;
   20839           2 :             return NULL;
   20840             :         }
   20841          47 :         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          47 :         if (
   20849          47 :             (_loop0_177_var = _loop0_177_rule(p))  // lambda_param_no_default*
   20850          47 :             &&
   20851          47 :             (a = _PyPegen_expect_token(p, 7))  // token='('
   20852           5 :             &&
   20853           5 :             (_gather_178_var = _gather_178_rule(p))  // ','.lambda_param+
   20854           4 :             &&
   20855           4 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   20856           4 :             &&
   20857           4 :             (b = _PyPegen_expect_token(p, 8))  // token=')'
   20858             :         )
   20859             :         {
   20860           4 :             D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* '(' ','.lambda_param+ ','? ')'"));
   20861           4 :             _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "Lambda expression parameters cannot be parenthesized" );
   20862           4 :             if (_res == NULL && PyErr_Occurred()) {
   20863           4 :                 p->error_indicator = 1;
   20864           4 :                 p->level--;
   20865           4 :                 return NULL;
   20866             :             }
   20867           0 :             goto done;
   20868             :         }
   20869          43 :         p->mark = _mark;
   20870          43 :         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          43 :         if (p->error_indicator) {
   20875           0 :             p->level--;
   20876           0 :             return NULL;
   20877             :         }
   20878          43 :         D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"/\" ','"));
   20879             :         Token * _literal;
   20880             :         Token * a;
   20881          43 :         if (
   20882          43 :             (a = _PyPegen_expect_token(p, 17))  // token='/'
   20883           4 :             &&
   20884           4 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   20885             :         )
   20886             :         {
   20887           3 :             D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"/\" ','"));
   20888           3 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "at least one argument must precede /" );
   20889           3 :             if (_res == NULL && PyErr_Occurred()) {
   20890           3 :                 p->error_indicator = 1;
   20891           3 :                 p->level--;
   20892           3 :                 return NULL;
   20893             :             }
   20894           0 :             goto done;
   20895             :         }
   20896          40 :         p->mark = _mark;
   20897          40 :         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          40 :         if (p->error_indicator) {
   20902           0 :             p->level--;
   20903           0 :             return NULL;
   20904             :         }
   20905          40 :         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          40 :         if (
   20910          40 :             (_tmp_180_var = _tmp_180_rule(p))  // lambda_slash_no_default | lambda_slash_with_default
   20911          10 :             &&
   20912          10 :             (_loop0_181_var = _loop0_181_rule(p))  // lambda_param_maybe_default*
   20913          10 :             &&
   20914          10 :             (a = _PyPegen_expect_token(p, 17))  // token='/'
   20915             :         )
   20916             :         {
   20917           7 :             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           7 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "/ may appear only once" );
   20919           7 :             if (_res == NULL && PyErr_Occurred()) {
   20920           7 :                 p->error_indicator = 1;
   20921           7 :                 p->level--;
   20922           7 :                 return NULL;
   20923             :             }
   20924           0 :             goto done;
   20925             :         }
   20926          33 :         p->mark = _mark;
   20927          33 :         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          33 :         if (p->error_indicator) {
   20932           0 :             p->level--;
   20933           0 :             return NULL;
   20934             :         }
   20935          33 :         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          33 :         if (
   20944          33 :             (_opt_var = _tmp_182_rule(p), !p->error_indicator)  // [(lambda_slash_no_default | lambda_slash_with_default)]
   20945          33 :             &&
   20946          33 :             (_loop0_183_var = _loop0_183_rule(p))  // lambda_param_maybe_default*
   20947          33 :             &&
   20948          33 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   20949          17 :             &&
   20950          17 :             (_tmp_184_var = _tmp_184_rule(p))  // ',' | lambda_param_no_default
   20951          15 :             &&
   20952          15 :             (_loop0_185_var = _loop0_185_rule(p))  // lambda_param_maybe_default*
   20953          15 :             &&
   20954          15 :             (a = _PyPegen_expect_token(p, 17))  // token='/'
   20955             :         )
   20956             :         {
   20957           7 :             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           7 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "/ must be ahead of *" );
   20959           7 :             if (_res == NULL && PyErr_Occurred()) {
   20960           7 :                 p->error_indicator = 1;
   20961           7 :                 p->level--;
   20962           7 :                 return NULL;
   20963             :             }
   20964           0 :             goto done;
   20965             :         }
   20966          26 :         p->mark = _mark;
   20967          26 :         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          26 :         if (p->error_indicator) {
   20972           0 :             p->level--;
   20973           0 :             return NULL;
   20974             :         }
   20975          26 :         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          26 :         if (
   20980          26 :             (_loop1_186_var = _loop1_186_rule(p))  // lambda_param_maybe_default+
   20981          16 :             &&
   20982          16 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
   20983           4 :             &&
   20984           4 :             (a = _PyPegen_expect_token(p, 16))  // token='*'
   20985             :         )
   20986             :         {
   20987           1 :             D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default+ '/' '*'"));
   20988           1 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expected comma between / and *" );
   20989           1 :             if (_res == NULL && PyErr_Occurred()) {
   20990           1 :                 p->error_indicator = 1;
   20991           1 :                 p->level--;
   20992           1 :                 return NULL;
   20993             :             }
   20994           0 :             goto done;
   20995             :         }
   20996          25 :         p->mark = _mark;
   20997          25 :         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          25 :     _res = NULL;
   21001          25 :   done:
   21002          25 :     p->level--;
   21003          25 :     return _res;
   21004             : }
   21005             : 
   21006             : // invalid_lambda_parameters_helper:
   21007             : //     | lambda_slash_with_default
   21008             : //     | lambda_param_with_default+
   21009             : static void *
   21010          52 : invalid_lambda_parameters_helper_rule(Parser *p)
   21011             : {
   21012          52 :     if (p->level++ == MAXSTACK) {
   21013           0 :         p->error_indicator = 1;
   21014           0 :         PyErr_NoMemory();
   21015             :     }
   21016          52 :     if (p->error_indicator) {
   21017           0 :         p->level--;
   21018           0 :         return NULL;
   21019             :     }
   21020          52 :     void * _res = NULL;
   21021          52 :     int _mark = p->mark;
   21022             :     { // lambda_slash_with_default
   21023          52 :         if (p->error_indicator) {
   21024           0 :             p->level--;
   21025           0 :             return NULL;
   21026             :         }
   21027          52 :         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          52 :         if (
   21030          52 :             (a = lambda_slash_with_default_rule(p))  // lambda_slash_with_default
   21031             :         )
   21032             :         {
   21033           3 :             D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
   21034           3 :             _res = _PyPegen_singleton_seq ( p , a );
   21035           3 :             if (_res == NULL && PyErr_Occurred()) {
   21036           0 :                 p->error_indicator = 1;
   21037           0 :                 p->level--;
   21038           0 :                 return NULL;
   21039             :             }
   21040           3 :             goto done;
   21041             :         }
   21042          49 :         p->mark = _mark;
   21043          49 :         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          49 :         if (p->error_indicator) {
   21048           2 :             p->level--;
   21049           2 :             return NULL;
   21050             :         }
   21051          47 :         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          47 :         if (
   21054          47 :             (_loop1_187_var = _loop1_187_rule(p))  // lambda_param_with_default+
   21055             :         )
   21056             :         {
   21057           4 :             D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
   21058           4 :             _res = _loop1_187_var;
   21059           4 :             goto done;
   21060             :         }
   21061          43 :         p->mark = _mark;
   21062          43 :         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          43 :     _res = NULL;
   21066          50 :   done:
   21067          50 :     p->level--;
   21068          50 :     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 *
   21076          25 : invalid_lambda_star_etc_rule(Parser *p)
   21077             : {
   21078          25 :     if (p->level++ == MAXSTACK) {
   21079           0 :         p->error_indicator = 1;
   21080           0 :         PyErr_NoMemory();
   21081             :     }
   21082          25 :     if (p->error_indicator) {
   21083           0 :         p->level--;
   21084           0 :         return NULL;
   21085             :     }
   21086          25 :     void * _res = NULL;
   21087          25 :     int _mark = p->mark;
   21088             :     { // '*' (':' | ',' (':' | '**'))
   21089          25 :         if (p->error_indicator) {
   21090           0 :             p->level--;
   21091           0 :             return NULL;
   21092             :         }
   21093          25 :         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          25 :         if (
   21097          25 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   21098          10 :             &&
   21099          10 :             (_tmp_188_var = _tmp_188_rule(p))  // ':' | ',' (':' | '**')
   21100             :         )
   21101             :         {
   21102           1 :             D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
   21103           1 :             _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
   21104           1 :             if (_res == NULL && PyErr_Occurred()) {
   21105           1 :                 p->error_indicator = 1;
   21106           1 :                 p->level--;
   21107           1 :                 return NULL;
   21108             :             }
   21109           0 :             goto done;
   21110             :         }
   21111          24 :         p->mark = _mark;
   21112          24 :         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          24 :         if (p->error_indicator) {
   21117           0 :             p->level--;
   21118           0 :             return NULL;
   21119             :         }
   21120          24 :         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          24 :         if (
   21125          24 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   21126           9 :             &&
   21127           9 :             (lambda_param_var = lambda_param_rule(p))  // lambda_param
   21128           9 :             &&
   21129           9 :             (a = _PyPegen_expect_token(p, 22))  // token='='
   21130             :         )
   21131             :         {
   21132           1 :             D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' lambda_param '='"));
   21133           1 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "var-positional argument cannot have default value" );
   21134           1 :             if (_res == NULL && PyErr_Occurred()) {
   21135           1 :                 p->error_indicator = 1;
   21136           1 :                 p->level--;
   21137           1 :                 return NULL;
   21138             :             }
   21139           0 :             goto done;
   21140             :         }
   21141          23 :         p->mark = _mark;
   21142          23 :         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          23 :         if (p->error_indicator) {
   21147           0 :             p->level--;
   21148           0 :             return NULL;
   21149             :         }
   21150          23 :         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          23 :         if (
   21157          23 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   21158           8 :             &&
   21159           8 :             (_tmp_189_var = _tmp_189_rule(p))  // lambda_param_no_default | ','
   21160           8 :             &&
   21161           8 :             (_loop0_190_var = _loop0_190_rule(p))  // lambda_param_maybe_default*
   21162           8 :             &&
   21163           8 :             (a = _PyPegen_expect_token(p, 16))  // token='*'
   21164           4 :             &&
   21165           4 :             (_tmp_191_var = _tmp_191_rule(p))  // lambda_param_no_default | ','
   21166             :         )
   21167             :         {
   21168           4 :             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           4 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "* argument may appear only once" );
   21170           4 :             if (_res == NULL && PyErr_Occurred()) {
   21171           4 :                 p->error_indicator = 1;
   21172           4 :                 p->level--;
   21173           4 :                 return NULL;
   21174             :             }
   21175           0 :             goto done;
   21176             :         }
   21177          19 :         p->mark = _mark;
   21178          19 :         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          19 :     _res = NULL;
   21182          19 :   done:
   21183          19 :     p->level--;
   21184          19 :     return _res;
   21185             : }
   21186             : 
   21187             : // invalid_lambda_kwds:
   21188             : //     | '**' lambda_param '='
   21189             : //     | '**' lambda_param ',' lambda_param
   21190             : //     | '**' lambda_param ',' ('*' | '**' | '/')
   21191             : static void *
   21192          19 : invalid_lambda_kwds_rule(Parser *p)
   21193             : {
   21194          19 :     if (p->level++ == MAXSTACK) {
   21195           0 :         p->error_indicator = 1;
   21196           0 :         PyErr_NoMemory();
   21197             :     }
   21198          19 :     if (p->error_indicator) {
   21199           0 :         p->level--;
   21200           0 :         return NULL;
   21201             :     }
   21202          19 :     void * _res = NULL;
   21203          19 :     int _mark = p->mark;
   21204             :     { // '**' lambda_param '='
   21205          19 :         if (p->error_indicator) {
   21206           0 :             p->level--;
   21207           0 :             return NULL;
   21208             :         }
   21209          19 :         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          19 :         if (
   21214          19 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   21215           7 :             &&
   21216           7 :             (lambda_param_var = lambda_param_rule(p))  // lambda_param
   21217           7 :             &&
   21218           7 :             (a = _PyPegen_expect_token(p, 22))  // token='='
   21219             :         )
   21220             :         {
   21221           1 :             D(fprintf(stderr, "%*c+ invalid_lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param '='"));
   21222           1 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "var-keyword argument cannot have default value" );
   21223           1 :             if (_res == NULL && PyErr_Occurred()) {
   21224           1 :                 p->error_indicator = 1;
   21225           1 :                 p->level--;
   21226           1 :                 return NULL;
   21227             :             }
   21228           0 :             goto done;
   21229             :         }
   21230          18 :         p->mark = _mark;
   21231          18 :         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          18 :         if (p->error_indicator) {
   21236           0 :             p->level--;
   21237           0 :             return NULL;
   21238             :         }
   21239          18 :         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          18 :         if (
   21245          18 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   21246           6 :             &&
   21247           6 :             (lambda_param_var = lambda_param_rule(p))  // lambda_param
   21248           6 :             &&
   21249           6 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
   21250           6 :             &&
   21251           6 :             (a = lambda_param_rule(p))  // lambda_param
   21252             :         )
   21253             :         {
   21254           2 :             D(fprintf(stderr, "%*c+ invalid_lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param ',' lambda_param"));
   21255           2 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "arguments cannot follow var-keyword argument" );
   21256           2 :             if (_res == NULL && PyErr_Occurred()) {
   21257           2 :                 p->error_indicator = 1;
   21258           2 :                 p->level--;
   21259           2 :                 return NULL;
   21260             :             }
   21261           0 :             goto done;
   21262             :         }
   21263          16 :         p->mark = _mark;
   21264          16 :         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          16 :         if (p->error_indicator) {
   21269           0 :             p->level--;
   21270           0 :             return NULL;
   21271             :         }
   21272          16 :         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          16 :         if (
   21278          16 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   21279           4 :             &&
   21280           4 :             (lambda_param_var = lambda_param_rule(p))  // lambda_param
   21281           4 :             &&
   21282           4 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
   21283           4 :             &&
   21284           4 :             (a = (Token*)_tmp_192_rule(p))  // '*' | '**' | '/'
   21285             :         )
   21286             :         {
   21287           4 :             D(fprintf(stderr, "%*c+ invalid_lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param ',' ('*' | '**' | '/')"));
   21288           4 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "arguments cannot follow var-keyword argument" );
   21289           4 :             if (_res == NULL && PyErr_Occurred()) {
   21290           4 :                 p->error_indicator = 1;
   21291           4 :                 p->level--;
   21292           4 :                 return NULL;
   21293             :             }
   21294           0 :             goto done;
   21295             :         }
   21296          12 :         p->mark = _mark;
   21297          12 :         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          12 :     _res = NULL;
   21301          12 :   done:
   21302          12 :     p->level--;
   21303          12 :     return _res;
   21304             : }
   21305             : 
   21306             : // invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
   21307             : static void *
   21308          63 : invalid_double_type_comments_rule(Parser *p)
   21309             : {
   21310          63 :     if (p->level++ == MAXSTACK) {
   21311           0 :         p->error_indicator = 1;
   21312           0 :         PyErr_NoMemory();
   21313             :     }
   21314          63 :     if (p->error_indicator) {
   21315           0 :         p->level--;
   21316           0 :         return NULL;
   21317             :     }
   21318          63 :     void * _res = NULL;
   21319          63 :     int _mark = p->mark;
   21320             :     { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
   21321          63 :         if (p->error_indicator) {
   21322           0 :             p->level--;
   21323           0 :             return NULL;
   21324             :         }
   21325          63 :         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          63 :         if (
   21332          63 :             (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT))  // token='TYPE_COMMENT'
   21333           9 :             &&
   21334           9 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   21335           9 :             &&
   21336           9 :             (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT))  // token='TYPE_COMMENT'
   21337           9 :             &&
   21338           9 :             (newline_var_1 = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   21339           9 :             &&
   21340           9 :             (indent_var = _PyPegen_expect_token(p, INDENT))  // token='INDENT'
   21341             :         )
   21342             :         {
   21343           9 :             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           9 :             _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
   21345           9 :             if (_res == NULL && PyErr_Occurred()) {
   21346           9 :                 p->error_indicator = 1;
   21347           9 :                 p->level--;
   21348           9 :                 return NULL;
   21349             :             }
   21350           0 :             goto done;
   21351             :         }
   21352          54 :         p->mark = _mark;
   21353          54 :         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          54 :     _res = NULL;
   21357          54 :   done:
   21358          54 :     p->level--;
   21359          54 :     return _res;
   21360             : }
   21361             : 
   21362             : // invalid_with_item: expression 'as' expression &(',' | ')' | ':')
   21363             : static void *
   21364          28 : invalid_with_item_rule(Parser *p)
   21365             : {
   21366          28 :     if (p->level++ == MAXSTACK) {
   21367           0 :         p->error_indicator = 1;
   21368           0 :         PyErr_NoMemory();
   21369             :     }
   21370          28 :     if (p->error_indicator) {
   21371           0 :         p->level--;
   21372           0 :         return NULL;
   21373             :     }
   21374          28 :     void * _res = NULL;
   21375          28 :     int _mark = p->mark;
   21376             :     { // expression 'as' expression &(',' | ')' | ':')
   21377          28 :         if (p->error_indicator) {
   21378           0 :             p->level--;
   21379           0 :             return NULL;
   21380             :         }
   21381          28 :         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          28 :         if (
   21386          28 :             (expression_var = expression_rule(p))  // expression
   21387          24 :             &&
   21388          24 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   21389          14 :             &&
   21390          14 :             (a = expression_rule(p))  // expression
   21391          14 :             &&
   21392          14 :             _PyPegen_lookahead(1, _tmp_193_rule, p)
   21393             :         )
   21394             :         {
   21395          11 :             D(fprintf(stderr, "%*c+ invalid_with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
   21396          11 :             _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
   21397          11 :             if (_res == NULL && PyErr_Occurred()) {
   21398          11 :                 p->error_indicator = 1;
   21399          11 :                 p->level--;
   21400          11 :                 return NULL;
   21401             :             }
   21402           0 :             goto done;
   21403             :         }
   21404          17 :         p->mark = _mark;
   21405          17 :         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          17 :     _res = NULL;
   21409          17 :   done:
   21410          17 :     p->level--;
   21411          17 :     return _res;
   21412             : }
   21413             : 
   21414             : // invalid_for_target: ASYNC? 'for' star_expressions
   21415             : static void *
   21416         535 : invalid_for_target_rule(Parser *p)
   21417             : {
   21418         535 :     if (p->level++ == MAXSTACK) {
   21419           0 :         p->error_indicator = 1;
   21420           0 :         PyErr_NoMemory();
   21421             :     }
   21422         535 :     if (p->error_indicator) {
   21423           0 :         p->level--;
   21424           0 :         return NULL;
   21425             :     }
   21426         535 :     void * _res = NULL;
   21427         535 :     int _mark = p->mark;
   21428             :     { // ASYNC? 'for' star_expressions
   21429         535 :         if (p->error_indicator) {
   21430           0 :             p->level--;
   21431           0 :             return NULL;
   21432             :         }
   21433         535 :         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         535 :         if (
   21439         535 :             (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator)  // ASYNC?
   21440         535 :             &&
   21441         535 :             (_keyword = _PyPegen_expect_token(p, 642))  // token='for'
   21442          18 :             &&
   21443          18 :             (a = star_expressions_rule(p))  // star_expressions
   21444             :         )
   21445             :         {
   21446          16 :             D(fprintf(stderr, "%*c+ invalid_for_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
   21447          16 :             _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
   21448          16 :             if (_res == NULL && PyErr_Occurred()) {
   21449          13 :                 p->error_indicator = 1;
   21450          13 :                 p->level--;
   21451          13 :                 return NULL;
   21452             :             }
   21453           3 :             goto done;
   21454             :         }
   21455         519 :         p->mark = _mark;
   21456         519 :         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         519 :     _res = NULL;
   21460         522 :   done:
   21461         522 :     p->level--;
   21462         522 :     return _res;
   21463             : }
   21464             : 
   21465             : // invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
   21466             : static void *
   21467          50 : invalid_group_rule(Parser *p)
   21468             : {
   21469          50 :     if (p->level++ == MAXSTACK) {
   21470           0 :         p->error_indicator = 1;
   21471           0 :         PyErr_NoMemory();
   21472             :     }
   21473          50 :     if (p->error_indicator) {
   21474           0 :         p->level--;
   21475           0 :         return NULL;
   21476             :     }
   21477          50 :     void * _res = NULL;
   21478          50 :     int _mark = p->mark;
   21479             :     { // '(' starred_expression ')'
   21480          50 :         if (p->error_indicator) {
   21481           0 :             p->level--;
   21482           0 :             return NULL;
   21483             :         }
   21484          50 :         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          50 :         if (
   21489          50 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   21490          50 :             &&
   21491          50 :             (a = starred_expression_rule(p))  // starred_expression
   21492          10 :             &&
   21493          10 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   21494             :         )
   21495             :         {
   21496           9 :             D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
   21497           9 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
   21498           9 :             if (_res == NULL && PyErr_Occurred()) {
   21499           9 :                 p->error_indicator = 1;
   21500           9 :                 p->level--;
   21501           9 :                 return NULL;
   21502             :             }
   21503           0 :             goto done;
   21504             :         }
   21505          41 :         p->mark = _mark;
   21506          41 :         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          41 :         if (p->error_indicator) {
   21511           0 :             p->level--;
   21512           0 :             return NULL;
   21513             :         }
   21514          41 :         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          41 :         if (
   21520          41 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   21521          41 :             &&
   21522          41 :             (a = _PyPegen_expect_token(p, 35))  // token='**'
   21523           1 :             &&
   21524           1 :             (expression_var = expression_rule(p))  // expression
   21525           1 :             &&
   21526           1 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   21527             :         )
   21528             :         {
   21529           1 :             D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
   21530           1 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
   21531           1 :             if (_res == NULL && PyErr_Occurred()) {
   21532           1 :                 p->error_indicator = 1;
   21533           1 :                 p->level--;
   21534           1 :                 return NULL;
   21535             :             }
   21536           0 :             goto done;
   21537             :         }
   21538          40 :         p->mark = _mark;
   21539          40 :         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          40 :     _res = NULL;
   21543          40 :   done:
   21544          40 :     p->level--;
   21545          40 :     return _res;
   21546             : }
   21547             : 
   21548             : // invalid_import_from_targets: import_from_as_names ',' NEWLINE
   21549             : static void *
   21550          10 : invalid_import_from_targets_rule(Parser *p)
   21551             : {
   21552          10 :     if (p->level++ == MAXSTACK) {
   21553           0 :         p->error_indicator = 1;
   21554           0 :         PyErr_NoMemory();
   21555             :     }
   21556          10 :     if (p->error_indicator) {
   21557           0 :         p->level--;
   21558           0 :         return NULL;
   21559             :     }
   21560          10 :     void * _res = NULL;
   21561          10 :     int _mark = p->mark;
   21562             :     { // import_from_as_names ',' NEWLINE
   21563          10 :         if (p->error_indicator) {
   21564           0 :             p->level--;
   21565           0 :             return NULL;
   21566             :         }
   21567          10 :         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          10 :         if (
   21572          10 :             (import_from_as_names_var = import_from_as_names_rule(p))  // import_from_as_names
   21573           6 :             &&
   21574           6 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   21575           6 :             &&
   21576           6 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   21577             :         )
   21578             :         {
   21579           5 :             D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
   21580           5 :             _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
   21581           5 :             if (_res == NULL && PyErr_Occurred()) {
   21582           5 :                 p->error_indicator = 1;
   21583           5 :                 p->level--;
   21584           5 :                 return NULL;
   21585             :             }
   21586           0 :             goto done;
   21587             :         }
   21588           5 :         p->mark = _mark;
   21589           5 :         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           5 :     _res = NULL;
   21593           5 :   done:
   21594           5 :     p->level--;
   21595           5 :     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 *
   21602          45 : invalid_with_stmt_rule(Parser *p)
   21603             : {
   21604          45 :     if (p->level++ == MAXSTACK) {
   21605           0 :         p->error_indicator = 1;
   21606           0 :         PyErr_NoMemory();
   21607             :     }
   21608          45 :     if (p->error_indicator) {
   21609           0 :         p->level--;
   21610           0 :         return NULL;
   21611             :     }
   21612          45 :     void * _res = NULL;
   21613          45 :     int _mark = p->mark;
   21614             :     { // ASYNC? 'with' ','.(expression ['as' star_target])+ NEWLINE
   21615          45 :         if (p->error_indicator) {
   21616           0 :             p->level--;
   21617           0 :             return NULL;
   21618             :         }
   21619          45 :         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          45 :         if (
   21626          45 :             (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator)  // ASYNC?
   21627          45 :             &&
   21628          45 :             (_keyword = _PyPegen_expect_token(p, 612))  // token='with'
   21629          11 :             &&
   21630          11 :             (_gather_194_var = _gather_194_rule(p))  // ','.(expression ['as' star_target])+
   21631           7 :             &&
   21632           7 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   21633             :         )
   21634             :         {
   21635           6 :             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           6 :             _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
   21637           6 :             if (_res == NULL && PyErr_Occurred()) {
   21638           6 :                 p->error_indicator = 1;
   21639           6 :                 p->level--;
   21640           6 :                 return NULL;
   21641             :             }
   21642           0 :             goto done;
   21643             :         }
   21644          39 :         p->mark = _mark;
   21645          39 :         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          39 :         if (p->error_indicator) {
   21650           0 :             p->level--;
   21651           0 :             return NULL;
   21652             :         }
   21653          39 :         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          39 :         if (
   21664          39 :             (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator)  // ASYNC?
   21665          39 :             &&
   21666          39 :             (_keyword = _PyPegen_expect_token(p, 612))  // token='with'
   21667           5 :             &&
   21668           5 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   21669           3 :             &&
   21670           3 :             (_gather_196_var = _gather_196_rule(p))  // ','.(expressions ['as' star_target])+
   21671           3 :             &&
   21672           3 :             (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   21673           3 :             &&
   21674           3 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   21675           3 :             &&
   21676           3 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   21677             :         )
   21678             :         {
   21679           3 :             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           3 :             _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
   21681           3 :             if (_res == NULL && PyErr_Occurred()) {
   21682           3 :                 p->error_indicator = 1;
   21683           3 :                 p->level--;
   21684           3 :                 return NULL;
   21685             :             }
   21686           0 :             goto done;
   21687             :         }
   21688          36 :         p->mark = _mark;
   21689          36 :         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          36 :     _res = NULL;
   21693          36 :   done:
   21694          36 :     p->level--;
   21695          36 :     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 *
   21702          63 : invalid_with_stmt_indent_rule(Parser *p)
   21703             : {
   21704          63 :     if (p->level++ == MAXSTACK) {
   21705           0 :         p->error_indicator = 1;
   21706           0 :         PyErr_NoMemory();
   21707             :     }
   21708          63 :     if (p->error_indicator) {
   21709           0 :         p->level--;
   21710           0 :         return NULL;
   21711             :     }
   21712          63 :     void * _res = NULL;
   21713          63 :     int _mark = p->mark;
   21714             :     { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
   21715          63 :         if (p->error_indicator) {
   21716           0 :             p->level--;
   21717           0 :             return NULL;
   21718             :         }
   21719          63 :         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          63 :         if (
   21727          63 :             (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator)  // ASYNC?
   21728          63 :             &&
   21729          63 :             (a = _PyPegen_expect_token(p, 612))  // token='with'
   21730          29 :             &&
   21731          29 :             (_gather_198_var = _gather_198_rule(p))  // ','.(expression ['as' star_target])+
   21732          22 :             &&
   21733          22 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   21734           4 :             &&
   21735           4 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   21736           4 :             &&
   21737           4 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   21738             :         )
   21739             :         {
   21740           4 :             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           4 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
   21742           4 :             if (_res == NULL && PyErr_Occurred()) {
   21743           4 :                 p->error_indicator = 1;
   21744           4 :                 p->level--;
   21745           4 :                 return NULL;
   21746             :             }
   21747           0 :             goto done;
   21748             :         }
   21749          59 :         p->mark = _mark;
   21750          59 :         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          59 :         if (p->error_indicator) {
   21755           1 :             p->level--;
   21756           1 :             return NULL;
   21757             :         }
   21758          58 :         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          58 :         if (
   21770          58 :             (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator)  // ASYNC?
   21771          58 :             &&
   21772          58 :             (a = _PyPegen_expect_token(p, 612))  // token='with'
   21773          24 :             &&
   21774          24 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   21775           6 :             &&
   21776           6 :             (_gather_200_var = _gather_200_rule(p))  // ','.(expressions ['as' star_target])+
   21777           6 :             &&
   21778           6 :             (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   21779           6 :             &&
   21780           6 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   21781           6 :             &&
   21782           6 :             (_literal_2 = _PyPegen_expect_token(p, 11))  // token=':'
   21783           2 :             &&
   21784           2 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   21785           2 :             &&
   21786           2 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   21787             :         )
   21788             :         {
   21789           2 :             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           2 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
   21791           2 :             if (_res == NULL && PyErr_Occurred()) {
   21792           2 :                 p->error_indicator = 1;
   21793           2 :                 p->level--;
   21794           2 :                 return NULL;
   21795             :             }
   21796           0 :             goto done;
   21797             :         }
   21798          56 :         p->mark = _mark;
   21799          56 :         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          56 :     _res = NULL;
   21803          56 :   done:
   21804          56 :     p->level--;
   21805          56 :     return _res;
   21806             : }
   21807             : 
   21808             : // invalid_try_stmt:
   21809             : //     | 'try' ':' NEWLINE !INDENT
   21810             : //     | 'try' ':' block !('except' | 'finally')
   21811             : //     | 'try' ':' block* ((except_block+ except_star_block) | (except_star_block+ except_block)) block*
   21812             : static void *
   21813          51 : invalid_try_stmt_rule(Parser *p)
   21814             : {
   21815          51 :     if (p->level++ == MAXSTACK) {
   21816           0 :         p->error_indicator = 1;
   21817           0 :         PyErr_NoMemory();
   21818             :     }
   21819          51 :     if (p->error_indicator) {
   21820           0 :         p->level--;
   21821           0 :         return NULL;
   21822             :     }
   21823          51 :     void * _res = NULL;
   21824          51 :     int _mark = p->mark;
   21825             :     { // 'try' ':' NEWLINE !INDENT
   21826          51 :         if (p->error_indicator) {
   21827           0 :             p->level--;
   21828           0 :             return NULL;
   21829             :         }
   21830          51 :         D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
   21831             :         Token * _literal;
   21832             :         Token * a;
   21833             :         Token * newline_var;
   21834          51 :         if (
   21835          51 :             (a = _PyPegen_expect_token(p, 618))  // token='try'
   21836          51 :             &&
   21837          51 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   21838          51 :             &&
   21839          51 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   21840          34 :             &&
   21841          34 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   21842             :         )
   21843             :         {
   21844           1 :             D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
   21845           1 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
   21846           1 :             if (_res == NULL && PyErr_Occurred()) {
   21847           1 :                 p->error_indicator = 1;
   21848           1 :                 p->level--;
   21849           1 :                 return NULL;
   21850             :             }
   21851           0 :             goto done;
   21852             :         }
   21853          50 :         p->mark = _mark;
   21854          50 :         D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   21855             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
   21856             :     }
   21857             :     { // 'try' ':' block !('except' | 'finally')
   21858          50 :         if (p->error_indicator) {
   21859           0 :             p->level--;
   21860           0 :             return NULL;
   21861             :         }
   21862          50 :         D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
   21863             :         Token * _keyword;
   21864             :         Token * _literal;
   21865             :         asdl_stmt_seq* block_var;
   21866          50 :         if (
   21867          50 :             (_keyword = _PyPegen_expect_token(p, 618))  // token='try'
   21868          50 :             &&
   21869          50 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   21870          50 :             &&
   21871          50 :             (block_var = block_rule(p))  // block
   21872          41 :             &&
   21873          41 :             _PyPegen_lookahead(0, _tmp_202_rule, p)
   21874             :         )
   21875             :         {
   21876           1 :             D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
   21877           1 :             _res = RAISE_SYNTAX_ERROR ( "expected 'except' or 'finally' block" );
   21878           1 :             if (_res == NULL && PyErr_Occurred()) {
   21879           1 :                 p->error_indicator = 1;
   21880           1 :                 p->level--;
   21881           1 :                 return NULL;
   21882             :             }
   21883           0 :             goto done;
   21884             :         }
   21885          49 :         p->mark = _mark;
   21886          49 :         D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   21887             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
   21888             :     }
   21889             :     { // 'try' ':' block* ((except_block+ except_star_block) | (except_star_block+ except_block)) block*
   21890          49 :         if (p->error_indicator) {
   21891           0 :             p->level--;
   21892           0 :             return NULL;
   21893             :         }
   21894          49 :         D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block* ((except_block+ except_star_block) | (except_star_block+ except_block)) block*"));
   21895             :         Token * _keyword;
   21896             :         Token * _literal;
   21897             :         asdl_seq * _loop0_203_var;
   21898             :         asdl_seq * _loop0_205_var;
   21899             :         void *_tmp_204_var;
   21900          49 :         if (
   21901          49 :             (_keyword = _PyPegen_expect_token(p, 618))  // token='try'
   21902          49 :             &&
   21903          49 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   21904          49 :             &&
   21905          49 :             (_loop0_203_var = _loop0_203_rule(p))  // block*
   21906          49 :             &&
   21907          49 :             (_tmp_204_var = _tmp_204_rule(p))  // (except_block+ except_star_block) | (except_star_block+ except_block)
   21908          11 :             &&
   21909          11 :             (_loop0_205_var = _loop0_205_rule(p))  // block*
   21910             :         )
   21911             :         {
   21912          11 :             D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block* ((except_block+ except_star_block) | (except_star_block+ except_block)) block*"));
   21913          11 :             _res = RAISE_SYNTAX_ERROR ( "cannot have both 'except' and 'except*' on the same 'try'" );
   21914          11 :             if (_res == NULL && PyErr_Occurred()) {
   21915          11 :                 p->error_indicator = 1;
   21916          11 :                 p->level--;
   21917          11 :                 return NULL;
   21918             :             }
   21919           0 :             goto done;
   21920             :         }
   21921          38 :         p->mark = _mark;
   21922          38 :         D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   21923             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block* ((except_block+ except_star_block) | (except_star_block+ except_block)) block*"));
   21924             :     }
   21925          38 :     _res = NULL;
   21926          38 :   done:
   21927          38 :     p->level--;
   21928          38 :     return _res;
   21929             : }
   21930             : 
   21931             : // invalid_except_stmt:
   21932             : //     | 'except' '*'? expression ',' expressions ['as' NAME] ':'
   21933             : //     | 'except' '*'? expression ['as' NAME] NEWLINE
   21934             : //     | 'except' NEWLINE
   21935             : //     | 'except' '*' (NEWLINE | ':')
   21936             : static void *
   21937         103 : invalid_except_stmt_rule(Parser *p)
   21938             : {
   21939         103 :     if (p->level++ == MAXSTACK) {
   21940           0 :         p->error_indicator = 1;
   21941           0 :         PyErr_NoMemory();
   21942             :     }
   21943         103 :     if (p->error_indicator) {
   21944           0 :         p->level--;
   21945           0 :         return NULL;
   21946             :     }
   21947         103 :     void * _res = NULL;
   21948         103 :     int _mark = p->mark;
   21949             :     { // 'except' '*'? expression ',' expressions ['as' NAME] ':'
   21950         103 :         if (p->error_indicator) {
   21951           0 :             p->level--;
   21952           0 :             return NULL;
   21953             :         }
   21954         103 :         D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*'? expression ',' expressions ['as' NAME] ':'"));
   21955             :         Token * _keyword;
   21956             :         Token * _literal;
   21957             :         Token * _literal_1;
   21958             :         void *_opt_var;
   21959             :         UNUSED(_opt_var); // Silence compiler warnings
   21960             :         void *_opt_var_1;
   21961             :         UNUSED(_opt_var_1); // Silence compiler warnings
   21962             :         expr_ty a;
   21963             :         expr_ty expressions_var;
   21964         103 :         if (
   21965         103 :             (_keyword = _PyPegen_expect_token(p, 629))  // token='except'
   21966          43 :             &&
   21967          43 :             (_opt_var = _PyPegen_expect_token(p, 16), !p->error_indicator)  // '*'?
   21968          43 :             &&
   21969          43 :             (a = expression_rule(p))  // expression
   21970          37 :             &&
   21971          37 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   21972           8 :             &&
   21973           8 :             (expressions_var = expressions_rule(p))  // expressions
   21974           8 :             &&
   21975           8 :             (_opt_var_1 = _tmp_206_rule(p), !p->error_indicator)  // ['as' NAME]
   21976           8 :             &&
   21977           8 :             (_literal_1 = _PyPegen_expect_token(p, 11))  // token=':'
   21978             :         )
   21979             :         {
   21980           8 :             D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*'? expression ',' expressions ['as' NAME] ':'"));
   21981           8 :             _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized" );
   21982           8 :             if (_res == NULL && PyErr_Occurred()) {
   21983           8 :                 p->error_indicator = 1;
   21984           8 :                 p->level--;
   21985           8 :                 return NULL;
   21986             :             }
   21987           0 :             goto done;
   21988             :         }
   21989          95 :         p->mark = _mark;
   21990          95 :         D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   21991             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*'? expression ',' expressions ['as' NAME] ':'"));
   21992             :     }
   21993             :     { // 'except' '*'? expression ['as' NAME] NEWLINE
   21994          95 :         if (p->error_indicator) {
   21995           0 :             p->level--;
   21996           0 :             return NULL;
   21997             :         }
   21998          95 :         D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*'? expression ['as' NAME] NEWLINE"));
   21999             :         void *_opt_var;
   22000             :         UNUSED(_opt_var); // Silence compiler warnings
   22001             :         void *_opt_var_1;
   22002             :         UNUSED(_opt_var_1); // Silence compiler warnings
   22003             :         Token * a;
   22004             :         expr_ty expression_var;
   22005             :         Token * newline_var;
   22006          95 :         if (
   22007          95 :             (a = _PyPegen_expect_token(p, 629))  // token='except'
   22008          35 :             &&
   22009          35 :             (_opt_var = _PyPegen_expect_token(p, 16), !p->error_indicator)  // '*'?
   22010          35 :             &&
   22011          35 :             (expression_var = expression_rule(p))  // expression
   22012          29 :             &&
   22013          29 :             (_opt_var_1 = _tmp_207_rule(p), !p->error_indicator)  // ['as' NAME]
   22014          29 :             &&
   22015          29 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22016             :         )
   22017             :         {
   22018           0 :             D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*'? expression ['as' NAME] NEWLINE"));
   22019           0 :             _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
   22020           0 :             if (_res == NULL && PyErr_Occurred()) {
   22021           0 :                 p->error_indicator = 1;
   22022           0 :                 p->level--;
   22023           0 :                 return NULL;
   22024             :             }
   22025           0 :             goto done;
   22026             :         }
   22027          95 :         p->mark = _mark;
   22028          95 :         D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   22029             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*'? expression ['as' NAME] NEWLINE"));
   22030             :     }
   22031             :     { // 'except' NEWLINE
   22032          95 :         if (p->error_indicator) {
   22033           0 :             p->level--;
   22034           0 :             return NULL;
   22035             :         }
   22036          95 :         D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
   22037             :         Token * a;
   22038             :         Token * newline_var;
   22039          95 :         if (
   22040          95 :             (a = _PyPegen_expect_token(p, 629))  // token='except'
   22041          35 :             &&
   22042          35 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22043             :         )
   22044             :         {
   22045           1 :             D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
   22046           1 :             _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
   22047           1 :             if (_res == NULL && PyErr_Occurred()) {
   22048           1 :                 p->error_indicator = 1;
   22049           1 :                 p->level--;
   22050           1 :                 return NULL;
   22051             :             }
   22052           0 :             goto done;
   22053             :         }
   22054          94 :         p->mark = _mark;
   22055          94 :         D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   22056             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
   22057             :     }
   22058             :     { // 'except' '*' (NEWLINE | ':')
   22059          94 :         if (p->error_indicator) {
   22060           0 :             p->level--;
   22061           0 :             return NULL;
   22062             :         }
   22063          94 :         D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')"));
   22064             :         Token * _literal;
   22065             :         void *_tmp_208_var;
   22066             :         Token * a;
   22067          94 :         if (
   22068          94 :             (a = _PyPegen_expect_token(p, 629))  // token='except'
   22069          34 :             &&
   22070          34 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   22071          23 :             &&
   22072          23 :             (_tmp_208_var = _tmp_208_rule(p))  // NEWLINE | ':'
   22073             :         )
   22074             :         {
   22075           4 :             D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')"));
   22076           4 :             _res = RAISE_SYNTAX_ERROR ( "expected one or more exception types" );
   22077           4 :             if (_res == NULL && PyErr_Occurred()) {
   22078           4 :                 p->error_indicator = 1;
   22079           4 :                 p->level--;
   22080           4 :                 return NULL;
   22081             :             }
   22082           0 :             goto done;
   22083             :         }
   22084          90 :         p->mark = _mark;
   22085          90 :         D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   22086             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' (NEWLINE | ':')"));
   22087             :     }
   22088          90 :     _res = NULL;
   22089          90 :   done:
   22090          90 :     p->level--;
   22091          90 :     return _res;
   22092             : }
   22093             : 
   22094             : // invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
   22095             : static void *
   22096          15 : invalid_finally_stmt_rule(Parser *p)
   22097             : {
   22098          15 :     if (p->level++ == MAXSTACK) {
   22099           0 :         p->error_indicator = 1;
   22100           0 :         PyErr_NoMemory();
   22101             :     }
   22102          15 :     if (p->error_indicator) {
   22103           0 :         p->level--;
   22104           0 :         return NULL;
   22105             :     }
   22106          15 :     void * _res = NULL;
   22107          15 :     int _mark = p->mark;
   22108             :     { // 'finally' ':' NEWLINE !INDENT
   22109          15 :         if (p->error_indicator) {
   22110           0 :             p->level--;
   22111           0 :             return NULL;
   22112             :         }
   22113          15 :         D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
   22114             :         Token * _literal;
   22115             :         Token * a;
   22116             :         Token * newline_var;
   22117          15 :         if (
   22118          15 :             (a = _PyPegen_expect_token(p, 625))  // token='finally'
   22119          11 :             &&
   22120          11 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   22121          11 :             &&
   22122          11 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22123           2 :             &&
   22124           2 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   22125             :         )
   22126             :         {
   22127           2 :             D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
   22128           2 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
   22129           2 :             if (_res == NULL && PyErr_Occurred()) {
   22130           2 :                 p->error_indicator = 1;
   22131           2 :                 p->level--;
   22132           2 :                 return NULL;
   22133             :             }
   22134           0 :             goto done;
   22135             :         }
   22136          13 :         p->mark = _mark;
   22137          13 :         D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   22138             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
   22139             :     }
   22140          13 :     _res = NULL;
   22141          13 :   done:
   22142          13 :     p->level--;
   22143          13 :     return _res;
   22144             : }
   22145             : 
   22146             : // invalid_except_stmt_indent:
   22147             : //     | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
   22148             : //     | 'except' ':' NEWLINE !INDENT
   22149             : static void *
   22150          78 : invalid_except_stmt_indent_rule(Parser *p)
   22151             : {
   22152          78 :     if (p->level++ == MAXSTACK) {
   22153           0 :         p->error_indicator = 1;
   22154           0 :         PyErr_NoMemory();
   22155             :     }
   22156          78 :     if (p->error_indicator) {
   22157           0 :         p->level--;
   22158           0 :         return NULL;
   22159             :     }
   22160          78 :     void * _res = NULL;
   22161          78 :     int _mark = p->mark;
   22162             :     { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
   22163          78 :         if (p->error_indicator) {
   22164           0 :             p->level--;
   22165           0 :             return NULL;
   22166             :         }
   22167          78 :         D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
   22168             :         Token * _literal;
   22169             :         void *_opt_var;
   22170             :         UNUSED(_opt_var); // Silence compiler warnings
   22171             :         Token * a;
   22172             :         expr_ty expression_var;
   22173             :         Token * newline_var;
   22174          78 :         if (
   22175          78 :             (a = _PyPegen_expect_token(p, 629))  // token='except'
   22176          48 :             &&
   22177          48 :             (expression_var = expression_rule(p))  // expression
   22178          21 :             &&
   22179          21 :             (_opt_var = _tmp_209_rule(p), !p->error_indicator)  // ['as' NAME]
   22180          21 :             &&
   22181          21 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   22182          15 :             &&
   22183          15 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22184           8 :             &&
   22185           8 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   22186             :         )
   22187             :         {
   22188           1 :             D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
   22189           1 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
   22190           1 :             if (_res == NULL && PyErr_Occurred()) {
   22191           1 :                 p->error_indicator = 1;
   22192           1 :                 p->level--;
   22193           1 :                 return NULL;
   22194             :             }
   22195           0 :             goto done;
   22196             :         }
   22197          77 :         p->mark = _mark;
   22198          77 :         D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
   22199             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
   22200             :     }
   22201             :     { // 'except' ':' NEWLINE !INDENT
   22202          77 :         if (p->error_indicator) {
   22203           0 :             p->level--;
   22204           0 :             return NULL;
   22205             :         }
   22206          77 :         D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
   22207             :         Token * _literal;
   22208             :         Token * a;
   22209             :         Token * newline_var;
   22210          77 :         if (
   22211          77 :             (a = _PyPegen_expect_token(p, 629))  // token='except'
   22212          47 :             &&
   22213          47 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   22214           2 :             &&
   22215           2 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22216           1 :             &&
   22217           1 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   22218             :         )
   22219             :         {
   22220           1 :             D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
   22221           1 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
   22222           1 :             if (_res == NULL && PyErr_Occurred()) {
   22223           1 :                 p->error_indicator = 1;
   22224           1 :                 p->level--;
   22225           1 :                 return NULL;
   22226             :             }
   22227           0 :             goto done;
   22228             :         }
   22229          76 :         p->mark = _mark;
   22230          76 :         D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
   22231             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
   22232             :     }
   22233          76 :     _res = NULL;
   22234          76 :   done:
   22235          76 :     p->level--;
   22236          76 :     return _res;
   22237             : }
   22238             : 
   22239             : // invalid_except_star_stmt_indent:
   22240             : //     | 'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT
   22241             : static void *
   22242          58 : invalid_except_star_stmt_indent_rule(Parser *p)
   22243             : {
   22244          58 :     if (p->level++ == MAXSTACK) {
   22245           0 :         p->error_indicator = 1;
   22246           0 :         PyErr_NoMemory();
   22247             :     }
   22248          58 :     if (p->error_indicator) {
   22249           0 :         p->level--;
   22250           0 :         return NULL;
   22251             :     }
   22252          58 :     void * _res = NULL;
   22253          58 :     int _mark = p->mark;
   22254             :     { // 'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT
   22255          58 :         if (p->error_indicator) {
   22256           0 :             p->level--;
   22257           0 :             return NULL;
   22258             :         }
   22259          58 :         D(fprintf(stderr, "%*c> invalid_except_star_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT"));
   22260             :         Token * _literal;
   22261             :         Token * _literal_1;
   22262             :         void *_opt_var;
   22263             :         UNUSED(_opt_var); // Silence compiler warnings
   22264             :         Token * a;
   22265             :         expr_ty expression_var;
   22266             :         Token * newline_var;
   22267          58 :         if (
   22268          58 :             (a = _PyPegen_expect_token(p, 629))  // token='except'
   22269          28 :             &&
   22270          28 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   22271          19 :             &&
   22272          19 :             (expression_var = expression_rule(p))  // expression
   22273          18 :             &&
   22274          18 :             (_opt_var = _tmp_210_rule(p), !p->error_indicator)  // ['as' NAME]
   22275          18 :             &&
   22276          18 :             (_literal_1 = _PyPegen_expect_token(p, 11))  // token=':'
   22277          16 :             &&
   22278          16 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22279           9 :             &&
   22280           9 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   22281             :         )
   22282             :         {
   22283           1 :             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"));
   22284           1 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except*' statement on line %d" , a -> lineno );
   22285           1 :             if (_res == NULL && PyErr_Occurred()) {
   22286           1 :                 p->error_indicator = 1;
   22287           1 :                 p->level--;
   22288           1 :                 return NULL;
   22289             :             }
   22290           0 :             goto done;
   22291             :         }
   22292          57 :         p->mark = _mark;
   22293          57 :         D(fprintf(stderr, "%*c%s invalid_except_star_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
   22294             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT"));
   22295             :     }
   22296          57 :     _res = NULL;
   22297          57 :   done:
   22298          57 :     p->level--;
   22299          57 :     return _res;
   22300             : }
   22301             : 
   22302             : // invalid_match_stmt:
   22303             : //     | "match" subject_expr NEWLINE
   22304             : //     | "match" subject_expr ':' NEWLINE !INDENT
   22305             : static void *
   22306         829 : invalid_match_stmt_rule(Parser *p)
   22307             : {
   22308         829 :     if (p->level++ == MAXSTACK) {
   22309           0 :         p->error_indicator = 1;
   22310           0 :         PyErr_NoMemory();
   22311             :     }
   22312         829 :     if (p->error_indicator) {
   22313           0 :         p->level--;
   22314           0 :         return NULL;
   22315             :     }
   22316         829 :     void * _res = NULL;
   22317         829 :     int _mark = p->mark;
   22318             :     { // "match" subject_expr NEWLINE
   22319         829 :         if (p->error_indicator) {
   22320           0 :             p->level--;
   22321           0 :             return NULL;
   22322             :         }
   22323         829 :         D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr NEWLINE"));
   22324             :         expr_ty _keyword;
   22325             :         Token * newline_var;
   22326             :         expr_ty subject_expr_var;
   22327         829 :         if (
   22328         829 :             (_keyword = _PyPegen_expect_soft_keyword(p, "match"))  // soft_keyword='"match"'
   22329          12 :             &&
   22330          12 :             (subject_expr_var = subject_expr_rule(p))  // subject_expr
   22331          12 :             &&
   22332          12 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22333             :         )
   22334             :         {
   22335           1 :             D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr NEWLINE"));
   22336           1 :             _res = CHECK_VERSION ( void* , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
   22337           1 :             if (_res == NULL && PyErr_Occurred()) {
   22338           1 :                 p->error_indicator = 1;
   22339           1 :                 p->level--;
   22340           1 :                 return NULL;
   22341             :             }
   22342           0 :             goto done;
   22343             :         }
   22344         828 :         p->mark = _mark;
   22345         828 :         D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   22346             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr NEWLINE"));
   22347             :     }
   22348             :     { // "match" subject_expr ':' NEWLINE !INDENT
   22349         828 :         if (p->error_indicator) {
   22350           0 :             p->level--;
   22351           0 :             return NULL;
   22352             :         }
   22353         828 :         D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
   22354             :         Token * _literal;
   22355             :         expr_ty a;
   22356             :         Token * newline_var;
   22357             :         expr_ty subject;
   22358         828 :         if (
   22359         828 :             (a = _PyPegen_expect_soft_keyword(p, "match"))  // soft_keyword='"match"'
   22360          11 :             &&
   22361          11 :             (subject = subject_expr_rule(p))  // subject_expr
   22362          11 :             &&
   22363          11 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   22364          10 :             &&
   22365          10 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22366          10 :             &&
   22367          10 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   22368             :         )
   22369             :         {
   22370           1 :             D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
   22371           1 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
   22372           1 :             if (_res == NULL && PyErr_Occurred()) {
   22373           1 :                 p->error_indicator = 1;
   22374           1 :                 p->level--;
   22375           1 :                 return NULL;
   22376             :             }
   22377           0 :             goto done;
   22378             :         }
   22379         827 :         p->mark = _mark;
   22380         827 :         D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   22381             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
   22382             :     }
   22383         827 :     _res = NULL;
   22384         827 :   done:
   22385         827 :     p->level--;
   22386         827 :     return _res;
   22387             : }
   22388             : 
   22389             : // invalid_case_block:
   22390             : //     | "case" patterns guard? NEWLINE
   22391             : //     | "case" patterns guard? ':' NEWLINE !INDENT
   22392             : static void *
   22393          21 : invalid_case_block_rule(Parser *p)
   22394             : {
   22395          21 :     if (p->level++ == MAXSTACK) {
   22396           0 :         p->error_indicator = 1;
   22397           0 :         PyErr_NoMemory();
   22398             :     }
   22399          21 :     if (p->error_indicator) {
   22400           0 :         p->level--;
   22401           0 :         return NULL;
   22402             :     }
   22403          21 :     void * _res = NULL;
   22404          21 :     int _mark = p->mark;
   22405             :     { // "case" patterns guard? NEWLINE
   22406          21 :         if (p->error_indicator) {
   22407           0 :             p->level--;
   22408           0 :             return NULL;
   22409             :         }
   22410          21 :         D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? NEWLINE"));
   22411             :         expr_ty _keyword;
   22412             :         void *_opt_var;
   22413             :         UNUSED(_opt_var); // Silence compiler warnings
   22414             :         Token * newline_var;
   22415             :         pattern_ty patterns_var;
   22416          21 :         if (
   22417          21 :             (_keyword = _PyPegen_expect_soft_keyword(p, "case"))  // soft_keyword='"case"'
   22418          20 :             &&
   22419          20 :             (patterns_var = patterns_rule(p))  // patterns
   22420           6 :             &&
   22421           6 :             (_opt_var = guard_rule(p), !p->error_indicator)  // guard?
   22422           6 :             &&
   22423           6 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22424             :         )
   22425             :         {
   22426           2 :             D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? NEWLINE"));
   22427           2 :             _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
   22428           2 :             if (_res == NULL && PyErr_Occurred()) {
   22429           2 :                 p->error_indicator = 1;
   22430           2 :                 p->level--;
   22431           2 :                 return NULL;
   22432             :             }
   22433           0 :             goto done;
   22434             :         }
   22435          19 :         p->mark = _mark;
   22436          19 :         D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
   22437             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? NEWLINE"));
   22438             :     }
   22439             :     { // "case" patterns guard? ':' NEWLINE !INDENT
   22440          19 :         if (p->error_indicator) {
   22441           7 :             p->level--;
   22442           7 :             return NULL;
   22443             :         }
   22444          12 :         D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
   22445             :         Token * _literal;
   22446             :         void *_opt_var;
   22447             :         UNUSED(_opt_var); // Silence compiler warnings
   22448             :         expr_ty a;
   22449             :         Token * newline_var;
   22450             :         pattern_ty patterns_var;
   22451          12 :         if (
   22452          12 :             (a = _PyPegen_expect_soft_keyword(p, "case"))  // soft_keyword='"case"'
   22453          11 :             &&
   22454          11 :             (patterns_var = patterns_rule(p))  // patterns
   22455           4 :             &&
   22456           4 :             (_opt_var = guard_rule(p), !p->error_indicator)  // guard?
   22457           4 :             &&
   22458           4 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   22459           4 :             &&
   22460           4 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22461           4 :             &&
   22462           4 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   22463             :         )
   22464             :         {
   22465           2 :             D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
   22466           2 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
   22467           2 :             if (_res == NULL && PyErr_Occurred()) {
   22468           2 :                 p->error_indicator = 1;
   22469           2 :                 p->level--;
   22470           2 :                 return NULL;
   22471             :             }
   22472           0 :             goto done;
   22473             :         }
   22474          10 :         p->mark = _mark;
   22475          10 :         D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
   22476             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
   22477             :     }
   22478          10 :     _res = NULL;
   22479          10 :   done:
   22480          10 :     p->level--;
   22481          10 :     return _res;
   22482             : }
   22483             : 
   22484             : // invalid_as_pattern: or_pattern 'as' "_" | or_pattern 'as' !NAME expression
   22485             : static void *
   22486         107 : invalid_as_pattern_rule(Parser *p)
   22487             : {
   22488         107 :     if (p->level++ == MAXSTACK) {
   22489           0 :         p->error_indicator = 1;
   22490           0 :         PyErr_NoMemory();
   22491             :     }
   22492         107 :     if (p->error_indicator) {
   22493           0 :         p->level--;
   22494           0 :         return NULL;
   22495             :     }
   22496         107 :     void * _res = NULL;
   22497         107 :     int _mark = p->mark;
   22498             :     { // or_pattern 'as' "_"
   22499         107 :         if (p->error_indicator) {
   22500           0 :             p->level--;
   22501           0 :             return NULL;
   22502             :         }
   22503         107 :         D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
   22504             :         Token * _keyword;
   22505             :         expr_ty a;
   22506             :         pattern_ty or_pattern_var;
   22507         107 :         if (
   22508         107 :             (or_pattern_var = or_pattern_rule(p))  // or_pattern
   22509          49 :             &&
   22510          49 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   22511           3 :             &&
   22512           3 :             (a = _PyPegen_expect_soft_keyword(p, "_"))  // soft_keyword='"_"'
   22513             :         )
   22514             :         {
   22515           2 :             D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
   22516           2 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use '_' as a target" );
   22517           2 :             if (_res == NULL && PyErr_Occurred()) {
   22518           2 :                 p->error_indicator = 1;
   22519           2 :                 p->level--;
   22520           2 :                 return NULL;
   22521             :             }
   22522           0 :             goto done;
   22523             :         }
   22524         105 :         p->mark = _mark;
   22525         105 :         D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
   22526             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' \"_\""));
   22527             :     }
   22528             :     { // or_pattern 'as' !NAME expression
   22529         105 :         if (p->error_indicator) {
   22530           0 :             p->level--;
   22531           0 :             return NULL;
   22532             :         }
   22533         105 :         D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
   22534             :         Token * _keyword;
   22535             :         expr_ty a;
   22536             :         pattern_ty or_pattern_var;
   22537         105 :         if (
   22538         105 :             (or_pattern_var = or_pattern_rule(p))  // or_pattern
   22539          47 :             &&
   22540          47 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   22541           1 :             &&
   22542           1 :             _PyPegen_lookahead_with_name(0, _PyPegen_name_token, p)
   22543           1 :             &&
   22544           1 :             (a = expression_rule(p))  // expression
   22545             :         )
   22546             :         {
   22547           1 :             D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
   22548           1 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid pattern target" );
   22549           1 :             if (_res == NULL && PyErr_Occurred()) {
   22550           1 :                 p->error_indicator = 1;
   22551           1 :                 p->level--;
   22552           1 :                 return NULL;
   22553             :             }
   22554           0 :             goto done;
   22555             :         }
   22556         104 :         p->mark = _mark;
   22557         104 :         D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
   22558             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' !NAME expression"));
   22559             :     }
   22560         104 :     _res = NULL;
   22561         104 :   done:
   22562         104 :     p->level--;
   22563         104 :     return _res;
   22564             : }
   22565             : 
   22566             : // invalid_class_pattern: name_or_attr '(' invalid_class_argument_pattern
   22567             : static void *
   22568          19 : invalid_class_pattern_rule(Parser *p)
   22569             : {
   22570          19 :     if (p->level++ == MAXSTACK) {
   22571           0 :         p->error_indicator = 1;
   22572           0 :         PyErr_NoMemory();
   22573             :     }
   22574          19 :     if (p->error_indicator) {
   22575           0 :         p->level--;
   22576           0 :         return NULL;
   22577             :     }
   22578          19 :     void * _res = NULL;
   22579          19 :     int _mark = p->mark;
   22580             :     { // name_or_attr '(' invalid_class_argument_pattern
   22581          19 :         if (p->error_indicator) {
   22582           0 :             p->level--;
   22583           0 :             return NULL;
   22584             :         }
   22585          19 :         D(fprintf(stderr, "%*c> invalid_class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
   22586             :         Token * _literal;
   22587             :         asdl_pattern_seq* a;
   22588             :         expr_ty name_or_attr_var;
   22589          19 :         if (
   22590          19 :             (name_or_attr_var = name_or_attr_rule(p))  // name_or_attr
   22591          10 :             &&
   22592          10 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   22593           4 :             &&
   22594           4 :             (a = invalid_class_argument_pattern_rule(p))  // invalid_class_argument_pattern
   22595             :         )
   22596             :         {
   22597           4 :             D(fprintf(stderr, "%*c+ invalid_class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
   22598           4 :             _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( PyPegen_first_item ( a , pattern_ty ) , PyPegen_last_item ( a , pattern_ty ) , "positional patterns follow keyword patterns" );
   22599           4 :             if (_res == NULL && PyErr_Occurred()) {
   22600           4 :                 p->error_indicator = 1;
   22601           4 :                 p->level--;
   22602           4 :                 return NULL;
   22603             :             }
   22604           0 :             goto done;
   22605             :         }
   22606          15 :         p->mark = _mark;
   22607          15 :         D(fprintf(stderr, "%*c%s invalid_class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
   22608             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
   22609             :     }
   22610          15 :     _res = NULL;
   22611          15 :   done:
   22612          15 :     p->level--;
   22613          15 :     return _res;
   22614             : }
   22615             : 
   22616             : // invalid_class_argument_pattern:
   22617             : //     | [positional_patterns ','] keyword_patterns ',' positional_patterns
   22618             : static asdl_pattern_seq*
   22619           4 : invalid_class_argument_pattern_rule(Parser *p)
   22620             : {
   22621           4 :     if (p->level++ == MAXSTACK) {
   22622           0 :         p->error_indicator = 1;
   22623           0 :         PyErr_NoMemory();
   22624             :     }
   22625           4 :     if (p->error_indicator) {
   22626           0 :         p->level--;
   22627           0 :         return NULL;
   22628             :     }
   22629           4 :     asdl_pattern_seq* _res = NULL;
   22630           4 :     int _mark = p->mark;
   22631             :     { // [positional_patterns ','] keyword_patterns ',' positional_patterns
   22632           4 :         if (p->error_indicator) {
   22633           0 :             p->level--;
   22634           0 :             return NULL;
   22635             :         }
   22636           4 :         D(fprintf(stderr, "%*c> invalid_class_argument_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
   22637             :         Token * _literal;
   22638             :         void *_opt_var;
   22639             :         UNUSED(_opt_var); // Silence compiler warnings
   22640             :         asdl_pattern_seq* a;
   22641             :         asdl_seq* keyword_patterns_var;
   22642           4 :         if (
   22643           4 :             (_opt_var = _tmp_211_rule(p), !p->error_indicator)  // [positional_patterns ',']
   22644           4 :             &&
   22645           4 :             (keyword_patterns_var = keyword_patterns_rule(p))  // keyword_patterns
   22646           4 :             &&
   22647           4 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   22648           4 :             &&
   22649           4 :             (a = positional_patterns_rule(p))  // positional_patterns
   22650             :         )
   22651             :         {
   22652           4 :             D(fprintf(stderr, "%*c+ invalid_class_argument_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
   22653           4 :             _res = a;
   22654           4 :             if (_res == NULL && PyErr_Occurred()) {
   22655           0 :                 p->error_indicator = 1;
   22656           0 :                 p->level--;
   22657           0 :                 return NULL;
   22658             :             }
   22659           4 :             goto done;
   22660             :         }
   22661           0 :         p->mark = _mark;
   22662           0 :         D(fprintf(stderr, "%*c%s invalid_class_argument_pattern[%d-%d]: %s failed!\n", p->level, ' ',
   22663             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
   22664             :     }
   22665           0 :     _res = NULL;
   22666           4 :   done:
   22667           4 :     p->level--;
   22668           4 :     return _res;
   22669             : }
   22670             : 
   22671             : // invalid_if_stmt:
   22672             : //     | 'if' named_expression NEWLINE
   22673             : //     | 'if' named_expression ':' NEWLINE !INDENT
   22674             : static void *
   22675          39 : invalid_if_stmt_rule(Parser *p)
   22676             : {
   22677          39 :     if (p->level++ == MAXSTACK) {
   22678           0 :         p->error_indicator = 1;
   22679           0 :         PyErr_NoMemory();
   22680             :     }
   22681          39 :     if (p->error_indicator) {
   22682           0 :         p->level--;
   22683           0 :         return NULL;
   22684             :     }
   22685          39 :     void * _res = NULL;
   22686          39 :     int _mark = p->mark;
   22687             :     { // 'if' named_expression NEWLINE
   22688          39 :         if (p->error_indicator) {
   22689           0 :             p->level--;
   22690           0 :             return NULL;
   22691             :         }
   22692          39 :         D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
   22693             :         Token * _keyword;
   22694             :         expr_ty named_expression_var;
   22695             :         Token * newline_var;
   22696          39 :         if (
   22697          39 :             (_keyword = _PyPegen_expect_token(p, 634))  // token='if'
   22698          39 :             &&
   22699          39 :             (named_expression_var = named_expression_rule(p))  // named_expression
   22700          34 :             &&
   22701          34 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22702             :         )
   22703             :         {
   22704           1 :             D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
   22705           1 :             _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
   22706           1 :             if (_res == NULL && PyErr_Occurred()) {
   22707           1 :                 p->error_indicator = 1;
   22708           1 :                 p->level--;
   22709           1 :                 return NULL;
   22710             :             }
   22711           0 :             goto done;
   22712             :         }
   22713          38 :         p->mark = _mark;
   22714          38 :         D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   22715             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
   22716             :     }
   22717             :     { // 'if' named_expression ':' NEWLINE !INDENT
   22718          38 :         if (p->error_indicator) {
   22719           2 :             p->level--;
   22720           2 :             return NULL;
   22721             :         }
   22722          36 :         D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
   22723             :         Token * _literal;
   22724             :         Token * a;
   22725             :         expr_ty a_1;
   22726             :         Token * newline_var;
   22727          36 :         if (
   22728          36 :             (a = _PyPegen_expect_token(p, 634))  // token='if'
   22729          36 :             &&
   22730          36 :             (a_1 = named_expression_rule(p))  // named_expression
   22731          33 :             &&
   22732          33 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   22733          33 :             &&
   22734          33 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22735          25 :             &&
   22736          25 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   22737             :         )
   22738             :         {
   22739           3 :             D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
   22740           3 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
   22741           3 :             if (_res == NULL && PyErr_Occurred()) {
   22742           3 :                 p->error_indicator = 1;
   22743           3 :                 p->level--;
   22744           3 :                 return NULL;
   22745             :             }
   22746           0 :             goto done;
   22747             :         }
   22748          33 :         p->mark = _mark;
   22749          33 :         D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   22750             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
   22751             :     }
   22752          33 :     _res = NULL;
   22753          33 :   done:
   22754          33 :     p->level--;
   22755          33 :     return _res;
   22756             : }
   22757             : 
   22758             : // invalid_elif_stmt:
   22759             : //     | 'elif' named_expression NEWLINE
   22760             : //     | 'elif' named_expression ':' NEWLINE !INDENT
   22761             : static void *
   22762           8 : invalid_elif_stmt_rule(Parser *p)
   22763             : {
   22764           8 :     if (p->level++ == MAXSTACK) {
   22765           0 :         p->error_indicator = 1;
   22766           0 :         PyErr_NoMemory();
   22767             :     }
   22768           8 :     if (p->error_indicator) {
   22769           0 :         p->level--;
   22770           0 :         return NULL;
   22771             :     }
   22772           8 :     void * _res = NULL;
   22773           8 :     int _mark = p->mark;
   22774             :     { // 'elif' named_expression NEWLINE
   22775           8 :         if (p->error_indicator) {
   22776           0 :             p->level--;
   22777           0 :             return NULL;
   22778             :         }
   22779           8 :         D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
   22780             :         Token * _keyword;
   22781             :         expr_ty named_expression_var;
   22782             :         Token * newline_var;
   22783           8 :         if (
   22784           8 :             (_keyword = _PyPegen_expect_token(p, 636))  // token='elif'
   22785           6 :             &&
   22786           6 :             (named_expression_var = named_expression_rule(p))  // named_expression
   22787           6 :             &&
   22788           6 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22789             :         )
   22790             :         {
   22791           1 :             D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
   22792           1 :             _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
   22793           1 :             if (_res == NULL && PyErr_Occurred()) {
   22794           1 :                 p->error_indicator = 1;
   22795           1 :                 p->level--;
   22796           1 :                 return NULL;
   22797             :             }
   22798           0 :             goto done;
   22799             :         }
   22800           7 :         p->mark = _mark;
   22801           7 :         D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   22802             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
   22803             :     }
   22804             :     { // 'elif' named_expression ':' NEWLINE !INDENT
   22805           7 :         if (p->error_indicator) {
   22806           0 :             p->level--;
   22807           0 :             return NULL;
   22808             :         }
   22809           7 :         D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
   22810             :         Token * _literal;
   22811             :         Token * a;
   22812             :         expr_ty named_expression_var;
   22813             :         Token * newline_var;
   22814           7 :         if (
   22815           7 :             (a = _PyPegen_expect_token(p, 636))  // token='elif'
   22816           5 :             &&
   22817           5 :             (named_expression_var = named_expression_rule(p))  // named_expression
   22818           5 :             &&
   22819           5 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   22820           5 :             &&
   22821           5 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22822           5 :             &&
   22823           5 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   22824             :         )
   22825             :         {
   22826           1 :             D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
   22827           1 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
   22828           1 :             if (_res == NULL && PyErr_Occurred()) {
   22829           1 :                 p->error_indicator = 1;
   22830           1 :                 p->level--;
   22831           1 :                 return NULL;
   22832             :             }
   22833           0 :             goto done;
   22834             :         }
   22835           6 :         p->mark = _mark;
   22836           6 :         D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   22837             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
   22838             :     }
   22839           6 :     _res = NULL;
   22840           6 :   done:
   22841           6 :     p->level--;
   22842           6 :     return _res;
   22843             : }
   22844             : 
   22845             : // invalid_else_stmt: 'else' ':' NEWLINE !INDENT
   22846             : static void *
   22847           6 : invalid_else_stmt_rule(Parser *p)
   22848             : {
   22849           6 :     if (p->level++ == MAXSTACK) {
   22850           0 :         p->error_indicator = 1;
   22851           0 :         PyErr_NoMemory();
   22852             :     }
   22853           6 :     if (p->error_indicator) {
   22854           0 :         p->level--;
   22855           0 :         return NULL;
   22856             :     }
   22857           6 :     void * _res = NULL;
   22858           6 :     int _mark = p->mark;
   22859             :     { // 'else' ':' NEWLINE !INDENT
   22860           6 :         if (p->error_indicator) {
   22861           0 :             p->level--;
   22862           0 :             return NULL;
   22863             :         }
   22864           6 :         D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
   22865             :         Token * _literal;
   22866             :         Token * a;
   22867             :         Token * newline_var;
   22868           6 :         if (
   22869           6 :             (a = _PyPegen_expect_token(p, 637))  // token='else'
   22870           4 :             &&
   22871           4 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   22872           4 :             &&
   22873           4 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22874           4 :             &&
   22875           4 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   22876             :         )
   22877             :         {
   22878           3 :             D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
   22879           3 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
   22880           3 :             if (_res == NULL && PyErr_Occurred()) {
   22881           3 :                 p->error_indicator = 1;
   22882           3 :                 p->level--;
   22883           3 :                 return NULL;
   22884             :             }
   22885           0 :             goto done;
   22886             :         }
   22887           3 :         p->mark = _mark;
   22888           3 :         D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   22889             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
   22890             :     }
   22891           3 :     _res = NULL;
   22892           3 :   done:
   22893           3 :     p->level--;
   22894           3 :     return _res;
   22895             : }
   22896             : 
   22897             : // invalid_while_stmt:
   22898             : //     | 'while' named_expression NEWLINE
   22899             : //     | 'while' named_expression ':' NEWLINE !INDENT
   22900             : static void *
   22901          23 : invalid_while_stmt_rule(Parser *p)
   22902             : {
   22903          23 :     if (p->level++ == MAXSTACK) {
   22904           0 :         p->error_indicator = 1;
   22905           0 :         PyErr_NoMemory();
   22906             :     }
   22907          23 :     if (p->error_indicator) {
   22908           0 :         p->level--;
   22909           0 :         return NULL;
   22910             :     }
   22911          23 :     void * _res = NULL;
   22912          23 :     int _mark = p->mark;
   22913             :     { // 'while' named_expression NEWLINE
   22914          23 :         if (p->error_indicator) {
   22915           0 :             p->level--;
   22916           0 :             return NULL;
   22917             :         }
   22918          23 :         D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
   22919             :         Token * _keyword;
   22920             :         expr_ty named_expression_var;
   22921             :         Token * newline_var;
   22922          23 :         if (
   22923          23 :             (_keyword = _PyPegen_expect_token(p, 639))  // token='while'
   22924          23 :             &&
   22925          23 :             (named_expression_var = named_expression_rule(p))  // named_expression
   22926          20 :             &&
   22927          20 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22928             :         )
   22929             :         {
   22930           1 :             D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
   22931           1 :             _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
   22932           1 :             if (_res == NULL && PyErr_Occurred()) {
   22933           1 :                 p->error_indicator = 1;
   22934           1 :                 p->level--;
   22935           1 :                 return NULL;
   22936             :             }
   22937           0 :             goto done;
   22938             :         }
   22939          22 :         p->mark = _mark;
   22940          22 :         D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   22941             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
   22942             :     }
   22943             :     { // 'while' named_expression ':' NEWLINE !INDENT
   22944          22 :         if (p->error_indicator) {
   22945           2 :             p->level--;
   22946           2 :             return NULL;
   22947             :         }
   22948          20 :         D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
   22949             :         Token * _literal;
   22950             :         Token * a;
   22951             :         expr_ty named_expression_var;
   22952             :         Token * newline_var;
   22953          20 :         if (
   22954          20 :             (a = _PyPegen_expect_token(p, 639))  // token='while'
   22955          20 :             &&
   22956          20 :             (named_expression_var = named_expression_rule(p))  // named_expression
   22957          19 :             &&
   22958          19 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   22959          19 :             &&
   22960          19 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   22961          10 :             &&
   22962          10 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   22963             :         )
   22964             :         {
   22965           1 :             D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
   22966           1 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
   22967           1 :             if (_res == NULL && PyErr_Occurred()) {
   22968           1 :                 p->error_indicator = 1;
   22969           1 :                 p->level--;
   22970           1 :                 return NULL;
   22971             :             }
   22972           0 :             goto done;
   22973             :         }
   22974          19 :         p->mark = _mark;
   22975          19 :         D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   22976             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
   22977             :     }
   22978          19 :     _res = NULL;
   22979          19 :   done:
   22980          19 :     p->level--;
   22981          19 :     return _res;
   22982             : }
   22983             : 
   22984             : // invalid_for_stmt:
   22985             : //     | ASYNC? 'for' star_targets 'in' star_expressions NEWLINE
   22986             : //     | ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
   22987             : static void *
   22988          54 : invalid_for_stmt_rule(Parser *p)
   22989             : {
   22990          54 :     if (p->level++ == MAXSTACK) {
   22991           0 :         p->error_indicator = 1;
   22992           0 :         PyErr_NoMemory();
   22993             :     }
   22994          54 :     if (p->error_indicator) {
   22995           0 :         p->level--;
   22996           0 :         return NULL;
   22997             :     }
   22998          54 :     void * _res = NULL;
   22999          54 :     int _mark = p->mark;
   23000             :     { // ASYNC? 'for' star_targets 'in' star_expressions NEWLINE
   23001          54 :         if (p->error_indicator) {
   23002           0 :             p->level--;
   23003           0 :             return NULL;
   23004             :         }
   23005          54 :         D(fprintf(stderr, "%*c> invalid_for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions NEWLINE"));
   23006             :         Token * _keyword;
   23007             :         Token * _keyword_1;
   23008             :         void *_opt_var;
   23009             :         UNUSED(_opt_var); // Silence compiler warnings
   23010             :         Token * newline_var;
   23011             :         expr_ty star_expressions_var;
   23012             :         expr_ty star_targets_var;
   23013          54 :         if (
   23014          54 :             (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator)  // ASYNC?
   23015          54 :             &&
   23016          54 :             (_keyword = _PyPegen_expect_token(p, 642))  // token='for'
   23017          22 :             &&
   23018          22 :             (star_targets_var = star_targets_rule(p))  // star_targets
   23019          13 :             &&
   23020          13 :             (_keyword_1 = _PyPegen_expect_token(p, 643))  // token='in'
   23021           7 :             &&
   23022           7 :             (star_expressions_var = star_expressions_rule(p))  // star_expressions
   23023           7 :             &&
   23024           7 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   23025             :         )
   23026             :         {
   23027           1 :             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"));
   23028           1 :             _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
   23029           1 :             if (_res == NULL && PyErr_Occurred()) {
   23030           1 :                 p->error_indicator = 1;
   23031           1 :                 p->level--;
   23032           1 :                 return NULL;
   23033             :             }
   23034           0 :             goto done;
   23035             :         }
   23036          53 :         p->mark = _mark;
   23037          53 :         D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   23038             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions NEWLINE"));
   23039             :     }
   23040             :     { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
   23041          53 :         if (p->error_indicator) {
   23042           0 :             p->level--;
   23043           0 :             return NULL;
   23044             :         }
   23045          53 :         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"));
   23046             :         Token * _keyword;
   23047             :         Token * _literal;
   23048             :         void *_opt_var;
   23049             :         UNUSED(_opt_var); // Silence compiler warnings
   23050             :         Token * a;
   23051             :         Token * newline_var;
   23052             :         expr_ty star_expressions_var;
   23053             :         expr_ty star_targets_var;
   23054          53 :         if (
   23055          53 :             (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator)  // ASYNC?
   23056          53 :             &&
   23057          53 :             (a = _PyPegen_expect_token(p, 642))  // token='for'
   23058          21 :             &&
   23059          21 :             (star_targets_var = star_targets_rule(p))  // star_targets
   23060          12 :             &&
   23061          12 :             (_keyword = _PyPegen_expect_token(p, 643))  // token='in'
   23062           6 :             &&
   23063           6 :             (star_expressions_var = star_expressions_rule(p))  // star_expressions
   23064           6 :             &&
   23065           6 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   23066           5 :             &&
   23067           5 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   23068           4 :             &&
   23069           4 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   23070             :         )
   23071             :         {
   23072           2 :             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"));
   23073           2 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
   23074           2 :             if (_res == NULL && PyErr_Occurred()) {
   23075           2 :                 p->error_indicator = 1;
   23076           2 :                 p->level--;
   23077           2 :                 return NULL;
   23078             :             }
   23079           0 :             goto done;
   23080             :         }
   23081          51 :         p->mark = _mark;
   23082          51 :         D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
   23083             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
   23084             :     }
   23085          51 :     _res = NULL;
   23086          51 :   done:
   23087          51 :     p->level--;
   23088          51 :     return _res;
   23089             : }
   23090             : 
   23091             : // invalid_def_raw:
   23092             : //     | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
   23093             : static void *
   23094         217 : invalid_def_raw_rule(Parser *p)
   23095             : {
   23096         217 :     if (p->level++ == MAXSTACK) {
   23097           0 :         p->error_indicator = 1;
   23098           0 :         PyErr_NoMemory();
   23099             :     }
   23100         217 :     if (p->error_indicator) {
   23101           0 :         p->level--;
   23102           0 :         return NULL;
   23103             :     }
   23104         217 :     void * _res = NULL;
   23105         217 :     int _mark = p->mark;
   23106             :     { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
   23107         217 :         if (p->error_indicator) {
   23108           0 :             p->level--;
   23109           0 :             return NULL;
   23110             :         }
   23111         217 :         D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
   23112             :         Token * _literal;
   23113             :         Token * _literal_1;
   23114             :         Token * _literal_2;
   23115             :         void *_opt_var;
   23116             :         UNUSED(_opt_var); // Silence compiler warnings
   23117             :         void *_opt_var_1;
   23118             :         UNUSED(_opt_var_1); // Silence compiler warnings
   23119             :         void *_opt_var_2;
   23120             :         UNUSED(_opt_var_2); // Silence compiler warnings
   23121             :         Token * a;
   23122             :         expr_ty name_var;
   23123             :         Token * newline_var;
   23124         217 :         if (
   23125         217 :             (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator)  // ASYNC?
   23126         217 :             &&
   23127         217 :             (a = _PyPegen_expect_token(p, 644))  // token='def'
   23128         196 :             &&
   23129         196 :             (name_var = _PyPegen_name_token(p))  // NAME
   23130         187 :             &&
   23131         187 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   23132         187 :             &&
   23133         187 :             (_opt_var_1 = params_rule(p), !p->error_indicator)  // params?
   23134         118 :             &&
   23135         118 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   23136          66 :             &&
   23137          66 :             (_opt_var_2 = _tmp_212_rule(p), !p->error_indicator)  // ['->' expression]
   23138          66 :             &&
   23139          66 :             (_literal_2 = _PyPegen_expect_token(p, 11))  // token=':'
   23140          66 :             &&
   23141          66 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   23142          39 :             &&
   23143          39 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   23144             :         )
   23145             :         {
   23146           3 :             D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
   23147           3 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
   23148           3 :             if (_res == NULL && PyErr_Occurred()) {
   23149           3 :                 p->error_indicator = 1;
   23150           3 :                 p->level--;
   23151           3 :                 return NULL;
   23152             :             }
   23153           0 :             goto done;
   23154             :         }
   23155         214 :         p->mark = _mark;
   23156         214 :         D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
   23157             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
   23158             :     }
   23159         214 :     _res = NULL;
   23160         214 :   done:
   23161         214 :     p->level--;
   23162         214 :     return _res;
   23163             : }
   23164             : 
   23165             : // invalid_class_def_raw:
   23166             : //     | 'class' NAME ['(' arguments? ')'] NEWLINE
   23167             : //     | 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
   23168             : static void *
   23169          15 : invalid_class_def_raw_rule(Parser *p)
   23170             : {
   23171          15 :     if (p->level++ == MAXSTACK) {
   23172           0 :         p->error_indicator = 1;
   23173           0 :         PyErr_NoMemory();
   23174             :     }
   23175          15 :     if (p->error_indicator) {
   23176           0 :         p->level--;
   23177           0 :         return NULL;
   23178             :     }
   23179          15 :     void * _res = NULL;
   23180          15 :     int _mark = p->mark;
   23181             :     { // 'class' NAME ['(' arguments? ')'] NEWLINE
   23182          15 :         if (p->error_indicator) {
   23183           0 :             p->level--;
   23184           0 :             return NULL;
   23185             :         }
   23186          15 :         D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] NEWLINE"));
   23187             :         Token * _keyword;
   23188             :         void *_opt_var;
   23189             :         UNUSED(_opt_var); // Silence compiler warnings
   23190             :         expr_ty name_var;
   23191             :         Token * newline_var;
   23192          15 :         if (
   23193          15 :             (_keyword = _PyPegen_expect_token(p, 646))  // token='class'
   23194          11 :             &&
   23195          11 :             (name_var = _PyPegen_name_token(p))  // NAME
   23196           6 :             &&
   23197           6 :             (_opt_var = _tmp_213_rule(p), !p->error_indicator)  // ['(' arguments? ')']
   23198           6 :             &&
   23199           6 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   23200             :         )
   23201             :         {
   23202           1 :             D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] NEWLINE"));
   23203           1 :             _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
   23204           1 :             if (_res == NULL && PyErr_Occurred()) {
   23205           1 :                 p->error_indicator = 1;
   23206           1 :                 p->level--;
   23207           1 :                 return NULL;
   23208             :             }
   23209           0 :             goto done;
   23210             :         }
   23211          14 :         p->mark = _mark;
   23212          14 :         D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
   23213             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] NEWLINE"));
   23214             :     }
   23215             :     { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
   23216          14 :         if (p->error_indicator) {
   23217           0 :             p->level--;
   23218           0 :             return NULL;
   23219             :         }
   23220          14 :         D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
   23221             :         Token * _literal;
   23222             :         void *_opt_var;
   23223             :         UNUSED(_opt_var); // Silence compiler warnings
   23224             :         Token * a;
   23225             :         expr_ty name_var;
   23226             :         Token * newline_var;
   23227          14 :         if (
   23228          14 :             (a = _PyPegen_expect_token(p, 646))  // token='class'
   23229          10 :             &&
   23230          10 :             (name_var = _PyPegen_name_token(p))  // NAME
   23231           5 :             &&
   23232           5 :             (_opt_var = _tmp_214_rule(p), !p->error_indicator)  // ['(' arguments? ')']
   23233           5 :             &&
   23234           5 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   23235           3 :             &&
   23236           3 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   23237           3 :             &&
   23238           3 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
   23239             :         )
   23240             :         {
   23241           1 :             D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
   23242           1 :             _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
   23243           1 :             if (_res == NULL && PyErr_Occurred()) {
   23244           1 :                 p->error_indicator = 1;
   23245           1 :                 p->level--;
   23246           1 :                 return NULL;
   23247             :             }
   23248           0 :             goto done;
   23249             :         }
   23250          13 :         p->mark = _mark;
   23251          13 :         D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
   23252             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
   23253             :     }
   23254          13 :     _res = NULL;
   23255          13 :   done:
   23256          13 :     p->level--;
   23257          13 :     return _res;
   23258             : }
   23259             : 
   23260             : // invalid_double_starred_kvpairs:
   23261             : //     | ','.double_starred_kvpair+ ',' invalid_kvpair
   23262             : //     | expression ':' '*' bitwise_or
   23263             : //     | expression ':' &('}' | ',')
   23264             : static void *
   23265       13748 : invalid_double_starred_kvpairs_rule(Parser *p)
   23266             : {
   23267       13748 :     if (p->level++ == MAXSTACK) {
   23268           0 :         p->error_indicator = 1;
   23269           0 :         PyErr_NoMemory();
   23270             :     }
   23271       13748 :     if (p->error_indicator) {
   23272           0 :         p->level--;
   23273           0 :         return NULL;
   23274             :     }
   23275       13748 :     void * _res = NULL;
   23276       13748 :     int _mark = p->mark;
   23277             :     { // ','.double_starred_kvpair+ ',' invalid_kvpair
   23278       13748 :         if (p->error_indicator) {
   23279           0 :             p->level--;
   23280           0 :             return NULL;
   23281             :         }
   23282       13748 :         D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
   23283             :         asdl_seq * _gather_215_var;
   23284             :         Token * _literal;
   23285             :         void *invalid_kvpair_var;
   23286       13748 :         if (
   23287       13748 :             (_gather_215_var = _gather_215_rule(p))  // ','.double_starred_kvpair+
   23288        3800 :             &&
   23289        3800 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   23290           3 :             &&
   23291           3 :             (invalid_kvpair_var = invalid_kvpair_rule(p))  // invalid_kvpair
   23292             :         )
   23293             :         {
   23294           0 :             D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
   23295           0 :             _res = _PyPegen_dummy_name(p, _gather_215_var, _literal, invalid_kvpair_var);
   23296           0 :             goto done;
   23297             :         }
   23298       13748 :         p->mark = _mark;
   23299       13748 :         D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
   23300             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
   23301             :     }
   23302             :     { // expression ':' '*' bitwise_or
   23303       13748 :         if (p->error_indicator) {
   23304           3 :             p->level--;
   23305           3 :             return NULL;
   23306             :         }
   23307       13745 :         D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
   23308             :         Token * _literal;
   23309             :         Token * a;
   23310             :         expr_ty bitwise_or_var;
   23311             :         expr_ty expression_var;
   23312       13745 :         if (
   23313       13745 :             (expression_var = expression_rule(p))  // expression
   23314       13660 :             &&
   23315       13660 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   23316        3809 :             &&
   23317        3809 :             (a = _PyPegen_expect_token(p, 16))  // token='*'
   23318           2 :             &&
   23319           2 :             (bitwise_or_var = bitwise_or_rule(p))  // bitwise_or
   23320             :         )
   23321             :         {
   23322           2 :             D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
   23323           2 :             _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
   23324           2 :             if (_res == NULL && PyErr_Occurred()) {
   23325           2 :                 p->error_indicator = 1;
   23326           2 :                 p->level--;
   23327           2 :                 return NULL;
   23328             :             }
   23329           0 :             goto done;
   23330             :         }
   23331       13743 :         p->mark = _mark;
   23332       13743 :         D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
   23333             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
   23334             :     }
   23335             :     { // expression ':' &('}' | ',')
   23336       13743 :         if (p->error_indicator) {
   23337           0 :             p->level--;
   23338           0 :             return NULL;
   23339             :         }
   23340       13743 :         D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
   23341             :         Token * a;
   23342             :         expr_ty expression_var;
   23343       13743 :         if (
   23344       13743 :             (expression_var = expression_rule(p))  // expression
   23345       13658 :             &&
   23346       13658 :             (a = _PyPegen_expect_token(p, 11))  // token=':'
   23347        3807 :             &&
   23348        3807 :             _PyPegen_lookahead(1, _tmp_217_rule, p)
   23349             :         )
   23350             :         {
   23351           1 :             D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
   23352           1 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
   23353           1 :             if (_res == NULL && PyErr_Occurred()) {
   23354           1 :                 p->error_indicator = 1;
   23355           1 :                 p->level--;
   23356           1 :                 return NULL;
   23357             :             }
   23358           0 :             goto done;
   23359             :         }
   23360       13742 :         p->mark = _mark;
   23361       13742 :         D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
   23362             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
   23363             :     }
   23364       13742 :     _res = NULL;
   23365       13742 :   done:
   23366       13742 :     p->level--;
   23367       13742 :     return _res;
   23368             : }
   23369             : 
   23370             : // invalid_kvpair:
   23371             : //     | expression !(':')
   23372             : //     | expression ':' '*' bitwise_or
   23373             : //     | expression ':' &('}' | ',')
   23374             : static void *
   23375           3 : invalid_kvpair_rule(Parser *p)
   23376             : {
   23377           3 :     if (p->level++ == MAXSTACK) {
   23378           0 :         p->error_indicator = 1;
   23379           0 :         PyErr_NoMemory();
   23380             :     }
   23381           3 :     if (p->error_indicator) {
   23382           0 :         p->level--;
   23383           0 :         return NULL;
   23384             :     }
   23385           3 :     void * _res = NULL;
   23386           3 :     int _mark = p->mark;
   23387             :     { // expression !(':')
   23388           3 :         if (p->error_indicator) {
   23389           0 :             p->level--;
   23390           0 :             return NULL;
   23391             :         }
   23392           3 :         D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
   23393             :         expr_ty a;
   23394           3 :         if (
   23395           3 :             (a = expression_rule(p))  // expression
   23396           3 :             &&
   23397           3 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11)  // token=(':')
   23398             :         )
   23399             :         {
   23400           1 :             D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
   23401           1 :             _res = RAISE_ERROR_KNOWN_LOCATION ( p , PyExc_SyntaxError , a -> lineno , a -> end_col_offset - 1 , a -> end_lineno , - 1 , "':' expected after dictionary key" );
   23402           1 :             if (_res == NULL && PyErr_Occurred()) {
   23403           1 :                 p->error_indicator = 1;
   23404           1 :                 p->level--;
   23405           1 :                 return NULL;
   23406             :             }
   23407           0 :             goto done;
   23408             :         }
   23409           2 :         p->mark = _mark;
   23410           2 :         D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
   23411             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
   23412             :     }
   23413             :     { // expression ':' '*' bitwise_or
   23414           2 :         if (p->error_indicator) {
   23415           0 :             p->level--;
   23416           0 :             return NULL;
   23417             :         }
   23418           2 :         D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
   23419             :         Token * _literal;
   23420             :         Token * a;
   23421             :         expr_ty bitwise_or_var;
   23422             :         expr_ty expression_var;
   23423           2 :         if (
   23424           2 :             (expression_var = expression_rule(p))  // expression
   23425           2 :             &&
   23426           2 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   23427           2 :             &&
   23428           2 :             (a = _PyPegen_expect_token(p, 16))  // token='*'
   23429           1 :             &&
   23430           1 :             (bitwise_or_var = bitwise_or_rule(p))  // bitwise_or
   23431             :         )
   23432             :         {
   23433           1 :             D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
   23434           1 :             _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
   23435           1 :             if (_res == NULL && PyErr_Occurred()) {
   23436           1 :                 p->error_indicator = 1;
   23437           1 :                 p->level--;
   23438           1 :                 return NULL;
   23439             :             }
   23440           0 :             goto done;
   23441             :         }
   23442           1 :         p->mark = _mark;
   23443           1 :         D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
   23444             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
   23445             :     }
   23446             :     { // expression ':' &('}' | ',')
   23447           1 :         if (p->error_indicator) {
   23448           0 :             p->level--;
   23449           0 :             return NULL;
   23450             :         }
   23451           1 :         D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
   23452             :         Token * a;
   23453             :         expr_ty expression_var;
   23454           1 :         if (
   23455           1 :             (expression_var = expression_rule(p))  // expression
   23456           1 :             &&
   23457           1 :             (a = _PyPegen_expect_token(p, 11))  // token=':'
   23458           1 :             &&
   23459           1 :             _PyPegen_lookahead(1, _tmp_218_rule, p)
   23460             :         )
   23461             :         {
   23462           1 :             D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
   23463           1 :             _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
   23464           1 :             if (_res == NULL && PyErr_Occurred()) {
   23465           1 :                 p->error_indicator = 1;
   23466           1 :                 p->level--;
   23467           1 :                 return NULL;
   23468             :             }
   23469           0 :             goto done;
   23470             :         }
   23471           0 :         p->mark = _mark;
   23472           0 :         D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
   23473             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
   23474             :     }
   23475           0 :     _res = NULL;
   23476           0 :   done:
   23477           0 :     p->level--;
   23478           0 :     return _res;
   23479             : }
   23480             : 
   23481             : // _loop0_1: NEWLINE
   23482             : static asdl_seq *
   23483       73421 : _loop0_1_rule(Parser *p)
   23484             : {
   23485       73421 :     if (p->level++ == MAXSTACK) {
   23486           0 :         p->error_indicator = 1;
   23487           0 :         PyErr_NoMemory();
   23488             :     }
   23489       73421 :     if (p->error_indicator) {
   23490           0 :         p->level--;
   23491           0 :         return NULL;
   23492             :     }
   23493       73421 :     void *_res = NULL;
   23494       73421 :     int _mark = p->mark;
   23495       73421 :     int _start_mark = p->mark;
   23496       73421 :     void **_children = PyMem_Malloc(sizeof(void *));
   23497       73421 :     if (!_children) {
   23498           0 :         p->error_indicator = 1;
   23499           0 :         PyErr_NoMemory();
   23500           0 :         p->level--;
   23501           0 :         return NULL;
   23502             :     }
   23503       73421 :     Py_ssize_t _children_capacity = 1;
   23504       73421 :     Py_ssize_t _n = 0;
   23505             :     { // NEWLINE
   23506       73421 :         if (p->error_indicator) {
   23507           0 :             p->level--;
   23508           0 :             return NULL;
   23509             :         }
   23510       73421 :         D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
   23511             :         Token * newline_var;
   23512      146858 :         while (
   23513       73437 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   23514             :         )
   23515             :         {
   23516          16 :             _res = newline_var;
   23517          16 :             if (_n == _children_capacity) {
   23518           0 :                 _children_capacity *= 2;
   23519           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   23520           0 :                 if (!_new_children) {
   23521           0 :                     p->error_indicator = 1;
   23522           0 :                     PyErr_NoMemory();
   23523           0 :                     p->level--;
   23524           0 :                     return NULL;
   23525             :                 }
   23526           0 :                 _children = _new_children;
   23527             :             }
   23528          16 :             _children[_n++] = _res;
   23529          16 :             _mark = p->mark;
   23530             :         }
   23531       73421 :         p->mark = _mark;
   23532       73421 :         D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
   23533             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
   23534             :     }
   23535       73421 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   23536       73421 :     if (!_seq) {
   23537           0 :         PyMem_Free(_children);
   23538           0 :         p->error_indicator = 1;
   23539           0 :         PyErr_NoMemory();
   23540           0 :         p->level--;
   23541           0 :         return NULL;
   23542             :     }
   23543       73437 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   23544       73421 :     PyMem_Free(_children);
   23545       73421 :     _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
   23546       73421 :     p->level--;
   23547       73421 :     return _seq;
   23548             : }
   23549             : 
   23550             : // _loop0_2: NEWLINE
   23551             : static asdl_seq *
   23552          12 : _loop0_2_rule(Parser *p)
   23553             : {
   23554          12 :     if (p->level++ == MAXSTACK) {
   23555           0 :         p->error_indicator = 1;
   23556           0 :         PyErr_NoMemory();
   23557             :     }
   23558          12 :     if (p->error_indicator) {
   23559           0 :         p->level--;
   23560           0 :         return NULL;
   23561             :     }
   23562          12 :     void *_res = NULL;
   23563          12 :     int _mark = p->mark;
   23564          12 :     int _start_mark = p->mark;
   23565          12 :     void **_children = PyMem_Malloc(sizeof(void *));
   23566          12 :     if (!_children) {
   23567           0 :         p->error_indicator = 1;
   23568           0 :         PyErr_NoMemory();
   23569           0 :         p->level--;
   23570           0 :         return NULL;
   23571             :     }
   23572          12 :     Py_ssize_t _children_capacity = 1;
   23573          12 :     Py_ssize_t _n = 0;
   23574             :     { // NEWLINE
   23575          12 :         if (p->error_indicator) {
   23576           0 :             p->level--;
   23577           0 :             return NULL;
   23578             :         }
   23579          12 :         D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
   23580             :         Token * newline_var;
   23581          24 :         while (
   23582          12 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   23583             :         )
   23584             :         {
   23585           0 :             _res = newline_var;
   23586           0 :             if (_n == _children_capacity) {
   23587           0 :                 _children_capacity *= 2;
   23588           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   23589           0 :                 if (!_new_children) {
   23590           0 :                     p->error_indicator = 1;
   23591           0 :                     PyErr_NoMemory();
   23592           0 :                     p->level--;
   23593           0 :                     return NULL;
   23594             :                 }
   23595           0 :                 _children = _new_children;
   23596             :             }
   23597           0 :             _children[_n++] = _res;
   23598           0 :             _mark = p->mark;
   23599             :         }
   23600          12 :         p->mark = _mark;
   23601          12 :         D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
   23602             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
   23603             :     }
   23604          12 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   23605          12 :     if (!_seq) {
   23606           0 :         PyMem_Free(_children);
   23607           0 :         p->error_indicator = 1;
   23608           0 :         PyErr_NoMemory();
   23609           0 :         p->level--;
   23610           0 :         return NULL;
   23611             :     }
   23612          12 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   23613          12 :     PyMem_Free(_children);
   23614          12 :     _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
   23615          12 :     p->level--;
   23616          12 :     return _seq;
   23617             : }
   23618             : 
   23619             : // _loop1_3: statement
   23620             : static asdl_seq *
   23621     1045380 : _loop1_3_rule(Parser *p)
   23622             : {
   23623     1045380 :     if (p->level++ == MAXSTACK) {
   23624           0 :         p->error_indicator = 1;
   23625           0 :         PyErr_NoMemory();
   23626             :     }
   23627     1045380 :     if (p->error_indicator) {
   23628           0 :         p->level--;
   23629           0 :         return NULL;
   23630             :     }
   23631     1045380 :     void *_res = NULL;
   23632     1045380 :     int _mark = p->mark;
   23633     1045380 :     int _start_mark = p->mark;
   23634     1045380 :     void **_children = PyMem_Malloc(sizeof(void *));
   23635     1045380 :     if (!_children) {
   23636           0 :         p->error_indicator = 1;
   23637           0 :         PyErr_NoMemory();
   23638           0 :         p->level--;
   23639           0 :         return NULL;
   23640             :     }
   23641     1045380 :     Py_ssize_t _children_capacity = 1;
   23642     1045380 :     Py_ssize_t _n = 0;
   23643             :     { // statement
   23644     1045380 :         if (p->error_indicator) {
   23645           0 :             p->level--;
   23646           0 :             return NULL;
   23647             :         }
   23648     1045380 :         D(fprintf(stderr, "%*c> _loop1_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
   23649             :         asdl_stmt_seq* statement_var;
   23650     5102760 :         while (
   23651     4057380 :             (statement_var = statement_rule(p))  // statement
   23652             :         )
   23653             :         {
   23654     3012000 :             _res = statement_var;
   23655     3012000 :             if (_n == _children_capacity) {
   23656      920157 :                 _children_capacity *= 2;
   23657      920157 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   23658      920157 :                 if (!_new_children) {
   23659           0 :                     p->error_indicator = 1;
   23660           0 :                     PyErr_NoMemory();
   23661           0 :                     p->level--;
   23662           0 :                     return NULL;
   23663             :                 }
   23664      920157 :                 _children = _new_children;
   23665             :             }
   23666     3012000 :             _children[_n++] = _res;
   23667     3012000 :             _mark = p->mark;
   23668             :         }
   23669     1045380 :         p->mark = _mark;
   23670     1045380 :         D(fprintf(stderr, "%*c%s _loop1_3[%d-%d]: %s failed!\n", p->level, ' ',
   23671             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
   23672             :     }
   23673     1045380 :     if (_n == 0 || p->error_indicator) {
   23674        1979 :         PyMem_Free(_children);
   23675        1979 :         p->level--;
   23676        1979 :         return NULL;
   23677             :     }
   23678     1043400 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   23679     1043400 :     if (!_seq) {
   23680           0 :         PyMem_Free(_children);
   23681           0 :         p->error_indicator = 1;
   23682           0 :         PyErr_NoMemory();
   23683           0 :         p->level--;
   23684           0 :         return NULL;
   23685             :     }
   23686     4055360 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   23687     1043400 :     PyMem_Free(_children);
   23688     1043400 :     _PyPegen_insert_memo(p, _start_mark, _loop1_3_type, _seq);
   23689     1043400 :     p->level--;
   23690     1043400 :     return _seq;
   23691             : }
   23692             : 
   23693             : // _loop0_5: ';' simple_stmt
   23694             : static asdl_seq *
   23695        2679 : _loop0_5_rule(Parser *p)
   23696             : {
   23697        2679 :     if (p->level++ == MAXSTACK) {
   23698           0 :         p->error_indicator = 1;
   23699           0 :         PyErr_NoMemory();
   23700             :     }
   23701        2679 :     if (p->error_indicator) {
   23702           0 :         p->level--;
   23703           0 :         return NULL;
   23704             :     }
   23705        2679 :     void *_res = NULL;
   23706        2679 :     int _mark = p->mark;
   23707        2679 :     int _start_mark = p->mark;
   23708        2679 :     void **_children = PyMem_Malloc(sizeof(void *));
   23709        2679 :     if (!_children) {
   23710           0 :         p->error_indicator = 1;
   23711           0 :         PyErr_NoMemory();
   23712           0 :         p->level--;
   23713           0 :         return NULL;
   23714             :     }
   23715        2679 :     Py_ssize_t _children_capacity = 1;
   23716        2679 :     Py_ssize_t _n = 0;
   23717             :     { // ';' simple_stmt
   23718        2679 :         if (p->error_indicator) {
   23719           0 :             p->level--;
   23720           0 :             return NULL;
   23721             :         }
   23722        2679 :         D(fprintf(stderr, "%*c> _loop0_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
   23723             :         Token * _literal;
   23724             :         stmt_ty elem;
   23725       12918 :         while (
   23726       10239 :             (_literal = _PyPegen_expect_token(p, 13))  // token=';'
   23727        7693 :             &&
   23728        7693 :             (elem = simple_stmt_rule(p))  // simple_stmt
   23729             :         )
   23730             :         {
   23731        7560 :             _res = elem;
   23732        7560 :             if (_res == NULL && PyErr_Occurred()) {
   23733           0 :                 p->error_indicator = 1;
   23734           0 :                 PyMem_Free(_children);
   23735           0 :                 p->level--;
   23736           0 :                 return NULL;
   23737             :             }
   23738        7560 :             if (_n == _children_capacity) {
   23739         996 :                 _children_capacity *= 2;
   23740         996 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   23741         996 :                 if (!_new_children) {
   23742           0 :                     p->error_indicator = 1;
   23743           0 :                     PyErr_NoMemory();
   23744           0 :                     p->level--;
   23745           0 :                     return NULL;
   23746             :                 }
   23747         996 :                 _children = _new_children;
   23748             :             }
   23749        7560 :             _children[_n++] = _res;
   23750        7560 :             _mark = p->mark;
   23751             :         }
   23752        2679 :         p->mark = _mark;
   23753        2679 :         D(fprintf(stderr, "%*c%s _loop0_5[%d-%d]: %s failed!\n", p->level, ' ',
   23754             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
   23755             :     }
   23756        2679 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   23757        2679 :     if (!_seq) {
   23758           0 :         PyMem_Free(_children);
   23759           0 :         p->error_indicator = 1;
   23760           0 :         PyErr_NoMemory();
   23761           0 :         p->level--;
   23762           0 :         return NULL;
   23763             :     }
   23764       10239 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   23765        2679 :     PyMem_Free(_children);
   23766        2679 :     _PyPegen_insert_memo(p, _start_mark, _loop0_5_type, _seq);
   23767        2679 :     p->level--;
   23768        2679 :     return _seq;
   23769             : }
   23770             : 
   23771             : // _gather_4: simple_stmt _loop0_5
   23772             : static asdl_seq *
   23773     1047930 : _gather_4_rule(Parser *p)
   23774             : {
   23775     1047930 :     if (p->level++ == MAXSTACK) {
   23776           0 :         p->error_indicator = 1;
   23777           0 :         PyErr_NoMemory();
   23778             :     }
   23779     1047930 :     if (p->error_indicator) {
   23780           0 :         p->level--;
   23781           0 :         return NULL;
   23782             :     }
   23783     1047930 :     asdl_seq * _res = NULL;
   23784     1047930 :     int _mark = p->mark;
   23785             :     { // simple_stmt _loop0_5
   23786     1047930 :         if (p->error_indicator) {
   23787           0 :             p->level--;
   23788           0 :             return NULL;
   23789             :         }
   23790     1047930 :         D(fprintf(stderr, "%*c> _gather_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt _loop0_5"));
   23791             :         stmt_ty elem;
   23792             :         asdl_seq * seq;
   23793     1047930 :         if (
   23794     1047930 :             (elem = simple_stmt_rule(p))  // simple_stmt
   23795        2679 :             &&
   23796        2679 :             (seq = _loop0_5_rule(p))  // _loop0_5
   23797             :         )
   23798             :         {
   23799        2679 :             D(fprintf(stderr, "%*c+ _gather_4[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt _loop0_5"));
   23800        2679 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   23801        2679 :             goto done;
   23802             :         }
   23803     1045250 :         p->mark = _mark;
   23804     1045250 :         D(fprintf(stderr, "%*c%s _gather_4[%d-%d]: %s failed!\n", p->level, ' ',
   23805             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_5"));
   23806             :     }
   23807     1045250 :     _res = NULL;
   23808     1047930 :   done:
   23809     1047930 :     p->level--;
   23810     1047930 :     return _res;
   23811             : }
   23812             : 
   23813             : // _tmp_6: 'import' | 'from'
   23814             : static void *
   23815     1280900 : _tmp_6_rule(Parser *p)
   23816             : {
   23817     1280900 :     if (p->level++ == MAXSTACK) {
   23818           0 :         p->error_indicator = 1;
   23819           0 :         PyErr_NoMemory();
   23820             :     }
   23821     1280900 :     if (p->error_indicator) {
   23822           0 :         p->level--;
   23823           0 :         return NULL;
   23824             :     }
   23825     1280900 :     void * _res = NULL;
   23826     1280900 :     int _mark = p->mark;
   23827             :     { // 'import'
   23828     1280900 :         if (p->error_indicator) {
   23829           0 :             p->level--;
   23830           0 :             return NULL;
   23831             :         }
   23832     1280900 :         D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
   23833             :         Token * _keyword;
   23834     1280900 :         if (
   23835     1280900 :             (_keyword = _PyPegen_expect_token(p, 531))  // token='import'
   23836             :         )
   23837             :         {
   23838       45189 :             D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
   23839       45189 :             _res = _keyword;
   23840       45189 :             goto done;
   23841             :         }
   23842     1235710 :         p->mark = _mark;
   23843     1235710 :         D(fprintf(stderr, "%*c%s _tmp_6[%d-%d]: %s failed!\n", p->level, ' ',
   23844             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
   23845             :     }
   23846             :     { // 'from'
   23847     1235710 :         if (p->error_indicator) {
   23848           0 :             p->level--;
   23849           0 :             return NULL;
   23850             :         }
   23851     1235710 :         D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
   23852             :         Token * _keyword;
   23853     1235710 :         if (
   23854     1235710 :             (_keyword = _PyPegen_expect_token(p, 572))  // token='from'
   23855             :         )
   23856             :         {
   23857       46171 :             D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
   23858       46171 :             _res = _keyword;
   23859       46171 :             goto done;
   23860             :         }
   23861     1189540 :         p->mark = _mark;
   23862     1189540 :         D(fprintf(stderr, "%*c%s _tmp_6[%d-%d]: %s failed!\n", p->level, ' ',
   23863             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
   23864             :     }
   23865     1189540 :     _res = NULL;
   23866     1280900 :   done:
   23867     1280900 :     p->level--;
   23868     1280900 :     return _res;
   23869             : }
   23870             : 
   23871             : // _tmp_7: 'def' | '@' | ASYNC
   23872             : static void *
   23873     4062440 : _tmp_7_rule(Parser *p)
   23874             : {
   23875     4062440 :     if (p->level++ == MAXSTACK) {
   23876           0 :         p->error_indicator = 1;
   23877           0 :         PyErr_NoMemory();
   23878             :     }
   23879     4062440 :     if (p->error_indicator) {
   23880           0 :         p->level--;
   23881           0 :         return NULL;
   23882             :     }
   23883     4062440 :     void * _res = NULL;
   23884     4062440 :     int _mark = p->mark;
   23885             :     { // 'def'
   23886     4062440 :         if (p->error_indicator) {
   23887           0 :             p->level--;
   23888           0 :             return NULL;
   23889             :         }
   23890     4062440 :         D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
   23891             :         Token * _keyword;
   23892     4062440 :         if (
   23893     4062440 :             (_keyword = _PyPegen_expect_token(p, 644))  // token='def'
   23894             :         )
   23895             :         {
   23896      308314 :             D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
   23897      308314 :             _res = _keyword;
   23898      308314 :             goto done;
   23899             :         }
   23900     3754130 :         p->mark = _mark;
   23901     3754130 :         D(fprintf(stderr, "%*c%s _tmp_7[%d-%d]: %s failed!\n", p->level, ' ',
   23902             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
   23903             :     }
   23904             :     { // '@'
   23905     3754130 :         if (p->error_indicator) {
   23906          78 :             p->level--;
   23907          78 :             return NULL;
   23908             :         }
   23909     3754050 :         D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
   23910             :         Token * _literal;
   23911     3754050 :         if (
   23912     3754050 :             (_literal = _PyPegen_expect_token(p, 49))  // token='@'
   23913             :         )
   23914             :         {
   23915       34525 :             D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
   23916       34525 :             _res = _literal;
   23917       34525 :             goto done;
   23918             :         }
   23919     3719520 :         p->mark = _mark;
   23920     3719520 :         D(fprintf(stderr, "%*c%s _tmp_7[%d-%d]: %s failed!\n", p->level, ' ',
   23921             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
   23922             :     }
   23923             :     { // ASYNC
   23924     3719520 :         if (p->error_indicator) {
   23925           0 :             p->level--;
   23926           0 :             return NULL;
   23927             :         }
   23928     3719520 :         D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
   23929             :         Token * async_var;
   23930     3719520 :         if (
   23931     3719520 :             (async_var = _PyPegen_expect_token(p, ASYNC))  // token='ASYNC'
   23932             :         )
   23933             :         {
   23934        3742 :             D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
   23935        3742 :             _res = async_var;
   23936        3742 :             goto done;
   23937             :         }
   23938     3715780 :         p->mark = _mark;
   23939     3715780 :         D(fprintf(stderr, "%*c%s _tmp_7[%d-%d]: %s failed!\n", p->level, ' ',
   23940             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
   23941             :     }
   23942     3715780 :     _res = NULL;
   23943     4062360 :   done:
   23944     4062360 :     p->level--;
   23945     4062360 :     return _res;
   23946             : }
   23947             : 
   23948             : // _tmp_8: 'class' | '@'
   23949             : static void *
   23950     3230730 : _tmp_8_rule(Parser *p)
   23951             : {
   23952     3230730 :     if (p->level++ == MAXSTACK) {
   23953           0 :         p->error_indicator = 1;
   23954           0 :         PyErr_NoMemory();
   23955             :     }
   23956     3230730 :     if (p->error_indicator) {
   23957           0 :         p->level--;
   23958           0 :         return NULL;
   23959             :     }
   23960     3230730 :     void * _res = NULL;
   23961     3230730 :     int _mark = p->mark;
   23962             :     { // 'class'
   23963     3230730 :         if (p->error_indicator) {
   23964           0 :             p->level--;
   23965           0 :             return NULL;
   23966             :         }
   23967     3230730 :         D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
   23968             :         Token * _keyword;
   23969     3230730 :         if (
   23970     3230730 :             (_keyword = _PyPegen_expect_token(p, 646))  // token='class'
   23971             :         )
   23972             :         {
   23973       53626 :             D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
   23974       53626 :             _res = _keyword;
   23975       53626 :             goto done;
   23976             :         }
   23977     3177110 :         p->mark = _mark;
   23978     3177110 :         D(fprintf(stderr, "%*c%s _tmp_8[%d-%d]: %s failed!\n", p->level, ' ',
   23979             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
   23980             :     }
   23981             :     { // '@'
   23982     3177110 :         if (p->error_indicator) {
   23983           0 :             p->level--;
   23984           0 :             return NULL;
   23985             :         }
   23986     3177110 :         D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
   23987             :         Token * _literal;
   23988     3177110 :         if (
   23989     3177110 :             (_literal = _PyPegen_expect_token(p, 49))  // token='@'
   23990             :         )
   23991             :         {
   23992        3185 :             D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
   23993        3185 :             _res = _literal;
   23994        3185 :             goto done;
   23995             :         }
   23996     3173920 :         p->mark = _mark;
   23997     3173920 :         D(fprintf(stderr, "%*c%s _tmp_8[%d-%d]: %s failed!\n", p->level, ' ',
   23998             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
   23999             :     }
   24000     3173920 :     _res = NULL;
   24001     3230730 :   done:
   24002     3230730 :     p->level--;
   24003     3230730 :     return _res;
   24004             : }
   24005             : 
   24006             : // _tmp_9: 'with' | ASYNC
   24007             : static void *
   24008     3173960 : _tmp_9_rule(Parser *p)
   24009             : {
   24010     3173960 :     if (p->level++ == MAXSTACK) {
   24011           0 :         p->error_indicator = 1;
   24012           0 :         PyErr_NoMemory();
   24013             :     }
   24014     3173960 :     if (p->error_indicator) {
   24015           0 :         p->level--;
   24016           0 :         return NULL;
   24017             :     }
   24018     3173960 :     void * _res = NULL;
   24019     3173960 :     int _mark = p->mark;
   24020             :     { // 'with'
   24021     3173960 :         if (p->error_indicator) {
   24022           0 :             p->level--;
   24023           0 :             return NULL;
   24024             :         }
   24025     3173960 :         D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
   24026             :         Token * _keyword;
   24027     3173960 :         if (
   24028     3173960 :             (_keyword = _PyPegen_expect_token(p, 612))  // token='with'
   24029             :         )
   24030             :         {
   24031       38639 :             D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
   24032       38639 :             _res = _keyword;
   24033       38639 :             goto done;
   24034             :         }
   24035     3135320 :         p->mark = _mark;
   24036     3135320 :         D(fprintf(stderr, "%*c%s _tmp_9[%d-%d]: %s failed!\n", p->level, ' ',
   24037             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
   24038             :     }
   24039             :     { // ASYNC
   24040     3135320 :         if (p->error_indicator) {
   24041           0 :             p->level--;
   24042           0 :             return NULL;
   24043             :         }
   24044     3135320 :         D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
   24045             :         Token * async_var;
   24046     3135320 :         if (
   24047     3135320 :             (async_var = _PyPegen_expect_token(p, ASYNC))  // token='ASYNC'
   24048             :         )
   24049             :         {
   24050         650 :             D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
   24051         650 :             _res = async_var;
   24052         650 :             goto done;
   24053             :         }
   24054     3134670 :         p->mark = _mark;
   24055     3134670 :         D(fprintf(stderr, "%*c%s _tmp_9[%d-%d]: %s failed!\n", p->level, ' ',
   24056             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
   24057             :     }
   24058     3134670 :     _res = NULL;
   24059     3173960 :   done:
   24060     3173960 :     p->level--;
   24061     3173960 :     return _res;
   24062             : }
   24063             : 
   24064             : // _tmp_10: 'for' | ASYNC
   24065             : static void *
   24066     3134970 : _tmp_10_rule(Parser *p)
   24067             : {
   24068     3134970 :     if (p->level++ == MAXSTACK) {
   24069           0 :         p->error_indicator = 1;
   24070           0 :         PyErr_NoMemory();
   24071             :     }
   24072     3134970 :     if (p->error_indicator) {
   24073           0 :         p->level--;
   24074           0 :         return NULL;
   24075             :     }
   24076     3134970 :     void * _res = NULL;
   24077     3134970 :     int _mark = p->mark;
   24078             :     { // 'for'
   24079     3134970 :         if (p->error_indicator) {
   24080           0 :             p->level--;
   24081           0 :             return NULL;
   24082             :         }
   24083     3134970 :         D(fprintf(stderr, "%*c> _tmp_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
   24084             :         Token * _keyword;
   24085     3134970 :         if (
   24086     3134970 :             (_keyword = _PyPegen_expect_token(p, 642))  // token='for'
   24087             :         )
   24088             :         {
   24089       61502 :             D(fprintf(stderr, "%*c+ _tmp_10[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
   24090       61502 :             _res = _keyword;
   24091       61502 :             goto done;
   24092             :         }
   24093     3073470 :         p->mark = _mark;
   24094     3073470 :         D(fprintf(stderr, "%*c%s _tmp_10[%d-%d]: %s failed!\n", p->level, ' ',
   24095             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
   24096             :     }
   24097             :     { // ASYNC
   24098     3073470 :         if (p->error_indicator) {
   24099           0 :             p->level--;
   24100           0 :             return NULL;
   24101             :         }
   24102     3073470 :         D(fprintf(stderr, "%*c> _tmp_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
   24103             :         Token * async_var;
   24104     3073470 :         if (
   24105     3073470 :             (async_var = _PyPegen_expect_token(p, ASYNC))  // token='ASYNC'
   24106             :         )
   24107             :         {
   24108         276 :             D(fprintf(stderr, "%*c+ _tmp_10[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
   24109         276 :             _res = async_var;
   24110         276 :             goto done;
   24111             :         }
   24112     3073200 :         p->mark = _mark;
   24113     3073200 :         D(fprintf(stderr, "%*c%s _tmp_10[%d-%d]: %s failed!\n", p->level, ' ',
   24114             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
   24115             :     }
   24116     3073200 :     _res = NULL;
   24117     3134970 :   done:
   24118     3134970 :     p->level--;
   24119     3134970 :     return _res;
   24120             : }
   24121             : 
   24122             : // _tmp_11: '=' annotated_rhs
   24123             : static void *
   24124        9486 : _tmp_11_rule(Parser *p)
   24125             : {
   24126        9486 :     if (p->level++ == MAXSTACK) {
   24127           0 :         p->error_indicator = 1;
   24128           0 :         PyErr_NoMemory();
   24129             :     }
   24130        9486 :     if (p->error_indicator) {
   24131           0 :         p->level--;
   24132           0 :         return NULL;
   24133             :     }
   24134        9486 :     void * _res = NULL;
   24135        9486 :     int _mark = p->mark;
   24136             :     { // '=' annotated_rhs
   24137        9486 :         if (p->error_indicator) {
   24138           0 :             p->level--;
   24139           0 :             return NULL;
   24140             :         }
   24141        9486 :         D(fprintf(stderr, "%*c> _tmp_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
   24142             :         Token * _literal;
   24143             :         expr_ty d;
   24144        9486 :         if (
   24145        9486 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   24146        6022 :             &&
   24147        6022 :             (d = annotated_rhs_rule(p))  // annotated_rhs
   24148             :         )
   24149             :         {
   24150        6022 :             D(fprintf(stderr, "%*c+ _tmp_11[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
   24151        6022 :             _res = d;
   24152        6022 :             if (_res == NULL && PyErr_Occurred()) {
   24153           0 :                 p->error_indicator = 1;
   24154           0 :                 p->level--;
   24155           0 :                 return NULL;
   24156             :             }
   24157        6022 :             goto done;
   24158             :         }
   24159        3464 :         p->mark = _mark;
   24160        3464 :         D(fprintf(stderr, "%*c%s _tmp_11[%d-%d]: %s failed!\n", p->level, ' ',
   24161             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
   24162             :     }
   24163        3464 :     _res = NULL;
   24164        9486 :   done:
   24165        9486 :     p->level--;
   24166        9486 :     return _res;
   24167             : }
   24168             : 
   24169             : // _tmp_12: '(' single_target ')' | single_subscript_attribute_target
   24170             : static void *
   24171     3220940 : _tmp_12_rule(Parser *p)
   24172             : {
   24173     3220940 :     if (p->level++ == MAXSTACK) {
   24174           0 :         p->error_indicator = 1;
   24175           0 :         PyErr_NoMemory();
   24176             :     }
   24177     3220940 :     if (p->error_indicator) {
   24178           0 :         p->level--;
   24179           0 :         return NULL;
   24180             :     }
   24181     3220940 :     void * _res = NULL;
   24182     3220940 :     int _mark = p->mark;
   24183             :     { // '(' single_target ')'
   24184     3220940 :         if (p->error_indicator) {
   24185           0 :             p->level--;
   24186           0 :             return NULL;
   24187             :         }
   24188     3220940 :         D(fprintf(stderr, "%*c> _tmp_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
   24189             :         Token * _literal;
   24190             :         Token * _literal_1;
   24191             :         expr_ty b;
   24192     3220940 :         if (
   24193     3220940 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   24194        2080 :             &&
   24195        2080 :             (b = single_target_rule(p))  // single_target
   24196        1895 :             &&
   24197        1895 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   24198             :         )
   24199             :         {
   24200          21 :             D(fprintf(stderr, "%*c+ _tmp_12[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
   24201          21 :             _res = b;
   24202          21 :             if (_res == NULL && PyErr_Occurred()) {
   24203           0 :                 p->error_indicator = 1;
   24204           0 :                 p->level--;
   24205           0 :                 return NULL;
   24206             :             }
   24207          21 :             goto done;
   24208             :         }
   24209     3220920 :         p->mark = _mark;
   24210     3220920 :         D(fprintf(stderr, "%*c%s _tmp_12[%d-%d]: %s failed!\n", p->level, ' ',
   24211             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
   24212             :     }
   24213             :     { // single_subscript_attribute_target
   24214     3220920 :         if (p->error_indicator) {
   24215           8 :             p->level--;
   24216           8 :             return NULL;
   24217             :         }
   24218     3220910 :         D(fprintf(stderr, "%*c> _tmp_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
   24219             :         expr_ty single_subscript_attribute_target_var;
   24220     3220910 :         if (
   24221     3220910 :             (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p))  // single_subscript_attribute_target
   24222             :         )
   24223             :         {
   24224      178901 :             D(fprintf(stderr, "%*c+ _tmp_12[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
   24225      178901 :             _res = single_subscript_attribute_target_var;
   24226      178901 :             goto done;
   24227             :         }
   24228     3042010 :         p->mark = _mark;
   24229     3042010 :         D(fprintf(stderr, "%*c%s _tmp_12[%d-%d]: %s failed!\n", p->level, ' ',
   24230             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
   24231             :     }
   24232     3042010 :     _res = NULL;
   24233     3220940 :   done:
   24234     3220940 :     p->level--;
   24235     3220940 :     return _res;
   24236             : }
   24237             : 
   24238             : // _tmp_13: '=' annotated_rhs
   24239             : static void *
   24240        1969 : _tmp_13_rule(Parser *p)
   24241             : {
   24242        1969 :     if (p->level++ == MAXSTACK) {
   24243           0 :         p->error_indicator = 1;
   24244           0 :         PyErr_NoMemory();
   24245             :     }
   24246        1969 :     if (p->error_indicator) {
   24247           0 :         p->level--;
   24248           0 :         return NULL;
   24249             :     }
   24250        1969 :     void * _res = NULL;
   24251        1969 :     int _mark = p->mark;
   24252             :     { // '=' annotated_rhs
   24253        1969 :         if (p->error_indicator) {
   24254           0 :             p->level--;
   24255           0 :             return NULL;
   24256             :         }
   24257        1969 :         D(fprintf(stderr, "%*c> _tmp_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
   24258             :         Token * _literal;
   24259             :         expr_ty d;
   24260        1969 :         if (
   24261        1969 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   24262        1586 :             &&
   24263        1586 :             (d = annotated_rhs_rule(p))  // annotated_rhs
   24264             :         )
   24265             :         {
   24266        1586 :             D(fprintf(stderr, "%*c+ _tmp_13[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
   24267        1586 :             _res = d;
   24268        1586 :             if (_res == NULL && PyErr_Occurred()) {
   24269           0 :                 p->error_indicator = 1;
   24270           0 :                 p->level--;
   24271           0 :                 return NULL;
   24272             :             }
   24273        1586 :             goto done;
   24274             :         }
   24275         383 :         p->mark = _mark;
   24276         383 :         D(fprintf(stderr, "%*c%s _tmp_13[%d-%d]: %s failed!\n", p->level, ' ',
   24277             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
   24278             :     }
   24279         383 :     _res = NULL;
   24280        1969 :   done:
   24281        1969 :     p->level--;
   24282        1969 :     return _res;
   24283             : }
   24284             : 
   24285             : // _loop1_14: (star_targets '=')
   24286             : static asdl_seq *
   24287     3218750 : _loop1_14_rule(Parser *p)
   24288             : {
   24289     3218750 :     if (p->level++ == MAXSTACK) {
   24290           0 :         p->error_indicator = 1;
   24291           0 :         PyErr_NoMemory();
   24292             :     }
   24293     3218750 :     if (p->error_indicator) {
   24294           0 :         p->level--;
   24295           0 :         return NULL;
   24296             :     }
   24297     3218750 :     void *_res = NULL;
   24298     3218750 :     int _mark = p->mark;
   24299     3218750 :     int _start_mark = p->mark;
   24300     3218750 :     void **_children = PyMem_Malloc(sizeof(void *));
   24301     3218750 :     if (!_children) {
   24302           0 :         p->error_indicator = 1;
   24303           0 :         PyErr_NoMemory();
   24304           0 :         p->level--;
   24305           0 :         return NULL;
   24306             :     }
   24307     3218750 :     Py_ssize_t _children_capacity = 1;
   24308     3218750 :     Py_ssize_t _n = 0;
   24309             :     { // (star_targets '=')
   24310     3218750 :         if (p->error_indicator) {
   24311           0 :             p->level--;
   24312           0 :             return NULL;
   24313             :         }
   24314     3218750 :         D(fprintf(stderr, "%*c> _loop1_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
   24315             :         void *_tmp_219_var;
   24316     7254580 :         while (
   24317     4035830 :             (_tmp_219_var = _tmp_219_rule(p))  // star_targets '='
   24318             :         )
   24319             :         {
   24320      817078 :             _res = _tmp_219_var;
   24321      817078 :             if (_n == _children_capacity) {
   24322        6462 :                 _children_capacity *= 2;
   24323        6462 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   24324        6462 :                 if (!_new_children) {
   24325           0 :                     p->error_indicator = 1;
   24326           0 :                     PyErr_NoMemory();
   24327           0 :                     p->level--;
   24328           0 :                     return NULL;
   24329             :                 }
   24330        6462 :                 _children = _new_children;
   24331             :             }
   24332      817078 :             _children[_n++] = _res;
   24333      817078 :             _mark = p->mark;
   24334             :         }
   24335     3218750 :         p->mark = _mark;
   24336     3218750 :         D(fprintf(stderr, "%*c%s _loop1_14[%d-%d]: %s failed!\n", p->level, ' ',
   24337             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
   24338             :     }
   24339     3218750 :     if (_n == 0 || p->error_indicator) {
   24340     2410820 :         PyMem_Free(_children);
   24341     2410820 :         p->level--;
   24342     2410820 :         return NULL;
   24343             :     }
   24344      807926 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   24345      807926 :     if (!_seq) {
   24346           0 :         PyMem_Free(_children);
   24347           0 :         p->error_indicator = 1;
   24348           0 :         PyErr_NoMemory();
   24349           0 :         p->level--;
   24350           0 :         return NULL;
   24351             :     }
   24352     1624970 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   24353      807926 :     PyMem_Free(_children);
   24354      807926 :     _PyPegen_insert_memo(p, _start_mark, _loop1_14_type, _seq);
   24355      807926 :     p->level--;
   24356      807926 :     return _seq;
   24357             : }
   24358             : 
   24359             : // _tmp_15: yield_expr | star_expressions
   24360             : static void *
   24361      807926 : _tmp_15_rule(Parser *p)
   24362             : {
   24363      807926 :     if (p->level++ == MAXSTACK) {
   24364           0 :         p->error_indicator = 1;
   24365           0 :         PyErr_NoMemory();
   24366             :     }
   24367      807926 :     if (p->error_indicator) {
   24368           0 :         p->level--;
   24369           0 :         return NULL;
   24370             :     }
   24371      807926 :     void * _res = NULL;
   24372      807926 :     int _mark = p->mark;
   24373             :     { // yield_expr
   24374      807926 :         if (p->error_indicator) {
   24375           0 :             p->level--;
   24376           0 :             return NULL;
   24377             :         }
   24378      807926 :         D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
   24379             :         expr_ty yield_expr_var;
   24380      807926 :         if (
   24381      807926 :             (yield_expr_var = yield_expr_rule(p))  // yield_expr
   24382             :         )
   24383             :         {
   24384         166 :             D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
   24385         166 :             _res = yield_expr_var;
   24386         166 :             goto done;
   24387             :         }
   24388      807760 :         p->mark = _mark;
   24389      807760 :         D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
   24390             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
   24391             :     }
   24392             :     { // star_expressions
   24393      807760 :         if (p->error_indicator) {
   24394           0 :             p->level--;
   24395           0 :             return NULL;
   24396             :         }
   24397      807760 :         D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
   24398             :         expr_ty star_expressions_var;
   24399      807760 :         if (
   24400      807760 :             (star_expressions_var = star_expressions_rule(p))  // star_expressions
   24401             :         )
   24402             :         {
   24403      807744 :             D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
   24404      807744 :             _res = star_expressions_var;
   24405      807744 :             goto done;
   24406             :         }
   24407          16 :         p->mark = _mark;
   24408          16 :         D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
   24409             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
   24410             :     }
   24411          16 :     _res = NULL;
   24412      807926 :   done:
   24413      807926 :     p->level--;
   24414      807926 :     return _res;
   24415             : }
   24416             : 
   24417             : // _tmp_16: yield_expr | star_expressions
   24418             : static void *
   24419       25695 : _tmp_16_rule(Parser *p)
   24420             : {
   24421       25695 :     if (p->level++ == MAXSTACK) {
   24422           0 :         p->error_indicator = 1;
   24423           0 :         PyErr_NoMemory();
   24424             :     }
   24425       25695 :     if (p->error_indicator) {
   24426           0 :         p->level--;
   24427           0 :         return NULL;
   24428             :     }
   24429       25695 :     void * _res = NULL;
   24430       25695 :     int _mark = p->mark;
   24431             :     { // yield_expr
   24432       25695 :         if (p->error_indicator) {
   24433           0 :             p->level--;
   24434           0 :             return NULL;
   24435             :         }
   24436       25695 :         D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
   24437             :         expr_ty yield_expr_var;
   24438       25695 :         if (
   24439       25695 :             (yield_expr_var = yield_expr_rule(p))  // yield_expr
   24440             :         )
   24441             :         {
   24442           2 :             D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
   24443           2 :             _res = yield_expr_var;
   24444           2 :             goto done;
   24445             :         }
   24446       25693 :         p->mark = _mark;
   24447       25693 :         D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
   24448             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
   24449             :     }
   24450             :     { // star_expressions
   24451       25693 :         if (p->error_indicator) {
   24452           0 :             p->level--;
   24453           0 :             return NULL;
   24454             :         }
   24455       25693 :         D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
   24456             :         expr_ty star_expressions_var;
   24457       25693 :         if (
   24458       25693 :             (star_expressions_var = star_expressions_rule(p))  // star_expressions
   24459             :         )
   24460             :         {
   24461       25693 :             D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
   24462       25693 :             _res = star_expressions_var;
   24463       25693 :             goto done;
   24464             :         }
   24465           0 :         p->mark = _mark;
   24466           0 :         D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
   24467             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
   24468             :     }
   24469           0 :     _res = NULL;
   24470       25695 :   done:
   24471       25695 :     p->level--;
   24472       25695 :     return _res;
   24473             : }
   24474             : 
   24475             : // _tmp_17: 'from' expression
   24476             : static void *
   24477       56670 : _tmp_17_rule(Parser *p)
   24478             : {
   24479       56670 :     if (p->level++ == MAXSTACK) {
   24480           0 :         p->error_indicator = 1;
   24481           0 :         PyErr_NoMemory();
   24482             :     }
   24483       56670 :     if (p->error_indicator) {
   24484           0 :         p->level--;
   24485           0 :         return NULL;
   24486             :     }
   24487       56670 :     void * _res = NULL;
   24488       56670 :     int _mark = p->mark;
   24489             :     { // 'from' expression
   24490       56670 :         if (p->error_indicator) {
   24491           0 :             p->level--;
   24492           0 :             return NULL;
   24493             :         }
   24494       56670 :         D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
   24495             :         Token * _keyword;
   24496             :         expr_ty z;
   24497       56670 :         if (
   24498       56670 :             (_keyword = _PyPegen_expect_token(p, 572))  // token='from'
   24499        2941 :             &&
   24500        2941 :             (z = expression_rule(p))  // expression
   24501             :         )
   24502             :         {
   24503        2941 :             D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' expression"));
   24504        2941 :             _res = z;
   24505        2941 :             if (_res == NULL && PyErr_Occurred()) {
   24506           0 :                 p->error_indicator = 1;
   24507           0 :                 p->level--;
   24508           0 :                 return NULL;
   24509             :             }
   24510        2941 :             goto done;
   24511             :         }
   24512       53729 :         p->mark = _mark;
   24513       53729 :         D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
   24514             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
   24515             :     }
   24516       53729 :     _res = NULL;
   24517       56670 :   done:
   24518       56670 :     p->level--;
   24519       56670 :     return _res;
   24520             : }
   24521             : 
   24522             : // _loop0_19: ',' NAME
   24523             : static asdl_seq *
   24524        1839 : _loop0_19_rule(Parser *p)
   24525             : {
   24526        1839 :     if (p->level++ == MAXSTACK) {
   24527           0 :         p->error_indicator = 1;
   24528           0 :         PyErr_NoMemory();
   24529             :     }
   24530        1839 :     if (p->error_indicator) {
   24531           0 :         p->level--;
   24532           0 :         return NULL;
   24533             :     }
   24534        1839 :     void *_res = NULL;
   24535        1839 :     int _mark = p->mark;
   24536        1839 :     int _start_mark = p->mark;
   24537        1839 :     void **_children = PyMem_Malloc(sizeof(void *));
   24538        1839 :     if (!_children) {
   24539           0 :         p->error_indicator = 1;
   24540           0 :         PyErr_NoMemory();
   24541           0 :         p->level--;
   24542           0 :         return NULL;
   24543             :     }
   24544        1839 :     Py_ssize_t _children_capacity = 1;
   24545        1839 :     Py_ssize_t _n = 0;
   24546             :     { // ',' NAME
   24547        1839 :         if (p->error_indicator) {
   24548           0 :             p->level--;
   24549           0 :             return NULL;
   24550             :         }
   24551        1839 :         D(fprintf(stderr, "%*c> _loop0_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
   24552             :         Token * _literal;
   24553             :         expr_ty elem;
   24554        4240 :         while (
   24555        2401 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   24556         562 :             &&
   24557         562 :             (elem = _PyPegen_name_token(p))  // NAME
   24558             :         )
   24559             :         {
   24560         562 :             _res = elem;
   24561         562 :             if (_res == NULL && PyErr_Occurred()) {
   24562           0 :                 p->error_indicator = 1;
   24563           0 :                 PyMem_Free(_children);
   24564           0 :                 p->level--;
   24565           0 :                 return NULL;
   24566             :             }
   24567         562 :             if (_n == _children_capacity) {
   24568         125 :                 _children_capacity *= 2;
   24569         125 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   24570         125 :                 if (!_new_children) {
   24571           0 :                     p->error_indicator = 1;
   24572           0 :                     PyErr_NoMemory();
   24573           0 :                     p->level--;
   24574           0 :                     return NULL;
   24575             :                 }
   24576         125 :                 _children = _new_children;
   24577             :             }
   24578         562 :             _children[_n++] = _res;
   24579         562 :             _mark = p->mark;
   24580             :         }
   24581        1839 :         p->mark = _mark;
   24582        1839 :         D(fprintf(stderr, "%*c%s _loop0_19[%d-%d]: %s failed!\n", p->level, ' ',
   24583             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
   24584             :     }
   24585        1839 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   24586        1839 :     if (!_seq) {
   24587           0 :         PyMem_Free(_children);
   24588           0 :         p->error_indicator = 1;
   24589           0 :         PyErr_NoMemory();
   24590           0 :         p->level--;
   24591           0 :         return NULL;
   24592             :     }
   24593        2401 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   24594        1839 :     PyMem_Free(_children);
   24595        1839 :     _PyPegen_insert_memo(p, _start_mark, _loop0_19_type, _seq);
   24596        1839 :     p->level--;
   24597        1839 :     return _seq;
   24598             : }
   24599             : 
   24600             : // _gather_18: NAME _loop0_19
   24601             : static asdl_seq *
   24602        1841 : _gather_18_rule(Parser *p)
   24603             : {
   24604        1841 :     if (p->level++ == MAXSTACK) {
   24605           0 :         p->error_indicator = 1;
   24606           0 :         PyErr_NoMemory();
   24607             :     }
   24608        1841 :     if (p->error_indicator) {
   24609           0 :         p->level--;
   24610           0 :         return NULL;
   24611             :     }
   24612        1841 :     asdl_seq * _res = NULL;
   24613        1841 :     int _mark = p->mark;
   24614             :     { // NAME _loop0_19
   24615        1841 :         if (p->error_indicator) {
   24616           0 :             p->level--;
   24617           0 :             return NULL;
   24618             :         }
   24619        1841 :         D(fprintf(stderr, "%*c> _gather_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_19"));
   24620             :         expr_ty elem;
   24621             :         asdl_seq * seq;
   24622        1841 :         if (
   24623        1841 :             (elem = _PyPegen_name_token(p))  // NAME
   24624        1839 :             &&
   24625        1839 :             (seq = _loop0_19_rule(p))  // _loop0_19
   24626             :         )
   24627             :         {
   24628        1839 :             D(fprintf(stderr, "%*c+ _gather_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_19"));
   24629        1839 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   24630        1839 :             goto done;
   24631             :         }
   24632           2 :         p->mark = _mark;
   24633           2 :         D(fprintf(stderr, "%*c%s _gather_18[%d-%d]: %s failed!\n", p->level, ' ',
   24634             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_19"));
   24635             :     }
   24636           2 :     _res = NULL;
   24637        1841 :   done:
   24638        1841 :     p->level--;
   24639        1841 :     return _res;
   24640             : }
   24641             : 
   24642             : // _loop0_21: ',' NAME
   24643             : static asdl_seq *
   24644         927 : _loop0_21_rule(Parser *p)
   24645             : {
   24646         927 :     if (p->level++ == MAXSTACK) {
   24647           0 :         p->error_indicator = 1;
   24648           0 :         PyErr_NoMemory();
   24649             :     }
   24650         927 :     if (p->error_indicator) {
   24651           0 :         p->level--;
   24652           0 :         return NULL;
   24653             :     }
   24654         927 :     void *_res = NULL;
   24655         927 :     int _mark = p->mark;
   24656         927 :     int _start_mark = p->mark;
   24657         927 :     void **_children = PyMem_Malloc(sizeof(void *));
   24658         927 :     if (!_children) {
   24659           0 :         p->error_indicator = 1;
   24660           0 :         PyErr_NoMemory();
   24661           0 :         p->level--;
   24662           0 :         return NULL;
   24663             :     }
   24664         927 :     Py_ssize_t _children_capacity = 1;
   24665         927 :     Py_ssize_t _n = 0;
   24666             :     { // ',' NAME
   24667         927 :         if (p->error_indicator) {
   24668           0 :             p->level--;
   24669           0 :             return NULL;
   24670             :         }
   24671         927 :         D(fprintf(stderr, "%*c> _loop0_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
   24672             :         Token * _literal;
   24673             :         expr_ty elem;
   24674        2035 :         while (
   24675        1108 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   24676         181 :             &&
   24677         181 :             (elem = _PyPegen_name_token(p))  // NAME
   24678             :         )
   24679             :         {
   24680         181 :             _res = elem;
   24681         181 :             if (_res == NULL && PyErr_Occurred()) {
   24682           0 :                 p->error_indicator = 1;
   24683           0 :                 PyMem_Free(_children);
   24684           0 :                 p->level--;
   24685           0 :                 return NULL;
   24686             :             }
   24687         181 :             if (_n == _children_capacity) {
   24688          74 :                 _children_capacity *= 2;
   24689          74 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   24690          74 :                 if (!_new_children) {
   24691           0 :                     p->error_indicator = 1;
   24692           0 :                     PyErr_NoMemory();
   24693           0 :                     p->level--;
   24694           0 :                     return NULL;
   24695             :                 }
   24696          74 :                 _children = _new_children;
   24697             :             }
   24698         181 :             _children[_n++] = _res;
   24699         181 :             _mark = p->mark;
   24700             :         }
   24701         927 :         p->mark = _mark;
   24702         927 :         D(fprintf(stderr, "%*c%s _loop0_21[%d-%d]: %s failed!\n", p->level, ' ',
   24703             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
   24704             :     }
   24705         927 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   24706         927 :     if (!_seq) {
   24707           0 :         PyMem_Free(_children);
   24708           0 :         p->error_indicator = 1;
   24709           0 :         PyErr_NoMemory();
   24710           0 :         p->level--;
   24711           0 :         return NULL;
   24712             :     }
   24713        1108 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   24714         927 :     PyMem_Free(_children);
   24715         927 :     _PyPegen_insert_memo(p, _start_mark, _loop0_21_type, _seq);
   24716         927 :     p->level--;
   24717         927 :     return _seq;
   24718             : }
   24719             : 
   24720             : // _gather_20: NAME _loop0_21
   24721             : static asdl_seq *
   24722         929 : _gather_20_rule(Parser *p)
   24723             : {
   24724         929 :     if (p->level++ == MAXSTACK) {
   24725           0 :         p->error_indicator = 1;
   24726           0 :         PyErr_NoMemory();
   24727             :     }
   24728         929 :     if (p->error_indicator) {
   24729           0 :         p->level--;
   24730           0 :         return NULL;
   24731             :     }
   24732         929 :     asdl_seq * _res = NULL;
   24733         929 :     int _mark = p->mark;
   24734             :     { // NAME _loop0_21
   24735         929 :         if (p->error_indicator) {
   24736           0 :             p->level--;
   24737           0 :             return NULL;
   24738             :         }
   24739         929 :         D(fprintf(stderr, "%*c> _gather_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_21"));
   24740             :         expr_ty elem;
   24741             :         asdl_seq * seq;
   24742         929 :         if (
   24743         929 :             (elem = _PyPegen_name_token(p))  // NAME
   24744         927 :             &&
   24745         927 :             (seq = _loop0_21_rule(p))  // _loop0_21
   24746             :         )
   24747             :         {
   24748         927 :             D(fprintf(stderr, "%*c+ _gather_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_21"));
   24749         927 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   24750         927 :             goto done;
   24751             :         }
   24752           2 :         p->mark = _mark;
   24753           2 :         D(fprintf(stderr, "%*c%s _gather_20[%d-%d]: %s failed!\n", p->level, ' ',
   24754             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_21"));
   24755             :     }
   24756           2 :     _res = NULL;
   24757         929 :   done:
   24758         929 :     p->level--;
   24759         929 :     return _res;
   24760             : }
   24761             : 
   24762             : // _tmp_22: ';' | NEWLINE
   24763             : static void *
   24764        8933 : _tmp_22_rule(Parser *p)
   24765             : {
   24766        8933 :     if (p->level++ == MAXSTACK) {
   24767           0 :         p->error_indicator = 1;
   24768           0 :         PyErr_NoMemory();
   24769             :     }
   24770        8933 :     if (p->error_indicator) {
   24771           0 :         p->level--;
   24772           0 :         return NULL;
   24773             :     }
   24774        8933 :     void * _res = NULL;
   24775        8933 :     int _mark = p->mark;
   24776             :     { // ';'
   24777        8933 :         if (p->error_indicator) {
   24778           0 :             p->level--;
   24779           0 :             return NULL;
   24780             :         }
   24781        8933 :         D(fprintf(stderr, "%*c> _tmp_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
   24782             :         Token * _literal;
   24783        8933 :         if (
   24784        8933 :             (_literal = _PyPegen_expect_token(p, 13))  // token=';'
   24785             :         )
   24786             :         {
   24787          37 :             D(fprintf(stderr, "%*c+ _tmp_22[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
   24788          37 :             _res = _literal;
   24789          37 :             goto done;
   24790             :         }
   24791        8896 :         p->mark = _mark;
   24792        8896 :         D(fprintf(stderr, "%*c%s _tmp_22[%d-%d]: %s failed!\n", p->level, ' ',
   24793             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
   24794             :     }
   24795             :     { // NEWLINE
   24796        8896 :         if (p->error_indicator) {
   24797           0 :             p->level--;
   24798           0 :             return NULL;
   24799             :         }
   24800        8896 :         D(fprintf(stderr, "%*c> _tmp_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
   24801             :         Token * newline_var;
   24802        8896 :         if (
   24803        8896 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   24804             :         )
   24805             :         {
   24806        8862 :             D(fprintf(stderr, "%*c+ _tmp_22[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
   24807        8862 :             _res = newline_var;
   24808        8862 :             goto done;
   24809             :         }
   24810          34 :         p->mark = _mark;
   24811          34 :         D(fprintf(stderr, "%*c%s _tmp_22[%d-%d]: %s failed!\n", p->level, ' ',
   24812             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
   24813             :     }
   24814          34 :     _res = NULL;
   24815        8933 :   done:
   24816        8933 :     p->level--;
   24817        8933 :     return _res;
   24818             : }
   24819             : 
   24820             : // _tmp_23: ',' expression
   24821             : static void *
   24822        9780 : _tmp_23_rule(Parser *p)
   24823             : {
   24824        9780 :     if (p->level++ == MAXSTACK) {
   24825           0 :         p->error_indicator = 1;
   24826           0 :         PyErr_NoMemory();
   24827             :     }
   24828        9780 :     if (p->error_indicator) {
   24829           0 :         p->level--;
   24830           0 :         return NULL;
   24831             :     }
   24832        9780 :     void * _res = NULL;
   24833        9780 :     int _mark = p->mark;
   24834             :     { // ',' expression
   24835        9780 :         if (p->error_indicator) {
   24836           0 :             p->level--;
   24837           0 :             return NULL;
   24838             :         }
   24839        9780 :         D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
   24840             :         Token * _literal;
   24841             :         expr_ty z;
   24842        9780 :         if (
   24843        9780 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   24844        2174 :             &&
   24845        2174 :             (z = expression_rule(p))  // expression
   24846             :         )
   24847             :         {
   24848        2174 :             D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
   24849        2174 :             _res = z;
   24850        2174 :             if (_res == NULL && PyErr_Occurred()) {
   24851           0 :                 p->error_indicator = 1;
   24852           0 :                 p->level--;
   24853           0 :                 return NULL;
   24854             :             }
   24855        2174 :             goto done;
   24856             :         }
   24857        7606 :         p->mark = _mark;
   24858        7606 :         D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
   24859             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
   24860             :     }
   24861        7606 :     _res = NULL;
   24862        9780 :   done:
   24863        9780 :     p->level--;
   24864        9780 :     return _res;
   24865             : }
   24866             : 
   24867             : // _loop0_24: ('.' | '...')
   24868             : static asdl_seq *
   24869       46171 : _loop0_24_rule(Parser *p)
   24870             : {
   24871       46171 :     if (p->level++ == MAXSTACK) {
   24872           0 :         p->error_indicator = 1;
   24873           0 :         PyErr_NoMemory();
   24874             :     }
   24875       46171 :     if (p->error_indicator) {
   24876           0 :         p->level--;
   24877           0 :         return NULL;
   24878             :     }
   24879       46171 :     void *_res = NULL;
   24880       46171 :     int _mark = p->mark;
   24881       46171 :     int _start_mark = p->mark;
   24882       46171 :     void **_children = PyMem_Malloc(sizeof(void *));
   24883       46171 :     if (!_children) {
   24884           0 :         p->error_indicator = 1;
   24885           0 :         PyErr_NoMemory();
   24886           0 :         p->level--;
   24887           0 :         return NULL;
   24888             :     }
   24889       46171 :     Py_ssize_t _children_capacity = 1;
   24890       46171 :     Py_ssize_t _n = 0;
   24891             :     { // ('.' | '...')
   24892       46171 :         if (p->error_indicator) {
   24893           0 :             p->level--;
   24894           0 :             return NULL;
   24895             :         }
   24896       46171 :         D(fprintf(stderr, "%*c> _loop0_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
   24897             :         void *_tmp_220_var;
   24898      104144 :         while (
   24899       57973 :             (_tmp_220_var = _tmp_220_rule(p))  // '.' | '...'
   24900             :         )
   24901             :         {
   24902       11802 :             _res = _tmp_220_var;
   24903       11802 :             if (_n == _children_capacity) {
   24904         652 :                 _children_capacity *= 2;
   24905         652 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   24906         652 :                 if (!_new_children) {
   24907           0 :                     p->error_indicator = 1;
   24908           0 :                     PyErr_NoMemory();
   24909           0 :                     p->level--;
   24910           0 :                     return NULL;
   24911             :                 }
   24912         652 :                 _children = _new_children;
   24913             :             }
   24914       11802 :             _children[_n++] = _res;
   24915       11802 :             _mark = p->mark;
   24916             :         }
   24917       46171 :         p->mark = _mark;
   24918       46171 :         D(fprintf(stderr, "%*c%s _loop0_24[%d-%d]: %s failed!\n", p->level, ' ',
   24919             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
   24920             :     }
   24921       46171 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   24922       46171 :     if (!_seq) {
   24923           0 :         PyMem_Free(_children);
   24924           0 :         p->error_indicator = 1;
   24925           0 :         PyErr_NoMemory();
   24926           0 :         p->level--;
   24927           0 :         return NULL;
   24928             :     }
   24929       57973 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   24930       46171 :     PyMem_Free(_children);
   24931       46171 :     _PyPegen_insert_memo(p, _start_mark, _loop0_24_type, _seq);
   24932       46171 :     p->level--;
   24933       46171 :     return _seq;
   24934             : }
   24935             : 
   24936             : // _loop1_25: ('.' | '...')
   24937             : static asdl_seq *
   24938        1274 : _loop1_25_rule(Parser *p)
   24939             : {
   24940        1274 :     if (p->level++ == MAXSTACK) {
   24941           0 :         p->error_indicator = 1;
   24942           0 :         PyErr_NoMemory();
   24943             :     }
   24944        1274 :     if (p->error_indicator) {
   24945           0 :         p->level--;
   24946           0 :         return NULL;
   24947             :     }
   24948        1274 :     void *_res = NULL;
   24949        1274 :     int _mark = p->mark;
   24950        1274 :     int _start_mark = p->mark;
   24951        1274 :     void **_children = PyMem_Malloc(sizeof(void *));
   24952        1274 :     if (!_children) {
   24953           0 :         p->error_indicator = 1;
   24954           0 :         PyErr_NoMemory();
   24955           0 :         p->level--;
   24956           0 :         return NULL;
   24957             :     }
   24958        1274 :     Py_ssize_t _children_capacity = 1;
   24959        1274 :     Py_ssize_t _n = 0;
   24960             :     { // ('.' | '...')
   24961        1274 :         if (p->error_indicator) {
   24962           0 :             p->level--;
   24963           0 :             return NULL;
   24964             :         }
   24965        1274 :         D(fprintf(stderr, "%*c> _loop1_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
   24966             :         void *_tmp_221_var;
   24967        3918 :         while (
   24968        2644 :             (_tmp_221_var = _tmp_221_rule(p))  // '.' | '...'
   24969             :         )
   24970             :         {
   24971        1370 :             _res = _tmp_221_var;
   24972        1370 :             if (_n == _children_capacity) {
   24973         115 :                 _children_capacity *= 2;
   24974         115 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   24975         115 :                 if (!_new_children) {
   24976           0 :                     p->error_indicator = 1;
   24977           0 :                     PyErr_NoMemory();
   24978           0 :                     p->level--;
   24979           0 :                     return NULL;
   24980             :                 }
   24981         115 :                 _children = _new_children;
   24982             :             }
   24983        1370 :             _children[_n++] = _res;
   24984        1370 :             _mark = p->mark;
   24985             :         }
   24986        1274 :         p->mark = _mark;
   24987        1274 :         D(fprintf(stderr, "%*c%s _loop1_25[%d-%d]: %s failed!\n", p->level, ' ',
   24988             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
   24989             :     }
   24990        1274 :     if (_n == 0 || p->error_indicator) {
   24991          19 :         PyMem_Free(_children);
   24992          19 :         p->level--;
   24993          19 :         return NULL;
   24994             :     }
   24995        1255 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   24996        1255 :     if (!_seq) {
   24997           0 :         PyMem_Free(_children);
   24998           0 :         p->error_indicator = 1;
   24999           0 :         PyErr_NoMemory();
   25000           0 :         p->level--;
   25001           0 :         return NULL;
   25002             :     }
   25003        2625 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25004        1255 :     PyMem_Free(_children);
   25005        1255 :     _PyPegen_insert_memo(p, _start_mark, _loop1_25_type, _seq);
   25006        1255 :     p->level--;
   25007        1255 :     return _seq;
   25008             : }
   25009             : 
   25010             : // _loop0_27: ',' import_from_as_name
   25011             : static asdl_seq *
   25012       45029 : _loop0_27_rule(Parser *p)
   25013             : {
   25014       45029 :     if (p->level++ == MAXSTACK) {
   25015           0 :         p->error_indicator = 1;
   25016           0 :         PyErr_NoMemory();
   25017             :     }
   25018       45029 :     if (p->error_indicator) {
   25019           0 :         p->level--;
   25020           0 :         return NULL;
   25021             :     }
   25022       45029 :     void *_res = NULL;
   25023       45029 :     int _mark = p->mark;
   25024       45029 :     int _start_mark = p->mark;
   25025       45029 :     void **_children = PyMem_Malloc(sizeof(void *));
   25026       45029 :     if (!_children) {
   25027           0 :         p->error_indicator = 1;
   25028           0 :         PyErr_NoMemory();
   25029           0 :         p->level--;
   25030           0 :         return NULL;
   25031             :     }
   25032       45029 :     Py_ssize_t _children_capacity = 1;
   25033       45029 :     Py_ssize_t _n = 0;
   25034             :     { // ',' import_from_as_name
   25035       45029 :         if (p->error_indicator) {
   25036           0 :             p->level--;
   25037           0 :             return NULL;
   25038             :         }
   25039       45029 :         D(fprintf(stderr, "%*c> _loop0_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' import_from_as_name"));
   25040             :         Token * _literal;
   25041             :         alias_ty elem;
   25042      122533 :         while (
   25043       77504 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   25044       33855 :             &&
   25045       33855 :             (elem = import_from_as_name_rule(p))  // import_from_as_name
   25046             :         )
   25047             :         {
   25048       32475 :             _res = elem;
   25049       32475 :             if (_res == NULL && PyErr_Occurred()) {
   25050           0 :                 p->error_indicator = 1;
   25051           0 :                 PyMem_Free(_children);
   25052           0 :                 p->level--;
   25053           0 :                 return NULL;
   25054             :             }
   25055       32475 :             if (_n == _children_capacity) {
   25056       12733 :                 _children_capacity *= 2;
   25057       12733 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   25058       12733 :                 if (!_new_children) {
   25059           0 :                     p->error_indicator = 1;
   25060           0 :                     PyErr_NoMemory();
   25061           0 :                     p->level--;
   25062           0 :                     return NULL;
   25063             :                 }
   25064       12733 :                 _children = _new_children;
   25065             :             }
   25066       32475 :             _children[_n++] = _res;
   25067       32475 :             _mark = p->mark;
   25068             :         }
   25069       45029 :         p->mark = _mark;
   25070       45029 :         D(fprintf(stderr, "%*c%s _loop0_27[%d-%d]: %s failed!\n", p->level, ' ',
   25071             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
   25072             :     }
   25073       45029 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25074       45029 :     if (!_seq) {
   25075           0 :         PyMem_Free(_children);
   25076           0 :         p->error_indicator = 1;
   25077           0 :         PyErr_NoMemory();
   25078           0 :         p->level--;
   25079           0 :         return NULL;
   25080             :     }
   25081       77504 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25082       45029 :     PyMem_Free(_children);
   25083       45029 :     _PyPegen_insert_memo(p, _start_mark, _loop0_27_type, _seq);
   25084       45029 :     p->level--;
   25085       45029 :     return _seq;
   25086             : }
   25087             : 
   25088             : // _gather_26: import_from_as_name _loop0_27
   25089             : static asdl_seq *
   25090       46181 : _gather_26_rule(Parser *p)
   25091             : {
   25092       46181 :     if (p->level++ == MAXSTACK) {
   25093           0 :         p->error_indicator = 1;
   25094           0 :         PyErr_NoMemory();
   25095             :     }
   25096       46181 :     if (p->error_indicator) {
   25097           0 :         p->level--;
   25098           0 :         return NULL;
   25099             :     }
   25100       46181 :     asdl_seq * _res = NULL;
   25101       46181 :     int _mark = p->mark;
   25102             :     { // import_from_as_name _loop0_27
   25103       46181 :         if (p->error_indicator) {
   25104           0 :             p->level--;
   25105           0 :             return NULL;
   25106             :         }
   25107       46181 :         D(fprintf(stderr, "%*c> _gather_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_27"));
   25108             :         alias_ty elem;
   25109             :         asdl_seq * seq;
   25110       46181 :         if (
   25111       46181 :             (elem = import_from_as_name_rule(p))  // import_from_as_name
   25112       45029 :             &&
   25113       45029 :             (seq = _loop0_27_rule(p))  // _loop0_27
   25114             :         )
   25115             :         {
   25116       45029 :             D(fprintf(stderr, "%*c+ _gather_26[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_27"));
   25117       45029 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   25118       45029 :             goto done;
   25119             :         }
   25120        1152 :         p->mark = _mark;
   25121        1152 :         D(fprintf(stderr, "%*c%s _gather_26[%d-%d]: %s failed!\n", p->level, ' ',
   25122             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_27"));
   25123             :     }
   25124        1152 :     _res = NULL;
   25125       46181 :   done:
   25126       46181 :     p->level--;
   25127       46181 :     return _res;
   25128             : }
   25129             : 
   25130             : // _tmp_28: 'as' NAME
   25131             : static void *
   25132       77512 : _tmp_28_rule(Parser *p)
   25133             : {
   25134       77512 :     if (p->level++ == MAXSTACK) {
   25135           0 :         p->error_indicator = 1;
   25136           0 :         PyErr_NoMemory();
   25137             :     }
   25138       77512 :     if (p->error_indicator) {
   25139           0 :         p->level--;
   25140           0 :         return NULL;
   25141             :     }
   25142       77512 :     void * _res = NULL;
   25143       77512 :     int _mark = p->mark;
   25144             :     { // 'as' NAME
   25145       77512 :         if (p->error_indicator) {
   25146           0 :             p->level--;
   25147           0 :             return NULL;
   25148             :         }
   25149       77512 :         D(fprintf(stderr, "%*c> _tmp_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   25150             :         Token * _keyword;
   25151             :         expr_ty z;
   25152       77512 :         if (
   25153       77512 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   25154        3098 :             &&
   25155        3098 :             (z = _PyPegen_name_token(p))  // NAME
   25156             :         )
   25157             :         {
   25158        3094 :             D(fprintf(stderr, "%*c+ _tmp_28[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   25159        3094 :             _res = z;
   25160        3094 :             if (_res == NULL && PyErr_Occurred()) {
   25161           0 :                 p->error_indicator = 1;
   25162           0 :                 p->level--;
   25163           0 :                 return NULL;
   25164             :             }
   25165        3094 :             goto done;
   25166             :         }
   25167       74418 :         p->mark = _mark;
   25168       74418 :         D(fprintf(stderr, "%*c%s _tmp_28[%d-%d]: %s failed!\n", p->level, ' ',
   25169             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
   25170             :     }
   25171       74418 :     _res = NULL;
   25172       77512 :   done:
   25173       77512 :     p->level--;
   25174       77512 :     return _res;
   25175             : }
   25176             : 
   25177             : // _loop0_30: ',' dotted_as_name
   25178             : static asdl_seq *
   25179       45171 : _loop0_30_rule(Parser *p)
   25180             : {
   25181       45171 :     if (p->level++ == MAXSTACK) {
   25182           0 :         p->error_indicator = 1;
   25183           0 :         PyErr_NoMemory();
   25184             :     }
   25185       45171 :     if (p->error_indicator) {
   25186           0 :         p->level--;
   25187           0 :         return NULL;
   25188             :     }
   25189       45171 :     void *_res = NULL;
   25190       45171 :     int _mark = p->mark;
   25191       45171 :     int _start_mark = p->mark;
   25192       45171 :     void **_children = PyMem_Malloc(sizeof(void *));
   25193       45171 :     if (!_children) {
   25194           0 :         p->error_indicator = 1;
   25195           0 :         PyErr_NoMemory();
   25196           0 :         p->level--;
   25197           0 :         return NULL;
   25198             :     }
   25199       45171 :     Py_ssize_t _children_capacity = 1;
   25200       45171 :     Py_ssize_t _n = 0;
   25201             :     { // ',' dotted_as_name
   25202       45171 :         if (p->error_indicator) {
   25203           0 :             p->level--;
   25204           0 :             return NULL;
   25205             :         }
   25206       45171 :         D(fprintf(stderr, "%*c> _loop0_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_as_name"));
   25207             :         Token * _literal;
   25208             :         alias_ty elem;
   25209       91589 :         while (
   25210       46418 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   25211        1247 :             &&
   25212        1247 :             (elem = dotted_as_name_rule(p))  // dotted_as_name
   25213             :         )
   25214             :         {
   25215        1247 :             _res = elem;
   25216        1247 :             if (_res == NULL && PyErr_Occurred()) {
   25217           0 :                 p->error_indicator = 1;
   25218           0 :                 PyMem_Free(_children);
   25219           0 :                 p->level--;
   25220           0 :                 return NULL;
   25221             :             }
   25222        1247 :             if (_n == _children_capacity) {
   25223         279 :                 _children_capacity *= 2;
   25224         279 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   25225         279 :                 if (!_new_children) {
   25226           0 :                     p->error_indicator = 1;
   25227           0 :                     PyErr_NoMemory();
   25228           0 :                     p->level--;
   25229           0 :                     return NULL;
   25230             :                 }
   25231         279 :                 _children = _new_children;
   25232             :             }
   25233        1247 :             _children[_n++] = _res;
   25234        1247 :             _mark = p->mark;
   25235             :         }
   25236       45171 :         p->mark = _mark;
   25237       45171 :         D(fprintf(stderr, "%*c%s _loop0_30[%d-%d]: %s failed!\n", p->level, ' ',
   25238             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
   25239             :     }
   25240       45171 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25241       45171 :     if (!_seq) {
   25242           0 :         PyMem_Free(_children);
   25243           0 :         p->error_indicator = 1;
   25244           0 :         PyErr_NoMemory();
   25245           0 :         p->level--;
   25246           0 :         return NULL;
   25247             :     }
   25248       46418 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25249       45171 :     PyMem_Free(_children);
   25250       45171 :     _PyPegen_insert_memo(p, _start_mark, _loop0_30_type, _seq);
   25251       45171 :     p->level--;
   25252       45171 :     return _seq;
   25253             : }
   25254             : 
   25255             : // _gather_29: dotted_as_name _loop0_30
   25256             : static asdl_seq *
   25257       45189 : _gather_29_rule(Parser *p)
   25258             : {
   25259       45189 :     if (p->level++ == MAXSTACK) {
   25260           0 :         p->error_indicator = 1;
   25261           0 :         PyErr_NoMemory();
   25262             :     }
   25263       45189 :     if (p->error_indicator) {
   25264           0 :         p->level--;
   25265           0 :         return NULL;
   25266             :     }
   25267       45189 :     asdl_seq * _res = NULL;
   25268       45189 :     int _mark = p->mark;
   25269             :     { // dotted_as_name _loop0_30
   25270       45189 :         if (p->error_indicator) {
   25271           0 :             p->level--;
   25272           0 :             return NULL;
   25273             :         }
   25274       45189 :         D(fprintf(stderr, "%*c> _gather_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_30"));
   25275             :         alias_ty elem;
   25276             :         asdl_seq * seq;
   25277       45189 :         if (
   25278       45189 :             (elem = dotted_as_name_rule(p))  // dotted_as_name
   25279       45171 :             &&
   25280       45171 :             (seq = _loop0_30_rule(p))  // _loop0_30
   25281             :         )
   25282             :         {
   25283       45171 :             D(fprintf(stderr, "%*c+ _gather_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_30"));
   25284       45171 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   25285       45171 :             goto done;
   25286             :         }
   25287          18 :         p->mark = _mark;
   25288          18 :         D(fprintf(stderr, "%*c%s _gather_29[%d-%d]: %s failed!\n", p->level, ' ',
   25289             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_30"));
   25290             :     }
   25291          18 :     _res = NULL;
   25292       45189 :   done:
   25293       45189 :     p->level--;
   25294       45189 :     return _res;
   25295             : }
   25296             : 
   25297             : // _tmp_31: 'as' NAME
   25298             : static void *
   25299       46418 : _tmp_31_rule(Parser *p)
   25300             : {
   25301       46418 :     if (p->level++ == MAXSTACK) {
   25302           0 :         p->error_indicator = 1;
   25303           0 :         PyErr_NoMemory();
   25304             :     }
   25305       46418 :     if (p->error_indicator) {
   25306           0 :         p->level--;
   25307           0 :         return NULL;
   25308             :     }
   25309       46418 :     void * _res = NULL;
   25310       46418 :     int _mark = p->mark;
   25311             :     { // 'as' NAME
   25312       46418 :         if (p->error_indicator) {
   25313           0 :             p->level--;
   25314           0 :             return NULL;
   25315             :         }
   25316       46418 :         D(fprintf(stderr, "%*c> _tmp_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   25317             :         Token * _keyword;
   25318             :         expr_ty z;
   25319       46418 :         if (
   25320       46418 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   25321        1547 :             &&
   25322        1547 :             (z = _PyPegen_name_token(p))  // NAME
   25323             :         )
   25324             :         {
   25325        1541 :             D(fprintf(stderr, "%*c+ _tmp_31[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   25326        1541 :             _res = z;
   25327        1541 :             if (_res == NULL && PyErr_Occurred()) {
   25328           0 :                 p->error_indicator = 1;
   25329           0 :                 p->level--;
   25330           0 :                 return NULL;
   25331             :             }
   25332        1541 :             goto done;
   25333             :         }
   25334       44877 :         p->mark = _mark;
   25335       44877 :         D(fprintf(stderr, "%*c%s _tmp_31[%d-%d]: %s failed!\n", p->level, ' ',
   25336             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
   25337             :     }
   25338       44877 :     _res = NULL;
   25339       46418 :   done:
   25340       46418 :     p->level--;
   25341       46418 :     return _res;
   25342             : }
   25343             : 
   25344             : // _loop1_32: ('@' named_expression NEWLINE)
   25345             : static asdl_seq *
   25346      403392 : _loop1_32_rule(Parser *p)
   25347             : {
   25348      403392 :     if (p->level++ == MAXSTACK) {
   25349           0 :         p->error_indicator = 1;
   25350           0 :         PyErr_NoMemory();
   25351             :     }
   25352      403392 :     if (p->error_indicator) {
   25353           0 :         p->level--;
   25354           0 :         return NULL;
   25355             :     }
   25356      403392 :     void *_res = NULL;
   25357      403392 :     int _mark = p->mark;
   25358      403392 :     int _start_mark = p->mark;
   25359      403392 :     void **_children = PyMem_Malloc(sizeof(void *));
   25360      403392 :     if (!_children) {
   25361           0 :         p->error_indicator = 1;
   25362           0 :         PyErr_NoMemory();
   25363           0 :         p->level--;
   25364           0 :         return NULL;
   25365             :     }
   25366      403392 :     Py_ssize_t _children_capacity = 1;
   25367      403392 :     Py_ssize_t _n = 0;
   25368             :     { // ('@' named_expression NEWLINE)
   25369      403392 :         if (p->error_indicator) {
   25370           0 :             p->level--;
   25371           0 :             return NULL;
   25372             :         }
   25373      403392 :         D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
   25374             :         void *_tmp_222_var;
   25375      847228 :         while (
   25376      443836 :             (_tmp_222_var = _tmp_222_rule(p))  // '@' named_expression NEWLINE
   25377             :         )
   25378             :         {
   25379       40444 :             _res = _tmp_222_var;
   25380       40444 :             if (_n == _children_capacity) {
   25381        2689 :                 _children_capacity *= 2;
   25382        2689 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   25383        2689 :                 if (!_new_children) {
   25384           0 :                     p->error_indicator = 1;
   25385           0 :                     PyErr_NoMemory();
   25386           0 :                     p->level--;
   25387           0 :                     return NULL;
   25388             :                 }
   25389        2689 :                 _children = _new_children;
   25390             :             }
   25391       40444 :             _children[_n++] = _res;
   25392       40444 :             _mark = p->mark;
   25393             :         }
   25394      403392 :         p->mark = _mark;
   25395      403392 :         D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
   25396             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
   25397             :     }
   25398      403392 :     if (_n == 0 || p->error_indicator) {
   25399      365711 :         PyMem_Free(_children);
   25400      365711 :         p->level--;
   25401      365711 :         return NULL;
   25402             :     }
   25403       37681 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25404       37681 :     if (!_seq) {
   25405           0 :         PyMem_Free(_children);
   25406           0 :         p->error_indicator = 1;
   25407           0 :         PyErr_NoMemory();
   25408           0 :         p->level--;
   25409           0 :         return NULL;
   25410             :     }
   25411       78125 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25412       37681 :     PyMem_Free(_children);
   25413       37681 :     _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
   25414       37681 :     p->level--;
   25415       37681 :     return _seq;
   25416             : }
   25417             : 
   25418             : // _tmp_33: '(' arguments? ')'
   25419             : static void *
   25420       56790 : _tmp_33_rule(Parser *p)
   25421             : {
   25422       56790 :     if (p->level++ == MAXSTACK) {
   25423           0 :         p->error_indicator = 1;
   25424           0 :         PyErr_NoMemory();
   25425             :     }
   25426       56790 :     if (p->error_indicator) {
   25427           0 :         p->level--;
   25428           0 :         return NULL;
   25429             :     }
   25430       56790 :     void * _res = NULL;
   25431       56790 :     int _mark = p->mark;
   25432             :     { // '(' arguments? ')'
   25433       56790 :         if (p->error_indicator) {
   25434           0 :             p->level--;
   25435           0 :             return NULL;
   25436             :         }
   25437       56790 :         D(fprintf(stderr, "%*c> _tmp_33[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
   25438             :         Token * _literal;
   25439             :         Token * _literal_1;
   25440             :         void *z;
   25441       56790 :         if (
   25442       56790 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   25443       42997 :             &&
   25444       42997 :             (z = arguments_rule(p), !p->error_indicator)  // arguments?
   25445       42991 :             &&
   25446       42991 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   25447             :         )
   25448             :         {
   25449       42989 :             D(fprintf(stderr, "%*c+ _tmp_33[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
   25450       42989 :             _res = z;
   25451       42989 :             if (_res == NULL && PyErr_Occurred()) {
   25452           0 :                 p->error_indicator = 1;
   25453           0 :                 p->level--;
   25454           0 :                 return NULL;
   25455             :             }
   25456       42989 :             goto done;
   25457             :         }
   25458       13801 :         p->mark = _mark;
   25459       13801 :         D(fprintf(stderr, "%*c%s _tmp_33[%d-%d]: %s failed!\n", p->level, ' ',
   25460             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
   25461             :     }
   25462       13801 :     _res = NULL;
   25463       56790 :   done:
   25464       56790 :     p->level--;
   25465       56790 :     return _res;
   25466             : }
   25467             : 
   25468             : // _tmp_34: '->' expression
   25469             : static void *
   25470      339010 : _tmp_34_rule(Parser *p)
   25471             : {
   25472      339010 :     if (p->level++ == MAXSTACK) {
   25473           0 :         p->error_indicator = 1;
   25474           0 :         PyErr_NoMemory();
   25475             :     }
   25476      339010 :     if (p->error_indicator) {
   25477           0 :         p->level--;
   25478           0 :         return NULL;
   25479             :     }
   25480      339010 :     void * _res = NULL;
   25481      339010 :     int _mark = p->mark;
   25482             :     { // '->' expression
   25483      339010 :         if (p->error_indicator) {
   25484           0 :             p->level--;
   25485           0 :             return NULL;
   25486             :         }
   25487      339010 :         D(fprintf(stderr, "%*c> _tmp_34[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
   25488             :         Token * _literal;
   25489             :         expr_ty z;
   25490      339010 :         if (
   25491      339010 :             (_literal = _PyPegen_expect_token(p, 51))  // token='->'
   25492       32969 :             &&
   25493       32969 :             (z = expression_rule(p))  // expression
   25494             :         )
   25495             :         {
   25496       32969 :             D(fprintf(stderr, "%*c+ _tmp_34[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
   25497       32969 :             _res = z;
   25498       32969 :             if (_res == NULL && PyErr_Occurred()) {
   25499           0 :                 p->error_indicator = 1;
   25500           0 :                 p->level--;
   25501           0 :                 return NULL;
   25502             :             }
   25503       32969 :             goto done;
   25504             :         }
   25505      306041 :         p->mark = _mark;
   25506      306041 :         D(fprintf(stderr, "%*c%s _tmp_34[%d-%d]: %s failed!\n", p->level, ' ',
   25507             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
   25508             :     }
   25509      306041 :     _res = NULL;
   25510      339010 :   done:
   25511      339010 :     p->level--;
   25512      339010 :     return _res;
   25513             : }
   25514             : 
   25515             : // _tmp_35: '->' expression
   25516             : static void *
   25517        3498 : _tmp_35_rule(Parser *p)
   25518             : {
   25519        3498 :     if (p->level++ == MAXSTACK) {
   25520           0 :         p->error_indicator = 1;
   25521           0 :         PyErr_NoMemory();
   25522             :     }
   25523        3498 :     if (p->error_indicator) {
   25524           0 :         p->level--;
   25525           0 :         return NULL;
   25526             :     }
   25527        3498 :     void * _res = NULL;
   25528        3498 :     int _mark = p->mark;
   25529             :     { // '->' expression
   25530        3498 :         if (p->error_indicator) {
   25531           0 :             p->level--;
   25532           0 :             return NULL;
   25533             :         }
   25534        3498 :         D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
   25535             :         Token * _literal;
   25536             :         expr_ty z;
   25537        3498 :         if (
   25538        3498 :             (_literal = _PyPegen_expect_token(p, 51))  // token='->'
   25539         416 :             &&
   25540         416 :             (z = expression_rule(p))  // expression
   25541             :         )
   25542             :         {
   25543         416 :             D(fprintf(stderr, "%*c+ _tmp_35[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
   25544         416 :             _res = z;
   25545         416 :             if (_res == NULL && PyErr_Occurred()) {
   25546           0 :                 p->error_indicator = 1;
   25547           0 :                 p->level--;
   25548           0 :                 return NULL;
   25549             :             }
   25550         416 :             goto done;
   25551             :         }
   25552        3082 :         p->mark = _mark;
   25553        3082 :         D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
   25554             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
   25555             :     }
   25556        3082 :     _res = NULL;
   25557        3498 :   done:
   25558        3498 :     p->level--;
   25559        3498 :     return _res;
   25560             : }
   25561             : 
   25562             : // _loop0_36: param_no_default
   25563             : static asdl_seq *
   25564       17415 : _loop0_36_rule(Parser *p)
   25565             : {
   25566       17415 :     if (p->level++ == MAXSTACK) {
   25567           0 :         p->error_indicator = 1;
   25568           0 :         PyErr_NoMemory();
   25569             :     }
   25570       17415 :     if (p->error_indicator) {
   25571           0 :         p->level--;
   25572           0 :         return NULL;
   25573             :     }
   25574       17415 :     void *_res = NULL;
   25575       17415 :     int _mark = p->mark;
   25576       17415 :     int _start_mark = p->mark;
   25577       17415 :     void **_children = PyMem_Malloc(sizeof(void *));
   25578       17415 :     if (!_children) {
   25579           0 :         p->error_indicator = 1;
   25580           0 :         PyErr_NoMemory();
   25581           0 :         p->level--;
   25582           0 :         return NULL;
   25583             :     }
   25584       17415 :     Py_ssize_t _children_capacity = 1;
   25585       17415 :     Py_ssize_t _n = 0;
   25586             :     { // param_no_default
   25587       17415 :         if (p->error_indicator) {
   25588           0 :             p->level--;
   25589           0 :             return NULL;
   25590             :         }
   25591       17415 :         D(fprintf(stderr, "%*c> _loop0_36[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
   25592             :         arg_ty param_no_default_var;
   25593       35030 :         while (
   25594       17615 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   25595             :         )
   25596             :         {
   25597         200 :             _res = param_no_default_var;
   25598         200 :             if (_n == _children_capacity) {
   25599          71 :                 _children_capacity *= 2;
   25600          71 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   25601          71 :                 if (!_new_children) {
   25602           0 :                     p->error_indicator = 1;
   25603           0 :                     PyErr_NoMemory();
   25604           0 :                     p->level--;
   25605           0 :                     return NULL;
   25606             :                 }
   25607          71 :                 _children = _new_children;
   25608             :             }
   25609         200 :             _children[_n++] = _res;
   25610         200 :             _mark = p->mark;
   25611             :         }
   25612       17415 :         p->mark = _mark;
   25613       17415 :         D(fprintf(stderr, "%*c%s _loop0_36[%d-%d]: %s failed!\n", p->level, ' ',
   25614             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
   25615             :     }
   25616       17415 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25617       17415 :     if (!_seq) {
   25618           0 :         PyMem_Free(_children);
   25619           0 :         p->error_indicator = 1;
   25620           0 :         PyErr_NoMemory();
   25621           0 :         p->level--;
   25622           0 :         return NULL;
   25623             :     }
   25624       17615 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25625       17415 :     PyMem_Free(_children);
   25626       17415 :     _PyPegen_insert_memo(p, _start_mark, _loop0_36_type, _seq);
   25627       17415 :     p->level--;
   25628       17415 :     return _seq;
   25629             : }
   25630             : 
   25631             : // _loop0_37: param_with_default
   25632             : static asdl_seq *
   25633       17415 : _loop0_37_rule(Parser *p)
   25634             : {
   25635       17415 :     if (p->level++ == MAXSTACK) {
   25636           0 :         p->error_indicator = 1;
   25637           0 :         PyErr_NoMemory();
   25638             :     }
   25639       17415 :     if (p->error_indicator) {
   25640           0 :         p->level--;
   25641           0 :         return NULL;
   25642             :     }
   25643       17415 :     void *_res = NULL;
   25644       17415 :     int _mark = p->mark;
   25645       17415 :     int _start_mark = p->mark;
   25646       17415 :     void **_children = PyMem_Malloc(sizeof(void *));
   25647       17415 :     if (!_children) {
   25648           0 :         p->error_indicator = 1;
   25649           0 :         PyErr_NoMemory();
   25650           0 :         p->level--;
   25651           0 :         return NULL;
   25652             :     }
   25653       17415 :     Py_ssize_t _children_capacity = 1;
   25654       17415 :     Py_ssize_t _n = 0;
   25655             :     { // param_with_default
   25656       17415 :         if (p->error_indicator) {
   25657           0 :             p->level--;
   25658           0 :             return NULL;
   25659             :         }
   25660       17415 :         D(fprintf(stderr, "%*c> _loop0_37[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
   25661             :         NameDefaultPair* param_with_default_var;
   25662       35029 :         while (
   25663       17614 :             (param_with_default_var = param_with_default_rule(p))  // param_with_default
   25664             :         )
   25665             :         {
   25666         199 :             _res = param_with_default_var;
   25667         199 :             if (_n == _children_capacity) {
   25668          97 :                 _children_capacity *= 2;
   25669          97 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   25670          97 :                 if (!_new_children) {
   25671           0 :                     p->error_indicator = 1;
   25672           0 :                     PyErr_NoMemory();
   25673           0 :                     p->level--;
   25674           0 :                     return NULL;
   25675             :                 }
   25676          97 :                 _children = _new_children;
   25677             :             }
   25678         199 :             _children[_n++] = _res;
   25679         199 :             _mark = p->mark;
   25680             :         }
   25681       17415 :         p->mark = _mark;
   25682       17415 :         D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
   25683             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
   25684             :     }
   25685       17415 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25686       17415 :     if (!_seq) {
   25687           0 :         PyMem_Free(_children);
   25688           0 :         p->error_indicator = 1;
   25689           0 :         PyErr_NoMemory();
   25690           0 :         p->level--;
   25691           0 :         return NULL;
   25692             :     }
   25693       17614 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25694       17415 :     PyMem_Free(_children);
   25695       17415 :     _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
   25696       17415 :     p->level--;
   25697       17415 :     return _seq;
   25698             : }
   25699             : 
   25700             : // _loop0_38: param_with_default
   25701             : static asdl_seq *
   25702         375 : _loop0_38_rule(Parser *p)
   25703             : {
   25704         375 :     if (p->level++ == MAXSTACK) {
   25705           0 :         p->error_indicator = 1;
   25706           0 :         PyErr_NoMemory();
   25707             :     }
   25708         375 :     if (p->error_indicator) {
   25709           0 :         p->level--;
   25710           0 :         return NULL;
   25711             :     }
   25712         375 :     void *_res = NULL;
   25713         375 :     int _mark = p->mark;
   25714         375 :     int _start_mark = p->mark;
   25715         375 :     void **_children = PyMem_Malloc(sizeof(void *));
   25716         375 :     if (!_children) {
   25717           0 :         p->error_indicator = 1;
   25718           0 :         PyErr_NoMemory();
   25719           0 :         p->level--;
   25720           0 :         return NULL;
   25721             :     }
   25722         375 :     Py_ssize_t _children_capacity = 1;
   25723         375 :     Py_ssize_t _n = 0;
   25724             :     { // param_with_default
   25725         375 :         if (p->error_indicator) {
   25726           0 :             p->level--;
   25727           0 :             return NULL;
   25728             :         }
   25729         375 :         D(fprintf(stderr, "%*c> _loop0_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
   25730             :         NameDefaultPair* param_with_default_var;
   25731         858 :         while (
   25732         483 :             (param_with_default_var = param_with_default_rule(p))  // param_with_default
   25733             :         )
   25734             :         {
   25735         108 :             _res = param_with_default_var;
   25736         108 :             if (_n == _children_capacity) {
   25737          32 :                 _children_capacity *= 2;
   25738          32 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   25739          32 :                 if (!_new_children) {
   25740           0 :                     p->error_indicator = 1;
   25741           0 :                     PyErr_NoMemory();
   25742           0 :                     p->level--;
   25743           0 :                     return NULL;
   25744             :                 }
   25745          32 :                 _children = _new_children;
   25746             :             }
   25747         108 :             _children[_n++] = _res;
   25748         108 :             _mark = p->mark;
   25749             :         }
   25750         375 :         p->mark = _mark;
   25751         375 :         D(fprintf(stderr, "%*c%s _loop0_38[%d-%d]: %s failed!\n", p->level, ' ',
   25752             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
   25753             :     }
   25754         375 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25755         375 :     if (!_seq) {
   25756           0 :         PyMem_Free(_children);
   25757           0 :         p->error_indicator = 1;
   25758           0 :         PyErr_NoMemory();
   25759           0 :         p->level--;
   25760           0 :         return NULL;
   25761             :     }
   25762         483 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25763         375 :     PyMem_Free(_children);
   25764         375 :     _PyPegen_insert_memo(p, _start_mark, _loop0_38_type, _seq);
   25765         375 :     p->level--;
   25766         375 :     return _seq;
   25767             : }
   25768             : 
   25769             : // _loop1_39: param_no_default
   25770             : static asdl_seq *
   25771      325028 : _loop1_39_rule(Parser *p)
   25772             : {
   25773      325028 :     if (p->level++ == MAXSTACK) {
   25774           0 :         p->error_indicator = 1;
   25775           0 :         PyErr_NoMemory();
   25776             :     }
   25777      325028 :     if (p->error_indicator) {
   25778           0 :         p->level--;
   25779           0 :         return NULL;
   25780             :     }
   25781      325028 :     void *_res = NULL;
   25782      325028 :     int _mark = p->mark;
   25783      325028 :     int _start_mark = p->mark;
   25784      325028 :     void **_children = PyMem_Malloc(sizeof(void *));
   25785      325028 :     if (!_children) {
   25786           0 :         p->error_indicator = 1;
   25787           0 :         PyErr_NoMemory();
   25788           0 :         p->level--;
   25789           0 :         return NULL;
   25790             :     }
   25791      325028 :     Py_ssize_t _children_capacity = 1;
   25792      325028 :     Py_ssize_t _n = 0;
   25793             :     { // param_no_default
   25794      325028 :         if (p->error_indicator) {
   25795           0 :             p->level--;
   25796           0 :             return NULL;
   25797             :         }
   25798      325028 :         D(fprintf(stderr, "%*c> _loop1_39[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
   25799             :         arg_ty param_no_default_var;
   25800     1117140 :         while (
   25801      792107 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   25802             :         )
   25803             :         {
   25804      467079 :             _res = param_no_default_var;
   25805      467079 :             if (_n == _children_capacity) {
   25806      149325 :                 _children_capacity *= 2;
   25807      149325 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   25808      149325 :                 if (!_new_children) {
   25809           0 :                     p->error_indicator = 1;
   25810           0 :                     PyErr_NoMemory();
   25811           0 :                     p->level--;
   25812           0 :                     return NULL;
   25813             :                 }
   25814      149325 :                 _children = _new_children;
   25815             :             }
   25816      467079 :             _children[_n++] = _res;
   25817      467079 :             _mark = p->mark;
   25818             :         }
   25819      325028 :         p->mark = _mark;
   25820      325028 :         D(fprintf(stderr, "%*c%s _loop1_39[%d-%d]: %s failed!\n", p->level, ' ',
   25821             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
   25822             :     }
   25823      325028 :     if (_n == 0 || p->error_indicator) {
   25824       24739 :         PyMem_Free(_children);
   25825       24739 :         p->level--;
   25826       24739 :         return NULL;
   25827             :     }
   25828      300289 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25829      300289 :     if (!_seq) {
   25830           0 :         PyMem_Free(_children);
   25831           0 :         p->error_indicator = 1;
   25832           0 :         PyErr_NoMemory();
   25833           0 :         p->level--;
   25834           0 :         return NULL;
   25835             :     }
   25836      767368 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25837      300289 :     PyMem_Free(_children);
   25838      300289 :     _PyPegen_insert_memo(p, _start_mark, _loop1_39_type, _seq);
   25839      300289 :     p->level--;
   25840      300289 :     return _seq;
   25841             : }
   25842             : 
   25843             : // _loop0_40: param_with_default
   25844             : static asdl_seq *
   25845      300289 : _loop0_40_rule(Parser *p)
   25846             : {
   25847      300289 :     if (p->level++ == MAXSTACK) {
   25848           0 :         p->error_indicator = 1;
   25849           0 :         PyErr_NoMemory();
   25850             :     }
   25851      300289 :     if (p->error_indicator) {
   25852           0 :         p->level--;
   25853           0 :         return NULL;
   25854             :     }
   25855      300289 :     void *_res = NULL;
   25856      300289 :     int _mark = p->mark;
   25857      300289 :     int _start_mark = p->mark;
   25858      300289 :     void **_children = PyMem_Malloc(sizeof(void *));
   25859      300289 :     if (!_children) {
   25860           0 :         p->error_indicator = 1;
   25861           0 :         PyErr_NoMemory();
   25862           0 :         p->level--;
   25863           0 :         return NULL;
   25864             :     }
   25865      300289 :     Py_ssize_t _children_capacity = 1;
   25866      300289 :     Py_ssize_t _n = 0;
   25867             :     { // param_with_default
   25868      300289 :         if (p->error_indicator) {
   25869           0 :             p->level--;
   25870           0 :             return NULL;
   25871             :         }
   25872      300289 :         D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
   25873             :         NameDefaultPair* param_with_default_var;
   25874      667515 :         while (
   25875      367226 :             (param_with_default_var = param_with_default_rule(p))  // param_with_default
   25876             :         )
   25877             :         {
   25878       66937 :             _res = param_with_default_var;
   25879       66937 :             if (_n == _children_capacity) {
   25880       22594 :                 _children_capacity *= 2;
   25881       22594 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   25882       22594 :                 if (!_new_children) {
   25883           0 :                     p->error_indicator = 1;
   25884           0 :                     PyErr_NoMemory();
   25885           0 :                     p->level--;
   25886           0 :                     return NULL;
   25887             :                 }
   25888       22594 :                 _children = _new_children;
   25889             :             }
   25890       66937 :             _children[_n++] = _res;
   25891       66937 :             _mark = p->mark;
   25892             :         }
   25893      300289 :         p->mark = _mark;
   25894      300289 :         D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
   25895             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
   25896             :     }
   25897      300289 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25898      300289 :     if (!_seq) {
   25899           0 :         PyMem_Free(_children);
   25900           0 :         p->error_indicator = 1;
   25901           0 :         PyErr_NoMemory();
   25902           0 :         p->level--;
   25903           0 :         return NULL;
   25904             :     }
   25905      367226 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25906      300289 :     PyMem_Free(_children);
   25907      300289 :     _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
   25908      300289 :     p->level--;
   25909      300289 :     return _seq;
   25910             : }
   25911             : 
   25912             : // _loop1_41: param_with_default
   25913             : static asdl_seq *
   25914       24739 : _loop1_41_rule(Parser *p)
   25915             : {
   25916       24739 :     if (p->level++ == MAXSTACK) {
   25917           0 :         p->error_indicator = 1;
   25918           0 :         PyErr_NoMemory();
   25919             :     }
   25920       24739 :     if (p->error_indicator) {
   25921           0 :         p->level--;
   25922           0 :         return NULL;
   25923             :     }
   25924       24739 :     void *_res = NULL;
   25925       24739 :     int _mark = p->mark;
   25926       24739 :     int _start_mark = p->mark;
   25927       24739 :     void **_children = PyMem_Malloc(sizeof(void *));
   25928       24739 :     if (!_children) {
   25929           0 :         p->error_indicator = 1;
   25930           0 :         PyErr_NoMemory();
   25931           0 :         p->level--;
   25932           0 :         return NULL;
   25933             :     }
   25934       24739 :     Py_ssize_t _children_capacity = 1;
   25935       24739 :     Py_ssize_t _n = 0;
   25936             :     { // param_with_default
   25937       24739 :         if (p->error_indicator) {
   25938           0 :             p->level--;
   25939           0 :             return NULL;
   25940             :         }
   25941       24739 :         D(fprintf(stderr, "%*c> _loop1_41[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
   25942             :         NameDefaultPair* param_with_default_var;
   25943       56221 :         while (
   25944       31482 :             (param_with_default_var = param_with_default_rule(p))  // param_with_default
   25945             :         )
   25946             :         {
   25947        6743 :             _res = param_with_default_var;
   25948        6743 :             if (_n == _children_capacity) {
   25949        2758 :                 _children_capacity *= 2;
   25950        2758 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   25951        2758 :                 if (!_new_children) {
   25952           0 :                     p->error_indicator = 1;
   25953           0 :                     PyErr_NoMemory();
   25954           0 :                     p->level--;
   25955           0 :                     return NULL;
   25956             :                 }
   25957        2758 :                 _children = _new_children;
   25958             :             }
   25959        6743 :             _children[_n++] = _res;
   25960        6743 :             _mark = p->mark;
   25961             :         }
   25962       24739 :         p->mark = _mark;
   25963       24739 :         D(fprintf(stderr, "%*c%s _loop1_41[%d-%d]: %s failed!\n", p->level, ' ',
   25964             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
   25965             :     }
   25966       24739 :     if (_n == 0 || p->error_indicator) {
   25967       21632 :         PyMem_Free(_children);
   25968       21632 :         p->level--;
   25969       21632 :         return NULL;
   25970             :     }
   25971        3107 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25972        3107 :     if (!_seq) {
   25973           0 :         PyMem_Free(_children);
   25974           0 :         p->error_indicator = 1;
   25975           0 :         PyErr_NoMemory();
   25976           0 :         p->level--;
   25977           0 :         return NULL;
   25978             :     }
   25979        9850 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25980        3107 :     PyMem_Free(_children);
   25981        3107 :     _PyPegen_insert_memo(p, _start_mark, _loop1_41_type, _seq);
   25982        3107 :     p->level--;
   25983        3107 :     return _seq;
   25984             : }
   25985             : 
   25986             : // _loop1_42: param_no_default
   25987             : static asdl_seq *
   25988      343371 : _loop1_42_rule(Parser *p)
   25989             : {
   25990      343371 :     if (p->level++ == MAXSTACK) {
   25991           0 :         p->error_indicator = 1;
   25992           0 :         PyErr_NoMemory();
   25993             :     }
   25994      343371 :     if (p->error_indicator) {
   25995           0 :         p->level--;
   25996           0 :         return NULL;
   25997             :     }
   25998      343371 :     void *_res = NULL;
   25999      343371 :     int _mark = p->mark;
   26000      343371 :     int _start_mark = p->mark;
   26001      343371 :     void **_children = PyMem_Malloc(sizeof(void *));
   26002      343371 :     if (!_children) {
   26003           0 :         p->error_indicator = 1;
   26004           0 :         PyErr_NoMemory();
   26005           0 :         p->level--;
   26006           0 :         return NULL;
   26007             :     }
   26008      343371 :     Py_ssize_t _children_capacity = 1;
   26009      343371 :     Py_ssize_t _n = 0;
   26010             :     { // param_no_default
   26011      343371 :         if (p->error_indicator) {
   26012           0 :             p->level--;
   26013           0 :             return NULL;
   26014             :         }
   26015      343371 :         D(fprintf(stderr, "%*c> _loop1_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
   26016             :         arg_ty param_no_default_var;
   26017     1172850 :         while (
   26018      829479 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   26019             :         )
   26020             :         {
   26021      486108 :             _res = param_no_default_var;
   26022      486108 :             if (_n == _children_capacity) {
   26023      149922 :                 _children_capacity *= 2;
   26024      149922 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26025      149922 :                 if (!_new_children) {
   26026           0 :                     p->error_indicator = 1;
   26027           0 :                     PyErr_NoMemory();
   26028           0 :                     p->level--;
   26029           0 :                     return NULL;
   26030             :                 }
   26031      149922 :                 _children = _new_children;
   26032             :             }
   26033      486108 :             _children[_n++] = _res;
   26034      486108 :             _mark = p->mark;
   26035             :         }
   26036      343371 :         p->mark = _mark;
   26037      343371 :         D(fprintf(stderr, "%*c%s _loop1_42[%d-%d]: %s failed!\n", p->level, ' ',
   26038             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
   26039             :     }
   26040      343371 :     if (_n == 0 || p->error_indicator) {
   26041       25291 :         PyMem_Free(_children);
   26042       25291 :         p->level--;
   26043       25291 :         return NULL;
   26044             :     }
   26045      318080 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26046      318080 :     if (!_seq) {
   26047           0 :         PyMem_Free(_children);
   26048           0 :         p->error_indicator = 1;
   26049           0 :         PyErr_NoMemory();
   26050           0 :         p->level--;
   26051           0 :         return NULL;
   26052             :     }
   26053      804184 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26054      318080 :     PyMem_Free(_children);
   26055      318080 :     _PyPegen_insert_memo(p, _start_mark, _loop1_42_type, _seq);
   26056      318080 :     p->level--;
   26057      318080 :     return _seq;
   26058             : }
   26059             : 
   26060             : // _loop1_43: param_no_default
   26061             : static asdl_seq *
   26062      326158 : _loop1_43_rule(Parser *p)
   26063             : {
   26064      326158 :     if (p->level++ == MAXSTACK) {
   26065           0 :         p->error_indicator = 1;
   26066           0 :         PyErr_NoMemory();
   26067             :     }
   26068      326158 :     if (p->error_indicator) {
   26069           0 :         p->level--;
   26070           0 :         return NULL;
   26071             :     }
   26072      326158 :     void *_res = NULL;
   26073      326158 :     int _mark = p->mark;
   26074      326158 :     int _start_mark = p->mark;
   26075      326158 :     void **_children = PyMem_Malloc(sizeof(void *));
   26076      326158 :     if (!_children) {
   26077           0 :         p->error_indicator = 1;
   26078           0 :         PyErr_NoMemory();
   26079           0 :         p->level--;
   26080           0 :         return NULL;
   26081             :     }
   26082      326158 :     Py_ssize_t _children_capacity = 1;
   26083      326158 :     Py_ssize_t _n = 0;
   26084             :     { // param_no_default
   26085      326158 :         if (p->error_indicator) {
   26086           0 :             p->level--;
   26087           0 :             return NULL;
   26088             :         }
   26089      326158 :         D(fprintf(stderr, "%*c> _loop1_43[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
   26090             :         arg_ty param_no_default_var;
   26091     1120760 :         while (
   26092      794599 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   26093             :         )
   26094             :         {
   26095      468441 :             _res = param_no_default_var;
   26096      468441 :             if (_n == _children_capacity) {
   26097      149499 :                 _children_capacity *= 2;
   26098      149499 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26099      149499 :                 if (!_new_children) {
   26100           0 :                     p->error_indicator = 1;
   26101           0 :                     PyErr_NoMemory();
   26102           0 :                     p->level--;
   26103           0 :                     return NULL;
   26104             :                 }
   26105      149499 :                 _children = _new_children;
   26106             :             }
   26107      468441 :             _children[_n++] = _res;
   26108      468441 :             _mark = p->mark;
   26109             :         }
   26110      326158 :         p->mark = _mark;
   26111      326158 :         D(fprintf(stderr, "%*c%s _loop1_43[%d-%d]: %s failed!\n", p->level, ' ',
   26112             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
   26113             :     }
   26114      326158 :     if (_n == 0 || p->error_indicator) {
   26115       25278 :         PyMem_Free(_children);
   26116       25278 :         p->level--;
   26117       25278 :         return NULL;
   26118             :     }
   26119      300880 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26120      300880 :     if (!_seq) {
   26121           0 :         PyMem_Free(_children);
   26122           0 :         p->error_indicator = 1;
   26123           0 :         PyErr_NoMemory();
   26124           0 :         p->level--;
   26125           0 :         return NULL;
   26126             :     }
   26127      769321 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26128      300880 :     PyMem_Free(_children);
   26129      300880 :     _PyPegen_insert_memo(p, _start_mark, _loop1_43_type, _seq);
   26130      300880 :     p->level--;
   26131      300880 :     return _seq;
   26132             : }
   26133             : 
   26134             : // _loop0_44: param_no_default
   26135             : static asdl_seq *
   26136      326225 : _loop0_44_rule(Parser *p)
   26137             : {
   26138      326225 :     if (p->level++ == MAXSTACK) {
   26139           0 :         p->error_indicator = 1;
   26140           0 :         PyErr_NoMemory();
   26141             :     }
   26142      326225 :     if (p->error_indicator) {
   26143           0 :         p->level--;
   26144           0 :         return NULL;
   26145             :     }
   26146      326225 :     void *_res = NULL;
   26147      326225 :     int _mark = p->mark;
   26148      326225 :     int _start_mark = p->mark;
   26149      326225 :     void **_children = PyMem_Malloc(sizeof(void *));
   26150      326225 :     if (!_children) {
   26151           0 :         p->error_indicator = 1;
   26152           0 :         PyErr_NoMemory();
   26153           0 :         p->level--;
   26154           0 :         return NULL;
   26155             :     }
   26156      326225 :     Py_ssize_t _children_capacity = 1;
   26157      326225 :     Py_ssize_t _n = 0;
   26158             :     { // param_no_default
   26159      326225 :         if (p->error_indicator) {
   26160           0 :             p->level--;
   26161           0 :             return NULL;
   26162             :         }
   26163      326225 :         D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
   26164             :         arg_ty param_no_default_var;
   26165     1119920 :         while (
   26166      793691 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   26167             :         )
   26168             :         {
   26169      467466 :             _res = param_no_default_var;
   26170      467466 :             if (_n == _children_capacity) {
   26171      149347 :                 _children_capacity *= 2;
   26172      149347 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26173      149347 :                 if (!_new_children) {
   26174           0 :                     p->error_indicator = 1;
   26175           0 :                     PyErr_NoMemory();
   26176           0 :                     p->level--;
   26177           0 :                     return NULL;
   26178             :                 }
   26179      149347 :                 _children = _new_children;
   26180             :             }
   26181      467466 :             _children[_n++] = _res;
   26182      467466 :             _mark = p->mark;
   26183             :         }
   26184      326225 :         p->mark = _mark;
   26185      326225 :         D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
   26186             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
   26187             :     }
   26188      326225 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26189      326225 :     if (!_seq) {
   26190           0 :         PyMem_Free(_children);
   26191           0 :         p->error_indicator = 1;
   26192           0 :         PyErr_NoMemory();
   26193           0 :         p->level--;
   26194           0 :         return NULL;
   26195             :     }
   26196      793691 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26197      326225 :     PyMem_Free(_children);
   26198      326225 :     _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
   26199      326225 :     p->level--;
   26200      326225 :     return _seq;
   26201             : }
   26202             : 
   26203             : // _loop1_45: param_with_default
   26204             : static asdl_seq *
   26205      326225 : _loop1_45_rule(Parser *p)
   26206             : {
   26207      326225 :     if (p->level++ == MAXSTACK) {
   26208           0 :         p->error_indicator = 1;
   26209           0 :         PyErr_NoMemory();
   26210             :     }
   26211      326225 :     if (p->error_indicator) {
   26212           0 :         p->level--;
   26213           0 :         return NULL;
   26214             :     }
   26215      326225 :     void *_res = NULL;
   26216      326225 :     int _mark = p->mark;
   26217      326225 :     int _start_mark = p->mark;
   26218      326225 :     void **_children = PyMem_Malloc(sizeof(void *));
   26219      326225 :     if (!_children) {
   26220           0 :         p->error_indicator = 1;
   26221           0 :         PyErr_NoMemory();
   26222           0 :         p->level--;
   26223           0 :         return NULL;
   26224             :     }
   26225      326225 :     Py_ssize_t _children_capacity = 1;
   26226      326225 :     Py_ssize_t _n = 0;
   26227             :     { // param_with_default
   26228      326225 :         if (p->error_indicator) {
   26229           0 :             p->level--;
   26230           0 :             return NULL;
   26231             :         }
   26232      326225 :         D(fprintf(stderr, "%*c> _loop1_45[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
   26233             :         NameDefaultPair* param_with_default_var;
   26234      726538 :         while (
   26235      400313 :             (param_with_default_var = param_with_default_rule(p))  // param_with_default
   26236             :         )
   26237             :         {
   26238       74088 :             _res = param_with_default_var;
   26239       74088 :             if (_n == _children_capacity) {
   26240       25363 :                 _children_capacity *= 2;
   26241       25363 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26242       25363 :                 if (!_new_children) {
   26243           0 :                     p->error_indicator = 1;
   26244           0 :                     PyErr_NoMemory();
   26245           0 :                     p->level--;
   26246           0 :                     return NULL;
   26247             :                 }
   26248       25363 :                 _children = _new_children;
   26249             :             }
   26250       74088 :             _children[_n++] = _res;
   26251       74088 :             _mark = p->mark;
   26252             :         }
   26253      326225 :         p->mark = _mark;
   26254      326225 :         D(fprintf(stderr, "%*c%s _loop1_45[%d-%d]: %s failed!\n", p->level, ' ',
   26255             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
   26256             :     }
   26257      326225 :     if (_n == 0 || p->error_indicator) {
   26258      286087 :         PyMem_Free(_children);
   26259      286087 :         p->level--;
   26260      286087 :         return NULL;
   26261             :     }
   26262       40138 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26263       40138 :     if (!_seq) {
   26264           0 :         PyMem_Free(_children);
   26265           0 :         p->error_indicator = 1;
   26266           0 :         PyErr_NoMemory();
   26267           0 :         p->level--;
   26268           0 :         return NULL;
   26269             :     }
   26270      114225 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26271       40138 :     PyMem_Free(_children);
   26272       40138 :     _PyPegen_insert_memo(p, _start_mark, _loop1_45_type, _seq);
   26273       40138 :     p->level--;
   26274       40138 :     return _seq;
   26275             : }
   26276             : 
   26277             : // _loop0_46: param_no_default
   26278             : static asdl_seq *
   26279      325862 : _loop0_46_rule(Parser *p)
   26280             : {
   26281      325862 :     if (p->level++ == MAXSTACK) {
   26282           0 :         p->error_indicator = 1;
   26283           0 :         PyErr_NoMemory();
   26284             :     }
   26285      325862 :     if (p->error_indicator) {
   26286           0 :         p->level--;
   26287           0 :         return NULL;
   26288             :     }
   26289      325862 :     void *_res = NULL;
   26290      325862 :     int _mark = p->mark;
   26291      325862 :     int _start_mark = p->mark;
   26292      325862 :     void **_children = PyMem_Malloc(sizeof(void *));
   26293      325862 :     if (!_children) {
   26294           0 :         p->error_indicator = 1;
   26295           0 :         PyErr_NoMemory();
   26296           0 :         p->level--;
   26297           0 :         return NULL;
   26298             :     }
   26299      325862 :     Py_ssize_t _children_capacity = 1;
   26300      325862 :     Py_ssize_t _n = 0;
   26301             :     { // param_no_default
   26302      325862 :         if (p->error_indicator) {
   26303           0 :             p->level--;
   26304           0 :             return NULL;
   26305             :         }
   26306      325862 :         D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
   26307             :         arg_ty param_no_default_var;
   26308     1118900 :         while (
   26309      793039 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   26310             :         )
   26311             :         {
   26312      467177 :             _res = param_no_default_var;
   26313      467177 :             if (_n == _children_capacity) {
   26314      149333 :                 _children_capacity *= 2;
   26315      149333 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26316      149333 :                 if (!_new_children) {
   26317           0 :                     p->error_indicator = 1;
   26318           0 :                     PyErr_NoMemory();
   26319           0 :                     p->level--;
   26320           0 :                     return NULL;
   26321             :                 }
   26322      149333 :                 _children = _new_children;
   26323             :             }
   26324      467177 :             _children[_n++] = _res;
   26325      467177 :             _mark = p->mark;
   26326             :         }
   26327      325862 :         p->mark = _mark;
   26328      325862 :         D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
   26329             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
   26330             :     }
   26331      325862 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26332      325862 :     if (!_seq) {
   26333           0 :         PyMem_Free(_children);
   26334           0 :         p->error_indicator = 1;
   26335           0 :         PyErr_NoMemory();
   26336           0 :         p->level--;
   26337           0 :         return NULL;
   26338             :     }
   26339      793039 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26340      325862 :     PyMem_Free(_children);
   26341      325862 :     _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
   26342      325862 :     p->level--;
   26343      325862 :     return _seq;
   26344             : }
   26345             : 
   26346             : // _loop1_47: param_with_default
   26347             : static asdl_seq *
   26348      325862 : _loop1_47_rule(Parser *p)
   26349             : {
   26350      325862 :     if (p->level++ == MAXSTACK) {
   26351           0 :         p->error_indicator = 1;
   26352           0 :         PyErr_NoMemory();
   26353             :     }
   26354      325862 :     if (p->error_indicator) {
   26355           0 :         p->level--;
   26356           0 :         return NULL;
   26357             :     }
   26358      325862 :     void *_res = NULL;
   26359      325862 :     int _mark = p->mark;
   26360      325862 :     int _start_mark = p->mark;
   26361      325862 :     void **_children = PyMem_Malloc(sizeof(void *));
   26362      325862 :     if (!_children) {
   26363           0 :         p->error_indicator = 1;
   26364           0 :         PyErr_NoMemory();
   26365           0 :         p->level--;
   26366           0 :         return NULL;
   26367             :     }
   26368      325862 :     Py_ssize_t _children_capacity = 1;
   26369      325862 :     Py_ssize_t _n = 0;
   26370             :     { // param_with_default
   26371      325862 :         if (p->error_indicator) {
   26372           0 :             p->level--;
   26373           0 :             return NULL;
   26374             :         }
   26375      325862 :         D(fprintf(stderr, "%*c> _loop1_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
   26376             :         NameDefaultPair* param_with_default_var;
   26377      725440 :         while (
   26378      399578 :             (param_with_default_var = param_with_default_rule(p))  // param_with_default
   26379             :         )
   26380             :         {
   26381       73716 :             _res = param_with_default_var;
   26382       73716 :             if (_n == _children_capacity) {
   26383       25352 :                 _children_capacity *= 2;
   26384       25352 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26385       25352 :                 if (!_new_children) {
   26386           0 :                     p->error_indicator = 1;
   26387           0 :                     PyErr_NoMemory();
   26388           0 :                     p->level--;
   26389           0 :                     return NULL;
   26390             :                 }
   26391       25352 :                 _children = _new_children;
   26392             :             }
   26393       73716 :             _children[_n++] = _res;
   26394       73716 :             _mark = p->mark;
   26395             :         }
   26396      325862 :         p->mark = _mark;
   26397      325862 :         D(fprintf(stderr, "%*c%s _loop1_47[%d-%d]: %s failed!\n", p->level, ' ',
   26398             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
   26399             :     }
   26400      325862 :     if (_n == 0 || p->error_indicator) {
   26401      286084 :         PyMem_Free(_children);
   26402      286084 :         p->level--;
   26403      286084 :         return NULL;
   26404             :     }
   26405       39778 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26406       39778 :     if (!_seq) {
   26407           0 :         PyMem_Free(_children);
   26408           0 :         p->error_indicator = 1;
   26409           0 :         PyErr_NoMemory();
   26410           0 :         p->level--;
   26411           0 :         return NULL;
   26412             :     }
   26413      113494 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26414       39778 :     PyMem_Free(_children);
   26415       39778 :     _PyPegen_insert_memo(p, _start_mark, _loop1_47_type, _seq);
   26416       39778 :     p->level--;
   26417       39778 :     return _seq;
   26418             : }
   26419             : 
   26420             : // _loop0_48: param_maybe_default
   26421             : static asdl_seq *
   26422       27138 : _loop0_48_rule(Parser *p)
   26423             : {
   26424       27138 :     if (p->level++ == MAXSTACK) {
   26425           0 :         p->error_indicator = 1;
   26426           0 :         PyErr_NoMemory();
   26427             :     }
   26428       27138 :     if (p->error_indicator) {
   26429           0 :         p->level--;
   26430           0 :         return NULL;
   26431             :     }
   26432       27138 :     void *_res = NULL;
   26433       27138 :     int _mark = p->mark;
   26434       27138 :     int _start_mark = p->mark;
   26435       27138 :     void **_children = PyMem_Malloc(sizeof(void *));
   26436       27138 :     if (!_children) {
   26437           0 :         p->error_indicator = 1;
   26438           0 :         PyErr_NoMemory();
   26439           0 :         p->level--;
   26440           0 :         return NULL;
   26441             :     }
   26442       27138 :     Py_ssize_t _children_capacity = 1;
   26443       27138 :     Py_ssize_t _n = 0;
   26444             :     { // param_maybe_default
   26445       27138 :         if (p->error_indicator) {
   26446           0 :             p->level--;
   26447           0 :             return NULL;
   26448             :         }
   26449       27138 :         D(fprintf(stderr, "%*c> _loop0_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
   26450             :         NameDefaultPair* param_maybe_default_var;
   26451       56147 :         while (
   26452       29009 :             (param_maybe_default_var = param_maybe_default_rule(p))  // param_maybe_default
   26453             :         )
   26454             :         {
   26455        1871 :             _res = param_maybe_default_var;
   26456        1871 :             if (_n == _children_capacity) {
   26457         614 :                 _children_capacity *= 2;
   26458         614 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26459         614 :                 if (!_new_children) {
   26460           0 :                     p->error_indicator = 1;
   26461           0 :                     PyErr_NoMemory();
   26462           0 :                     p->level--;
   26463           0 :                     return NULL;
   26464             :                 }
   26465         614 :                 _children = _new_children;
   26466             :             }
   26467        1871 :             _children[_n++] = _res;
   26468        1871 :             _mark = p->mark;
   26469             :         }
   26470       27138 :         p->mark = _mark;
   26471       27138 :         D(fprintf(stderr, "%*c%s _loop0_48[%d-%d]: %s failed!\n", p->level, ' ',
   26472             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
   26473             :     }
   26474       27138 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26475       27138 :     if (!_seq) {
   26476           0 :         PyMem_Free(_children);
   26477           0 :         p->error_indicator = 1;
   26478           0 :         PyErr_NoMemory();
   26479           0 :         p->level--;
   26480           0 :         return NULL;
   26481             :     }
   26482       29009 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26483       27138 :     PyMem_Free(_children);
   26484       27138 :     _PyPegen_insert_memo(p, _start_mark, _loop0_48_type, _seq);
   26485       27138 :     p->level--;
   26486       27138 :     return _seq;
   26487             : }
   26488             : 
   26489             : // _loop0_49: param_maybe_default
   26490             : static asdl_seq *
   26491          20 : _loop0_49_rule(Parser *p)
   26492             : {
   26493          20 :     if (p->level++ == MAXSTACK) {
   26494           0 :         p->error_indicator = 1;
   26495           0 :         PyErr_NoMemory();
   26496             :     }
   26497          20 :     if (p->error_indicator) {
   26498           0 :         p->level--;
   26499           0 :         return NULL;
   26500             :     }
   26501          20 :     void *_res = NULL;
   26502          20 :     int _mark = p->mark;
   26503          20 :     int _start_mark = p->mark;
   26504          20 :     void **_children = PyMem_Malloc(sizeof(void *));
   26505          20 :     if (!_children) {
   26506           0 :         p->error_indicator = 1;
   26507           0 :         PyErr_NoMemory();
   26508           0 :         p->level--;
   26509           0 :         return NULL;
   26510             :     }
   26511          20 :     Py_ssize_t _children_capacity = 1;
   26512          20 :     Py_ssize_t _n = 0;
   26513             :     { // param_maybe_default
   26514          20 :         if (p->error_indicator) {
   26515           0 :             p->level--;
   26516           0 :             return NULL;
   26517             :         }
   26518          20 :         D(fprintf(stderr, "%*c> _loop0_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
   26519             :         NameDefaultPair* param_maybe_default_var;
   26520          43 :         while (
   26521          23 :             (param_maybe_default_var = param_maybe_default_rule(p))  // param_maybe_default
   26522             :         )
   26523             :         {
   26524           3 :             _res = param_maybe_default_var;
   26525           3 :             if (_n == _children_capacity) {
   26526           0 :                 _children_capacity *= 2;
   26527           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26528           0 :                 if (!_new_children) {
   26529           0 :                     p->error_indicator = 1;
   26530           0 :                     PyErr_NoMemory();
   26531           0 :                     p->level--;
   26532           0 :                     return NULL;
   26533             :                 }
   26534           0 :                 _children = _new_children;
   26535             :             }
   26536           3 :             _children[_n++] = _res;
   26537           3 :             _mark = p->mark;
   26538             :         }
   26539          20 :         p->mark = _mark;
   26540          20 :         D(fprintf(stderr, "%*c%s _loop0_49[%d-%d]: %s failed!\n", p->level, ' ',
   26541             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
   26542             :     }
   26543          20 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26544          20 :     if (!_seq) {
   26545           0 :         PyMem_Free(_children);
   26546           0 :         p->error_indicator = 1;
   26547           0 :         PyErr_NoMemory();
   26548           0 :         p->level--;
   26549           0 :         return NULL;
   26550             :     }
   26551          23 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26552          20 :     PyMem_Free(_children);
   26553          20 :     _PyPegen_insert_memo(p, _start_mark, _loop0_49_type, _seq);
   26554          20 :     p->level--;
   26555          20 :     return _seq;
   26556             : }
   26557             : 
   26558             : // _loop1_50: param_maybe_default
   26559             : static asdl_seq *
   26560        5922 : _loop1_50_rule(Parser *p)
   26561             : {
   26562        5922 :     if (p->level++ == MAXSTACK) {
   26563           0 :         p->error_indicator = 1;
   26564           0 :         PyErr_NoMemory();
   26565             :     }
   26566        5922 :     if (p->error_indicator) {
   26567           0 :         p->level--;
   26568           0 :         return NULL;
   26569             :     }
   26570        5922 :     void *_res = NULL;
   26571        5922 :     int _mark = p->mark;
   26572        5922 :     int _start_mark = p->mark;
   26573        5922 :     void **_children = PyMem_Malloc(sizeof(void *));
   26574        5922 :     if (!_children) {
   26575           0 :         p->error_indicator = 1;
   26576           0 :         PyErr_NoMemory();
   26577           0 :         p->level--;
   26578           0 :         return NULL;
   26579             :     }
   26580        5922 :     Py_ssize_t _children_capacity = 1;
   26581        5922 :     Py_ssize_t _n = 0;
   26582             :     { // param_maybe_default
   26583        5922 :         if (p->error_indicator) {
   26584           0 :             p->level--;
   26585           0 :             return NULL;
   26586             :         }
   26587        5922 :         D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
   26588             :         NameDefaultPair* param_maybe_default_var;
   26589       28315 :         while (
   26590       22393 :             (param_maybe_default_var = param_maybe_default_rule(p))  // param_maybe_default
   26591             :         )
   26592             :         {
   26593       16471 :             _res = param_maybe_default_var;
   26594       16471 :             if (_n == _children_capacity) {
   26595        6739 :                 _children_capacity *= 2;
   26596        6739 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26597        6739 :                 if (!_new_children) {
   26598           0 :                     p->error_indicator = 1;
   26599           0 :                     PyErr_NoMemory();
   26600           0 :                     p->level--;
   26601           0 :                     return NULL;
   26602             :                 }
   26603        6739 :                 _children = _new_children;
   26604             :             }
   26605       16471 :             _children[_n++] = _res;
   26606       16471 :             _mark = p->mark;
   26607             :         }
   26608        5922 :         p->mark = _mark;
   26609        5922 :         D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
   26610             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
   26611             :     }
   26612        5922 :     if (_n == 0 || p->error_indicator) {
   26613          13 :         PyMem_Free(_children);
   26614          13 :         p->level--;
   26615          13 :         return NULL;
   26616             :     }
   26617        5909 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26618        5909 :     if (!_seq) {
   26619           0 :         PyMem_Free(_children);
   26620           0 :         p->error_indicator = 1;
   26621           0 :         PyErr_NoMemory();
   26622           0 :         p->level--;
   26623           0 :         return NULL;
   26624             :     }
   26625       22380 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26626        5909 :     PyMem_Free(_children);
   26627        5909 :     _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
   26628        5909 :     p->level--;
   26629        5909 :     return _seq;
   26630             : }
   26631             : 
   26632             : // _loop0_52: ',' with_item
   26633             : static asdl_seq *
   26634          68 : _loop0_52_rule(Parser *p)
   26635             : {
   26636          68 :     if (p->level++ == MAXSTACK) {
   26637           0 :         p->error_indicator = 1;
   26638           0 :         PyErr_NoMemory();
   26639             :     }
   26640          68 :     if (p->error_indicator) {
   26641           0 :         p->level--;
   26642           0 :         return NULL;
   26643             :     }
   26644          68 :     void *_res = NULL;
   26645          68 :     int _mark = p->mark;
   26646          68 :     int _start_mark = p->mark;
   26647          68 :     void **_children = PyMem_Malloc(sizeof(void *));
   26648          68 :     if (!_children) {
   26649           0 :         p->error_indicator = 1;
   26650           0 :         PyErr_NoMemory();
   26651           0 :         p->level--;
   26652           0 :         return NULL;
   26653             :     }
   26654          68 :     Py_ssize_t _children_capacity = 1;
   26655          68 :     Py_ssize_t _n = 0;
   26656             :     { // ',' with_item
   26657          68 :         if (p->error_indicator) {
   26658           0 :             p->level--;
   26659           0 :             return NULL;
   26660             :         }
   26661          68 :         D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
   26662             :         Token * _literal;
   26663             :         withitem_ty elem;
   26664         174 :         while (
   26665         106 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   26666          47 :             &&
   26667          47 :             (elem = with_item_rule(p))  // with_item
   26668             :         )
   26669             :         {
   26670          38 :             _res = elem;
   26671          38 :             if (_res == NULL && PyErr_Occurred()) {
   26672           0 :                 p->error_indicator = 1;
   26673           0 :                 PyMem_Free(_children);
   26674           0 :                 p->level--;
   26675           0 :                 return NULL;
   26676             :             }
   26677          38 :             if (_n == _children_capacity) {
   26678           8 :                 _children_capacity *= 2;
   26679           8 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26680           8 :                 if (!_new_children) {
   26681           0 :                     p->error_indicator = 1;
   26682           0 :                     PyErr_NoMemory();
   26683           0 :                     p->level--;
   26684           0 :                     return NULL;
   26685             :                 }
   26686           8 :                 _children = _new_children;
   26687             :             }
   26688          38 :             _children[_n++] = _res;
   26689          38 :             _mark = p->mark;
   26690             :         }
   26691          68 :         p->mark = _mark;
   26692          68 :         D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
   26693             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
   26694             :     }
   26695          68 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26696          68 :     if (!_seq) {
   26697           0 :         PyMem_Free(_children);
   26698           0 :         p->error_indicator = 1;
   26699           0 :         PyErr_NoMemory();
   26700           0 :         p->level--;
   26701           0 :         return NULL;
   26702             :     }
   26703         106 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26704          68 :     PyMem_Free(_children);
   26705          68 :     _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
   26706          68 :     p->level--;
   26707          68 :     return _seq;
   26708             : }
   26709             : 
   26710             : // _gather_51: with_item _loop0_52
   26711             : static asdl_seq *
   26712          69 : _gather_51_rule(Parser *p)
   26713             : {
   26714          69 :     if (p->level++ == MAXSTACK) {
   26715           0 :         p->error_indicator = 1;
   26716           0 :         PyErr_NoMemory();
   26717             :     }
   26718          69 :     if (p->error_indicator) {
   26719           0 :         p->level--;
   26720           0 :         return NULL;
   26721             :     }
   26722          69 :     asdl_seq * _res = NULL;
   26723          69 :     int _mark = p->mark;
   26724             :     { // with_item _loop0_52
   26725          69 :         if (p->error_indicator) {
   26726           0 :             p->level--;
   26727           0 :             return NULL;
   26728             :         }
   26729          69 :         D(fprintf(stderr, "%*c> _gather_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_52"));
   26730             :         withitem_ty elem;
   26731             :         asdl_seq * seq;
   26732          69 :         if (
   26733          69 :             (elem = with_item_rule(p))  // with_item
   26734          68 :             &&
   26735          68 :             (seq = _loop0_52_rule(p))  // _loop0_52
   26736             :         )
   26737             :         {
   26738          68 :             D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_52"));
   26739          68 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   26740          68 :             goto done;
   26741             :         }
   26742           1 :         p->mark = _mark;
   26743           1 :         D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
   26744             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_52"));
   26745             :     }
   26746           1 :     _res = NULL;
   26747          69 :   done:
   26748          69 :     p->level--;
   26749          69 :     return _res;
   26750             : }
   26751             : 
   26752             : // _loop0_54: ',' with_item
   26753             : static asdl_seq *
   26754       38584 : _loop0_54_rule(Parser *p)
   26755             : {
   26756       38584 :     if (p->level++ == MAXSTACK) {
   26757           0 :         p->error_indicator = 1;
   26758           0 :         PyErr_NoMemory();
   26759             :     }
   26760       38584 :     if (p->error_indicator) {
   26761           0 :         p->level--;
   26762           0 :         return NULL;
   26763             :     }
   26764       38584 :     void *_res = NULL;
   26765       38584 :     int _mark = p->mark;
   26766       38584 :     int _start_mark = p->mark;
   26767       38584 :     void **_children = PyMem_Malloc(sizeof(void *));
   26768       38584 :     if (!_children) {
   26769           0 :         p->error_indicator = 1;
   26770           0 :         PyErr_NoMemory();
   26771           0 :         p->level--;
   26772           0 :         return NULL;
   26773             :     }
   26774       38584 :     Py_ssize_t _children_capacity = 1;
   26775       38584 :     Py_ssize_t _n = 0;
   26776             :     { // ',' with_item
   26777       38584 :         if (p->error_indicator) {
   26778           0 :             p->level--;
   26779           0 :             return NULL;
   26780             :         }
   26781       38584 :         D(fprintf(stderr, "%*c> _loop0_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
   26782             :         Token * _literal;
   26783             :         withitem_ty elem;
   26784       77925 :         while (
   26785       39341 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   26786         758 :             &&
   26787         758 :             (elem = with_item_rule(p))  // with_item
   26788             :         )
   26789             :         {
   26790         757 :             _res = elem;
   26791         757 :             if (_res == NULL && PyErr_Occurred()) {
   26792           0 :                 p->error_indicator = 1;
   26793           0 :                 PyMem_Free(_children);
   26794           0 :                 p->level--;
   26795           0 :                 return NULL;
   26796             :             }
   26797         757 :             if (_n == _children_capacity) {
   26798          73 :                 _children_capacity *= 2;
   26799          73 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26800          73 :                 if (!_new_children) {
   26801           0 :                     p->error_indicator = 1;
   26802           0 :                     PyErr_NoMemory();
   26803           0 :                     p->level--;
   26804           0 :                     return NULL;
   26805             :                 }
   26806          73 :                 _children = _new_children;
   26807             :             }
   26808         757 :             _children[_n++] = _res;
   26809         757 :             _mark = p->mark;
   26810             :         }
   26811       38584 :         p->mark = _mark;
   26812       38584 :         D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
   26813             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
   26814             :     }
   26815       38584 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26816       38584 :     if (!_seq) {
   26817           0 :         PyMem_Free(_children);
   26818           0 :         p->error_indicator = 1;
   26819           0 :         PyErr_NoMemory();
   26820           0 :         p->level--;
   26821           0 :         return NULL;
   26822             :     }
   26823       39341 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26824       38584 :     PyMem_Free(_children);
   26825       38584 :     _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
   26826       38584 :     p->level--;
   26827       38584 :     return _seq;
   26828             : }
   26829             : 
   26830             : // _gather_53: with_item _loop0_54
   26831             : static asdl_seq *
   26832       38604 : _gather_53_rule(Parser *p)
   26833             : {
   26834       38604 :     if (p->level++ == MAXSTACK) {
   26835           0 :         p->error_indicator = 1;
   26836           0 :         PyErr_NoMemory();
   26837             :     }
   26838       38604 :     if (p->error_indicator) {
   26839           0 :         p->level--;
   26840           0 :         return NULL;
   26841             :     }
   26842       38604 :     asdl_seq * _res = NULL;
   26843       38604 :     int _mark = p->mark;
   26844             :     { // with_item _loop0_54
   26845       38604 :         if (p->error_indicator) {
   26846           0 :             p->level--;
   26847           0 :             return NULL;
   26848             :         }
   26849       38604 :         D(fprintf(stderr, "%*c> _gather_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_54"));
   26850             :         withitem_ty elem;
   26851             :         asdl_seq * seq;
   26852       38604 :         if (
   26853       38604 :             (elem = with_item_rule(p))  // with_item
   26854       38584 :             &&
   26855       38584 :             (seq = _loop0_54_rule(p))  // _loop0_54
   26856             :         )
   26857             :         {
   26858       38584 :             D(fprintf(stderr, "%*c+ _gather_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_54"));
   26859       38584 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   26860       38584 :             goto done;
   26861             :         }
   26862          20 :         p->mark = _mark;
   26863          20 :         D(fprintf(stderr, "%*c%s _gather_53[%d-%d]: %s failed!\n", p->level, ' ',
   26864             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_54"));
   26865             :     }
   26866          20 :     _res = NULL;
   26867       38604 :   done:
   26868       38604 :     p->level--;
   26869       38604 :     return _res;
   26870             : }
   26871             : 
   26872             : // _loop0_56: ',' with_item
   26873             : static asdl_seq *
   26874           1 : _loop0_56_rule(Parser *p)
   26875             : {
   26876           1 :     if (p->level++ == MAXSTACK) {
   26877           0 :         p->error_indicator = 1;
   26878           0 :         PyErr_NoMemory();
   26879             :     }
   26880           1 :     if (p->error_indicator) {
   26881           0 :         p->level--;
   26882           0 :         return NULL;
   26883             :     }
   26884           1 :     void *_res = NULL;
   26885           1 :     int _mark = p->mark;
   26886           1 :     int _start_mark = p->mark;
   26887           1 :     void **_children = PyMem_Malloc(sizeof(void *));
   26888           1 :     if (!_children) {
   26889           0 :         p->error_indicator = 1;
   26890           0 :         PyErr_NoMemory();
   26891           0 :         p->level--;
   26892           0 :         return NULL;
   26893             :     }
   26894           1 :     Py_ssize_t _children_capacity = 1;
   26895           1 :     Py_ssize_t _n = 0;
   26896             :     { // ',' with_item
   26897           1 :         if (p->error_indicator) {
   26898           0 :             p->level--;
   26899           0 :             return NULL;
   26900             :         }
   26901           1 :         D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
   26902             :         Token * _literal;
   26903             :         withitem_ty elem;
   26904           3 :         while (
   26905           2 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   26906           1 :             &&
   26907           1 :             (elem = with_item_rule(p))  // with_item
   26908             :         )
   26909             :         {
   26910           1 :             _res = elem;
   26911           1 :             if (_res == NULL && PyErr_Occurred()) {
   26912           0 :                 p->error_indicator = 1;
   26913           0 :                 PyMem_Free(_children);
   26914           0 :                 p->level--;
   26915           0 :                 return NULL;
   26916             :             }
   26917           1 :             if (_n == _children_capacity) {
   26918           0 :                 _children_capacity *= 2;
   26919           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26920           0 :                 if (!_new_children) {
   26921           0 :                     p->error_indicator = 1;
   26922           0 :                     PyErr_NoMemory();
   26923           0 :                     p->level--;
   26924           0 :                     return NULL;
   26925             :                 }
   26926           0 :                 _children = _new_children;
   26927             :             }
   26928           1 :             _children[_n++] = _res;
   26929           1 :             _mark = p->mark;
   26930             :         }
   26931           1 :         p->mark = _mark;
   26932           1 :         D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
   26933             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
   26934             :     }
   26935           1 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26936           1 :     if (!_seq) {
   26937           0 :         PyMem_Free(_children);
   26938           0 :         p->error_indicator = 1;
   26939           0 :         PyErr_NoMemory();
   26940           0 :         p->level--;
   26941           0 :         return NULL;
   26942             :     }
   26943           2 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26944           1 :     PyMem_Free(_children);
   26945           1 :     _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
   26946           1 :     p->level--;
   26947           1 :     return _seq;
   26948             : }
   26949             : 
   26950             : // _gather_55: with_item _loop0_56
   26951             : static asdl_seq *
   26952           1 : _gather_55_rule(Parser *p)
   26953             : {
   26954           1 :     if (p->level++ == MAXSTACK) {
   26955           0 :         p->error_indicator = 1;
   26956           0 :         PyErr_NoMemory();
   26957             :     }
   26958           1 :     if (p->error_indicator) {
   26959           0 :         p->level--;
   26960           0 :         return NULL;
   26961             :     }
   26962           1 :     asdl_seq * _res = NULL;
   26963           1 :     int _mark = p->mark;
   26964             :     { // with_item _loop0_56
   26965           1 :         if (p->error_indicator) {
   26966           0 :             p->level--;
   26967           0 :             return NULL;
   26968             :         }
   26969           1 :         D(fprintf(stderr, "%*c> _gather_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_56"));
   26970             :         withitem_ty elem;
   26971             :         asdl_seq * seq;
   26972           1 :         if (
   26973           1 :             (elem = with_item_rule(p))  // with_item
   26974           1 :             &&
   26975           1 :             (seq = _loop0_56_rule(p))  // _loop0_56
   26976             :         )
   26977             :         {
   26978           1 :             D(fprintf(stderr, "%*c+ _gather_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_56"));
   26979           1 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   26980           1 :             goto done;
   26981             :         }
   26982           0 :         p->mark = _mark;
   26983           0 :         D(fprintf(stderr, "%*c%s _gather_55[%d-%d]: %s failed!\n", p->level, ' ',
   26984             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_56"));
   26985             :     }
   26986           0 :     _res = NULL;
   26987           1 :   done:
   26988           1 :     p->level--;
   26989           1 :     return _res;
   26990             : }
   26991             : 
   26992             : // _loop0_58: ',' with_item
   26993             : static asdl_seq *
   26994         373 : _loop0_58_rule(Parser *p)
   26995             : {
   26996         373 :     if (p->level++ == MAXSTACK) {
   26997           0 :         p->error_indicator = 1;
   26998           0 :         PyErr_NoMemory();
   26999             :     }
   27000         373 :     if (p->error_indicator) {
   27001           0 :         p->level--;
   27002           0 :         return NULL;
   27003             :     }
   27004         373 :     void *_res = NULL;
   27005         373 :     int _mark = p->mark;
   27006         373 :     int _start_mark = p->mark;
   27007         373 :     void **_children = PyMem_Malloc(sizeof(void *));
   27008         373 :     if (!_children) {
   27009           0 :         p->error_indicator = 1;
   27010           0 :         PyErr_NoMemory();
   27011           0 :         p->level--;
   27012           0 :         return NULL;
   27013             :     }
   27014         373 :     Py_ssize_t _children_capacity = 1;
   27015         373 :     Py_ssize_t _n = 0;
   27016             :     { // ',' with_item
   27017         373 :         if (p->error_indicator) {
   27018           0 :             p->level--;
   27019           0 :             return NULL;
   27020             :         }
   27021         373 :         D(fprintf(stderr, "%*c> _loop0_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
   27022             :         Token * _literal;
   27023             :         withitem_ty elem;
   27024         765 :         while (
   27025         392 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   27026          19 :             &&
   27027          19 :             (elem = with_item_rule(p))  // with_item
   27028             :         )
   27029             :         {
   27030          19 :             _res = elem;
   27031          19 :             if (_res == NULL && PyErr_Occurred()) {
   27032           0 :                 p->error_indicator = 1;
   27033           0 :                 PyMem_Free(_children);
   27034           0 :                 p->level--;
   27035           0 :                 return NULL;
   27036             :             }
   27037          19 :             if (_n == _children_capacity) {
   27038           0 :                 _children_capacity *= 2;
   27039           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   27040           0 :                 if (!_new_children) {
   27041           0 :                     p->error_indicator = 1;
   27042           0 :                     PyErr_NoMemory();
   27043           0 :                     p->level--;
   27044           0 :                     return NULL;
   27045             :                 }
   27046           0 :                 _children = _new_children;
   27047             :             }
   27048          19 :             _children[_n++] = _res;
   27049          19 :             _mark = p->mark;
   27050             :         }
   27051         373 :         p->mark = _mark;
   27052         373 :         D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
   27053             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
   27054             :     }
   27055         373 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   27056         373 :     if (!_seq) {
   27057           0 :         PyMem_Free(_children);
   27058           0 :         p->error_indicator = 1;
   27059           0 :         PyErr_NoMemory();
   27060           0 :         p->level--;
   27061           0 :         return NULL;
   27062             :     }
   27063         392 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   27064         373 :     PyMem_Free(_children);
   27065         373 :     _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
   27066         373 :     p->level--;
   27067         373 :     return _seq;
   27068             : }
   27069             : 
   27070             : // _gather_57: with_item _loop0_58
   27071             : static asdl_seq *
   27072         374 : _gather_57_rule(Parser *p)
   27073             : {
   27074         374 :     if (p->level++ == MAXSTACK) {
   27075           0 :         p->error_indicator = 1;
   27076           0 :         PyErr_NoMemory();
   27077             :     }
   27078         374 :     if (p->error_indicator) {
   27079           0 :         p->level--;
   27080           0 :         return NULL;
   27081             :     }
   27082         374 :     asdl_seq * _res = NULL;
   27083         374 :     int _mark = p->mark;
   27084             :     { // with_item _loop0_58
   27085         374 :         if (p->error_indicator) {
   27086           0 :             p->level--;
   27087           0 :             return NULL;
   27088             :         }
   27089         374 :         D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_58"));
   27090             :         withitem_ty elem;
   27091             :         asdl_seq * seq;
   27092         374 :         if (
   27093         374 :             (elem = with_item_rule(p))  // with_item
   27094         373 :             &&
   27095         373 :             (seq = _loop0_58_rule(p))  // _loop0_58
   27096             :         )
   27097             :         {
   27098         373 :             D(fprintf(stderr, "%*c+ _gather_57[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_58"));
   27099         373 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   27100         373 :             goto done;
   27101             :         }
   27102           1 :         p->mark = _mark;
   27103           1 :         D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ',
   27104             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_58"));
   27105             :     }
   27106           1 :     _res = NULL;
   27107         374 :   done:
   27108         374 :     p->level--;
   27109         374 :     return _res;
   27110             : }
   27111             : 
   27112             : // _tmp_59: ',' | ')' | ':'
   27113             : static void *
   27114       16845 : _tmp_59_rule(Parser *p)
   27115             : {
   27116       16845 :     if (p->level++ == MAXSTACK) {
   27117           0 :         p->error_indicator = 1;
   27118           0 :         PyErr_NoMemory();
   27119             :     }
   27120       16845 :     if (p->error_indicator) {
   27121           0 :         p->level--;
   27122           0 :         return NULL;
   27123             :     }
   27124       16845 :     void * _res = NULL;
   27125       16845 :     int _mark = p->mark;
   27126             :     { // ','
   27127       16845 :         if (p->error_indicator) {
   27128           0 :             p->level--;
   27129           0 :             return NULL;
   27130             :         }
   27131       16845 :         D(fprintf(stderr, "%*c> _tmp_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
   27132             :         Token * _literal;
   27133       16845 :         if (
   27134       16845 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   27135             :         )
   27136             :         {
   27137         486 :             D(fprintf(stderr, "%*c+ _tmp_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
   27138         486 :             _res = _literal;
   27139         486 :             goto done;
   27140             :         }
   27141       16359 :         p->mark = _mark;
   27142       16359 :         D(fprintf(stderr, "%*c%s _tmp_59[%d-%d]: %s failed!\n", p->level, ' ',
   27143             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
   27144             :     }
   27145             :     { // ')'
   27146       16359 :         if (p->error_indicator) {
   27147           0 :             p->level--;
   27148           0 :             return NULL;
   27149             :         }
   27150       16359 :         D(fprintf(stderr, "%*c> _tmp_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
   27151             :         Token * _literal;
   27152       16359 :         if (
   27153       16359 :             (_literal = _PyPegen_expect_token(p, 8))  // token=')'
   27154             :         )
   27155             :         {
   27156          13 :             D(fprintf(stderr, "%*c+ _tmp_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
   27157          13 :             _res = _literal;
   27158          13 :             goto done;
   27159             :         }
   27160       16346 :         p->mark = _mark;
   27161       16346 :         D(fprintf(stderr, "%*c%s _tmp_59[%d-%d]: %s failed!\n", p->level, ' ',
   27162             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
   27163             :     }
   27164             :     { // ':'
   27165       16346 :         if (p->error_indicator) {
   27166           0 :             p->level--;
   27167           0 :             return NULL;
   27168             :         }
   27169       16346 :         D(fprintf(stderr, "%*c> _tmp_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
   27170             :         Token * _literal;
   27171       16346 :         if (
   27172       16346 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   27173             :         )
   27174             :         {
   27175       16336 :             D(fprintf(stderr, "%*c+ _tmp_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
   27176       16336 :             _res = _literal;
   27177       16336 :             goto done;
   27178             :         }
   27179          10 :         p->mark = _mark;
   27180          10 :         D(fprintf(stderr, "%*c%s _tmp_59[%d-%d]: %s failed!\n", p->level, ' ',
   27181             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
   27182             :     }
   27183          10 :     _res = NULL;
   27184       16845 :   done:
   27185       16845 :     p->level--;
   27186       16845 :     return _res;
   27187             : }
   27188             : 
   27189             : // _loop1_60: except_block
   27190             : static asdl_seq *
   27191       42157 : _loop1_60_rule(Parser *p)
   27192             : {
   27193       42157 :     if (p->level++ == MAXSTACK) {
   27194           0 :         p->error_indicator = 1;
   27195           0 :         PyErr_NoMemory();
   27196             :     }
   27197       42157 :     if (p->error_indicator) {
   27198           0 :         p->level--;
   27199           0 :         return NULL;
   27200             :     }
   27201       42157 :     void *_res = NULL;
   27202       42157 :     int _mark = p->mark;
   27203       42157 :     int _start_mark = p->mark;
   27204       42157 :     void **_children = PyMem_Malloc(sizeof(void *));
   27205       42157 :     if (!_children) {
   27206           0 :         p->error_indicator = 1;
   27207           0 :         PyErr_NoMemory();
   27208           0 :         p->level--;
   27209           0 :         return NULL;
   27210             :     }
   27211       42157 :     Py_ssize_t _children_capacity = 1;
   27212       42157 :     Py_ssize_t _n = 0;
   27213             :     { // except_block
   27214       42157 :         if (p->error_indicator) {
   27215           0 :             p->level--;
   27216           0 :             return NULL;
   27217             :         }
   27218       42157 :         D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
   27219             :         excepthandler_ty except_block_var;
   27220      128830 :         while (
   27221       86673 :             (except_block_var = except_block_rule(p))  // except_block
   27222             :         )
   27223             :         {
   27224       44516 :             _res = except_block_var;
   27225       44516 :             if (_n == _children_capacity) {
   27226        2439 :                 _children_capacity *= 2;
   27227        2439 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   27228        2439 :                 if (!_new_children) {
   27229           0 :                     p->error_indicator = 1;
   27230           0 :                     PyErr_NoMemory();
   27231           0 :                     p->level--;
   27232           0 :                     return NULL;
   27233             :                 }
   27234        2439 :                 _children = _new_children;
   27235             :             }
   27236       44516 :             _children[_n++] = _res;
   27237       44516 :             _mark = p->mark;
   27238             :         }
   27239       42157 :         p->mark = _mark;
   27240       42157 :         D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
   27241             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
   27242             :     }
   27243       42157 :     if (_n == 0 || p->error_indicator) {
   27244         297 :         PyMem_Free(_children);
   27245         297 :         p->level--;
   27246         297 :         return NULL;
   27247             :     }
   27248       41860 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   27249       41860 :     if (!_seq) {
   27250           0 :         PyMem_Free(_children);
   27251           0 :         p->error_indicator = 1;
   27252           0 :         PyErr_NoMemory();
   27253           0 :         p->level--;
   27254           0 :         return NULL;
   27255             :     }
   27256       86376 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   27257       41860 :     PyMem_Free(_children);
   27258       41860 :     _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
   27259       41860 :     p->level--;
   27260       41860 :     return _seq;
   27261             : }
   27262             : 
   27263             : // _loop1_61: except_star_block
   27264             : static asdl_seq *
   27265         297 : _loop1_61_rule(Parser *p)
   27266             : {
   27267         297 :     if (p->level++ == MAXSTACK) {
   27268           0 :         p->error_indicator = 1;
   27269           0 :         PyErr_NoMemory();
   27270             :     }
   27271         297 :     if (p->error_indicator) {
   27272           0 :         p->level--;
   27273           0 :         return NULL;
   27274             :     }
   27275         297 :     void *_res = NULL;
   27276         297 :     int _mark = p->mark;
   27277         297 :     int _start_mark = p->mark;
   27278         297 :     void **_children = PyMem_Malloc(sizeof(void *));
   27279         297 :     if (!_children) {
   27280           0 :         p->error_indicator = 1;
   27281           0 :         PyErr_NoMemory();
   27282           0 :         p->level--;
   27283           0 :         return NULL;
   27284             :     }
   27285         297 :     Py_ssize_t _children_capacity = 1;
   27286         297 :     Py_ssize_t _n = 0;
   27287             :     { // except_star_block
   27288         297 :         if (p->error_indicator) {
   27289           0 :             p->level--;
   27290           0 :             return NULL;
   27291             :         }
   27292         297 :         D(fprintf(stderr, "%*c> _loop1_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block"));
   27293             :         excepthandler_ty except_star_block_var;
   27294         911 :         while (
   27295         614 :             (except_star_block_var = except_star_block_rule(p))  // except_star_block
   27296             :         )
   27297             :         {
   27298         317 :             _res = except_star_block_var;
   27299         317 :             if (_n == _children_capacity) {
   27300          61 :                 _children_capacity *= 2;
   27301          61 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   27302          61 :                 if (!_new_children) {
   27303           0 :                     p->error_indicator = 1;
   27304           0 :                     PyErr_NoMemory();
   27305           0 :                     p->level--;
   27306           0 :                     return NULL;
   27307             :                 }
   27308          61 :                 _children = _new_children;
   27309             :             }
   27310         317 :             _children[_n++] = _res;
   27311         317 :             _mark = p->mark;
   27312             :         }
   27313         297 :         p->mark = _mark;
   27314         297 :         D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
   27315             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block"));
   27316             :     }
   27317         297 :     if (_n == 0 || p->error_indicator) {
   27318          41 :         PyMem_Free(_children);
   27319          41 :         p->level--;
   27320          41 :         return NULL;
   27321             :     }
   27322         256 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   27323         256 :     if (!_seq) {
   27324           0 :         PyMem_Free(_children);
   27325           0 :         p->error_indicator = 1;
   27326           0 :         PyErr_NoMemory();
   27327           0 :         p->level--;
   27328           0 :         return NULL;
   27329             :     }
   27330         573 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   27331         256 :     PyMem_Free(_children);
   27332         256 :     _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
   27333         256 :     p->level--;
   27334         256 :     return _seq;
   27335             : }
   27336             : 
   27337             : // _tmp_62: 'as' NAME
   27338             : static void *
   27339       42367 : _tmp_62_rule(Parser *p)
   27340             : {
   27341       42367 :     if (p->level++ == MAXSTACK) {
   27342           0 :         p->error_indicator = 1;
   27343           0 :         PyErr_NoMemory();
   27344             :     }
   27345       42367 :     if (p->error_indicator) {
   27346           0 :         p->level--;
   27347           0 :         return NULL;
   27348             :     }
   27349       42367 :     void * _res = NULL;
   27350       42367 :     int _mark = p->mark;
   27351             :     { // 'as' NAME
   27352       42367 :         if (p->error_indicator) {
   27353           0 :             p->level--;
   27354           0 :             return NULL;
   27355             :         }
   27356       42367 :         D(fprintf(stderr, "%*c> _tmp_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   27357             :         Token * _keyword;
   27358             :         expr_ty z;
   27359       42367 :         if (
   27360       42367 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   27361        9064 :             &&
   27362        9064 :             (z = _PyPegen_name_token(p))  // NAME
   27363             :         )
   27364             :         {
   27365        9064 :             D(fprintf(stderr, "%*c+ _tmp_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   27366        9064 :             _res = z;
   27367        9064 :             if (_res == NULL && PyErr_Occurred()) {
   27368           0 :                 p->error_indicator = 1;
   27369           0 :                 p->level--;
   27370           0 :                 return NULL;
   27371             :             }
   27372        9064 :             goto done;
   27373             :         }
   27374       33303 :         p->mark = _mark;
   27375       33303 :         D(fprintf(stderr, "%*c%s _tmp_62[%d-%d]: %s failed!\n", p->level, ' ',
   27376             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
   27377             :     }
   27378       33303 :     _res = NULL;
   27379       42367 :   done:
   27380       42367 :     p->level--;
   27381       42367 :     return _res;
   27382             : }
   27383             : 
   27384             : // _tmp_63: 'as' NAME
   27385             : static void *
   27386         339 : _tmp_63_rule(Parser *p)
   27387             : {
   27388         339 :     if (p->level++ == MAXSTACK) {
   27389           0 :         p->error_indicator = 1;
   27390           0 :         PyErr_NoMemory();
   27391             :     }
   27392         339 :     if (p->error_indicator) {
   27393           0 :         p->level--;
   27394           0 :         return NULL;
   27395             :     }
   27396         339 :     void * _res = NULL;
   27397         339 :     int _mark = p->mark;
   27398             :     { // 'as' NAME
   27399         339 :         if (p->error_indicator) {
   27400           0 :             p->level--;
   27401           0 :             return NULL;
   27402             :         }
   27403         339 :         D(fprintf(stderr, "%*c> _tmp_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   27404             :         Token * _keyword;
   27405             :         expr_ty z;
   27406         339 :         if (
   27407         339 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   27408         129 :             &&
   27409         129 :             (z = _PyPegen_name_token(p))  // NAME
   27410             :         )
   27411             :         {
   27412         129 :             D(fprintf(stderr, "%*c+ _tmp_63[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   27413         129 :             _res = z;
   27414         129 :             if (_res == NULL && PyErr_Occurred()) {
   27415           0 :                 p->error_indicator = 1;
   27416           0 :                 p->level--;
   27417           0 :                 return NULL;
   27418             :             }
   27419         129 :             goto done;
   27420             :         }
   27421         210 :         p->mark = _mark;
   27422         210 :         D(fprintf(stderr, "%*c%s _tmp_63[%d-%d]: %s failed!\n", p->level, ' ',
   27423             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
   27424             :     }
   27425         210 :     _res = NULL;
   27426         339 :   done:
   27427         339 :     p->level--;
   27428         339 :     return _res;
   27429             : }
   27430             : 
   27431             : // _loop1_64: case_block
   27432             : static asdl_seq *
   27433        1264 : _loop1_64_rule(Parser *p)
   27434             : {
   27435        1264 :     if (p->level++ == MAXSTACK) {
   27436           0 :         p->error_indicator = 1;
   27437           0 :         PyErr_NoMemory();
   27438             :     }
   27439        1264 :     if (p->error_indicator) {
   27440           0 :         p->level--;
   27441           0 :         return NULL;
   27442             :     }
   27443        1264 :     void *_res = NULL;
   27444        1264 :     int _mark = p->mark;
   27445        1264 :     int _start_mark = p->mark;
   27446        1264 :     void **_children = PyMem_Malloc(sizeof(void *));
   27447        1264 :     if (!_children) {
   27448           0 :         p->error_indicator = 1;
   27449           0 :         PyErr_NoMemory();
   27450           0 :         p->level--;
   27451           0 :         return NULL;
   27452             :     }
   27453        1264 :     Py_ssize_t _children_capacity = 1;
   27454        1264 :     Py_ssize_t _n = 0;
   27455             :     { // case_block
   27456        1264 :         if (p->error_indicator) {
   27457           0 :             p->level--;
   27458           0 :             return NULL;
   27459             :         }
   27460        1264 :         D(fprintf(stderr, "%*c> _loop1_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
   27461             :         match_case_ty case_block_var;
   27462        4303 :         while (
   27463        3039 :             (case_block_var = case_block_rule(p))  // case_block
   27464             :         )
   27465             :         {
   27466        1775 :             _res = case_block_var;
   27467        1775 :             if (_n == _children_capacity) {
   27468         512 :                 _children_capacity *= 2;
   27469         512 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   27470         512 :                 if (!_new_children) {
   27471           0 :                     p->error_indicator = 1;
   27472           0 :                     PyErr_NoMemory();
   27473           0 :                     p->level--;
   27474           0 :                     return NULL;
   27475             :                 }
   27476         512 :                 _children = _new_children;
   27477             :             }
   27478        1775 :             _children[_n++] = _res;
   27479        1775 :             _mark = p->mark;
   27480             :         }
   27481        1264 :         p->mark = _mark;
   27482        1264 :         D(fprintf(stderr, "%*c%s _loop1_64[%d-%d]: %s failed!\n", p->level, ' ',
   27483             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
   27484             :     }
   27485        1264 :     if (_n == 0 || p->error_indicator) {
   27486          45 :         PyMem_Free(_children);
   27487          45 :         p->level--;
   27488          45 :         return NULL;
   27489             :     }
   27490        1219 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   27491        1219 :     if (!_seq) {
   27492           0 :         PyMem_Free(_children);
   27493           0 :         p->error_indicator = 1;
   27494           0 :         PyErr_NoMemory();
   27495           0 :         p->level--;
   27496           0 :         return NULL;
   27497             :     }
   27498        2993 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   27499        1219 :     PyMem_Free(_children);
   27500        1219 :     _PyPegen_insert_memo(p, _start_mark, _loop1_64_type, _seq);
   27501        1219 :     p->level--;
   27502        1219 :     return _seq;
   27503             : }
   27504             : 
   27505             : // _loop0_66: '|' closed_pattern
   27506             : static asdl_seq *
   27507       12593 : _loop0_66_rule(Parser *p)
   27508             : {
   27509       12593 :     if (p->level++ == MAXSTACK) {
   27510           0 :         p->error_indicator = 1;
   27511           0 :         PyErr_NoMemory();
   27512             :     }
   27513       12593 :     if (p->error_indicator) {
   27514           0 :         p->level--;
   27515           0 :         return NULL;
   27516             :     }
   27517       12593 :     void *_res = NULL;
   27518       12593 :     int _mark = p->mark;
   27519       12593 :     int _start_mark = p->mark;
   27520       12593 :     void **_children = PyMem_Malloc(sizeof(void *));
   27521       12593 :     if (!_children) {
   27522           0 :         p->error_indicator = 1;
   27523           0 :         PyErr_NoMemory();
   27524           0 :         p->level--;
   27525           0 :         return NULL;
   27526             :     }
   27527       12593 :     Py_ssize_t _children_capacity = 1;
   27528       12593 :     Py_ssize_t _n = 0;
   27529             :     { // '|' closed_pattern
   27530       12593 :         if (p->error_indicator) {
   27531           0 :             p->level--;
   27532           0 :             return NULL;
   27533             :         }
   27534       12593 :         D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
   27535             :         Token * _literal;
   27536             :         pattern_ty elem;
   27537       26414 :         while (
   27538       13821 :             (_literal = _PyPegen_expect_token(p, 18))  // token='|'
   27539        1228 :             &&
   27540        1228 :             (elem = closed_pattern_rule(p))  // closed_pattern
   27541             :         )
   27542             :         {
   27543        1228 :             _res = elem;
   27544        1228 :             if (_res == NULL && PyErr_Occurred()) {
   27545           0 :                 p->error_indicator = 1;
   27546           0 :                 PyMem_Free(_children);
   27547           0 :                 p->level--;
   27548           0 :                 return NULL;
   27549             :             }
   27550        1228 :             if (_n == _children_capacity) {
   27551         506 :                 _children_capacity *= 2;
   27552         506 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   27553         506 :                 if (!_new_children) {
   27554           0 :                     p->error_indicator = 1;
   27555           0 :                     PyErr_NoMemory();
   27556           0 :                     p->level--;
   27557           0 :                     return NULL;
   27558             :                 }
   27559         506 :                 _children = _new_children;
   27560             :             }
   27561        1228 :             _children[_n++] = _res;
   27562        1228 :             _mark = p->mark;
   27563             :         }
   27564       12593 :         p->mark = _mark;
   27565       12593 :         D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
   27566             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
   27567             :     }
   27568       12593 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   27569       12593 :     if (!_seq) {
   27570           0 :         PyMem_Free(_children);
   27571           0 :         p->error_indicator = 1;
   27572           0 :         PyErr_NoMemory();
   27573           0 :         p->level--;
   27574           0 :         return NULL;
   27575             :     }
   27576       13821 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   27577       12593 :     PyMem_Free(_children);
   27578       12593 :     _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
   27579       12593 :     p->level--;
   27580       12593 :     return _seq;
   27581             : }
   27582             : 
   27583             : // _gather_65: closed_pattern _loop0_66
   27584             : static asdl_seq *
   27585       13457 : _gather_65_rule(Parser *p)
   27586             : {
   27587       13457 :     if (p->level++ == MAXSTACK) {
   27588           0 :         p->error_indicator = 1;
   27589           0 :         PyErr_NoMemory();
   27590             :     }
   27591       13457 :     if (p->error_indicator) {
   27592           0 :         p->level--;
   27593           0 :         return NULL;
   27594             :     }
   27595       13457 :     asdl_seq * _res = NULL;
   27596       13457 :     int _mark = p->mark;
   27597             :     { // closed_pattern _loop0_66
   27598       13457 :         if (p->error_indicator) {
   27599           0 :             p->level--;
   27600           0 :             return NULL;
   27601             :         }
   27602       13457 :         D(fprintf(stderr, "%*c> _gather_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_66"));
   27603             :         pattern_ty elem;
   27604             :         asdl_seq * seq;
   27605       13457 :         if (
   27606       13457 :             (elem = closed_pattern_rule(p))  // closed_pattern
   27607       12593 :             &&
   27608       12593 :             (seq = _loop0_66_rule(p))  // _loop0_66
   27609             :         )
   27610             :         {
   27611       12593 :             D(fprintf(stderr, "%*c+ _gather_65[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_66"));
   27612       12593 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   27613       12593 :             goto done;
   27614             :         }
   27615         864 :         p->mark = _mark;
   27616         864 :         D(fprintf(stderr, "%*c%s _gather_65[%d-%d]: %s failed!\n", p->level, ' ',
   27617             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_66"));
   27618             :     }
   27619         864 :     _res = NULL;
   27620       13457 :   done:
   27621       13457 :     p->level--;
   27622       13457 :     return _res;
   27623             : }
   27624             : 
   27625             : // _tmp_67: '+' | '-'
   27626             : static void *
   27627        1353 : _tmp_67_rule(Parser *p)
   27628             : {
   27629        1353 :     if (p->level++ == MAXSTACK) {
   27630           0 :         p->error_indicator = 1;
   27631           0 :         PyErr_NoMemory();
   27632             :     }
   27633        1353 :     if (p->error_indicator) {
   27634           0 :         p->level--;
   27635           0 :         return NULL;
   27636             :     }
   27637        1353 :     void * _res = NULL;
   27638        1353 :     int _mark = p->mark;
   27639             :     { // '+'
   27640        1353 :         if (p->error_indicator) {
   27641           0 :             p->level--;
   27642           0 :             return NULL;
   27643             :         }
   27644        1353 :         D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
   27645             :         Token * _literal;
   27646        1353 :         if (
   27647        1353 :             (_literal = _PyPegen_expect_token(p, 14))  // token='+'
   27648             :         )
   27649             :         {
   27650          23 :             D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
   27651          23 :             _res = _literal;
   27652          23 :             goto done;
   27653             :         }
   27654        1330 :         p->mark = _mark;
   27655        1330 :         D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
   27656             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
   27657             :     }
   27658             :     { // '-'
   27659        1330 :         if (p->error_indicator) {
   27660           0 :             p->level--;
   27661           0 :             return NULL;
   27662             :         }
   27663        1330 :         D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
   27664             :         Token * _literal;
   27665        1330 :         if (
   27666        1330 :             (_literal = _PyPegen_expect_token(p, 15))  // token='-'
   27667             :         )
   27668             :         {
   27669          20 :             D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
   27670          20 :             _res = _literal;
   27671          20 :             goto done;
   27672             :         }
   27673        1310 :         p->mark = _mark;
   27674        1310 :         D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
   27675             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
   27676             :     }
   27677        1310 :     _res = NULL;
   27678        1353 :   done:
   27679        1353 :     p->level--;
   27680        1353 :     return _res;
   27681             : }
   27682             : 
   27683             : // _tmp_68: '+' | '-'
   27684             : static void *
   27685         581 : _tmp_68_rule(Parser *p)
   27686             : {
   27687         581 :     if (p->level++ == MAXSTACK) {
   27688           0 :         p->error_indicator = 1;
   27689           0 :         PyErr_NoMemory();
   27690             :     }
   27691         581 :     if (p->error_indicator) {
   27692           0 :         p->level--;
   27693           0 :         return NULL;
   27694             :     }
   27695         581 :     void * _res = NULL;
   27696         581 :     int _mark = p->mark;
   27697             :     { // '+'
   27698         581 :         if (p->error_indicator) {
   27699           0 :             p->level--;
   27700           0 :             return NULL;
   27701             :         }
   27702         581 :         D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
   27703             :         Token * _literal;
   27704         581 :         if (
   27705         581 :             (_literal = _PyPegen_expect_token(p, 14))  // token='+'
   27706             :         )
   27707             :         {
   27708           3 :             D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
   27709           3 :             _res = _literal;
   27710           3 :             goto done;
   27711             :         }
   27712         578 :         p->mark = _mark;
   27713         578 :         D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
   27714             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
   27715             :     }
   27716             :     { // '-'
   27717         578 :         if (p->error_indicator) {
   27718           0 :             p->level--;
   27719           0 :             return NULL;
   27720             :         }
   27721         578 :         D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
   27722             :         Token * _literal;
   27723         578 :         if (
   27724         578 :             (_literal = _PyPegen_expect_token(p, 15))  // token='-'
   27725             :         )
   27726             :         {
   27727           8 :             D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
   27728           8 :             _res = _literal;
   27729           8 :             goto done;
   27730             :         }
   27731         570 :         p->mark = _mark;
   27732         570 :         D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
   27733             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
   27734             :     }
   27735         570 :     _res = NULL;
   27736         581 :   done:
   27737         581 :     p->level--;
   27738         581 :     return _res;
   27739             : }
   27740             : 
   27741             : // _tmp_69: '.' | '(' | '='
   27742             : static void *
   27743        1807 : _tmp_69_rule(Parser *p)
   27744             : {
   27745        1807 :     if (p->level++ == MAXSTACK) {
   27746           0 :         p->error_indicator = 1;
   27747           0 :         PyErr_NoMemory();
   27748             :     }
   27749        1807 :     if (p->error_indicator) {
   27750           0 :         p->level--;
   27751           0 :         return NULL;
   27752             :     }
   27753        1807 :     void * _res = NULL;
   27754        1807 :     int _mark = p->mark;
   27755             :     { // '.'
   27756        1807 :         if (p->error_indicator) {
   27757           0 :             p->level--;
   27758           0 :             return NULL;
   27759             :         }
   27760        1807 :         D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
   27761             :         Token * _literal;
   27762        1807 :         if (
   27763        1807 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   27764             :         )
   27765             :         {
   27766         111 :             D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
   27767         111 :             _res = _literal;
   27768         111 :             goto done;
   27769             :         }
   27770        1696 :         p->mark = _mark;
   27771        1696 :         D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
   27772             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
   27773             :     }
   27774             :     { // '('
   27775        1696 :         if (p->error_indicator) {
   27776           0 :             p->level--;
   27777           0 :             return NULL;
   27778             :         }
   27779        1696 :         D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
   27780             :         Token * _literal;
   27781        1696 :         if (
   27782        1696 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   27783             :         )
   27784             :         {
   27785         245 :             D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
   27786         245 :             _res = _literal;
   27787         245 :             goto done;
   27788             :         }
   27789        1451 :         p->mark = _mark;
   27790        1451 :         D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
   27791             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
   27792             :     }
   27793             :     { // '='
   27794        1451 :         if (p->error_indicator) {
   27795           0 :             p->level--;
   27796           0 :             return NULL;
   27797             :         }
   27798        1451 :         D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
   27799             :         Token * _literal;
   27800        1451 :         if (
   27801        1451 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   27802             :         )
   27803             :         {
   27804          73 :             D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
   27805          73 :             _res = _literal;
   27806          73 :             goto done;
   27807             :         }
   27808        1378 :         p->mark = _mark;
   27809        1378 :         D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
   27810             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
   27811             :     }
   27812        1378 :     _res = NULL;
   27813        1807 :   done:
   27814        1807 :     p->level--;
   27815        1807 :     return _res;
   27816             : }
   27817             : 
   27818             : // _tmp_70: '.' | '(' | '='
   27819             : static void *
   27820         111 : _tmp_70_rule(Parser *p)
   27821             : {
   27822         111 :     if (p->level++ == MAXSTACK) {
   27823           0 :         p->error_indicator = 1;
   27824           0 :         PyErr_NoMemory();
   27825             :     }
   27826         111 :     if (p->error_indicator) {
   27827           0 :         p->level--;
   27828           0 :         return NULL;
   27829             :     }
   27830         111 :     void * _res = NULL;
   27831         111 :     int _mark = p->mark;
   27832             :     { // '.'
   27833         111 :         if (p->error_indicator) {
   27834           0 :             p->level--;
   27835           0 :             return NULL;
   27836             :         }
   27837         111 :         D(fprintf(stderr, "%*c> _tmp_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
   27838             :         Token * _literal;
   27839         111 :         if (
   27840         111 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   27841             :         )
   27842             :         {
   27843           0 :             D(fprintf(stderr, "%*c+ _tmp_70[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
   27844           0 :             _res = _literal;
   27845           0 :             goto done;
   27846             :         }
   27847         111 :         p->mark = _mark;
   27848         111 :         D(fprintf(stderr, "%*c%s _tmp_70[%d-%d]: %s failed!\n", p->level, ' ',
   27849             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
   27850             :     }
   27851             :     { // '('
   27852         111 :         if (p->error_indicator) {
   27853           0 :             p->level--;
   27854           0 :             return NULL;
   27855             :         }
   27856         111 :         D(fprintf(stderr, "%*c> _tmp_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
   27857             :         Token * _literal;
   27858         111 :         if (
   27859         111 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   27860             :         )
   27861             :         {
   27862          51 :             D(fprintf(stderr, "%*c+ _tmp_70[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
   27863          51 :             _res = _literal;
   27864          51 :             goto done;
   27865             :         }
   27866          60 :         p->mark = _mark;
   27867          60 :         D(fprintf(stderr, "%*c%s _tmp_70[%d-%d]: %s failed!\n", p->level, ' ',
   27868             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
   27869             :     }
   27870             :     { // '='
   27871          60 :         if (p->error_indicator) {
   27872           0 :             p->level--;
   27873           0 :             return NULL;
   27874             :         }
   27875          60 :         D(fprintf(stderr, "%*c> _tmp_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
   27876             :         Token * _literal;
   27877          60 :         if (
   27878          60 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   27879             :         )
   27880             :         {
   27881           0 :             D(fprintf(stderr, "%*c+ _tmp_70[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
   27882           0 :             _res = _literal;
   27883           0 :             goto done;
   27884             :         }
   27885          60 :         p->mark = _mark;
   27886          60 :         D(fprintf(stderr, "%*c%s _tmp_70[%d-%d]: %s failed!\n", p->level, ' ',
   27887             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
   27888             :     }
   27889          60 :     _res = NULL;
   27890         111 :   done:
   27891         111 :     p->level--;
   27892         111 :     return _res;
   27893             : }
   27894             : 
   27895             : // _loop0_72: ',' maybe_star_pattern
   27896             : static asdl_seq *
   27897         622 : _loop0_72_rule(Parser *p)
   27898             : {
   27899         622 :     if (p->level++ == MAXSTACK) {
   27900           0 :         p->error_indicator = 1;
   27901           0 :         PyErr_NoMemory();
   27902             :     }
   27903         622 :     if (p->error_indicator) {
   27904           0 :         p->level--;
   27905           0 :         return NULL;
   27906             :     }
   27907         622 :     void *_res = NULL;
   27908         622 :     int _mark = p->mark;
   27909         622 :     int _start_mark = p->mark;
   27910         622 :     void **_children = PyMem_Malloc(sizeof(void *));
   27911         622 :     if (!_children) {
   27912           0 :         p->error_indicator = 1;
   27913           0 :         PyErr_NoMemory();
   27914           0 :         p->level--;
   27915           0 :         return NULL;
   27916             :     }
   27917         622 :     Py_ssize_t _children_capacity = 1;
   27918         622 :     Py_ssize_t _n = 0;
   27919             :     { // ',' maybe_star_pattern
   27920         622 :         if (p->error_indicator) {
   27921           0 :             p->level--;
   27922           0 :             return NULL;
   27923             :         }
   27924         622 :         D(fprintf(stderr, "%*c> _loop0_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern"));
   27925             :         Token * _literal;
   27926             :         pattern_ty elem;
   27927        1988 :         while (
   27928        1366 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   27929         771 :             &&
   27930         771 :             (elem = maybe_star_pattern_rule(p))  // maybe_star_pattern
   27931             :         )
   27932             :         {
   27933         744 :             _res = elem;
   27934         744 :             if (_res == NULL && PyErr_Occurred()) {
   27935           0 :                 p->error_indicator = 1;
   27936           0 :                 PyMem_Free(_children);
   27937           0 :                 p->level--;
   27938           0 :                 return NULL;
   27939             :             }
   27940         744 :             if (_n == _children_capacity) {
   27941         272 :                 _children_capacity *= 2;
   27942         272 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   27943         272 :                 if (!_new_children) {
   27944           0 :                     p->error_indicator = 1;
   27945           0 :                     PyErr_NoMemory();
   27946           0 :                     p->level--;
   27947           0 :                     return NULL;
   27948             :                 }
   27949         272 :                 _children = _new_children;
   27950             :             }
   27951         744 :             _children[_n++] = _res;
   27952         744 :             _mark = p->mark;
   27953             :         }
   27954         622 :         p->mark = _mark;
   27955         622 :         D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
   27956             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
   27957             :     }
   27958         622 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   27959         622 :     if (!_seq) {
   27960           0 :         PyMem_Free(_children);
   27961           0 :         p->error_indicator = 1;
   27962           0 :         PyErr_NoMemory();
   27963           0 :         p->level--;
   27964           0 :         return NULL;
   27965             :     }
   27966        1366 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   27967         622 :     PyMem_Free(_children);
   27968         622 :     _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
   27969         622 :     p->level--;
   27970         622 :     return _seq;
   27971             : }
   27972             : 
   27973             : // _gather_71: maybe_star_pattern _loop0_72
   27974             : static asdl_seq *
   27975         748 : _gather_71_rule(Parser *p)
   27976             : {
   27977         748 :     if (p->level++ == MAXSTACK) {
   27978           0 :         p->error_indicator = 1;
   27979           0 :         PyErr_NoMemory();
   27980             :     }
   27981         748 :     if (p->error_indicator) {
   27982           0 :         p->level--;
   27983           0 :         return NULL;
   27984             :     }
   27985         748 :     asdl_seq * _res = NULL;
   27986         748 :     int _mark = p->mark;
   27987             :     { // maybe_star_pattern _loop0_72
   27988         748 :         if (p->error_indicator) {
   27989           0 :             p->level--;
   27990           0 :             return NULL;
   27991             :         }
   27992         748 :         D(fprintf(stderr, "%*c> _gather_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_72"));
   27993             :         pattern_ty elem;
   27994             :         asdl_seq * seq;
   27995         748 :         if (
   27996         748 :             (elem = maybe_star_pattern_rule(p))  // maybe_star_pattern
   27997         622 :             &&
   27998         622 :             (seq = _loop0_72_rule(p))  // _loop0_72
   27999             :         )
   28000             :         {
   28001         622 :             D(fprintf(stderr, "%*c+ _gather_71[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_72"));
   28002         622 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   28003         622 :             goto done;
   28004             :         }
   28005         126 :         p->mark = _mark;
   28006         126 :         D(fprintf(stderr, "%*c%s _gather_71[%d-%d]: %s failed!\n", p->level, ' ',
   28007             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_72"));
   28008             :     }
   28009         126 :     _res = NULL;
   28010         748 :   done:
   28011         748 :     p->level--;
   28012         748 :     return _res;
   28013             : }
   28014             : 
   28015             : // _loop0_74: ',' key_value_pattern
   28016             : static asdl_seq *
   28017         622 : _loop0_74_rule(Parser *p)
   28018             : {
   28019         622 :     if (p->level++ == MAXSTACK) {
   28020           0 :         p->error_indicator = 1;
   28021           0 :         PyErr_NoMemory();
   28022             :     }
   28023         622 :     if (p->error_indicator) {
   28024           0 :         p->level--;
   28025           0 :         return NULL;
   28026             :     }
   28027         622 :     void *_res = NULL;
   28028         622 :     int _mark = p->mark;
   28029         622 :     int _start_mark = p->mark;
   28030         622 :     void **_children = PyMem_Malloc(sizeof(void *));
   28031         622 :     if (!_children) {
   28032           0 :         p->error_indicator = 1;
   28033           0 :         PyErr_NoMemory();
   28034           0 :         p->level--;
   28035           0 :         return NULL;
   28036             :     }
   28037         622 :     Py_ssize_t _children_capacity = 1;
   28038         622 :     Py_ssize_t _n = 0;
   28039             :     { // ',' key_value_pattern
   28040         622 :         if (p->error_indicator) {
   28041           0 :             p->level--;
   28042           0 :             return NULL;
   28043             :         }
   28044         622 :         D(fprintf(stderr, "%*c> _loop0_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
   28045             :         Token * _literal;
   28046             :         KeyPatternPair* elem;
   28047        1384 :         while (
   28048         762 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   28049         164 :             &&
   28050         164 :             (elem = key_value_pattern_rule(p))  // key_value_pattern
   28051             :         )
   28052             :         {
   28053         140 :             _res = elem;
   28054         140 :             if (_res == NULL && PyErr_Occurred()) {
   28055           0 :                 p->error_indicator = 1;
   28056           0 :                 PyMem_Free(_children);
   28057           0 :                 p->level--;
   28058           0 :                 return NULL;
   28059             :             }
   28060         140 :             if (_n == _children_capacity) {
   28061          24 :                 _children_capacity *= 2;
   28062          24 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   28063          24 :                 if (!_new_children) {
   28064           0 :                     p->error_indicator = 1;
   28065           0 :                     PyErr_NoMemory();
   28066           0 :                     p->level--;
   28067           0 :                     return NULL;
   28068             :                 }
   28069          24 :                 _children = _new_children;
   28070             :             }
   28071         140 :             _children[_n++] = _res;
   28072         140 :             _mark = p->mark;
   28073             :         }
   28074         622 :         p->mark = _mark;
   28075         622 :         D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
   28076             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
   28077             :     }
   28078         622 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28079         622 :     if (!_seq) {
   28080           0 :         PyMem_Free(_children);
   28081           0 :         p->error_indicator = 1;
   28082           0 :         PyErr_NoMemory();
   28083           0 :         p->level--;
   28084           0 :         return NULL;
   28085             :     }
   28086         762 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28087         622 :     PyMem_Free(_children);
   28088         622 :     _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
   28089         622 :     p->level--;
   28090         622 :     return _seq;
   28091             : }
   28092             : 
   28093             : // _gather_73: key_value_pattern _loop0_74
   28094             : static asdl_seq *
   28095         645 : _gather_73_rule(Parser *p)
   28096             : {
   28097         645 :     if (p->level++ == MAXSTACK) {
   28098           0 :         p->error_indicator = 1;
   28099           0 :         PyErr_NoMemory();
   28100             :     }
   28101         645 :     if (p->error_indicator) {
   28102           0 :         p->level--;
   28103           0 :         return NULL;
   28104             :     }
   28105         645 :     asdl_seq * _res = NULL;
   28106         645 :     int _mark = p->mark;
   28107             :     { // key_value_pattern _loop0_74
   28108         645 :         if (p->error_indicator) {
   28109           0 :             p->level--;
   28110           0 :             return NULL;
   28111             :         }
   28112         645 :         D(fprintf(stderr, "%*c> _gather_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_74"));
   28113             :         KeyPatternPair* elem;
   28114             :         asdl_seq * seq;
   28115         645 :         if (
   28116         645 :             (elem = key_value_pattern_rule(p))  // key_value_pattern
   28117         622 :             &&
   28118         622 :             (seq = _loop0_74_rule(p))  // _loop0_74
   28119             :         )
   28120             :         {
   28121         622 :             D(fprintf(stderr, "%*c+ _gather_73[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_74"));
   28122         622 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   28123         622 :             goto done;
   28124             :         }
   28125          23 :         p->mark = _mark;
   28126          23 :         D(fprintf(stderr, "%*c%s _gather_73[%d-%d]: %s failed!\n", p->level, ' ',
   28127             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_74"));
   28128             :     }
   28129          23 :     _res = NULL;
   28130         645 :   done:
   28131         645 :     p->level--;
   28132         645 :     return _res;
   28133             : }
   28134             : 
   28135             : // _tmp_75: literal_expr | attr
   28136             : static void *
   28137         809 : _tmp_75_rule(Parser *p)
   28138             : {
   28139         809 :     if (p->level++ == MAXSTACK) {
   28140           0 :         p->error_indicator = 1;
   28141           0 :         PyErr_NoMemory();
   28142             :     }
   28143         809 :     if (p->error_indicator) {
   28144           0 :         p->level--;
   28145           0 :         return NULL;
   28146             :     }
   28147         809 :     void * _res = NULL;
   28148         809 :     int _mark = p->mark;
   28149             :     { // literal_expr
   28150         809 :         if (p->error_indicator) {
   28151           0 :             p->level--;
   28152           0 :             return NULL;
   28153             :         }
   28154         809 :         D(fprintf(stderr, "%*c> _tmp_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
   28155             :         expr_ty literal_expr_var;
   28156         809 :         if (
   28157         809 :             (literal_expr_var = literal_expr_rule(p))  // literal_expr
   28158             :         )
   28159             :         {
   28160         754 :             D(fprintf(stderr, "%*c+ _tmp_75[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
   28161         754 :             _res = literal_expr_var;
   28162         754 :             goto done;
   28163             :         }
   28164          55 :         p->mark = _mark;
   28165          55 :         D(fprintf(stderr, "%*c%s _tmp_75[%d-%d]: %s failed!\n", p->level, ' ',
   28166             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
   28167             :     }
   28168             :     { // attr
   28169          55 :         if (p->error_indicator) {
   28170           3 :             p->level--;
   28171           3 :             return NULL;
   28172             :         }
   28173          52 :         D(fprintf(stderr, "%*c> _tmp_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
   28174             :         expr_ty attr_var;
   28175          52 :         if (
   28176          52 :             (attr_var = attr_rule(p))  // attr
   28177             :         )
   28178             :         {
   28179           8 :             D(fprintf(stderr, "%*c+ _tmp_75[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
   28180           8 :             _res = attr_var;
   28181           8 :             goto done;
   28182             :         }
   28183          44 :         p->mark = _mark;
   28184          44 :         D(fprintf(stderr, "%*c%s _tmp_75[%d-%d]: %s failed!\n", p->level, ' ',
   28185             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
   28186             :     }
   28187          44 :     _res = NULL;
   28188         806 :   done:
   28189         806 :     p->level--;
   28190         806 :     return _res;
   28191             : }
   28192             : 
   28193             : // _loop0_77: ',' pattern
   28194             : static asdl_seq *
   28195         276 : _loop0_77_rule(Parser *p)
   28196             : {
   28197         276 :     if (p->level++ == MAXSTACK) {
   28198           0 :         p->error_indicator = 1;
   28199           0 :         PyErr_NoMemory();
   28200             :     }
   28201         276 :     if (p->error_indicator) {
   28202           0 :         p->level--;
   28203           0 :         return NULL;
   28204             :     }
   28205         276 :     void *_res = NULL;
   28206         276 :     int _mark = p->mark;
   28207         276 :     int _start_mark = p->mark;
   28208         276 :     void **_children = PyMem_Malloc(sizeof(void *));
   28209         276 :     if (!_children) {
   28210           0 :         p->error_indicator = 1;
   28211           0 :         PyErr_NoMemory();
   28212           0 :         p->level--;
   28213           0 :         return NULL;
   28214             :     }
   28215         276 :     Py_ssize_t _children_capacity = 1;
   28216         276 :     Py_ssize_t _n = 0;
   28217             :     { // ',' pattern
   28218         276 :         if (p->error_indicator) {
   28219           0 :             p->level--;
   28220           0 :             return NULL;
   28221             :         }
   28222         276 :         D(fprintf(stderr, "%*c> _loop0_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
   28223             :         Token * _literal;
   28224             :         pattern_ty elem;
   28225         649 :         while (
   28226         373 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   28227         186 :             &&
   28228         186 :             (elem = pattern_rule(p))  // pattern
   28229             :         )
   28230             :         {
   28231          97 :             _res = elem;
   28232          97 :             if (_res == NULL && PyErr_Occurred()) {
   28233           0 :                 p->error_indicator = 1;
   28234           0 :                 PyMem_Free(_children);
   28235           0 :                 p->level--;
   28236           0 :                 return NULL;
   28237             :             }
   28238          97 :             if (_n == _children_capacity) {
   28239           8 :                 _children_capacity *= 2;
   28240           8 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   28241           8 :                 if (!_new_children) {
   28242           0 :                     p->error_indicator = 1;
   28243           0 :                     PyErr_NoMemory();
   28244           0 :                     p->level--;
   28245           0 :                     return NULL;
   28246             :                 }
   28247           8 :                 _children = _new_children;
   28248             :             }
   28249          97 :             _children[_n++] = _res;
   28250          97 :             _mark = p->mark;
   28251             :         }
   28252         276 :         p->mark = _mark;
   28253         276 :         D(fprintf(stderr, "%*c%s _loop0_77[%d-%d]: %s failed!\n", p->level, ' ',
   28254             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
   28255             :     }
   28256         276 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28257         276 :     if (!_seq) {
   28258           0 :         PyMem_Free(_children);
   28259           0 :         p->error_indicator = 1;
   28260           0 :         PyErr_NoMemory();
   28261           0 :         p->level--;
   28262           0 :         return NULL;
   28263             :     }
   28264         373 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28265         276 :     PyMem_Free(_children);
   28266         276 :     _PyPegen_insert_memo(p, _start_mark, _loop0_77_type, _seq);
   28267         276 :     p->level--;
   28268         276 :     return _seq;
   28269             : }
   28270             : 
   28271             : // _gather_76: pattern _loop0_77
   28272             : static asdl_seq *
   28273         313 : _gather_76_rule(Parser *p)
   28274             : {
   28275         313 :     if (p->level++ == MAXSTACK) {
   28276           0 :         p->error_indicator = 1;
   28277           0 :         PyErr_NoMemory();
   28278             :     }
   28279         313 :     if (p->error_indicator) {
   28280           0 :         p->level--;
   28281           0 :         return NULL;
   28282             :     }
   28283         313 :     asdl_seq * _res = NULL;
   28284         313 :     int _mark = p->mark;
   28285             :     { // pattern _loop0_77
   28286         313 :         if (p->error_indicator) {
   28287           0 :             p->level--;
   28288           0 :             return NULL;
   28289             :         }
   28290         313 :         D(fprintf(stderr, "%*c> _gather_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_77"));
   28291             :         pattern_ty elem;
   28292             :         asdl_seq * seq;
   28293         313 :         if (
   28294         313 :             (elem = pattern_rule(p))  // pattern
   28295         276 :             &&
   28296         276 :             (seq = _loop0_77_rule(p))  // _loop0_77
   28297             :         )
   28298             :         {
   28299         276 :             D(fprintf(stderr, "%*c+ _gather_76[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_77"));
   28300         276 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   28301         276 :             goto done;
   28302             :         }
   28303          37 :         p->mark = _mark;
   28304          37 :         D(fprintf(stderr, "%*c%s _gather_76[%d-%d]: %s failed!\n", p->level, ' ',
   28305             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_77"));
   28306             :     }
   28307          37 :     _res = NULL;
   28308         313 :   done:
   28309         313 :     p->level--;
   28310         313 :     return _res;
   28311             : }
   28312             : 
   28313             : // _loop0_79: ',' keyword_pattern
   28314             : static asdl_seq *
   28315          75 : _loop0_79_rule(Parser *p)
   28316             : {
   28317          75 :     if (p->level++ == MAXSTACK) {
   28318           0 :         p->error_indicator = 1;
   28319           0 :         PyErr_NoMemory();
   28320             :     }
   28321          75 :     if (p->error_indicator) {
   28322           0 :         p->level--;
   28323           0 :         return NULL;
   28324             :     }
   28325          75 :     void *_res = NULL;
   28326          75 :     int _mark = p->mark;
   28327          75 :     int _start_mark = p->mark;
   28328          75 :     void **_children = PyMem_Malloc(sizeof(void *));
   28329          75 :     if (!_children) {
   28330           0 :         p->error_indicator = 1;
   28331           0 :         PyErr_NoMemory();
   28332           0 :         p->level--;
   28333           0 :         return NULL;
   28334             :     }
   28335          75 :     Py_ssize_t _children_capacity = 1;
   28336          75 :     Py_ssize_t _n = 0;
   28337             :     { // ',' keyword_pattern
   28338          75 :         if (p->error_indicator) {
   28339           0 :             p->level--;
   28340           0 :             return NULL;
   28341             :         }
   28342          75 :         D(fprintf(stderr, "%*c> _loop0_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
   28343             :         Token * _literal;
   28344             :         KeyPatternPair* elem;
   28345         194 :         while (
   28346         119 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   28347          56 :             &&
   28348          56 :             (elem = keyword_pattern_rule(p))  // keyword_pattern
   28349             :         )
   28350             :         {
   28351          44 :             _res = elem;
   28352          44 :             if (_res == NULL && PyErr_Occurred()) {
   28353           0 :                 p->error_indicator = 1;
   28354           0 :                 PyMem_Free(_children);
   28355           0 :                 p->level--;
   28356           0 :                 return NULL;
   28357             :             }
   28358          44 :             if (_n == _children_capacity) {
   28359           8 :                 _children_capacity *= 2;
   28360           8 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   28361           8 :                 if (!_new_children) {
   28362           0 :                     p->error_indicator = 1;
   28363           0 :                     PyErr_NoMemory();
   28364           0 :                     p->level--;
   28365           0 :                     return NULL;
   28366             :                 }
   28367           8 :                 _children = _new_children;
   28368             :             }
   28369          44 :             _children[_n++] = _res;
   28370          44 :             _mark = p->mark;
   28371             :         }
   28372          75 :         p->mark = _mark;
   28373          75 :         D(fprintf(stderr, "%*c%s _loop0_79[%d-%d]: %s failed!\n", p->level, ' ',
   28374             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
   28375             :     }
   28376          75 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28377          75 :     if (!_seq) {
   28378           0 :         PyMem_Free(_children);
   28379           0 :         p->error_indicator = 1;
   28380           0 :         PyErr_NoMemory();
   28381           0 :         p->level--;
   28382           0 :         return NULL;
   28383             :     }
   28384         119 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28385          75 :     PyMem_Free(_children);
   28386          75 :     _PyPegen_insert_memo(p, _start_mark, _loop0_79_type, _seq);
   28387          75 :     p->level--;
   28388          75 :     return _seq;
   28389             : }
   28390             : 
   28391             : // _gather_78: keyword_pattern _loop0_79
   28392             : static asdl_seq *
   28393         118 : _gather_78_rule(Parser *p)
   28394             : {
   28395         118 :     if (p->level++ == MAXSTACK) {
   28396           0 :         p->error_indicator = 1;
   28397           0 :         PyErr_NoMemory();
   28398             :     }
   28399         118 :     if (p->error_indicator) {
   28400           0 :         p->level--;
   28401           0 :         return NULL;
   28402             :     }
   28403         118 :     asdl_seq * _res = NULL;
   28404         118 :     int _mark = p->mark;
   28405             :     { // keyword_pattern _loop0_79
   28406         118 :         if (p->error_indicator) {
   28407           0 :             p->level--;
   28408           0 :             return NULL;
   28409             :         }
   28410         118 :         D(fprintf(stderr, "%*c> _gather_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_79"));
   28411             :         KeyPatternPair* elem;
   28412             :         asdl_seq * seq;
   28413         118 :         if (
   28414         118 :             (elem = keyword_pattern_rule(p))  // keyword_pattern
   28415          75 :             &&
   28416          75 :             (seq = _loop0_79_rule(p))  // _loop0_79
   28417             :         )
   28418             :         {
   28419          75 :             D(fprintf(stderr, "%*c+ _gather_78[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_79"));
   28420          75 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   28421          75 :             goto done;
   28422             :         }
   28423          43 :         p->mark = _mark;
   28424          43 :         D(fprintf(stderr, "%*c%s _gather_78[%d-%d]: %s failed!\n", p->level, ' ',
   28425             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_79"));
   28426             :     }
   28427          43 :     _res = NULL;
   28428         118 :   done:
   28429         118 :     p->level--;
   28430         118 :     return _res;
   28431             : }
   28432             : 
   28433             : // _loop1_80: (',' expression)
   28434             : static asdl_seq *
   28435       73442 : _loop1_80_rule(Parser *p)
   28436             : {
   28437       73442 :     if (p->level++ == MAXSTACK) {
   28438           0 :         p->error_indicator = 1;
   28439           0 :         PyErr_NoMemory();
   28440             :     }
   28441       73442 :     if (p->error_indicator) {
   28442           0 :         p->level--;
   28443           0 :         return NULL;
   28444             :     }
   28445       73442 :     void *_res = NULL;
   28446       73442 :     int _mark = p->mark;
   28447       73442 :     int _start_mark = p->mark;
   28448       73442 :     void **_children = PyMem_Malloc(sizeof(void *));
   28449       73442 :     if (!_children) {
   28450           0 :         p->error_indicator = 1;
   28451           0 :         PyErr_NoMemory();
   28452           0 :         p->level--;
   28453           0 :         return NULL;
   28454             :     }
   28455       73442 :     Py_ssize_t _children_capacity = 1;
   28456       73442 :     Py_ssize_t _n = 0;
   28457             :     { // (',' expression)
   28458       73442 :         if (p->error_indicator) {
   28459           0 :             p->level--;
   28460           0 :             return NULL;
   28461             :         }
   28462       73442 :         D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
   28463             :         void *_tmp_223_var;
   28464      588106 :         while (
   28465      514664 :             (_tmp_223_var = _tmp_223_rule(p))  // ',' expression
   28466             :         )
   28467             :         {
   28468      441222 :             _res = _tmp_223_var;
   28469      441222 :             if (_n == _children_capacity) {
   28470         297 :                 _children_capacity *= 2;
   28471         297 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   28472         297 :                 if (!_new_children) {
   28473           0 :                     p->error_indicator = 1;
   28474           0 :                     PyErr_NoMemory();
   28475           0 :                     p->level--;
   28476           0 :                     return NULL;
   28477             :                 }
   28478         297 :                 _children = _new_children;
   28479             :             }
   28480      441222 :             _children[_n++] = _res;
   28481      441222 :             _mark = p->mark;
   28482             :         }
   28483       73442 :         p->mark = _mark;
   28484       73442 :         D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ',
   28485             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
   28486             :     }
   28487       73442 :     if (_n == 0 || p->error_indicator) {
   28488       73225 :         PyMem_Free(_children);
   28489       73225 :         p->level--;
   28490       73225 :         return NULL;
   28491             :     }
   28492         217 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28493         217 :     if (!_seq) {
   28494           0 :         PyMem_Free(_children);
   28495           0 :         p->error_indicator = 1;
   28496           0 :         PyErr_NoMemory();
   28497           0 :         p->level--;
   28498           0 :         return NULL;
   28499             :     }
   28500      441439 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28501         217 :     PyMem_Free(_children);
   28502         217 :     _PyPegen_insert_memo(p, _start_mark, _loop1_80_type, _seq);
   28503         217 :     p->level--;
   28504         217 :     return _seq;
   28505             : }
   28506             : 
   28507             : // _loop1_81: (',' star_expression)
   28508             : static asdl_seq *
   28509     2105940 : _loop1_81_rule(Parser *p)
   28510             : {
   28511     2105940 :     if (p->level++ == MAXSTACK) {
   28512           0 :         p->error_indicator = 1;
   28513           0 :         PyErr_NoMemory();
   28514             :     }
   28515     2105940 :     if (p->error_indicator) {
   28516           0 :         p->level--;
   28517           0 :         return NULL;
   28518             :     }
   28519     2105940 :     void *_res = NULL;
   28520     2105940 :     int _mark = p->mark;
   28521     2105940 :     int _start_mark = p->mark;
   28522     2105940 :     void **_children = PyMem_Malloc(sizeof(void *));
   28523     2105940 :     if (!_children) {
   28524           0 :         p->error_indicator = 1;
   28525           0 :         PyErr_NoMemory();
   28526           0 :         p->level--;
   28527           0 :         return NULL;
   28528             :     }
   28529     2105940 :     Py_ssize_t _children_capacity = 1;
   28530     2105940 :     Py_ssize_t _n = 0;
   28531             :     { // (',' star_expression)
   28532     2105940 :         if (p->error_indicator) {
   28533           0 :             p->level--;
   28534           0 :             return NULL;
   28535             :         }
   28536     2105940 :         D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
   28537             :         void *_tmp_224_var;
   28538     4240040 :         while (
   28539     2134100 :             (_tmp_224_var = _tmp_224_rule(p))  // ',' star_expression
   28540             :         )
   28541             :         {
   28542       28158 :             _res = _tmp_224_var;
   28543       28158 :             if (_n == _children_capacity) {
   28544        7358 :                 _children_capacity *= 2;
   28545        7358 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   28546        7358 :                 if (!_new_children) {
   28547           0 :                     p->error_indicator = 1;
   28548           0 :                     PyErr_NoMemory();
   28549           0 :                     p->level--;
   28550           0 :                     return NULL;
   28551             :                 }
   28552        7358 :                 _children = _new_children;
   28553             :             }
   28554       28158 :             _children[_n++] = _res;
   28555       28158 :             _mark = p->mark;
   28556             :         }
   28557     2105940 :         p->mark = _mark;
   28558     2105940 :         D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
   28559             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
   28560             :     }
   28561     2105940 :     if (_n == 0 || p->error_indicator) {
   28562     2086270 :         PyMem_Free(_children);
   28563     2086270 :         p->level--;
   28564     2086270 :         return NULL;
   28565             :     }
   28566       19674 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28567       19674 :     if (!_seq) {
   28568           0 :         PyMem_Free(_children);
   28569           0 :         p->error_indicator = 1;
   28570           0 :         PyErr_NoMemory();
   28571           0 :         p->level--;
   28572           0 :         return NULL;
   28573             :     }
   28574       47832 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28575       19674 :     PyMem_Free(_children);
   28576       19674 :     _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
   28577       19674 :     p->level--;
   28578       19674 :     return _seq;
   28579             : }
   28580             : 
   28581             : // _loop0_83: ',' star_named_expression
   28582             : static asdl_seq *
   28583      650587 : _loop0_83_rule(Parser *p)
   28584             : {
   28585      650587 :     if (p->level++ == MAXSTACK) {
   28586           0 :         p->error_indicator = 1;
   28587           0 :         PyErr_NoMemory();
   28588             :     }
   28589      650587 :     if (p->error_indicator) {
   28590           0 :         p->level--;
   28591           0 :         return NULL;
   28592             :     }
   28593      650587 :     void *_res = NULL;
   28594      650587 :     int _mark = p->mark;
   28595      650587 :     int _start_mark = p->mark;
   28596      650587 :     void **_children = PyMem_Malloc(sizeof(void *));
   28597      650587 :     if (!_children) {
   28598           0 :         p->error_indicator = 1;
   28599           0 :         PyErr_NoMemory();
   28600           0 :         p->level--;
   28601           0 :         return NULL;
   28602             :     }
   28603      650587 :     Py_ssize_t _children_capacity = 1;
   28604      650587 :     Py_ssize_t _n = 0;
   28605             :     { // ',' star_named_expression
   28606      650587 :         if (p->error_indicator) {
   28607           0 :             p->level--;
   28608           0 :             return NULL;
   28609             :         }
   28610      650587 :         D(fprintf(stderr, "%*c> _loop0_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression"));
   28611             :         Token * _literal;
   28612             :         expr_ty elem;
   28613     4255850 :         while (
   28614     3605260 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   28615     2977990 :             &&
   28616     2977990 :             (elem = star_named_expression_rule(p))  // star_named_expression
   28617             :         )
   28618             :         {
   28619     2954680 :             _res = elem;
   28620     2954680 :             if (_res == NULL && PyErr_Occurred()) {
   28621           0 :                 p->error_indicator = 1;
   28622           0 :                 PyMem_Free(_children);
   28623           0 :                 p->level--;
   28624           0 :                 return NULL;
   28625             :             }
   28626     2954680 :             if (_n == _children_capacity) {
   28627      340444 :                 _children_capacity *= 2;
   28628      340444 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   28629      340444 :                 if (!_new_children) {
   28630           0 :                     p->error_indicator = 1;
   28631           0 :                     PyErr_NoMemory();
   28632           0 :                     p->level--;
   28633           0 :                     return NULL;
   28634             :                 }
   28635      340444 :                 _children = _new_children;
   28636             :             }
   28637     2954680 :             _children[_n++] = _res;
   28638     2954680 :             _mark = p->mark;
   28639             :         }
   28640      650587 :         p->mark = _mark;
   28641      650587 :         D(fprintf(stderr, "%*c%s _loop0_83[%d-%d]: %s failed!\n", p->level, ' ',
   28642             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
   28643             :     }
   28644      650587 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28645      650587 :     if (!_seq) {
   28646           0 :         PyMem_Free(_children);
   28647           0 :         p->error_indicator = 1;
   28648           0 :         PyErr_NoMemory();
   28649           0 :         p->level--;
   28650           0 :         return NULL;
   28651             :     }
   28652     3605260 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28653      650587 :     PyMem_Free(_children);
   28654      650587 :     _PyPegen_insert_memo(p, _start_mark, _loop0_83_type, _seq);
   28655      650587 :     p->level--;
   28656      650587 :     return _seq;
   28657             : }
   28658             : 
   28659             : // _gather_82: star_named_expression _loop0_83
   28660             : static asdl_seq *
   28661      826180 : _gather_82_rule(Parser *p)
   28662             : {
   28663      826180 :     if (p->level++ == MAXSTACK) {
   28664           0 :         p->error_indicator = 1;
   28665           0 :         PyErr_NoMemory();
   28666             :     }
   28667      826180 :     if (p->error_indicator) {
   28668           0 :         p->level--;
   28669           0 :         return NULL;
   28670             :     }
   28671      826180 :     asdl_seq * _res = NULL;
   28672      826180 :     int _mark = p->mark;
   28673             :     { // star_named_expression _loop0_83
   28674      826180 :         if (p->error_indicator) {
   28675           0 :             p->level--;
   28676           0 :             return NULL;
   28677             :         }
   28678      826180 :         D(fprintf(stderr, "%*c> _gather_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_83"));
   28679             :         expr_ty elem;
   28680             :         asdl_seq * seq;
   28681      826180 :         if (
   28682      826180 :             (elem = star_named_expression_rule(p))  // star_named_expression
   28683      650587 :             &&
   28684      650587 :             (seq = _loop0_83_rule(p))  // _loop0_83
   28685             :         )
   28686             :         {
   28687      650587 :             D(fprintf(stderr, "%*c+ _gather_82[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_83"));
   28688      650587 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   28689      650587 :             goto done;
   28690             :         }
   28691      175593 :         p->mark = _mark;
   28692      175593 :         D(fprintf(stderr, "%*c%s _gather_82[%d-%d]: %s failed!\n", p->level, ' ',
   28693             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_83"));
   28694             :     }
   28695      175593 :     _res = NULL;
   28696      826180 :   done:
   28697      826180 :     p->level--;
   28698      826180 :     return _res;
   28699             : }
   28700             : 
   28701             : // _loop1_84: ('or' conjunction)
   28702             : static asdl_seq *
   28703     9747010 : _loop1_84_rule(Parser *p)
   28704             : {
   28705     9747010 :     if (p->level++ == MAXSTACK) {
   28706           0 :         p->error_indicator = 1;
   28707           0 :         PyErr_NoMemory();
   28708             :     }
   28709     9747010 :     if (p->error_indicator) {
   28710           0 :         p->level--;
   28711           0 :         return NULL;
   28712             :     }
   28713     9747010 :     void *_res = NULL;
   28714     9747010 :     int _mark = p->mark;
   28715     9747010 :     int _start_mark = p->mark;
   28716     9747010 :     void **_children = PyMem_Malloc(sizeof(void *));
   28717     9747010 :     if (!_children) {
   28718           0 :         p->error_indicator = 1;
   28719           0 :         PyErr_NoMemory();
   28720           0 :         p->level--;
   28721           0 :         return NULL;
   28722             :     }
   28723     9747010 :     Py_ssize_t _children_capacity = 1;
   28724     9747010 :     Py_ssize_t _n = 0;
   28725             :     { // ('or' conjunction)
   28726     9747010 :         if (p->error_indicator) {
   28727           0 :             p->level--;
   28728           0 :             return NULL;
   28729             :         }
   28730     9747010 :         D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
   28731             :         void *_tmp_225_var;
   28732    19523000 :         while (
   28733     9775950 :             (_tmp_225_var = _tmp_225_rule(p))  // 'or' conjunction
   28734             :         )
   28735             :         {
   28736       28940 :             _res = _tmp_225_var;
   28737       28940 :             if (_n == _children_capacity) {
   28738        2367 :                 _children_capacity *= 2;
   28739        2367 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   28740        2367 :                 if (!_new_children) {
   28741           0 :                     p->error_indicator = 1;
   28742           0 :                     PyErr_NoMemory();
   28743           0 :                     p->level--;
   28744           0 :                     return NULL;
   28745             :                 }
   28746        2367 :                 _children = _new_children;
   28747             :             }
   28748       28940 :             _children[_n++] = _res;
   28749       28940 :             _mark = p->mark;
   28750             :         }
   28751     9747010 :         p->mark = _mark;
   28752     9747010 :         D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
   28753             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
   28754             :     }
   28755     9747010 :     if (_n == 0 || p->error_indicator) {
   28756     9720810 :         PyMem_Free(_children);
   28757     9720810 :         p->level--;
   28758     9720810 :         return NULL;
   28759             :     }
   28760       26195 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28761       26195 :     if (!_seq) {
   28762           0 :         PyMem_Free(_children);
   28763           0 :         p->error_indicator = 1;
   28764           0 :         PyErr_NoMemory();
   28765           0 :         p->level--;
   28766           0 :         return NULL;
   28767             :     }
   28768       55135 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28769       26195 :     PyMem_Free(_children);
   28770       26195 :     _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
   28771       26195 :     p->level--;
   28772       26195 :     return _seq;
   28773             : }
   28774             : 
   28775             : // _loop1_85: ('and' inversion)
   28776             : static asdl_seq *
   28777     9775950 : _loop1_85_rule(Parser *p)
   28778             : {
   28779     9775950 :     if (p->level++ == MAXSTACK) {
   28780           0 :         p->error_indicator = 1;
   28781           0 :         PyErr_NoMemory();
   28782             :     }
   28783     9775950 :     if (p->error_indicator) {
   28784           0 :         p->level--;
   28785           0 :         return NULL;
   28786             :     }
   28787     9775950 :     void *_res = NULL;
   28788     9775950 :     int _mark = p->mark;
   28789     9775950 :     int _start_mark = p->mark;
   28790     9775950 :     void **_children = PyMem_Malloc(sizeof(void *));
   28791     9775950 :     if (!_children) {
   28792           0 :         p->error_indicator = 1;
   28793           0 :         PyErr_NoMemory();
   28794           0 :         p->level--;
   28795           0 :         return NULL;
   28796             :     }
   28797     9775950 :     Py_ssize_t _children_capacity = 1;
   28798     9775950 :     Py_ssize_t _n = 0;
   28799             :     { // ('and' inversion)
   28800     9775950 :         if (p->error_indicator) {
   28801           0 :             p->level--;
   28802           0 :             return NULL;
   28803             :         }
   28804     9775950 :         D(fprintf(stderr, "%*c> _loop1_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
   28805             :         void *_tmp_226_var;
   28806    19598100 :         while (
   28807     9822190 :             (_tmp_226_var = _tmp_226_rule(p))  // 'and' inversion
   28808             :         )
   28809             :         {
   28810       46240 :             _res = _tmp_226_var;
   28811       46240 :             if (_n == _children_capacity) {
   28812        6045 :                 _children_capacity *= 2;
   28813        6045 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   28814        6045 :                 if (!_new_children) {
   28815           0 :                     p->error_indicator = 1;
   28816           0 :                     PyErr_NoMemory();
   28817           0 :                     p->level--;
   28818           0 :                     return NULL;
   28819             :                 }
   28820        6045 :                 _children = _new_children;
   28821             :             }
   28822       46240 :             _children[_n++] = _res;
   28823       46240 :             _mark = p->mark;
   28824             :         }
   28825     9775950 :         p->mark = _mark;
   28826     9775950 :         D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
   28827             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
   28828             :     }
   28829     9775950 :     if (_n == 0 || p->error_indicator) {
   28830     9736580 :         PyMem_Free(_children);
   28831     9736580 :         p->level--;
   28832     9736580 :         return NULL;
   28833             :     }
   28834       39371 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28835       39371 :     if (!_seq) {
   28836           0 :         PyMem_Free(_children);
   28837           0 :         p->error_indicator = 1;
   28838           0 :         PyErr_NoMemory();
   28839           0 :         p->level--;
   28840           0 :         return NULL;
   28841             :     }
   28842       85611 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28843       39371 :     PyMem_Free(_children);
   28844       39371 :     _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
   28845       39371 :     p->level--;
   28846       39371 :     return _seq;
   28847             : }
   28848             : 
   28849             : // _loop1_86: compare_op_bitwise_or_pair
   28850             : static asdl_seq *
   28851     9822190 : _loop1_86_rule(Parser *p)
   28852             : {
   28853     9822190 :     if (p->level++ == MAXSTACK) {
   28854           0 :         p->error_indicator = 1;
   28855           0 :         PyErr_NoMemory();
   28856             :     }
   28857     9822190 :     if (p->error_indicator) {
   28858           0 :         p->level--;
   28859           0 :         return NULL;
   28860             :     }
   28861     9822190 :     void *_res = NULL;
   28862     9822190 :     int _mark = p->mark;
   28863     9822190 :     int _start_mark = p->mark;
   28864     9822190 :     void **_children = PyMem_Malloc(sizeof(void *));
   28865     9822190 :     if (!_children) {
   28866           0 :         p->error_indicator = 1;
   28867           0 :         PyErr_NoMemory();
   28868           0 :         p->level--;
   28869           0 :         return NULL;
   28870             :     }
   28871     9822190 :     Py_ssize_t _children_capacity = 1;
   28872     9822190 :     Py_ssize_t _n = 0;
   28873             :     { // compare_op_bitwise_or_pair
   28874     9822190 :         if (p->error_indicator) {
   28875           0 :             p->level--;
   28876           0 :             return NULL;
   28877             :         }
   28878     9822190 :         D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair"));
   28879             :         CmpopExprPair* compare_op_bitwise_or_pair_var;
   28880    19890500 :         while (
   28881    10068300 :             (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p))  // compare_op_bitwise_or_pair
   28882             :         )
   28883             :         {
   28884      246101 :             _res = compare_op_bitwise_or_pair_var;
   28885      246101 :             if (_n == _children_capacity) {
   28886        3157 :                 _children_capacity *= 2;
   28887        3157 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   28888        3157 :                 if (!_new_children) {
   28889           0 :                     p->error_indicator = 1;
   28890           0 :                     PyErr_NoMemory();
   28891           0 :                     p->level--;
   28892           0 :                     return NULL;
   28893             :                 }
   28894        3157 :                 _children = _new_children;
   28895             :             }
   28896      246101 :             _children[_n++] = _res;
   28897      246101 :             _mark = p->mark;
   28898             :         }
   28899     9822190 :         p->mark = _mark;
   28900     9822190 :         D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
   28901             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
   28902             :     }
   28903     9822190 :     if (_n == 0 || p->error_indicator) {
   28904     9579400 :         PyMem_Free(_children);
   28905     9579400 :         p->level--;
   28906     9579400 :         return NULL;
   28907             :     }
   28908      242788 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28909      242788 :     if (!_seq) {
   28910           0 :         PyMem_Free(_children);
   28911           0 :         p->error_indicator = 1;
   28912           0 :         PyErr_NoMemory();
   28913           0 :         p->level--;
   28914           0 :         return NULL;
   28915             :     }
   28916      488889 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28917      242788 :     PyMem_Free(_children);
   28918      242788 :     _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
   28919      242788 :     p->level--;
   28920      242788 :     return _seq;
   28921             : }
   28922             : 
   28923             : // _tmp_87: '!='
   28924             : static void *
   28925     9996680 : _tmp_87_rule(Parser *p)
   28926             : {
   28927     9996680 :     if (p->level++ == MAXSTACK) {
   28928           0 :         p->error_indicator = 1;
   28929           0 :         PyErr_NoMemory();
   28930             :     }
   28931     9996680 :     if (p->error_indicator) {
   28932           0 :         p->level--;
   28933           0 :         return NULL;
   28934             :     }
   28935     9996680 :     void * _res = NULL;
   28936     9996680 :     int _mark = p->mark;
   28937             :     { // '!='
   28938     9996680 :         if (p->error_indicator) {
   28939           0 :             p->level--;
   28940           0 :             return NULL;
   28941             :         }
   28942     9996680 :         D(fprintf(stderr, "%*c> _tmp_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
   28943             :         Token * tok;
   28944     9996680 :         if (
   28945     9996680 :             (tok = _PyPegen_expect_token(p, 28))  // token='!='
   28946             :         )
   28947             :         {
   28948       17661 :             D(fprintf(stderr, "%*c+ _tmp_87[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
   28949       17661 :             _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
   28950       17661 :             if (_res == NULL && PyErr_Occurred()) {
   28951           1 :                 p->error_indicator = 1;
   28952           1 :                 p->level--;
   28953           1 :                 return NULL;
   28954             :             }
   28955       17660 :             goto done;
   28956             :         }
   28957     9979020 :         p->mark = _mark;
   28958     9979020 :         D(fprintf(stderr, "%*c%s _tmp_87[%d-%d]: %s failed!\n", p->level, ' ',
   28959             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
   28960             :     }
   28961     9979020 :     _res = NULL;
   28962     9996680 :   done:
   28963     9996680 :     p->level--;
   28964     9996680 :     return _res;
   28965             : }
   28966             : 
   28967             : // _loop0_89: ',' (slice | starred_expression)
   28968             : static asdl_seq *
   28969       21669 : _loop0_89_rule(Parser *p)
   28970             : {
   28971       21669 :     if (p->level++ == MAXSTACK) {
   28972           0 :         p->error_indicator = 1;
   28973           0 :         PyErr_NoMemory();
   28974             :     }
   28975       21669 :     if (p->error_indicator) {
   28976           0 :         p->level--;
   28977           0 :         return NULL;
   28978             :     }
   28979       21669 :     void *_res = NULL;
   28980       21669 :     int _mark = p->mark;
   28981       21669 :     int _start_mark = p->mark;
   28982       21669 :     void **_children = PyMem_Malloc(sizeof(void *));
   28983       21669 :     if (!_children) {
   28984           0 :         p->error_indicator = 1;
   28985           0 :         PyErr_NoMemory();
   28986           0 :         p->level--;
   28987           0 :         return NULL;
   28988             :     }
   28989       21669 :     Py_ssize_t _children_capacity = 1;
   28990       21669 :     Py_ssize_t _n = 0;
   28991             :     { // ',' (slice | starred_expression)
   28992       21669 :         if (p->error_indicator) {
   28993           0 :             p->level--;
   28994           0 :             return NULL;
   28995             :         }
   28996       21669 :         D(fprintf(stderr, "%*c> _loop0_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (slice | starred_expression)"));
   28997             :         Token * _literal;
   28998             :         void *elem;
   28999       69158 :         while (
   29000       47489 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   29001       26250 :             &&
   29002       26250 :             (elem = _tmp_227_rule(p))  // slice | starred_expression
   29003             :         )
   29004             :         {
   29005       25820 :             _res = elem;
   29006       25820 :             if (_res == NULL && PyErr_Occurred()) {
   29007           0 :                 p->error_indicator = 1;
   29008           0 :                 PyMem_Free(_children);
   29009           0 :                 p->level--;
   29010           0 :                 return NULL;
   29011             :             }
   29012       25820 :             if (_n == _children_capacity) {
   29013        4405 :                 _children_capacity *= 2;
   29014        4405 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   29015        4405 :                 if (!_new_children) {
   29016           0 :                     p->error_indicator = 1;
   29017           0 :                     PyErr_NoMemory();
   29018           0 :                     p->level--;
   29019           0 :                     return NULL;
   29020             :                 }
   29021        4405 :                 _children = _new_children;
   29022             :             }
   29023       25820 :             _children[_n++] = _res;
   29024       25820 :             _mark = p->mark;
   29025             :         }
   29026       21669 :         p->mark = _mark;
   29027       21669 :         D(fprintf(stderr, "%*c%s _loop0_89[%d-%d]: %s failed!\n", p->level, ' ',
   29028             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (slice | starred_expression)"));
   29029             :     }
   29030       21669 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   29031       21669 :     if (!_seq) {
   29032           0 :         PyMem_Free(_children);
   29033           0 :         p->error_indicator = 1;
   29034           0 :         PyErr_NoMemory();
   29035           0 :         p->level--;
   29036           0 :         return NULL;
   29037             :     }
   29038       47489 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   29039       21669 :     PyMem_Free(_children);
   29040       21669 :     _PyPegen_insert_memo(p, _start_mark, _loop0_89_type, _seq);
   29041       21669 :     p->level--;
   29042       21669 :     return _seq;
   29043             : }
   29044             : 
   29045             : // _gather_88: (slice | starred_expression) _loop0_89
   29046             : static asdl_seq *
   29047       21764 : _gather_88_rule(Parser *p)
   29048             : {
   29049       21764 :     if (p->level++ == MAXSTACK) {
   29050           0 :         p->error_indicator = 1;
   29051           0 :         PyErr_NoMemory();
   29052             :     }
   29053       21764 :     if (p->error_indicator) {
   29054           0 :         p->level--;
   29055           0 :         return NULL;
   29056             :     }
   29057       21764 :     asdl_seq * _res = NULL;
   29058       21764 :     int _mark = p->mark;
   29059             :     { // (slice | starred_expression) _loop0_89
   29060       21764 :         if (p->error_indicator) {
   29061           0 :             p->level--;
   29062           0 :             return NULL;
   29063             :         }
   29064       21764 :         D(fprintf(stderr, "%*c> _gather_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(slice | starred_expression) _loop0_89"));
   29065             :         void *elem;
   29066             :         asdl_seq * seq;
   29067       21764 :         if (
   29068       21764 :             (elem = _tmp_227_rule(p))  // slice | starred_expression
   29069       21669 :             &&
   29070       21669 :             (seq = _loop0_89_rule(p))  // _loop0_89
   29071             :         )
   29072             :         {
   29073       21669 :             D(fprintf(stderr, "%*c+ _gather_88[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(slice | starred_expression) _loop0_89"));
   29074       21669 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   29075       21669 :             goto done;
   29076             :         }
   29077          95 :         p->mark = _mark;
   29078          95 :         D(fprintf(stderr, "%*c%s _gather_88[%d-%d]: %s failed!\n", p->level, ' ',
   29079             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(slice | starred_expression) _loop0_89"));
   29080             :     }
   29081          95 :     _res = NULL;
   29082       21764 :   done:
   29083       21764 :     p->level--;
   29084       21764 :     return _res;
   29085             : }
   29086             : 
   29087             : // _tmp_90: ':' expression?
   29088             : static void *
   29089       69157 : _tmp_90_rule(Parser *p)
   29090             : {
   29091       69157 :     if (p->level++ == MAXSTACK) {
   29092           0 :         p->error_indicator = 1;
   29093           0 :         PyErr_NoMemory();
   29094             :     }
   29095       69157 :     if (p->error_indicator) {
   29096           0 :         p->level--;
   29097           0 :         return NULL;
   29098             :     }
   29099       69157 :     void * _res = NULL;
   29100       69157 :     int _mark = p->mark;
   29101             :     { // ':' expression?
   29102       69157 :         if (p->error_indicator) {
   29103           0 :             p->level--;
   29104           0 :             return NULL;
   29105             :         }
   29106       69157 :         D(fprintf(stderr, "%*c> _tmp_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
   29107             :         Token * _literal;
   29108             :         void *d;
   29109       69157 :         if (
   29110       69157 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   29111        3186 :             &&
   29112        3186 :             (d = expression_rule(p), !p->error_indicator)  // expression?
   29113             :         )
   29114             :         {
   29115        3182 :             D(fprintf(stderr, "%*c+ _tmp_90[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
   29116        3182 :             _res = d;
   29117        3182 :             if (_res == NULL && PyErr_Occurred()) {
   29118           0 :                 p->error_indicator = 1;
   29119           0 :                 p->level--;
   29120           0 :                 return NULL;
   29121             :             }
   29122        3182 :             goto done;
   29123             :         }
   29124       65975 :         p->mark = _mark;
   29125       65975 :         D(fprintf(stderr, "%*c%s _tmp_90[%d-%d]: %s failed!\n", p->level, ' ',
   29126             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
   29127             :     }
   29128       65975 :     _res = NULL;
   29129       69157 :   done:
   29130       69157 :     p->level--;
   29131       69157 :     return _res;
   29132             : }
   29133             : 
   29134             : // _tmp_91: tuple | group | genexp
   29135             : static void *
   29136      866593 : _tmp_91_rule(Parser *p)
   29137             : {
   29138      866593 :     if (p->level++ == MAXSTACK) {
   29139           0 :         p->error_indicator = 1;
   29140           0 :         PyErr_NoMemory();
   29141             :     }
   29142      866593 :     if (p->error_indicator) {
   29143           0 :         p->level--;
   29144           0 :         return NULL;
   29145             :     }
   29146      866593 :     void * _res = NULL;
   29147      866593 :     int _mark = p->mark;
   29148             :     { // tuple
   29149      866593 :         if (p->error_indicator) {
   29150           0 :             p->level--;
   29151           0 :             return NULL;
   29152             :         }
   29153      866593 :         D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
   29154             :         expr_ty tuple_var;
   29155      866593 :         if (
   29156      866593 :             (tuple_var = tuple_rule(p))  // tuple
   29157             :         )
   29158             :         {
   29159      572580 :             D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
   29160      572580 :             _res = tuple_var;
   29161      572580 :             goto done;
   29162             :         }
   29163      294013 :         p->mark = _mark;
   29164      294013 :         D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
   29165             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
   29166             :     }
   29167             :     { // group
   29168      294013 :         if (p->error_indicator) {
   29169          51 :             p->level--;
   29170          51 :             return NULL;
   29171             :         }
   29172      293962 :         D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
   29173             :         expr_ty group_var;
   29174      293962 :         if (
   29175      293962 :             (group_var = group_rule(p))  // group
   29176             :         )
   29177             :         {
   29178      288434 :             D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
   29179      288434 :             _res = group_var;
   29180      288434 :             goto done;
   29181             :         }
   29182        5528 :         p->mark = _mark;
   29183        5528 :         D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
   29184             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
   29185             :     }
   29186             :     { // genexp
   29187        5528 :         if (p->error_indicator) {
   29188          10 :             p->level--;
   29189          10 :             return NULL;
   29190             :         }
   29191        5518 :         D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
   29192             :         expr_ty genexp_var;
   29193        5518 :         if (
   29194        5518 :             (genexp_var = genexp_rule(p))  // genexp
   29195             :         )
   29196             :         {
   29197        5399 :             D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
   29198        5399 :             _res = genexp_var;
   29199        5399 :             goto done;
   29200             :         }
   29201         119 :         p->mark = _mark;
   29202         119 :         D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
   29203             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
   29204             :     }
   29205         119 :     _res = NULL;
   29206      866532 :   done:
   29207      866532 :     p->level--;
   29208      866532 :     return _res;
   29209             : }
   29210             : 
   29211             : // _tmp_92: list | listcomp
   29212             : static void *
   29213      262274 : _tmp_92_rule(Parser *p)
   29214             : {
   29215      262274 :     if (p->level++ == MAXSTACK) {
   29216           0 :         p->error_indicator = 1;
   29217           0 :         PyErr_NoMemory();
   29218             :     }
   29219      262274 :     if (p->error_indicator) {
   29220           0 :         p->level--;
   29221           0 :         return NULL;
   29222             :     }
   29223      262274 :     void * _res = NULL;
   29224      262274 :     int _mark = p->mark;
   29225             :     { // list
   29226      262274 :         if (p->error_indicator) {
   29227           0 :             p->level--;
   29228           0 :             return NULL;
   29229             :         }
   29230      262274 :         D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
   29231             :         expr_ty list_var;
   29232      262274 :         if (
   29233      262274 :             (list_var = list_rule(p))  // list
   29234             :         )
   29235             :         {
   29236      232819 :             D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
   29237      232819 :             _res = list_var;
   29238      232819 :             goto done;
   29239             :         }
   29240       29455 :         p->mark = _mark;
   29241       29455 :         D(fprintf(stderr, "%*c%s _tmp_92[%d-%d]: %s failed!\n", p->level, ' ',
   29242             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
   29243             :     }
   29244             :     { // listcomp
   29245       29455 :         if (p->error_indicator) {
   29246          34 :             p->level--;
   29247          34 :             return NULL;
   29248             :         }
   29249       29421 :         D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
   29250             :         expr_ty listcomp_var;
   29251       29421 :         if (
   29252       29421 :             (listcomp_var = listcomp_rule(p))  // listcomp
   29253             :         )
   29254             :         {
   29255       29332 :             D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
   29256       29332 :             _res = listcomp_var;
   29257       29332 :             goto done;
   29258             :         }
   29259          89 :         p->mark = _mark;
   29260          89 :         D(fprintf(stderr, "%*c%s _tmp_92[%d-%d]: %s failed!\n", p->level, ' ',
   29261             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
   29262             :     }
   29263          89 :     _res = NULL;
   29264      262240 :   done:
   29265      262240 :     p->level--;
   29266      262240 :     return _res;
   29267             : }
   29268             : 
   29269             : // _tmp_93: dict | set | dictcomp | setcomp
   29270             : static void *
   29271      112966 : _tmp_93_rule(Parser *p)
   29272             : {
   29273      112966 :     if (p->level++ == MAXSTACK) {
   29274           0 :         p->error_indicator = 1;
   29275           0 :         PyErr_NoMemory();
   29276             :     }
   29277      112966 :     if (p->error_indicator) {
   29278           0 :         p->level--;
   29279           0 :         return NULL;
   29280             :     }
   29281      112966 :     void * _res = NULL;
   29282      112966 :     int _mark = p->mark;
   29283             :     { // dict
   29284      112966 :         if (p->error_indicator) {
   29285           0 :             p->level--;
   29286           0 :             return NULL;
   29287             :         }
   29288      112966 :         D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
   29289             :         expr_ty dict_var;
   29290      112966 :         if (
   29291      112966 :             (dict_var = dict_rule(p))  // dict
   29292             :         )
   29293             :         {
   29294       99192 :             D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
   29295       99192 :             _res = dict_var;
   29296       99192 :             goto done;
   29297             :         }
   29298       13774 :         p->mark = _mark;
   29299       13774 :         D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
   29300             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
   29301             :     }
   29302             :     { // set
   29303       13774 :         if (p->error_indicator) {
   29304          32 :             p->level--;
   29305          32 :             return NULL;
   29306             :         }
   29307       13742 :         D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
   29308             :         expr_ty set_var;
   29309       13742 :         if (
   29310       13742 :             (set_var = set_rule(p))  // set
   29311             :         )
   29312             :         {
   29313        8371 :             D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
   29314        8371 :             _res = set_var;
   29315        8371 :             goto done;
   29316             :         }
   29317        5371 :         p->mark = _mark;
   29318        5371 :         D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
   29319             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
   29320             :     }
   29321             :     { // dictcomp
   29322        5371 :         if (p->error_indicator) {
   29323           5 :             p->level--;
   29324           5 :             return NULL;
   29325             :         }
   29326        5366 :         D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
   29327             :         expr_ty dictcomp_var;
   29328        5366 :         if (
   29329        5366 :             (dictcomp_var = dictcomp_rule(p))  // dictcomp
   29330             :         )
   29331             :         {
   29332        3788 :             D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
   29333        3788 :             _res = dictcomp_var;
   29334        3788 :             goto done;
   29335             :         }
   29336        1578 :         p->mark = _mark;
   29337        1578 :         D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
   29338             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
   29339             :     }
   29340             :     { // setcomp
   29341        1578 :         if (p->error_indicator) {
   29342           1 :             p->level--;
   29343           1 :             return NULL;
   29344             :         }
   29345        1577 :         D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
   29346             :         expr_ty setcomp_var;
   29347        1577 :         if (
   29348        1577 :             (setcomp_var = setcomp_rule(p))  // setcomp
   29349             :         )
   29350             :         {
   29351        1519 :             D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
   29352        1519 :             _res = setcomp_var;
   29353        1519 :             goto done;
   29354             :         }
   29355          58 :         p->mark = _mark;
   29356          58 :         D(fprintf(stderr, "%*c%s _tmp_93[%d-%d]: %s failed!\n", p->level, ' ',
   29357             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
   29358             :     }
   29359          58 :     _res = NULL;
   29360      112928 :   done:
   29361      112928 :     p->level--;
   29362      112928 :     return _res;
   29363             : }
   29364             : 
   29365             : // _tmp_94: yield_expr | named_expression
   29366             : static void *
   29367      293962 : _tmp_94_rule(Parser *p)
   29368             : {
   29369      293962 :     if (p->level++ == MAXSTACK) {
   29370           0 :         p->error_indicator = 1;
   29371           0 :         PyErr_NoMemory();
   29372             :     }
   29373      293962 :     if (p->error_indicator) {
   29374           0 :         p->level--;
   29375           0 :         return NULL;
   29376             :     }
   29377      293962 :     void * _res = NULL;
   29378      293962 :     int _mark = p->mark;
   29379             :     { // yield_expr
   29380      293962 :         if (p->error_indicator) {
   29381           0 :             p->level--;
   29382           0 :             return NULL;
   29383             :         }
   29384      293962 :         D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
   29385             :         expr_ty yield_expr_var;
   29386      293962 :         if (
   29387      293962 :             (yield_expr_var = yield_expr_rule(p))  // yield_expr
   29388             :         )
   29389             :         {
   29390         520 :             D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
   29391         520 :             _res = yield_expr_var;
   29392         520 :             goto done;
   29393             :         }
   29394      293442 :         p->mark = _mark;
   29395      293442 :         D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ',
   29396             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
   29397             :     }
   29398             :     { // named_expression
   29399      293442 :         if (p->error_indicator) {
   29400           0 :             p->level--;
   29401           0 :             return NULL;
   29402             :         }
   29403      293442 :         D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
   29404             :         expr_ty named_expression_var;
   29405      293442 :         if (
   29406      293442 :             (named_expression_var = named_expression_rule(p))  // named_expression
   29407             :         )
   29408             :         {
   29409      293382 :             D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
   29410      293382 :             _res = named_expression_var;
   29411      293382 :             goto done;
   29412             :         }
   29413          60 :         p->mark = _mark;
   29414          60 :         D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ',
   29415             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
   29416             :     }
   29417          60 :     _res = NULL;
   29418      293962 :   done:
   29419      293962 :     p->level--;
   29420      293962 :     return _res;
   29421             : }
   29422             : 
   29423             : // _loop0_95: lambda_param_no_default
   29424             : static asdl_seq *
   29425          79 : _loop0_95_rule(Parser *p)
   29426             : {
   29427          79 :     if (p->level++ == MAXSTACK) {
   29428           0 :         p->error_indicator = 1;
   29429           0 :         PyErr_NoMemory();
   29430             :     }
   29431          79 :     if (p->error_indicator) {
   29432           0 :         p->level--;
   29433           0 :         return NULL;
   29434             :     }
   29435          79 :     void *_res = NULL;
   29436          79 :     int _mark = p->mark;
   29437          79 :     int _start_mark = p->mark;
   29438          79 :     void **_children = PyMem_Malloc(sizeof(void *));
   29439          79 :     if (!_children) {
   29440           0 :         p->error_indicator = 1;
   29441           0 :         PyErr_NoMemory();
   29442           0 :         p->level--;
   29443           0 :         return NULL;
   29444             :     }
   29445          79 :     Py_ssize_t _children_capacity = 1;
   29446          79 :     Py_ssize_t _n = 0;
   29447             :     { // lambda_param_no_default
   29448          79 :         if (p->error_indicator) {
   29449           0 :             p->level--;
   29450           0 :             return NULL;
   29451             :         }
   29452          79 :         D(fprintf(stderr, "%*c> _loop0_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
   29453             :         arg_ty lambda_param_no_default_var;
   29454         190 :         while (
   29455         111 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   29456             :         )
   29457             :         {
   29458          32 :             _res = lambda_param_no_default_var;
   29459          32 :             if (_n == _children_capacity) {
   29460           1 :                 _children_capacity *= 2;
   29461           1 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   29462           1 :                 if (!_new_children) {
   29463           0 :                     p->error_indicator = 1;
   29464           0 :                     PyErr_NoMemory();
   29465           0 :                     p->level--;
   29466           0 :                     return NULL;
   29467             :                 }
   29468           1 :                 _children = _new_children;
   29469             :             }
   29470          32 :             _children[_n++] = _res;
   29471          32 :             _mark = p->mark;
   29472             :         }
   29473          79 :         p->mark = _mark;
   29474          79 :         D(fprintf(stderr, "%*c%s _loop0_95[%d-%d]: %s failed!\n", p->level, ' ',
   29475             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
   29476             :     }
   29477          79 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   29478          79 :     if (!_seq) {
   29479           0 :         PyMem_Free(_children);
   29480           0 :         p->error_indicator = 1;
   29481           0 :         PyErr_NoMemory();
   29482           0 :         p->level--;
   29483           0 :         return NULL;
   29484             :     }
   29485         111 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   29486          79 :     PyMem_Free(_children);
   29487          79 :     _PyPegen_insert_memo(p, _start_mark, _loop0_95_type, _seq);
   29488          79 :     p->level--;
   29489          79 :     return _seq;
   29490             : }
   29491             : 
   29492             : // _loop0_96: lambda_param_with_default
   29493             : static asdl_seq *
   29494          79 : _loop0_96_rule(Parser *p)
   29495             : {
   29496          79 :     if (p->level++ == MAXSTACK) {
   29497           0 :         p->error_indicator = 1;
   29498           0 :         PyErr_NoMemory();
   29499             :     }
   29500          79 :     if (p->error_indicator) {
   29501           0 :         p->level--;
   29502           0 :         return NULL;
   29503             :     }
   29504          79 :     void *_res = NULL;
   29505          79 :     int _mark = p->mark;
   29506          79 :     int _start_mark = p->mark;
   29507          79 :     void **_children = PyMem_Malloc(sizeof(void *));
   29508          79 :     if (!_children) {
   29509           0 :         p->error_indicator = 1;
   29510           0 :         PyErr_NoMemory();
   29511           0 :         p->level--;
   29512           0 :         return NULL;
   29513             :     }
   29514          79 :     Py_ssize_t _children_capacity = 1;
   29515          79 :     Py_ssize_t _n = 0;
   29516             :     { // lambda_param_with_default
   29517          79 :         if (p->error_indicator) {
   29518           0 :             p->level--;
   29519           0 :             return NULL;
   29520             :         }
   29521          79 :         D(fprintf(stderr, "%*c> _loop0_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
   29522             :         NameDefaultPair* lambda_param_with_default_var;
   29523         198 :         while (
   29524         119 :             (lambda_param_with_default_var = lambda_param_with_default_rule(p))  // lambda_param_with_default
   29525             :         )
   29526             :         {
   29527          40 :             _res = lambda_param_with_default_var;
   29528          40 :             if (_n == _children_capacity) {
   29529           0 :                 _children_capacity *= 2;
   29530           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   29531           0 :                 if (!_new_children) {
   29532           0 :                     p->error_indicator = 1;
   29533           0 :                     PyErr_NoMemory();
   29534           0 :                     p->level--;
   29535           0 :                     return NULL;
   29536             :                 }
   29537           0 :                 _children = _new_children;
   29538             :             }
   29539          40 :             _children[_n++] = _res;
   29540          40 :             _mark = p->mark;
   29541             :         }
   29542          79 :         p->mark = _mark;
   29543          79 :         D(fprintf(stderr, "%*c%s _loop0_96[%d-%d]: %s failed!\n", p->level, ' ',
   29544             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
   29545             :     }
   29546          79 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   29547          79 :     if (!_seq) {
   29548           0 :         PyMem_Free(_children);
   29549           0 :         p->error_indicator = 1;
   29550           0 :         PyErr_NoMemory();
   29551           0 :         p->level--;
   29552           0 :         return NULL;
   29553             :     }
   29554         119 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   29555          79 :     PyMem_Free(_children);
   29556          79 :     _PyPegen_insert_memo(p, _start_mark, _loop0_96_type, _seq);
   29557          79 :     p->level--;
   29558          79 :     return _seq;
   29559             : }
   29560             : 
   29561             : // _loop0_97: lambda_param_with_default
   29562             : static asdl_seq *
   29563          58 : _loop0_97_rule(Parser *p)
   29564             : {
   29565          58 :     if (p->level++ == MAXSTACK) {
   29566           0 :         p->error_indicator = 1;
   29567           0 :         PyErr_NoMemory();
   29568             :     }
   29569          58 :     if (p->error_indicator) {
   29570           0 :         p->level--;
   29571           0 :         return NULL;
   29572             :     }
   29573          58 :     void *_res = NULL;
   29574          58 :     int _mark = p->mark;
   29575          58 :     int _start_mark = p->mark;
   29576          58 :     void **_children = PyMem_Malloc(sizeof(void *));
   29577          58 :     if (!_children) {
   29578           0 :         p->error_indicator = 1;
   29579           0 :         PyErr_NoMemory();
   29580           0 :         p->level--;
   29581           0 :         return NULL;
   29582             :     }
   29583          58 :     Py_ssize_t _children_capacity = 1;
   29584          58 :     Py_ssize_t _n = 0;
   29585             :     { // lambda_param_with_default
   29586          58 :         if (p->error_indicator) {
   29587           0 :             p->level--;
   29588           0 :             return NULL;
   29589             :         }
   29590          58 :         D(fprintf(stderr, "%*c> _loop0_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
   29591             :         NameDefaultPair* lambda_param_with_default_var;
   29592         161 :         while (
   29593         103 :             (lambda_param_with_default_var = lambda_param_with_default_rule(p))  // lambda_param_with_default
   29594             :         )
   29595             :         {
   29596          45 :             _res = lambda_param_with_default_var;
   29597          45 :             if (_n == _children_capacity) {
   29598           0 :                 _children_capacity *= 2;
   29599           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   29600           0 :                 if (!_new_children) {
   29601           0 :                     p->error_indicator = 1;
   29602           0 :                     PyErr_NoMemory();
   29603           0 :                     p->level--;
   29604           0 :                     return NULL;
   29605             :                 }
   29606           0 :                 _children = _new_children;
   29607             :             }
   29608          45 :             _children[_n++] = _res;
   29609          45 :             _mark = p->mark;
   29610             :         }
   29611          58 :         p->mark = _mark;
   29612          58 :         D(fprintf(stderr, "%*c%s _loop0_97[%d-%d]: %s failed!\n", p->level, ' ',
   29613             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
   29614             :     }
   29615          58 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   29616          58 :     if (!_seq) {
   29617           0 :         PyMem_Free(_children);
   29618           0 :         p->error_indicator = 1;
   29619           0 :         PyErr_NoMemory();
   29620           0 :         p->level--;
   29621           0 :         return NULL;
   29622             :     }
   29623         103 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   29624          58 :     PyMem_Free(_children);
   29625          58 :     _PyPegen_insert_memo(p, _start_mark, _loop0_97_type, _seq);
   29626          58 :     p->level--;
   29627          58 :     return _seq;
   29628             : }
   29629             : 
   29630             : // _loop1_98: lambda_param_no_default
   29631             : static asdl_seq *
   29632       37423 : _loop1_98_rule(Parser *p)
   29633             : {
   29634       37423 :     if (p->level++ == MAXSTACK) {
   29635           0 :         p->error_indicator = 1;
   29636           0 :         PyErr_NoMemory();
   29637             :     }
   29638       37423 :     if (p->error_indicator) {
   29639           0 :         p->level--;
   29640           0 :         return NULL;
   29641             :     }
   29642       37423 :     void *_res = NULL;
   29643       37423 :     int _mark = p->mark;
   29644       37423 :     int _start_mark = p->mark;
   29645       37423 :     void **_children = PyMem_Malloc(sizeof(void *));
   29646       37423 :     if (!_children) {
   29647           0 :         p->error_indicator = 1;
   29648           0 :         PyErr_NoMemory();
   29649           0 :         p->level--;
   29650           0 :         return NULL;
   29651             :     }
   29652       37423 :     Py_ssize_t _children_capacity = 1;
   29653       37423 :     Py_ssize_t _n = 0;
   29654             :     { // lambda_param_no_default
   29655       37423 :         if (p->error_indicator) {
   29656           0 :             p->level--;
   29657           0 :             return NULL;
   29658             :         }
   29659       37423 :         D(fprintf(stderr, "%*c> _loop1_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
   29660             :         arg_ty lambda_param_no_default_var;
   29661      243983 :         while (
   29662      206560 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   29663             :         )
   29664             :         {
   29665      169137 :             _res = lambda_param_no_default_var;
   29666      169137 :             if (_n == _children_capacity) {
   29667       82224 :                 _children_capacity *= 2;
   29668       82224 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   29669       82224 :                 if (!_new_children) {
   29670           0 :                     p->error_indicator = 1;
   29671           0 :                     PyErr_NoMemory();
   29672           0 :                     p->level--;
   29673           0 :                     return NULL;
   29674             :                 }
   29675       82224 :                 _children = _new_children;
   29676             :             }
   29677      169137 :             _children[_n++] = _res;
   29678      169137 :             _mark = p->mark;
   29679             :         }
   29680       37423 :         p->mark = _mark;
   29681       37423 :         D(fprintf(stderr, "%*c%s _loop1_98[%d-%d]: %s failed!\n", p->level, ' ',
   29682             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
   29683             :     }
   29684       37423 :     if (_n == 0 || p->error_indicator) {
   29685        3131 :         PyMem_Free(_children);
   29686        3131 :         p->level--;
   29687        3131 :         return NULL;
   29688             :     }
   29689       34292 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   29690       34292 :     if (!_seq) {
   29691           0 :         PyMem_Free(_children);
   29692           0 :         p->error_indicator = 1;
   29693           0 :         PyErr_NoMemory();
   29694           0 :         p->level--;
   29695           0 :         return NULL;
   29696             :     }
   29697      203429 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   29698       34292 :     PyMem_Free(_children);
   29699       34292 :     _PyPegen_insert_memo(p, _start_mark, _loop1_98_type, _seq);
   29700       34292 :     p->level--;
   29701       34292 :     return _seq;
   29702             : }
   29703             : 
   29704             : // _loop0_99: lambda_param_with_default
   29705             : static asdl_seq *
   29706       34292 : _loop0_99_rule(Parser *p)
   29707             : {
   29708       34292 :     if (p->level++ == MAXSTACK) {
   29709           0 :         p->error_indicator = 1;
   29710           0 :         PyErr_NoMemory();
   29711             :     }
   29712       34292 :     if (p->error_indicator) {
   29713           0 :         p->level--;
   29714           0 :         return NULL;
   29715             :     }
   29716       34292 :     void *_res = NULL;
   29717       34292 :     int _mark = p->mark;
   29718       34292 :     int _start_mark = p->mark;
   29719       34292 :     void **_children = PyMem_Malloc(sizeof(void *));
   29720       34292 :     if (!_children) {
   29721           0 :         p->error_indicator = 1;
   29722           0 :         PyErr_NoMemory();
   29723           0 :         p->level--;
   29724           0 :         return NULL;
   29725             :     }
   29726       34292 :     Py_ssize_t _children_capacity = 1;
   29727       34292 :     Py_ssize_t _n = 0;
   29728             :     { // lambda_param_with_default
   29729       34292 :         if (p->error_indicator) {
   29730           0 :             p->level--;
   29731           0 :             return NULL;
   29732             :         }
   29733       34292 :         D(fprintf(stderr, "%*c> _loop0_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
   29734             :         NameDefaultPair* lambda_param_with_default_var;
   29735       68686 :         while (
   29736       34394 :             (lambda_param_with_default_var = lambda_param_with_default_rule(p))  // lambda_param_with_default
   29737             :         )
   29738             :         {
   29739         102 :             _res = lambda_param_with_default_var;
   29740         102 :             if (_n == _children_capacity) {
   29741           6 :                 _children_capacity *= 2;
   29742           6 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   29743           6 :                 if (!_new_children) {
   29744           0 :                     p->error_indicator = 1;
   29745           0 :                     PyErr_NoMemory();
   29746           0 :                     p->level--;
   29747           0 :                     return NULL;
   29748             :                 }
   29749           6 :                 _children = _new_children;
   29750             :             }
   29751         102 :             _children[_n++] = _res;
   29752         102 :             _mark = p->mark;
   29753             :         }
   29754       34292 :         p->mark = _mark;
   29755       34292 :         D(fprintf(stderr, "%*c%s _loop0_99[%d-%d]: %s failed!\n", p->level, ' ',
   29756             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
   29757             :     }
   29758       34292 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   29759       34292 :     if (!_seq) {
   29760           0 :         PyMem_Free(_children);
   29761           0 :         p->error_indicator = 1;
   29762           0 :         PyErr_NoMemory();
   29763           0 :         p->level--;
   29764           0 :         return NULL;
   29765             :     }
   29766       34394 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   29767       34292 :     PyMem_Free(_children);
   29768       34292 :     _PyPegen_insert_memo(p, _start_mark, _loop0_99_type, _seq);
   29769       34292 :     p->level--;
   29770       34292 :     return _seq;
   29771             : }
   29772             : 
   29773             : // _loop1_100: lambda_param_with_default
   29774             : static asdl_seq *
   29775        3131 : _loop1_100_rule(Parser *p)
   29776             : {
   29777        3131 :     if (p->level++ == MAXSTACK) {
   29778           0 :         p->error_indicator = 1;
   29779           0 :         PyErr_NoMemory();
   29780             :     }
   29781        3131 :     if (p->error_indicator) {
   29782           0 :         p->level--;
   29783           0 :         return NULL;
   29784             :     }
   29785        3131 :     void *_res = NULL;
   29786        3131 :     int _mark = p->mark;
   29787        3131 :     int _start_mark = p->mark;
   29788        3131 :     void **_children = PyMem_Malloc(sizeof(void *));
   29789        3131 :     if (!_children) {
   29790           0 :         p->error_indicator = 1;
   29791           0 :         PyErr_NoMemory();
   29792           0 :         p->level--;
   29793           0 :         return NULL;
   29794             :     }
   29795        3131 :     Py_ssize_t _children_capacity = 1;
   29796        3131 :     Py_ssize_t _n = 0;
   29797             :     { // lambda_param_with_default
   29798        3131 :         if (p->error_indicator) {
   29799           0 :             p->level--;
   29800           0 :             return NULL;
   29801             :         }
   29802        3131 :         D(fprintf(stderr, "%*c> _loop1_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
   29803             :         NameDefaultPair* lambda_param_with_default_var;
   29804        6412 :         while (
   29805        3281 :             (lambda_param_with_default_var = lambda_param_with_default_rule(p))  // lambda_param_with_default
   29806             :         )
   29807             :         {
   29808         150 :             _res = lambda_param_with_default_var;
   29809         150 :             if (_n == _children_capacity) {
   29810           6 :                 _children_capacity *= 2;
   29811           6 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   29812           6 :                 if (!_new_children) {
   29813           0 :                     p->error_indicator = 1;
   29814           0 :                     PyErr_NoMemory();
   29815           0 :                     p->level--;
   29816           0 :                     return NULL;
   29817             :                 }
   29818           6 :                 _children = _new_children;
   29819             :             }
   29820         150 :             _children[_n++] = _res;
   29821         150 :             _mark = p->mark;
   29822             :         }
   29823        3131 :         p->mark = _mark;
   29824        3131 :         D(fprintf(stderr, "%*c%s _loop1_100[%d-%d]: %s failed!\n", p->level, ' ',
   29825             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
   29826             :     }
   29827        3131 :     if (_n == 0 || p->error_indicator) {
   29828        2987 :         PyMem_Free(_children);
   29829        2987 :         p->level--;
   29830        2987 :         return NULL;
   29831             :     }
   29832         144 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   29833         144 :     if (!_seq) {
   29834           0 :         PyMem_Free(_children);
   29835           0 :         p->error_indicator = 1;
   29836           0 :         PyErr_NoMemory();
   29837           0 :         p->level--;
   29838           0 :         return NULL;
   29839             :     }
   29840         294 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   29841         144 :     PyMem_Free(_children);
   29842         144 :     _PyPegen_insert_memo(p, _start_mark, _loop1_100_type, _seq);
   29843         144 :     p->level--;
   29844         144 :     return _seq;
   29845             : }
   29846             : 
   29847             : // _loop1_101: lambda_param_no_default
   29848             : static asdl_seq *
   29849       37633 : _loop1_101_rule(Parser *p)
   29850             : {
   29851       37633 :     if (p->level++ == MAXSTACK) {
   29852           0 :         p->error_indicator = 1;
   29853           0 :         PyErr_NoMemory();
   29854             :     }
   29855       37633 :     if (p->error_indicator) {
   29856           0 :         p->level--;
   29857           0 :         return NULL;
   29858             :     }
   29859       37633 :     void *_res = NULL;
   29860       37633 :     int _mark = p->mark;
   29861       37633 :     int _start_mark = p->mark;
   29862       37633 :     void **_children = PyMem_Malloc(sizeof(void *));
   29863       37633 :     if (!_children) {
   29864           0 :         p->error_indicator = 1;
   29865           0 :         PyErr_NoMemory();
   29866           0 :         p->level--;
   29867           0 :         return NULL;
   29868             :     }
   29869       37633 :     Py_ssize_t _children_capacity = 1;
   29870       37633 :     Py_ssize_t _n = 0;
   29871             :     { // lambda_param_no_default
   29872       37633 :         if (p->error_indicator) {
   29873           0 :             p->level--;
   29874           0 :             return NULL;
   29875             :         }
   29876       37633 :         D(fprintf(stderr, "%*c> _loop1_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
   29877             :         arg_ty lambda_param_no_default_var;
   29878      244536 :         while (
   29879      206903 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   29880             :         )
   29881             :         {
   29882      169270 :             _res = lambda_param_no_default_var;
   29883      169270 :             if (_n == _children_capacity) {
   29884       82239 :                 _children_capacity *= 2;
   29885       82239 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   29886       82239 :                 if (!_new_children) {
   29887           0 :                     p->error_indicator = 1;
   29888           0 :                     PyErr_NoMemory();
   29889           0 :                     p->level--;
   29890           0 :                     return NULL;
   29891             :                 }
   29892       82239 :                 _children = _new_children;
   29893             :             }
   29894      169270 :             _children[_n++] = _res;
   29895      169270 :             _mark = p->mark;
   29896             :         }
   29897       37633 :         p->mark = _mark;
   29898       37633 :         D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
   29899             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
   29900             :     }
   29901       37633 :     if (_n == 0 || p->error_indicator) {
   29902        3223 :         PyMem_Free(_children);
   29903        3223 :         p->level--;
   29904        3223 :         return NULL;
   29905             :     }
   29906       34410 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   29907       34410 :     if (!_seq) {
   29908           0 :         PyMem_Free(_children);
   29909           0 :         p->error_indicator = 1;
   29910           0 :         PyErr_NoMemory();
   29911           0 :         p->level--;
   29912           0 :         return NULL;
   29913             :     }
   29914      203680 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   29915       34410 :     PyMem_Free(_children);
   29916       34410 :     _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
   29917       34410 :     p->level--;
   29918       34410 :     return _seq;
   29919             : }
   29920             : 
   29921             : // _loop1_102: lambda_param_no_default
   29922             : static asdl_seq *
   29923       37557 : _loop1_102_rule(Parser *p)
   29924             : {
   29925       37557 :     if (p->level++ == MAXSTACK) {
   29926           0 :         p->error_indicator = 1;
   29927           0 :         PyErr_NoMemory();
   29928             :     }
   29929       37557 :     if (p->error_indicator) {
   29930           0 :         p->level--;
   29931           0 :         return NULL;
   29932             :     }
   29933       37557 :     void *_res = NULL;
   29934       37557 :     int _mark = p->mark;
   29935       37557 :     int _start_mark = p->mark;
   29936       37557 :     void **_children = PyMem_Malloc(sizeof(void *));
   29937       37557 :     if (!_children) {
   29938           0 :         p->error_indicator = 1;
   29939           0 :         PyErr_NoMemory();
   29940           0 :         p->level--;
   29941           0 :         return NULL;
   29942             :     }
   29943       37557 :     Py_ssize_t _children_capacity = 1;
   29944       37557 :     Py_ssize_t _n = 0;
   29945             :     { // lambda_param_no_default
   29946       37557 :         if (p->error_indicator) {
   29947           0 :             p->level--;
   29948           0 :             return NULL;
   29949             :         }
   29950       37557 :         D(fprintf(stderr, "%*c> _loop1_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
   29951             :         arg_ty lambda_param_no_default_var;
   29952      244297 :         while (
   29953      206740 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   29954             :         )
   29955             :         {
   29956      169183 :             _res = lambda_param_no_default_var;
   29957      169183 :             if (_n == _children_capacity) {
   29958       82228 :                 _children_capacity *= 2;
   29959       82228 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   29960       82228 :                 if (!_new_children) {
   29961           0 :                     p->error_indicator = 1;
   29962           0 :                     PyErr_NoMemory();
   29963           0 :                     p->level--;
   29964           0 :                     return NULL;
   29965             :                 }
   29966       82228 :                 _children = _new_children;
   29967             :             }
   29968      169183 :             _children[_n++] = _res;
   29969      169183 :             _mark = p->mark;
   29970             :         }
   29971       37557 :         p->mark = _mark;
   29972       37557 :         D(fprintf(stderr, "%*c%s _loop1_102[%d-%d]: %s failed!\n", p->level, ' ',
   29973             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
   29974             :     }
   29975       37557 :     if (_n == 0 || p->error_indicator) {
   29976        3223 :         PyMem_Free(_children);
   29977        3223 :         p->level--;
   29978        3223 :         return NULL;
   29979             :     }
   29980       34334 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   29981       34334 :     if (!_seq) {
   29982           0 :         PyMem_Free(_children);
   29983           0 :         p->error_indicator = 1;
   29984           0 :         PyErr_NoMemory();
   29985           0 :         p->level--;
   29986           0 :         return NULL;
   29987             :     }
   29988      203517 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   29989       34334 :     PyMem_Free(_children);
   29990       34334 :     _PyPegen_insert_memo(p, _start_mark, _loop1_102_type, _seq);
   29991       34334 :     p->level--;
   29992       34334 :     return _seq;
   29993             : }
   29994             : 
   29995             : // _loop0_103: lambda_param_no_default
   29996             : static asdl_seq *
   29997       37596 : _loop0_103_rule(Parser *p)
   29998             : {
   29999       37596 :     if (p->level++ == MAXSTACK) {
   30000           0 :         p->error_indicator = 1;
   30001           0 :         PyErr_NoMemory();
   30002             :     }
   30003       37596 :     if (p->error_indicator) {
   30004           0 :         p->level--;
   30005           0 :         return NULL;
   30006             :     }
   30007       37596 :     void *_res = NULL;
   30008       37596 :     int _mark = p->mark;
   30009       37596 :     int _start_mark = p->mark;
   30010       37596 :     void **_children = PyMem_Malloc(sizeof(void *));
   30011       37596 :     if (!_children) {
   30012           0 :         p->error_indicator = 1;
   30013           0 :         PyErr_NoMemory();
   30014           0 :         p->level--;
   30015           0 :         return NULL;
   30016             :     }
   30017       37596 :     Py_ssize_t _children_capacity = 1;
   30018       37596 :     Py_ssize_t _n = 0;
   30019             :     { // lambda_param_no_default
   30020       37596 :         if (p->error_indicator) {
   30021           0 :             p->level--;
   30022           0 :             return NULL;
   30023             :         }
   30024       37596 :         D(fprintf(stderr, "%*c> _loop0_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
   30025             :         arg_ty lambda_param_no_default_var;
   30026      244358 :         while (
   30027      206762 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   30028             :         )
   30029             :         {
   30030      169166 :             _res = lambda_param_no_default_var;
   30031      169166 :             if (_n == _children_capacity) {
   30032       82224 :                 _children_capacity *= 2;
   30033       82224 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30034       82224 :                 if (!_new_children) {
   30035           0 :                     p->error_indicator = 1;
   30036           0 :                     PyErr_NoMemory();
   30037           0 :                     p->level--;
   30038           0 :                     return NULL;
   30039             :                 }
   30040       82224 :                 _children = _new_children;
   30041             :             }
   30042      169166 :             _children[_n++] = _res;
   30043      169166 :             _mark = p->mark;
   30044             :         }
   30045       37596 :         p->mark = _mark;
   30046       37596 :         D(fprintf(stderr, "%*c%s _loop0_103[%d-%d]: %s failed!\n", p->level, ' ',
   30047             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
   30048             :     }
   30049       37596 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30050       37596 :     if (!_seq) {
   30051           0 :         PyMem_Free(_children);
   30052           0 :         p->error_indicator = 1;
   30053           0 :         PyErr_NoMemory();
   30054           0 :         p->level--;
   30055           0 :         return NULL;
   30056             :     }
   30057      206762 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30058       37596 :     PyMem_Free(_children);
   30059       37596 :     _PyPegen_insert_memo(p, _start_mark, _loop0_103_type, _seq);
   30060       37596 :     p->level--;
   30061       37596 :     return _seq;
   30062             : }
   30063             : 
   30064             : // _loop1_104: lambda_param_with_default
   30065             : static asdl_seq *
   30066       37596 : _loop1_104_rule(Parser *p)
   30067             : {
   30068       37596 :     if (p->level++ == MAXSTACK) {
   30069           0 :         p->error_indicator = 1;
   30070           0 :         PyErr_NoMemory();
   30071             :     }
   30072       37596 :     if (p->error_indicator) {
   30073           0 :         p->level--;
   30074           0 :         return NULL;
   30075             :     }
   30076       37596 :     void *_res = NULL;
   30077       37596 :     int _mark = p->mark;
   30078       37596 :     int _start_mark = p->mark;
   30079       37596 :     void **_children = PyMem_Malloc(sizeof(void *));
   30080       37596 :     if (!_children) {
   30081           0 :         p->error_indicator = 1;
   30082           0 :         PyErr_NoMemory();
   30083           0 :         p->level--;
   30084           0 :         return NULL;
   30085             :     }
   30086       37596 :     Py_ssize_t _children_capacity = 1;
   30087       37596 :     Py_ssize_t _n = 0;
   30088             :     { // lambda_param_with_default
   30089       37596 :         if (p->error_indicator) {
   30090           0 :             p->level--;
   30091           0 :             return NULL;
   30092             :         }
   30093       37596 :         D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
   30094             :         NameDefaultPair* lambda_param_with_default_var;
   30095       75553 :         while (
   30096       37957 :             (lambda_param_with_default_var = lambda_param_with_default_rule(p))  // lambda_param_with_default
   30097             :         )
   30098             :         {
   30099         361 :             _res = lambda_param_with_default_var;
   30100         361 :             if (_n == _children_capacity) {
   30101          48 :                 _children_capacity *= 2;
   30102          48 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30103          48 :                 if (!_new_children) {
   30104           0 :                     p->error_indicator = 1;
   30105           0 :                     PyErr_NoMemory();
   30106           0 :                     p->level--;
   30107           0 :                     return NULL;
   30108             :                 }
   30109          48 :                 _children = _new_children;
   30110             :             }
   30111         361 :             _children[_n++] = _res;
   30112         361 :             _mark = p->mark;
   30113             :         }
   30114       37596 :         p->mark = _mark;
   30115       37596 :         D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
   30116             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
   30117             :     }
   30118       37596 :     if (_n == 0 || p->error_indicator) {
   30119       37284 :         PyMem_Free(_children);
   30120       37284 :         p->level--;
   30121       37284 :         return NULL;
   30122             :     }
   30123         312 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30124         312 :     if (!_seq) {
   30125           0 :         PyMem_Free(_children);
   30126           0 :         p->error_indicator = 1;
   30127           0 :         PyErr_NoMemory();
   30128           0 :         p->level--;
   30129           0 :         return NULL;
   30130             :     }
   30131         672 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30132         312 :     PyMem_Free(_children);
   30133         312 :     _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
   30134         312 :     p->level--;
   30135         312 :     return _seq;
   30136             : }
   30137             : 
   30138             : // _loop0_105: lambda_param_no_default
   30139             : static asdl_seq *
   30140       37539 : _loop0_105_rule(Parser *p)
   30141             : {
   30142       37539 :     if (p->level++ == MAXSTACK) {
   30143           0 :         p->error_indicator = 1;
   30144           0 :         PyErr_NoMemory();
   30145             :     }
   30146       37539 :     if (p->error_indicator) {
   30147           0 :         p->level--;
   30148           0 :         return NULL;
   30149             :     }
   30150       37539 :     void *_res = NULL;
   30151       37539 :     int _mark = p->mark;
   30152       37539 :     int _start_mark = p->mark;
   30153       37539 :     void **_children = PyMem_Malloc(sizeof(void *));
   30154       37539 :     if (!_children) {
   30155           0 :         p->error_indicator = 1;
   30156           0 :         PyErr_NoMemory();
   30157           0 :         p->level--;
   30158           0 :         return NULL;
   30159             :     }
   30160       37539 :     Py_ssize_t _children_capacity = 1;
   30161       37539 :     Py_ssize_t _n = 0;
   30162             :     { // lambda_param_no_default
   30163       37539 :         if (p->error_indicator) {
   30164           0 :             p->level--;
   30165           0 :             return NULL;
   30166             :         }
   30167       37539 :         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      244243 :         while (
   30170      206704 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   30171             :         )
   30172             :         {
   30173      169165 :             _res = lambda_param_no_default_var;
   30174      169165 :             if (_n == _children_capacity) {
   30175       82224 :                 _children_capacity *= 2;
   30176       82224 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30177       82224 :                 if (!_new_children) {
   30178           0 :                     p->error_indicator = 1;
   30179           0 :                     PyErr_NoMemory();
   30180           0 :                     p->level--;
   30181           0 :                     return NULL;
   30182             :                 }
   30183       82224 :                 _children = _new_children;
   30184             :             }
   30185      169165 :             _children[_n++] = _res;
   30186      169165 :             _mark = p->mark;
   30187             :         }
   30188       37539 :         p->mark = _mark;
   30189       37539 :         D(fprintf(stderr, "%*c%s _loop0_105[%d-%d]: %s failed!\n", p->level, ' ',
   30190             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
   30191             :     }
   30192       37539 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30193       37539 :     if (!_seq) {
   30194           0 :         PyMem_Free(_children);
   30195           0 :         p->error_indicator = 1;
   30196           0 :         PyErr_NoMemory();
   30197           0 :         p->level--;
   30198           0 :         return NULL;
   30199             :     }
   30200      206704 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30201       37539 :     PyMem_Free(_children);
   30202       37539 :     _PyPegen_insert_memo(p, _start_mark, _loop0_105_type, _seq);
   30203       37539 :     p->level--;
   30204       37539 :     return _seq;
   30205             : }
   30206             : 
   30207             : // _loop1_106: lambda_param_with_default
   30208             : static asdl_seq *
   30209       37539 : _loop1_106_rule(Parser *p)
   30210             : {
   30211       37539 :     if (p->level++ == MAXSTACK) {
   30212           0 :         p->error_indicator = 1;
   30213           0 :         PyErr_NoMemory();
   30214             :     }
   30215       37539 :     if (p->error_indicator) {
   30216           0 :         p->level--;
   30217           0 :         return NULL;
   30218             :     }
   30219       37539 :     void *_res = NULL;
   30220       37539 :     int _mark = p->mark;
   30221       37539 :     int _start_mark = p->mark;
   30222       37539 :     void **_children = PyMem_Malloc(sizeof(void *));
   30223       37539 :     if (!_children) {
   30224           0 :         p->error_indicator = 1;
   30225           0 :         PyErr_NoMemory();
   30226           0 :         p->level--;
   30227           0 :         return NULL;
   30228             :     }
   30229       37539 :     Py_ssize_t _children_capacity = 1;
   30230       37539 :     Py_ssize_t _n = 0;
   30231             :     { // lambda_param_with_default
   30232       37539 :         if (p->error_indicator) {
   30233           0 :             p->level--;
   30234           0 :             return NULL;
   30235             :         }
   30236       37539 :         D(fprintf(stderr, "%*c> _loop1_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
   30237             :         NameDefaultPair* lambda_param_with_default_var;
   30238       75347 :         while (
   30239       37808 :             (lambda_param_with_default_var = lambda_param_with_default_rule(p))  // lambda_param_with_default
   30240             :         )
   30241             :         {
   30242         269 :             _res = lambda_param_with_default_var;
   30243         269 :             if (_n == _children_capacity) {
   30244          12 :                 _children_capacity *= 2;
   30245          12 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30246          12 :                 if (!_new_children) {
   30247           0 :                     p->error_indicator = 1;
   30248           0 :                     PyErr_NoMemory();
   30249           0 :                     p->level--;
   30250           0 :                     return NULL;
   30251             :                 }
   30252          12 :                 _children = _new_children;
   30253             :             }
   30254         269 :             _children[_n++] = _res;
   30255         269 :             _mark = p->mark;
   30256             :         }
   30257       37539 :         p->mark = _mark;
   30258       37539 :         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       37539 :     if (_n == 0 || p->error_indicator) {
   30262       37282 :         PyMem_Free(_children);
   30263       37282 :         p->level--;
   30264       37282 :         return NULL;
   30265             :     }
   30266         257 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30267         257 :     if (!_seq) {
   30268           0 :         PyMem_Free(_children);
   30269           0 :         p->error_indicator = 1;
   30270           0 :         PyErr_NoMemory();
   30271           0 :         p->level--;
   30272           0 :         return NULL;
   30273             :     }
   30274         526 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30275         257 :     PyMem_Free(_children);
   30276         257 :     _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
   30277         257 :     p->level--;
   30278         257 :     return _seq;
   30279             : }
   30280             : 
   30281             : // _loop0_107: lambda_param_maybe_default
   30282             : static asdl_seq *
   30283         302 : _loop0_107_rule(Parser *p)
   30284             : {
   30285         302 :     if (p->level++ == MAXSTACK) {
   30286           0 :         p->error_indicator = 1;
   30287           0 :         PyErr_NoMemory();
   30288             :     }
   30289         302 :     if (p->error_indicator) {
   30290           0 :         p->level--;
   30291           0 :         return NULL;
   30292             :     }
   30293         302 :     void *_res = NULL;
   30294         302 :     int _mark = p->mark;
   30295         302 :     int _start_mark = p->mark;
   30296         302 :     void **_children = PyMem_Malloc(sizeof(void *));
   30297         302 :     if (!_children) {
   30298           0 :         p->error_indicator = 1;
   30299           0 :         PyErr_NoMemory();
   30300           0 :         p->level--;
   30301           0 :         return NULL;
   30302             :     }
   30303         302 :     Py_ssize_t _children_capacity = 1;
   30304         302 :     Py_ssize_t _n = 0;
   30305             :     { // lambda_param_maybe_default
   30306         302 :         if (p->error_indicator) {
   30307           0 :             p->level--;
   30308           0 :             return NULL;
   30309             :         }
   30310         302 :         D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
   30311             :         NameDefaultPair* lambda_param_maybe_default_var;
   30312         679 :         while (
   30313         377 :             (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p))  // lambda_param_maybe_default
   30314             :         )
   30315             :         {
   30316          75 :             _res = lambda_param_maybe_default_var;
   30317          75 :             if (_n == _children_capacity) {
   30318          21 :                 _children_capacity *= 2;
   30319          21 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30320          21 :                 if (!_new_children) {
   30321           0 :                     p->error_indicator = 1;
   30322           0 :                     PyErr_NoMemory();
   30323           0 :                     p->level--;
   30324           0 :                     return NULL;
   30325             :                 }
   30326          21 :                 _children = _new_children;
   30327             :             }
   30328          75 :             _children[_n++] = _res;
   30329          75 :             _mark = p->mark;
   30330             :         }
   30331         302 :         p->mark = _mark;
   30332         302 :         D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
   30333             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
   30334             :     }
   30335         302 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30336         302 :     if (!_seq) {
   30337           0 :         PyMem_Free(_children);
   30338           0 :         p->error_indicator = 1;
   30339           0 :         PyErr_NoMemory();
   30340           0 :         p->level--;
   30341           0 :         return NULL;
   30342             :     }
   30343         377 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30344         302 :     PyMem_Free(_children);
   30345         302 :     _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
   30346         302 :     p->level--;
   30347         302 :     return _seq;
   30348             : }
   30349             : 
   30350             : // _loop1_108: lambda_param_maybe_default
   30351             : static asdl_seq *
   30352         103 : _loop1_108_rule(Parser *p)
   30353             : {
   30354         103 :     if (p->level++ == MAXSTACK) {
   30355           0 :         p->error_indicator = 1;
   30356           0 :         PyErr_NoMemory();
   30357             :     }
   30358         103 :     if (p->error_indicator) {
   30359           0 :         p->level--;
   30360           0 :         return NULL;
   30361             :     }
   30362         103 :     void *_res = NULL;
   30363         103 :     int _mark = p->mark;
   30364         103 :     int _start_mark = p->mark;
   30365         103 :     void **_children = PyMem_Malloc(sizeof(void *));
   30366         103 :     if (!_children) {
   30367           0 :         p->error_indicator = 1;
   30368           0 :         PyErr_NoMemory();
   30369           0 :         p->level--;
   30370           0 :         return NULL;
   30371             :     }
   30372         103 :     Py_ssize_t _children_capacity = 1;
   30373         103 :     Py_ssize_t _n = 0;
   30374             :     { // lambda_param_maybe_default
   30375         103 :         if (p->error_indicator) {
   30376           0 :             p->level--;
   30377           0 :             return NULL;
   30378             :         }
   30379         103 :         D(fprintf(stderr, "%*c> _loop1_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
   30380             :         NameDefaultPair* lambda_param_maybe_default_var;
   30381         347 :         while (
   30382         244 :             (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p))  // lambda_param_maybe_default
   30383             :         )
   30384             :         {
   30385         141 :             _res = lambda_param_maybe_default_var;
   30386         141 :             if (_n == _children_capacity) {
   30387          39 :                 _children_capacity *= 2;
   30388          39 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30389          39 :                 if (!_new_children) {
   30390           0 :                     p->error_indicator = 1;
   30391           0 :                     PyErr_NoMemory();
   30392           0 :                     p->level--;
   30393           0 :                     return NULL;
   30394             :                 }
   30395          39 :                 _children = _new_children;
   30396             :             }
   30397         141 :             _children[_n++] = _res;
   30398         141 :             _mark = p->mark;
   30399             :         }
   30400         103 :         p->mark = _mark;
   30401         103 :         D(fprintf(stderr, "%*c%s _loop1_108[%d-%d]: %s failed!\n", p->level, ' ',
   30402             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
   30403             :     }
   30404         103 :     if (_n == 0 || p->error_indicator) {
   30405           1 :         PyMem_Free(_children);
   30406           1 :         p->level--;
   30407           1 :         return NULL;
   30408             :     }
   30409         102 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30410         102 :     if (!_seq) {
   30411           0 :         PyMem_Free(_children);
   30412           0 :         p->error_indicator = 1;
   30413           0 :         PyErr_NoMemory();
   30414           0 :         p->level--;
   30415           0 :         return NULL;
   30416             :     }
   30417         243 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30418         102 :     PyMem_Free(_children);
   30419         102 :     _PyPegen_insert_memo(p, _start_mark, _loop1_108_type, _seq);
   30420         102 :     p->level--;
   30421         102 :     return _seq;
   30422             : }
   30423             : 
   30424             : // _loop1_109: STRING
   30425             : static asdl_seq *
   30426     1611000 : _loop1_109_rule(Parser *p)
   30427             : {
   30428     1611000 :     if (p->level++ == MAXSTACK) {
   30429           0 :         p->error_indicator = 1;
   30430           0 :         PyErr_NoMemory();
   30431             :     }
   30432     1611000 :     if (p->error_indicator) {
   30433           0 :         p->level--;
   30434           0 :         return NULL;
   30435             :     }
   30436     1611000 :     void *_res = NULL;
   30437     1611000 :     int _mark = p->mark;
   30438     1611000 :     int _start_mark = p->mark;
   30439     1611000 :     void **_children = PyMem_Malloc(sizeof(void *));
   30440     1611000 :     if (!_children) {
   30441           0 :         p->error_indicator = 1;
   30442           0 :         PyErr_NoMemory();
   30443           0 :         p->level--;
   30444           0 :         return NULL;
   30445             :     }
   30446     1611000 :     Py_ssize_t _children_capacity = 1;
   30447     1611000 :     Py_ssize_t _n = 0;
   30448             :     { // STRING
   30449     1611000 :         if (p->error_indicator) {
   30450           0 :             p->level--;
   30451           0 :             return NULL;
   30452             :         }
   30453     1611000 :         D(fprintf(stderr, "%*c> _loop1_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
   30454             :         expr_ty string_var;
   30455     4913450 :         while (
   30456     3302440 :             (string_var = _PyPegen_string_token(p))  // STRING
   30457             :         )
   30458             :         {
   30459     1691440 :             _res = string_var;
   30460     1691440 :             if (_n == _children_capacity) {
   30461       25957 :                 _children_capacity *= 2;
   30462       25957 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30463       25957 :                 if (!_new_children) {
   30464           0 :                     p->error_indicator = 1;
   30465           0 :                     PyErr_NoMemory();
   30466           0 :                     p->level--;
   30467           0 :                     return NULL;
   30468             :                 }
   30469       25957 :                 _children = _new_children;
   30470             :             }
   30471     1691440 :             _children[_n++] = _res;
   30472     1691440 :             _mark = p->mark;
   30473             :         }
   30474     1611000 :         p->mark = _mark;
   30475     1611000 :         D(fprintf(stderr, "%*c%s _loop1_109[%d-%d]: %s failed!\n", p->level, ' ',
   30476             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
   30477             :     }
   30478     1611000 :     if (_n == 0 || p->error_indicator) {
   30479        3328 :         PyMem_Free(_children);
   30480        3328 :         p->level--;
   30481        3328 :         return NULL;
   30482             :     }
   30483     1607680 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30484     1607680 :     if (!_seq) {
   30485           0 :         PyMem_Free(_children);
   30486           0 :         p->error_indicator = 1;
   30487           0 :         PyErr_NoMemory();
   30488           0 :         p->level--;
   30489           0 :         return NULL;
   30490             :     }
   30491     3299110 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30492     1607680 :     PyMem_Free(_children);
   30493     1607680 :     _PyPegen_insert_memo(p, _start_mark, _loop1_109_type, _seq);
   30494     1607680 :     p->level--;
   30495     1607680 :     return _seq;
   30496             : }
   30497             : 
   30498             : // _tmp_110: star_named_expression ',' star_named_expressions?
   30499             : static void *
   30500      866646 : _tmp_110_rule(Parser *p)
   30501             : {
   30502      866646 :     if (p->level++ == MAXSTACK) {
   30503           0 :         p->error_indicator = 1;
   30504           0 :         PyErr_NoMemory();
   30505             :     }
   30506      866646 :     if (p->error_indicator) {
   30507           0 :         p->level--;
   30508           0 :         return NULL;
   30509             :     }
   30510      866646 :     void * _res = NULL;
   30511      866646 :     int _mark = p->mark;
   30512             :     { // star_named_expression ',' star_named_expressions?
   30513      866646 :         if (p->error_indicator) {
   30514           0 :             p->level--;
   30515           0 :             return NULL;
   30516             :         }
   30517      866646 :         D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
   30518             :         Token * _literal;
   30519             :         expr_ty y;
   30520             :         void *z;
   30521      866646 :         if (
   30522      866646 :             (y = star_named_expression_rule(p))  // star_named_expression
   30523      843531 :             &&
   30524      843531 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   30525      550114 :             &&
   30526      550114 :             (z = star_named_expressions_rule(p), !p->error_indicator)  // star_named_expressions?
   30527             :         )
   30528             :         {
   30529      550097 :             D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
   30530      550097 :             _res = _PyPegen_seq_insert_in_front ( p , y , z );
   30531      550097 :             if (_res == NULL && PyErr_Occurred()) {
   30532           0 :                 p->error_indicator = 1;
   30533           0 :                 p->level--;
   30534           0 :                 return NULL;
   30535             :             }
   30536      550097 :             goto done;
   30537             :         }
   30538      316549 :         p->mark = _mark;
   30539      316549 :         D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
   30540             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
   30541             :     }
   30542      316549 :     _res = NULL;
   30543      866646 :   done:
   30544      866646 :     p->level--;
   30545      866646 :     return _res;
   30546             : }
   30547             : 
   30548             : // _loop0_112: ',' double_starred_kvpair
   30549             : static asdl_seq *
   30550       65010 : _loop0_112_rule(Parser *p)
   30551             : {
   30552       65010 :     if (p->level++ == MAXSTACK) {
   30553           0 :         p->error_indicator = 1;
   30554           0 :         PyErr_NoMemory();
   30555             :     }
   30556       65010 :     if (p->error_indicator) {
   30557           0 :         p->level--;
   30558           0 :         return NULL;
   30559             :     }
   30560       65010 :     void *_res = NULL;
   30561       65010 :     int _mark = p->mark;
   30562       65010 :     int _start_mark = p->mark;
   30563       65010 :     void **_children = PyMem_Malloc(sizeof(void *));
   30564       65010 :     if (!_children) {
   30565           0 :         p->error_indicator = 1;
   30566           0 :         PyErr_NoMemory();
   30567           0 :         p->level--;
   30568           0 :         return NULL;
   30569             :     }
   30570       65010 :     Py_ssize_t _children_capacity = 1;
   30571       65010 :     Py_ssize_t _n = 0;
   30572             :     { // ',' double_starred_kvpair
   30573       65010 :         if (p->error_indicator) {
   30574           0 :             p->level--;
   30575           0 :             return NULL;
   30576             :         }
   30577       65010 :         D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
   30578             :         Token * _literal;
   30579             :         KeyValuePair* elem;
   30580     1589310 :         while (
   30581     1524300 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   30582     1481730 :             &&
   30583     1481730 :             (elem = double_starred_kvpair_rule(p))  // double_starred_kvpair
   30584             :         )
   30585             :         {
   30586     1459290 :             _res = elem;
   30587     1459290 :             if (_res == NULL && PyErr_Occurred()) {
   30588           0 :                 p->error_indicator = 1;
   30589           0 :                 PyMem_Free(_children);
   30590           0 :                 p->level--;
   30591           0 :                 return NULL;
   30592             :             }
   30593     1459290 :             if (_n == _children_capacity) {
   30594      109337 :                 _children_capacity *= 2;
   30595      109337 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30596      109337 :                 if (!_new_children) {
   30597           0 :                     p->error_indicator = 1;
   30598           0 :                     PyErr_NoMemory();
   30599           0 :                     p->level--;
   30600           0 :                     return NULL;
   30601             :                 }
   30602      109337 :                 _children = _new_children;
   30603             :             }
   30604     1459290 :             _children[_n++] = _res;
   30605     1459290 :             _mark = p->mark;
   30606             :         }
   30607       65010 :         p->mark = _mark;
   30608       65010 :         D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
   30609             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
   30610             :     }
   30611       65010 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30612       65010 :     if (!_seq) {
   30613           0 :         PyMem_Free(_children);
   30614           0 :         p->error_indicator = 1;
   30615           0 :         PyErr_NoMemory();
   30616           0 :         p->level--;
   30617           0 :         return NULL;
   30618             :     }
   30619     1524300 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30620       65010 :     PyMem_Free(_children);
   30621       65010 :     _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
   30622       65010 :     p->level--;
   30623       65010 :     return _seq;
   30624             : }
   30625             : 
   30626             : // _gather_111: double_starred_kvpair _loop0_112
   30627             : static asdl_seq *
   30628      112966 : _gather_111_rule(Parser *p)
   30629             : {
   30630      112966 :     if (p->level++ == MAXSTACK) {
   30631           0 :         p->error_indicator = 1;
   30632           0 :         PyErr_NoMemory();
   30633             :     }
   30634      112966 :     if (p->error_indicator) {
   30635           0 :         p->level--;
   30636           0 :         return NULL;
   30637             :     }
   30638      112966 :     asdl_seq * _res = NULL;
   30639      112966 :     int _mark = p->mark;
   30640             :     { // double_starred_kvpair _loop0_112
   30641      112966 :         if (p->error_indicator) {
   30642           0 :             p->level--;
   30643           0 :             return NULL;
   30644             :         }
   30645      112966 :         D(fprintf(stderr, "%*c> _gather_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_112"));
   30646             :         KeyValuePair* elem;
   30647             :         asdl_seq * seq;
   30648      112966 :         if (
   30649      112966 :             (elem = double_starred_kvpair_rule(p))  // double_starred_kvpair
   30650       65010 :             &&
   30651       65010 :             (seq = _loop0_112_rule(p))  // _loop0_112
   30652             :         )
   30653             :         {
   30654       65010 :             D(fprintf(stderr, "%*c+ _gather_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_112"));
   30655       65010 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   30656       65010 :             goto done;
   30657             :         }
   30658       47956 :         p->mark = _mark;
   30659       47956 :         D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
   30660             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_112"));
   30661             :     }
   30662       47956 :     _res = NULL;
   30663      112966 :   done:
   30664      112966 :     p->level--;
   30665      112966 :     return _res;
   30666             : }
   30667             : 
   30668             : // _loop1_113: for_if_clause
   30669             : static asdl_seq *
   30670     2133110 : _loop1_113_rule(Parser *p)
   30671             : {
   30672     2133110 :     if (p->level++ == MAXSTACK) {
   30673           0 :         p->error_indicator = 1;
   30674           0 :         PyErr_NoMemory();
   30675             :     }
   30676     2133110 :     if (p->error_indicator) {
   30677           0 :         p->level--;
   30678           0 :         return NULL;
   30679             :     }
   30680     2133110 :     void *_res = NULL;
   30681     2133110 :     int _mark = p->mark;
   30682     2133110 :     int _start_mark = p->mark;
   30683     2133110 :     void **_children = PyMem_Malloc(sizeof(void *));
   30684     2133110 :     if (!_children) {
   30685           0 :         p->error_indicator = 1;
   30686           0 :         PyErr_NoMemory();
   30687           0 :         p->level--;
   30688           0 :         return NULL;
   30689             :     }
   30690     2133110 :     Py_ssize_t _children_capacity = 1;
   30691     2133110 :     Py_ssize_t _n = 0;
   30692             :     { // for_if_clause
   30693     2133110 :         if (p->error_indicator) {
   30694           0 :             p->level--;
   30695           0 :             return NULL;
   30696             :         }
   30697     2133110 :         D(fprintf(stderr, "%*c> _loop1_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
   30698             :         comprehension_ty for_if_clause_var;
   30699     4318110 :         while (
   30700     2185000 :             (for_if_clause_var = for_if_clause_rule(p))  // for_if_clause
   30701             :         )
   30702             :         {
   30703       51889 :             _res = for_if_clause_var;
   30704       51889 :             if (_n == _children_capacity) {
   30705        2004 :                 _children_capacity *= 2;
   30706        2004 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30707        2004 :                 if (!_new_children) {
   30708           0 :                     p->error_indicator = 1;
   30709           0 :                     PyErr_NoMemory();
   30710           0 :                     p->level--;
   30711           0 :                     return NULL;
   30712             :                 }
   30713        2004 :                 _children = _new_children;
   30714             :             }
   30715       51889 :             _children[_n++] = _res;
   30716       51889 :             _mark = p->mark;
   30717             :         }
   30718     2133110 :         p->mark = _mark;
   30719     2133110 :         D(fprintf(stderr, "%*c%s _loop1_113[%d-%d]: %s failed!\n", p->level, ' ',
   30720             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
   30721             :     }
   30722     2133110 :     if (_n == 0 || p->error_indicator) {
   30723     2083230 :         PyMem_Free(_children);
   30724     2083230 :         p->level--;
   30725     2083230 :         return NULL;
   30726             :     }
   30727       49885 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30728       49885 :     if (!_seq) {
   30729           0 :         PyMem_Free(_children);
   30730           0 :         p->error_indicator = 1;
   30731           0 :         PyErr_NoMemory();
   30732           0 :         p->level--;
   30733           0 :         return NULL;
   30734             :     }
   30735      101774 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30736       49885 :     PyMem_Free(_children);
   30737       49885 :     _PyPegen_insert_memo(p, _start_mark, _loop1_113_type, _seq);
   30738       49885 :     p->level--;
   30739       49885 :     return _seq;
   30740             : }
   30741             : 
   30742             : // _loop0_114: ('if' disjunction)
   30743             : static asdl_seq *
   30744         508 : _loop0_114_rule(Parser *p)
   30745             : {
   30746         508 :     if (p->level++ == MAXSTACK) {
   30747           0 :         p->error_indicator = 1;
   30748           0 :         PyErr_NoMemory();
   30749             :     }
   30750         508 :     if (p->error_indicator) {
   30751           0 :         p->level--;
   30752           0 :         return NULL;
   30753             :     }
   30754         508 :     void *_res = NULL;
   30755         508 :     int _mark = p->mark;
   30756         508 :     int _start_mark = p->mark;
   30757         508 :     void **_children = PyMem_Malloc(sizeof(void *));
   30758         508 :     if (!_children) {
   30759           0 :         p->error_indicator = 1;
   30760           0 :         PyErr_NoMemory();
   30761           0 :         p->level--;
   30762           0 :         return NULL;
   30763             :     }
   30764         508 :     Py_ssize_t _children_capacity = 1;
   30765         508 :     Py_ssize_t _n = 0;
   30766             :     { // ('if' disjunction)
   30767         508 :         if (p->error_indicator) {
   30768           0 :             p->level--;
   30769           0 :             return NULL;
   30770             :         }
   30771         508 :         D(fprintf(stderr, "%*c> _loop0_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
   30772             :         void *_tmp_228_var;
   30773        1076 :         while (
   30774         568 :             (_tmp_228_var = _tmp_228_rule(p))  // 'if' disjunction
   30775             :         )
   30776             :         {
   30777          60 :             _res = _tmp_228_var;
   30778          60 :             if (_n == _children_capacity) {
   30779           0 :                 _children_capacity *= 2;
   30780           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30781           0 :                 if (!_new_children) {
   30782           0 :                     p->error_indicator = 1;
   30783           0 :                     PyErr_NoMemory();
   30784           0 :                     p->level--;
   30785           0 :                     return NULL;
   30786             :                 }
   30787           0 :                 _children = _new_children;
   30788             :             }
   30789          60 :             _children[_n++] = _res;
   30790          60 :             _mark = p->mark;
   30791             :         }
   30792         508 :         p->mark = _mark;
   30793         508 :         D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
   30794             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
   30795             :     }
   30796         508 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30797         508 :     if (!_seq) {
   30798           0 :         PyMem_Free(_children);
   30799           0 :         p->error_indicator = 1;
   30800           0 :         PyErr_NoMemory();
   30801           0 :         p->level--;
   30802           0 :         return NULL;
   30803             :     }
   30804         568 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30805         508 :     PyMem_Free(_children);
   30806         508 :     _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
   30807         508 :     p->level--;
   30808         508 :     return _seq;
   30809             : }
   30810             : 
   30811             : // _loop0_115: ('if' disjunction)
   30812             : static asdl_seq *
   30813       51383 : _loop0_115_rule(Parser *p)
   30814             : {
   30815       51383 :     if (p->level++ == MAXSTACK) {
   30816           0 :         p->error_indicator = 1;
   30817           0 :         PyErr_NoMemory();
   30818             :     }
   30819       51383 :     if (p->error_indicator) {
   30820           0 :         p->level--;
   30821           0 :         return NULL;
   30822             :     }
   30823       51383 :     void *_res = NULL;
   30824       51383 :     int _mark = p->mark;
   30825       51383 :     int _start_mark = p->mark;
   30826       51383 :     void **_children = PyMem_Malloc(sizeof(void *));
   30827       51383 :     if (!_children) {
   30828           0 :         p->error_indicator = 1;
   30829           0 :         PyErr_NoMemory();
   30830           0 :         p->level--;
   30831           0 :         return NULL;
   30832             :     }
   30833       51383 :     Py_ssize_t _children_capacity = 1;
   30834       51383 :     Py_ssize_t _n = 0;
   30835             :     { // ('if' disjunction)
   30836       51383 :         if (p->error_indicator) {
   30837           0 :             p->level--;
   30838           0 :             return NULL;
   30839             :         }
   30840       51383 :         D(fprintf(stderr, "%*c> _loop0_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
   30841             :         void *_tmp_229_var;
   30842      115342 :         while (
   30843       63959 :             (_tmp_229_var = _tmp_229_rule(p))  // 'if' disjunction
   30844             :         )
   30845             :         {
   30846       12576 :             _res = _tmp_229_var;
   30847       12576 :             if (_n == _children_capacity) {
   30848          22 :                 _children_capacity *= 2;
   30849          22 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30850          22 :                 if (!_new_children) {
   30851           0 :                     p->error_indicator = 1;
   30852           0 :                     PyErr_NoMemory();
   30853           0 :                     p->level--;
   30854           0 :                     return NULL;
   30855             :                 }
   30856          22 :                 _children = _new_children;
   30857             :             }
   30858       12576 :             _children[_n++] = _res;
   30859       12576 :             _mark = p->mark;
   30860             :         }
   30861       51383 :         p->mark = _mark;
   30862       51383 :         D(fprintf(stderr, "%*c%s _loop0_115[%d-%d]: %s failed!\n", p->level, ' ',
   30863             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
   30864             :     }
   30865       51383 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30866       51383 :     if (!_seq) {
   30867           0 :         PyMem_Free(_children);
   30868           0 :         p->error_indicator = 1;
   30869           0 :         PyErr_NoMemory();
   30870           0 :         p->level--;
   30871           0 :         return NULL;
   30872             :     }
   30873       63959 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30874       51383 :     PyMem_Free(_children);
   30875       51383 :     _PyPegen_insert_memo(p, _start_mark, _loop0_115_type, _seq);
   30876       51383 :     p->level--;
   30877       51383 :     return _seq;
   30878             : }
   30879             : 
   30880             : // _tmp_116: assignment_expression | expression !':='
   30881             : static void *
   30882     3099980 : _tmp_116_rule(Parser *p)
   30883             : {
   30884     3099980 :     if (p->level++ == MAXSTACK) {
   30885           0 :         p->error_indicator = 1;
   30886           0 :         PyErr_NoMemory();
   30887             :     }
   30888     3099980 :     if (p->error_indicator) {
   30889           0 :         p->level--;
   30890           0 :         return NULL;
   30891             :     }
   30892     3099980 :     void * _res = NULL;
   30893     3099980 :     int _mark = p->mark;
   30894             :     { // assignment_expression
   30895     3099980 :         if (p->error_indicator) {
   30896           0 :             p->level--;
   30897           0 :             return NULL;
   30898             :         }
   30899     3099980 :         D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
   30900             :         expr_ty assignment_expression_var;
   30901     3099980 :         if (
   30902     3099980 :             (assignment_expression_var = assignment_expression_rule(p))  // assignment_expression
   30903             :         )
   30904             :         {
   30905          58 :             D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
   30906          58 :             _res = assignment_expression_var;
   30907          58 :             goto done;
   30908             :         }
   30909     3099920 :         p->mark = _mark;
   30910     3099920 :         D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
   30911             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
   30912             :     }
   30913             :     { // expression !':='
   30914     3099920 :         if (p->error_indicator) {
   30915          27 :             p->level--;
   30916          27 :             return NULL;
   30917             :         }
   30918     3099890 :         D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
   30919             :         expr_ty expression_var;
   30920     3099890 :         if (
   30921     3099890 :             (expression_var = expression_rule(p))  // expression
   30922     2098060 :             &&
   30923     2098060 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53)  // token=':='
   30924             :         )
   30925             :         {
   30926     2098060 :             D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
   30927     2098060 :             _res = expression_var;
   30928     2098060 :             goto done;
   30929             :         }
   30930     1001840 :         p->mark = _mark;
   30931     1001840 :         D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
   30932             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
   30933             :     }
   30934     1001840 :     _res = NULL;
   30935     3099950 :   done:
   30936     3099950 :     p->level--;
   30937     3099950 :     return _res;
   30938             : }
   30939             : 
   30940             : // _loop0_118: ',' (starred_expression | (assignment_expression | expression !':=') !'=')
   30941             : static asdl_seq *
   30942     1349900 : _loop0_118_rule(Parser *p)
   30943             : {
   30944     1349900 :     if (p->level++ == MAXSTACK) {
   30945           0 :         p->error_indicator = 1;
   30946           0 :         PyErr_NoMemory();
   30947             :     }
   30948     1349900 :     if (p->error_indicator) {
   30949           0 :         p->level--;
   30950           0 :         return NULL;
   30951             :     }
   30952     1349900 :     void *_res = NULL;
   30953     1349900 :     int _mark = p->mark;
   30954     1349900 :     int _start_mark = p->mark;
   30955     1349900 :     void **_children = PyMem_Malloc(sizeof(void *));
   30956     1349900 :     if (!_children) {
   30957           0 :         p->error_indicator = 1;
   30958           0 :         PyErr_NoMemory();
   30959           0 :         p->level--;
   30960           0 :         return NULL;
   30961             :     }
   30962     1349900 :     Py_ssize_t _children_capacity = 1;
   30963     1349900 :     Py_ssize_t _n = 0;
   30964             :     { // ',' (starred_expression | (assignment_expression | expression !':=') !'=')
   30965     1349900 :         if (p->error_indicator) {
   30966           0 :             p->level--;
   30967           0 :             return NULL;
   30968             :         }
   30969     1349900 :         D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
   30970             :         Token * _literal;
   30971             :         void *elem;
   30972     3452510 :         while (
   30973     2102610 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   30974      825455 :             &&
   30975      825455 :             (elem = _tmp_230_rule(p))  // starred_expression | (assignment_expression | expression !':=') !'='
   30976             :         )
   30977             :         {
   30978      752713 :             _res = elem;
   30979      752713 :             if (_res == NULL && PyErr_Occurred()) {
   30980           0 :                 p->error_indicator = 1;
   30981           0 :                 PyMem_Free(_children);
   30982           0 :                 p->level--;
   30983           0 :                 return NULL;
   30984             :             }
   30985      752713 :             if (_n == _children_capacity) {
   30986      165958 :                 _children_capacity *= 2;
   30987      165958 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30988      165958 :                 if (!_new_children) {
   30989           0 :                     p->error_indicator = 1;
   30990           0 :                     PyErr_NoMemory();
   30991           0 :                     p->level--;
   30992           0 :                     return NULL;
   30993             :                 }
   30994      165958 :                 _children = _new_children;
   30995             :             }
   30996      752713 :             _children[_n++] = _res;
   30997      752713 :             _mark = p->mark;
   30998             :         }
   30999     1349900 :         p->mark = _mark;
   31000     1349900 :         D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
   31001             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
   31002             :     }
   31003     1349900 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31004     1349900 :     if (!_seq) {
   31005           0 :         PyMem_Free(_children);
   31006           0 :         p->error_indicator = 1;
   31007           0 :         PyErr_NoMemory();
   31008           0 :         p->level--;
   31009           0 :         return NULL;
   31010             :     }
   31011     2102610 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31012     1349900 :     PyMem_Free(_children);
   31013     1349900 :     _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
   31014     1349900 :     p->level--;
   31015     1349900 :     return _seq;
   31016             : }
   31017             : 
   31018             : // _gather_117:
   31019             : //     | (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118
   31020             : static asdl_seq *
   31021     1934900 : _gather_117_rule(Parser *p)
   31022             : {
   31023     1934900 :     if (p->level++ == MAXSTACK) {
   31024           0 :         p->error_indicator = 1;
   31025           0 :         PyErr_NoMemory();
   31026             :     }
   31027     1934900 :     if (p->error_indicator) {
   31028           0 :         p->level--;
   31029           0 :         return NULL;
   31030             :     }
   31031     1934900 :     asdl_seq * _res = NULL;
   31032     1934900 :     int _mark = p->mark;
   31033             :     { // (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118
   31034     1934900 :         if (p->error_indicator) {
   31035           0 :             p->level--;
   31036           0 :             return NULL;
   31037             :         }
   31038     1934900 :         D(fprintf(stderr, "%*c> _gather_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118"));
   31039             :         void *elem;
   31040             :         asdl_seq * seq;
   31041     1934900 :         if (
   31042     1934900 :             (elem = _tmp_230_rule(p))  // starred_expression | (assignment_expression | expression !':=') !'='
   31043     1349900 :             &&
   31044     1349900 :             (seq = _loop0_118_rule(p))  // _loop0_118
   31045             :         )
   31046             :         {
   31047     1349900 :             D(fprintf(stderr, "%*c+ _gather_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118"));
   31048     1349900 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   31049     1349900 :             goto done;
   31050             :         }
   31051      585005 :         p->mark = _mark;
   31052      585005 :         D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
   31053             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118"));
   31054             :     }
   31055      585005 :     _res = NULL;
   31056     1934900 :   done:
   31057     1934900 :     p->level--;
   31058     1934900 :     return _res;
   31059             : }
   31060             : 
   31061             : // _tmp_119: ',' kwargs
   31062             : static void *
   31063     1349900 : _tmp_119_rule(Parser *p)
   31064             : {
   31065     1349900 :     if (p->level++ == MAXSTACK) {
   31066           0 :         p->error_indicator = 1;
   31067           0 :         PyErr_NoMemory();
   31068             :     }
   31069     1349900 :     if (p->error_indicator) {
   31070          14 :         p->level--;
   31071          14 :         return NULL;
   31072             :     }
   31073     1349880 :     void * _res = NULL;
   31074     1349880 :     int _mark = p->mark;
   31075             :     { // ',' kwargs
   31076     1349880 :         if (p->error_indicator) {
   31077           0 :             p->level--;
   31078           0 :             return NULL;
   31079             :         }
   31080     1349880 :         D(fprintf(stderr, "%*c> _tmp_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
   31081             :         Token * _literal;
   31082             :         asdl_seq* k;
   31083     1349880 :         if (
   31084     1349880 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   31085       72728 :             &&
   31086       72728 :             (k = kwargs_rule(p))  // kwargs
   31087             :         )
   31088             :         {
   31089       67638 :             D(fprintf(stderr, "%*c+ _tmp_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
   31090       67638 :             _res = k;
   31091       67638 :             if (_res == NULL && PyErr_Occurred()) {
   31092           0 :                 p->error_indicator = 1;
   31093           0 :                 p->level--;
   31094           0 :                 return NULL;
   31095             :             }
   31096       67638 :             goto done;
   31097             :         }
   31098     1282250 :         p->mark = _mark;
   31099     1282250 :         D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ',
   31100             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
   31101             :     }
   31102     1282250 :     _res = NULL;
   31103     1349880 :   done:
   31104     1349880 :     p->level--;
   31105     1349880 :     return _res;
   31106             : }
   31107             : 
   31108             : // _loop0_121: ',' kwarg_or_starred
   31109             : static asdl_seq *
   31110       98915 : _loop0_121_rule(Parser *p)
   31111             : {
   31112       98915 :     if (p->level++ == MAXSTACK) {
   31113           0 :         p->error_indicator = 1;
   31114           0 :         PyErr_NoMemory();
   31115             :     }
   31116       98915 :     if (p->error_indicator) {
   31117           0 :         p->level--;
   31118           0 :         return NULL;
   31119             :     }
   31120       98915 :     void *_res = NULL;
   31121       98915 :     int _mark = p->mark;
   31122       98915 :     int _start_mark = p->mark;
   31123       98915 :     void **_children = PyMem_Malloc(sizeof(void *));
   31124       98915 :     if (!_children) {
   31125           0 :         p->error_indicator = 1;
   31126           0 :         PyErr_NoMemory();
   31127           0 :         p->level--;
   31128           0 :         return NULL;
   31129             :     }
   31130       98915 :     Py_ssize_t _children_capacity = 1;
   31131       98915 :     Py_ssize_t _n = 0;
   31132             :     { // ',' kwarg_or_starred
   31133       98915 :         if (p->error_indicator) {
   31134           0 :             p->level--;
   31135           0 :             return NULL;
   31136             :         }
   31137       98915 :         D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
   31138             :         Token * _literal;
   31139             :         KeywordOrStarred* elem;
   31140      274461 :         while (
   31141      175546 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   31142       85190 :             &&
   31143       85190 :             (elem = kwarg_or_starred_rule(p))  // kwarg_or_starred
   31144             :         )
   31145             :         {
   31146       76631 :             _res = elem;
   31147       76631 :             if (_res == NULL && PyErr_Occurred()) {
   31148           0 :                 p->error_indicator = 1;
   31149           0 :                 PyMem_Free(_children);
   31150           0 :                 p->level--;
   31151           0 :                 return NULL;
   31152             :             }
   31153       76631 :             if (_n == _children_capacity) {
   31154       29887 :                 _children_capacity *= 2;
   31155       29887 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   31156       29887 :                 if (!_new_children) {
   31157           0 :                     p->error_indicator = 1;
   31158           0 :                     PyErr_NoMemory();
   31159           0 :                     p->level--;
   31160           0 :                     return NULL;
   31161             :                 }
   31162       29887 :                 _children = _new_children;
   31163             :             }
   31164       76631 :             _children[_n++] = _res;
   31165       76631 :             _mark = p->mark;
   31166             :         }
   31167       98915 :         p->mark = _mark;
   31168       98915 :         D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
   31169             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
   31170             :     }
   31171       98915 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31172       98915 :     if (!_seq) {
   31173           0 :         PyMem_Free(_children);
   31174           0 :         p->error_indicator = 1;
   31175           0 :         PyErr_NoMemory();
   31176           0 :         p->level--;
   31177           0 :         return NULL;
   31178             :     }
   31179      175546 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31180       98915 :     PyMem_Free(_children);
   31181       98915 :     _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
   31182       98915 :     p->level--;
   31183       98915 :     return _seq;
   31184             : }
   31185             : 
   31186             : // _gather_120: kwarg_or_starred _loop0_121
   31187             : static asdl_seq *
   31188      657731 : _gather_120_rule(Parser *p)
   31189             : {
   31190      657731 :     if (p->level++ == MAXSTACK) {
   31191           0 :         p->error_indicator = 1;
   31192           0 :         PyErr_NoMemory();
   31193             :     }
   31194      657731 :     if (p->error_indicator) {
   31195           0 :         p->level--;
   31196           0 :         return NULL;
   31197             :     }
   31198      657731 :     asdl_seq * _res = NULL;
   31199      657731 :     int _mark = p->mark;
   31200             :     { // kwarg_or_starred _loop0_121
   31201      657731 :         if (p->error_indicator) {
   31202           0 :             p->level--;
   31203           0 :             return NULL;
   31204             :         }
   31205      657731 :         D(fprintf(stderr, "%*c> _gather_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_121"));
   31206             :         KeywordOrStarred* elem;
   31207             :         asdl_seq * seq;
   31208      657731 :         if (
   31209      657731 :             (elem = kwarg_or_starred_rule(p))  // kwarg_or_starred
   31210       98915 :             &&
   31211       98915 :             (seq = _loop0_121_rule(p))  // _loop0_121
   31212             :         )
   31213             :         {
   31214       98915 :             D(fprintf(stderr, "%*c+ _gather_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_121"));
   31215       98915 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   31216       98915 :             goto done;
   31217             :         }
   31218      558816 :         p->mark = _mark;
   31219      558816 :         D(fprintf(stderr, "%*c%s _gather_120[%d-%d]: %s failed!\n", p->level, ' ',
   31220             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_121"));
   31221             :     }
   31222      558816 :     _res = NULL;
   31223      657731 :   done:
   31224      657731 :     p->level--;
   31225      657731 :     return _res;
   31226             : }
   31227             : 
   31228             : // _loop0_123: ',' kwarg_or_double_starred
   31229             : static asdl_seq *
   31230        1039 : _loop0_123_rule(Parser *p)
   31231             : {
   31232        1039 :     if (p->level++ == MAXSTACK) {
   31233           0 :         p->error_indicator = 1;
   31234           0 :         PyErr_NoMemory();
   31235             :     }
   31236        1039 :     if (p->error_indicator) {
   31237           0 :         p->level--;
   31238           0 :         return NULL;
   31239             :     }
   31240        1039 :     void *_res = NULL;
   31241        1039 :     int _mark = p->mark;
   31242        1039 :     int _start_mark = p->mark;
   31243        1039 :     void **_children = PyMem_Malloc(sizeof(void *));
   31244        1039 :     if (!_children) {
   31245           0 :         p->error_indicator = 1;
   31246           0 :         PyErr_NoMemory();
   31247           0 :         p->level--;
   31248           0 :         return NULL;
   31249             :     }
   31250        1039 :     Py_ssize_t _children_capacity = 1;
   31251        1039 :     Py_ssize_t _n = 0;
   31252             :     { // ',' kwarg_or_double_starred
   31253        1039 :         if (p->error_indicator) {
   31254           0 :             p->level--;
   31255           0 :             return NULL;
   31256             :         }
   31257        1039 :         D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
   31258             :         Token * _literal;
   31259             :         KeywordOrStarred* elem;
   31260        2094 :         while (
   31261        1055 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   31262          29 :             &&
   31263          29 :             (elem = kwarg_or_double_starred_rule(p))  // kwarg_or_double_starred
   31264             :         )
   31265             :         {
   31266          16 :             _res = elem;
   31267          16 :             if (_res == NULL && PyErr_Occurred()) {
   31268           0 :                 p->error_indicator = 1;
   31269           0 :                 PyMem_Free(_children);
   31270           0 :                 p->level--;
   31271           0 :                 return NULL;
   31272             :             }
   31273          16 :             if (_n == _children_capacity) {
   31274           0 :                 _children_capacity *= 2;
   31275           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   31276           0 :                 if (!_new_children) {
   31277           0 :                     p->error_indicator = 1;
   31278           0 :                     PyErr_NoMemory();
   31279           0 :                     p->level--;
   31280           0 :                     return NULL;
   31281             :                 }
   31282           0 :                 _children = _new_children;
   31283             :             }
   31284          16 :             _children[_n++] = _res;
   31285          16 :             _mark = p->mark;
   31286             :         }
   31287        1039 :         p->mark = _mark;
   31288        1039 :         D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
   31289             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
   31290             :     }
   31291        1039 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31292        1039 :     if (!_seq) {
   31293           0 :         PyMem_Free(_children);
   31294           0 :         p->error_indicator = 1;
   31295           0 :         PyErr_NoMemory();
   31296           0 :         p->level--;
   31297           0 :         return NULL;
   31298             :     }
   31299        1055 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31300        1039 :     PyMem_Free(_children);
   31301        1039 :     _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
   31302        1039 :     p->level--;
   31303        1039 :     return _seq;
   31304             : }
   31305             : 
   31306             : // _gather_122: kwarg_or_double_starred _loop0_123
   31307             : static asdl_seq *
   31308        8559 : _gather_122_rule(Parser *p)
   31309             : {
   31310        8559 :     if (p->level++ == MAXSTACK) {
   31311           0 :         p->error_indicator = 1;
   31312           0 :         PyErr_NoMemory();
   31313             :     }
   31314        8559 :     if (p->error_indicator) {
   31315           0 :         p->level--;
   31316           0 :         return NULL;
   31317             :     }
   31318        8559 :     asdl_seq * _res = NULL;
   31319        8559 :     int _mark = p->mark;
   31320             :     { // kwarg_or_double_starred _loop0_123
   31321        8559 :         if (p->error_indicator) {
   31322           0 :             p->level--;
   31323           0 :             return NULL;
   31324             :         }
   31325        8559 :         D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_123"));
   31326             :         KeywordOrStarred* elem;
   31327             :         asdl_seq * seq;
   31328        8559 :         if (
   31329        8559 :             (elem = kwarg_or_double_starred_rule(p))  // kwarg_or_double_starred
   31330        1039 :             &&
   31331        1039 :             (seq = _loop0_123_rule(p))  // _loop0_123
   31332             :         )
   31333             :         {
   31334        1039 :             D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_123"));
   31335        1039 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   31336        1039 :             goto done;
   31337             :         }
   31338        7520 :         p->mark = _mark;
   31339        7520 :         D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
   31340             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_123"));
   31341             :     }
   31342        7520 :     _res = NULL;
   31343        8559 :   done:
   31344        8559 :     p->level--;
   31345        8559 :     return _res;
   31346             : }
   31347             : 
   31348             : // _loop0_125: ',' kwarg_or_starred
   31349             : static asdl_seq *
   31350       97876 : _loop0_125_rule(Parser *p)
   31351             : {
   31352       97876 :     if (p->level++ == MAXSTACK) {
   31353           0 :         p->error_indicator = 1;
   31354           0 :         PyErr_NoMemory();
   31355             :     }
   31356       97876 :     if (p->error_indicator) {
   31357           0 :         p->level--;
   31358           0 :         return NULL;
   31359             :     }
   31360       97876 :     void *_res = NULL;
   31361       97876 :     int _mark = p->mark;
   31362       97876 :     int _start_mark = p->mark;
   31363       97876 :     void **_children = PyMem_Malloc(sizeof(void *));
   31364       97876 :     if (!_children) {
   31365           0 :         p->error_indicator = 1;
   31366           0 :         PyErr_NoMemory();
   31367           0 :         p->level--;
   31368           0 :         return NULL;
   31369             :     }
   31370       97876 :     Py_ssize_t _children_capacity = 1;
   31371       97876 :     Py_ssize_t _n = 0;
   31372             :     { // ',' kwarg_or_starred
   31373       97876 :         if (p->error_indicator) {
   31374           0 :             p->level--;
   31375           0 :             return NULL;
   31376             :         }
   31377       97876 :         D(fprintf(stderr, "%*c> _loop0_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
   31378             :         Token * _literal;
   31379             :         KeywordOrStarred* elem;
   31380      270978 :         while (
   31381      173102 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   31382       82746 :             &&
   31383       82746 :             (elem = kwarg_or_starred_rule(p))  // kwarg_or_starred
   31384             :         )
   31385             :         {
   31386       75226 :             _res = elem;
   31387       75226 :             if (_res == NULL && PyErr_Occurred()) {
   31388           0 :                 p->error_indicator = 1;
   31389           0 :                 PyMem_Free(_children);
   31390           0 :                 p->level--;
   31391           0 :                 return NULL;
   31392             :             }
   31393       75226 :             if (_n == _children_capacity) {
   31394       29253 :                 _children_capacity *= 2;
   31395       29253 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   31396       29253 :                 if (!_new_children) {
   31397           0 :                     p->error_indicator = 1;
   31398           0 :                     PyErr_NoMemory();
   31399           0 :                     p->level--;
   31400           0 :                     return NULL;
   31401             :                 }
   31402       29253 :                 _children = _new_children;
   31403             :             }
   31404       75226 :             _children[_n++] = _res;
   31405       75226 :             _mark = p->mark;
   31406             :         }
   31407       97876 :         p->mark = _mark;
   31408       97876 :         D(fprintf(stderr, "%*c%s _loop0_125[%d-%d]: %s failed!\n", p->level, ' ',
   31409             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
   31410             :     }
   31411       97876 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31412       97876 :     if (!_seq) {
   31413           0 :         PyMem_Free(_children);
   31414           0 :         p->error_indicator = 1;
   31415           0 :         PyErr_NoMemory();
   31416           0 :         p->level--;
   31417           0 :         return NULL;
   31418             :     }
   31419      173102 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31420       97876 :     PyMem_Free(_children);
   31421       97876 :     _PyPegen_insert_memo(p, _start_mark, _loop0_125_type, _seq);
   31422       97876 :     p->level--;
   31423       97876 :     return _seq;
   31424             : }
   31425             : 
   31426             : // _gather_124: kwarg_or_starred _loop0_125
   31427             : static asdl_seq *
   31428      656678 : _gather_124_rule(Parser *p)
   31429             : {
   31430      656678 :     if (p->level++ == MAXSTACK) {
   31431           0 :         p->error_indicator = 1;
   31432           0 :         PyErr_NoMemory();
   31433             :     }
   31434      656678 :     if (p->error_indicator) {
   31435           0 :         p->level--;
   31436           0 :         return NULL;
   31437             :     }
   31438      656678 :     asdl_seq * _res = NULL;
   31439      656678 :     int _mark = p->mark;
   31440             :     { // kwarg_or_starred _loop0_125
   31441      656678 :         if (p->error_indicator) {
   31442           0 :             p->level--;
   31443           0 :             return NULL;
   31444             :         }
   31445      656678 :         D(fprintf(stderr, "%*c> _gather_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_125"));
   31446             :         KeywordOrStarred* elem;
   31447             :         asdl_seq * seq;
   31448      656678 :         if (
   31449      656678 :             (elem = kwarg_or_starred_rule(p))  // kwarg_or_starred
   31450       97876 :             &&
   31451       97876 :             (seq = _loop0_125_rule(p))  // _loop0_125
   31452             :         )
   31453             :         {
   31454       97876 :             D(fprintf(stderr, "%*c+ _gather_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_125"));
   31455       97876 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   31456       97876 :             goto done;
   31457             :         }
   31458      558802 :         p->mark = _mark;
   31459      558802 :         D(fprintf(stderr, "%*c%s _gather_124[%d-%d]: %s failed!\n", p->level, ' ',
   31460             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_125"));
   31461             :     }
   31462      558802 :     _res = NULL;
   31463      656678 :   done:
   31464      656678 :     p->level--;
   31465      656678 :     return _res;
   31466             : }
   31467             : 
   31468             : // _loop0_127: ',' kwarg_or_double_starred
   31469             : static asdl_seq *
   31470        7541 : _loop0_127_rule(Parser *p)
   31471             : {
   31472        7541 :     if (p->level++ == MAXSTACK) {
   31473           0 :         p->error_indicator = 1;
   31474           0 :         PyErr_NoMemory();
   31475             :     }
   31476        7541 :     if (p->error_indicator) {
   31477           0 :         p->level--;
   31478           0 :         return NULL;
   31479             :     }
   31480        7541 :     void *_res = NULL;
   31481        7541 :     int _mark = p->mark;
   31482        7541 :     int _start_mark = p->mark;
   31483        7541 :     void **_children = PyMem_Malloc(sizeof(void *));
   31484        7541 :     if (!_children) {
   31485           0 :         p->error_indicator = 1;
   31486           0 :         PyErr_NoMemory();
   31487           0 :         p->level--;
   31488           0 :         return NULL;
   31489             :     }
   31490        7541 :     Py_ssize_t _children_capacity = 1;
   31491        7541 :     Py_ssize_t _n = 0;
   31492             :     { // ',' kwarg_or_double_starred
   31493        7541 :         if (p->error_indicator) {
   31494           0 :             p->level--;
   31495           0 :             return NULL;
   31496             :         }
   31497        7541 :         D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
   31498             :         Token * _literal;
   31499             :         KeywordOrStarred* elem;
   31500       15130 :         while (
   31501        7589 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   31502          62 :             &&
   31503          62 :             (elem = kwarg_or_double_starred_rule(p))  // kwarg_or_double_starred
   31504             :         )
   31505             :         {
   31506          48 :             _res = elem;
   31507          48 :             if (_res == NULL && PyErr_Occurred()) {
   31508           0 :                 p->error_indicator = 1;
   31509           0 :                 PyMem_Free(_children);
   31510           0 :                 p->level--;
   31511           0 :                 return NULL;
   31512             :             }
   31513          48 :             if (_n == _children_capacity) {
   31514          13 :                 _children_capacity *= 2;
   31515          13 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   31516          13 :                 if (!_new_children) {
   31517           0 :                     p->error_indicator = 1;
   31518           0 :                     PyErr_NoMemory();
   31519           0 :                     p->level--;
   31520           0 :                     return NULL;
   31521             :                 }
   31522          13 :                 _children = _new_children;
   31523             :             }
   31524          48 :             _children[_n++] = _res;
   31525          48 :             _mark = p->mark;
   31526             :         }
   31527        7541 :         p->mark = _mark;
   31528        7541 :         D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
   31529             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
   31530             :     }
   31531        7541 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31532        7541 :     if (!_seq) {
   31533           0 :         PyMem_Free(_children);
   31534           0 :         p->error_indicator = 1;
   31535           0 :         PyErr_NoMemory();
   31536           0 :         p->level--;
   31537           0 :         return NULL;
   31538             :     }
   31539        7589 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31540        7541 :     PyMem_Free(_children);
   31541        7541 :     _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
   31542        7541 :     p->level--;
   31543        7541 :     return _seq;
   31544             : }
   31545             : 
   31546             : // _gather_126: kwarg_or_double_starred _loop0_127
   31547             : static asdl_seq *
   31548      558802 : _gather_126_rule(Parser *p)
   31549             : {
   31550      558802 :     if (p->level++ == MAXSTACK) {
   31551           0 :         p->error_indicator = 1;
   31552           0 :         PyErr_NoMemory();
   31553             :     }
   31554      558802 :     if (p->error_indicator) {
   31555           0 :         p->level--;
   31556           0 :         return NULL;
   31557             :     }
   31558      558802 :     asdl_seq * _res = NULL;
   31559      558802 :     int _mark = p->mark;
   31560             :     { // kwarg_or_double_starred _loop0_127
   31561      558802 :         if (p->error_indicator) {
   31562           0 :             p->level--;
   31563           0 :             return NULL;
   31564             :         }
   31565      558802 :         D(fprintf(stderr, "%*c> _gather_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_127"));
   31566             :         KeywordOrStarred* elem;
   31567             :         asdl_seq * seq;
   31568      558802 :         if (
   31569      558802 :             (elem = kwarg_or_double_starred_rule(p))  // kwarg_or_double_starred
   31570        7541 :             &&
   31571        7541 :             (seq = _loop0_127_rule(p))  // _loop0_127
   31572             :         )
   31573             :         {
   31574        7541 :             D(fprintf(stderr, "%*c+ _gather_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_127"));
   31575        7541 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   31576        7541 :             goto done;
   31577             :         }
   31578      551261 :         p->mark = _mark;
   31579      551261 :         D(fprintf(stderr, "%*c%s _gather_126[%d-%d]: %s failed!\n", p->level, ' ',
   31580             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_127"));
   31581             :     }
   31582      551261 :     _res = NULL;
   31583      558802 :   done:
   31584      558802 :     p->level--;
   31585      558802 :     return _res;
   31586             : }
   31587             : 
   31588             : // _loop0_128: (',' star_target)
   31589             : static asdl_seq *
   31590       57095 : _loop0_128_rule(Parser *p)
   31591             : {
   31592       57095 :     if (p->level++ == MAXSTACK) {
   31593           0 :         p->error_indicator = 1;
   31594           0 :         PyErr_NoMemory();
   31595             :     }
   31596       57095 :     if (p->error_indicator) {
   31597           0 :         p->level--;
   31598           0 :         return NULL;
   31599             :     }
   31600       57095 :     void *_res = NULL;
   31601       57095 :     int _mark = p->mark;
   31602       57095 :     int _start_mark = p->mark;
   31603       57095 :     void **_children = PyMem_Malloc(sizeof(void *));
   31604       57095 :     if (!_children) {
   31605           0 :         p->error_indicator = 1;
   31606           0 :         PyErr_NoMemory();
   31607           0 :         p->level--;
   31608           0 :         return NULL;
   31609             :     }
   31610       57095 :     Py_ssize_t _children_capacity = 1;
   31611       57095 :     Py_ssize_t _n = 0;
   31612             :     { // (',' star_target)
   31613       57095 :         if (p->error_indicator) {
   31614           0 :             p->level--;
   31615           0 :             return NULL;
   31616             :         }
   31617       57095 :         D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
   31618             :         void *_tmp_231_var;
   31619      193327 :         while (
   31620      136232 :             (_tmp_231_var = _tmp_231_rule(p))  // ',' star_target
   31621             :         )
   31622             :         {
   31623       79137 :             _res = _tmp_231_var;
   31624       79137 :             if (_n == _children_capacity) {
   31625       17297 :                 _children_capacity *= 2;
   31626       17297 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   31627       17297 :                 if (!_new_children) {
   31628           0 :                     p->error_indicator = 1;
   31629           0 :                     PyErr_NoMemory();
   31630           0 :                     p->level--;
   31631           0 :                     return NULL;
   31632             :                 }
   31633       17297 :                 _children = _new_children;
   31634             :             }
   31635       79137 :             _children[_n++] = _res;
   31636       79137 :             _mark = p->mark;
   31637             :         }
   31638       57095 :         p->mark = _mark;
   31639       57095 :         D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
   31640             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
   31641             :     }
   31642       57095 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31643       57095 :     if (!_seq) {
   31644           0 :         PyMem_Free(_children);
   31645           0 :         p->error_indicator = 1;
   31646           0 :         PyErr_NoMemory();
   31647           0 :         p->level--;
   31648           0 :         return NULL;
   31649             :     }
   31650      136232 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31651       57095 :     PyMem_Free(_children);
   31652       57095 :     _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
   31653       57095 :     p->level--;
   31654       57095 :     return _seq;
   31655             : }
   31656             : 
   31657             : // _loop0_130: ',' star_target
   31658             : static asdl_seq *
   31659       12171 : _loop0_130_rule(Parser *p)
   31660             : {
   31661       12171 :     if (p->level++ == MAXSTACK) {
   31662           0 :         p->error_indicator = 1;
   31663           0 :         PyErr_NoMemory();
   31664             :     }
   31665       12171 :     if (p->error_indicator) {
   31666           0 :         p->level--;
   31667           0 :         return NULL;
   31668             :     }
   31669       12171 :     void *_res = NULL;
   31670       12171 :     int _mark = p->mark;
   31671       12171 :     int _start_mark = p->mark;
   31672       12171 :     void **_children = PyMem_Malloc(sizeof(void *));
   31673       12171 :     if (!_children) {
   31674           0 :         p->error_indicator = 1;
   31675           0 :         PyErr_NoMemory();
   31676           0 :         p->level--;
   31677           0 :         return NULL;
   31678             :     }
   31679       12171 :     Py_ssize_t _children_capacity = 1;
   31680       12171 :     Py_ssize_t _n = 0;
   31681             :     { // ',' star_target
   31682       12171 :         if (p->error_indicator) {
   31683           0 :             p->level--;
   31684           0 :             return NULL;
   31685             :         }
   31686       12171 :         D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
   31687             :         Token * _literal;
   31688             :         expr_ty elem;
   31689       28278 :         while (
   31690       16107 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   31691        4451 :             &&
   31692        4451 :             (elem = star_target_rule(p))  // star_target
   31693             :         )
   31694             :         {
   31695        3936 :             _res = elem;
   31696        3936 :             if (_res == NULL && PyErr_Occurred()) {
   31697           0 :                 p->error_indicator = 1;
   31698           0 :                 PyMem_Free(_children);
   31699           0 :                 p->level--;
   31700           0 :                 return NULL;
   31701             :             }
   31702        3936 :             if (_n == _children_capacity) {
   31703        1283 :                 _children_capacity *= 2;
   31704        1283 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   31705        1283 :                 if (!_new_children) {
   31706           0 :                     p->error_indicator = 1;
   31707           0 :                     PyErr_NoMemory();
   31708           0 :                     p->level--;
   31709           0 :                     return NULL;
   31710             :                 }
   31711        1283 :                 _children = _new_children;
   31712             :             }
   31713        3936 :             _children[_n++] = _res;
   31714        3936 :             _mark = p->mark;
   31715             :         }
   31716       12171 :         p->mark = _mark;
   31717       12171 :         D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
   31718             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
   31719             :     }
   31720       12171 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31721       12171 :     if (!_seq) {
   31722           0 :         PyMem_Free(_children);
   31723           0 :         p->error_indicator = 1;
   31724           0 :         PyErr_NoMemory();
   31725           0 :         p->level--;
   31726           0 :         return NULL;
   31727             :     }
   31728       16107 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31729       12171 :     PyMem_Free(_children);
   31730       12171 :     _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
   31731       12171 :     p->level--;
   31732       12171 :     return _seq;
   31733             : }
   31734             : 
   31735             : // _gather_129: star_target _loop0_130
   31736             : static asdl_seq *
   31737       42800 : _gather_129_rule(Parser *p)
   31738             : {
   31739       42800 :     if (p->level++ == MAXSTACK) {
   31740           0 :         p->error_indicator = 1;
   31741           0 :         PyErr_NoMemory();
   31742             :     }
   31743       42800 :     if (p->error_indicator) {
   31744           0 :         p->level--;
   31745           0 :         return NULL;
   31746             :     }
   31747       42800 :     asdl_seq * _res = NULL;
   31748       42800 :     int _mark = p->mark;
   31749             :     { // star_target _loop0_130
   31750       42800 :         if (p->error_indicator) {
   31751           0 :             p->level--;
   31752           0 :             return NULL;
   31753             :         }
   31754       42800 :         D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_130"));
   31755             :         expr_ty elem;
   31756             :         asdl_seq * seq;
   31757       42800 :         if (
   31758       42800 :             (elem = star_target_rule(p))  // star_target
   31759       12171 :             &&
   31760       12171 :             (seq = _loop0_130_rule(p))  // _loop0_130
   31761             :         )
   31762             :         {
   31763       12171 :             D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_130"));
   31764       12171 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   31765       12171 :             goto done;
   31766             :         }
   31767       30629 :         p->mark = _mark;
   31768       30629 :         D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ',
   31769             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_130"));
   31770             :     }
   31771       30629 :     _res = NULL;
   31772       42800 :   done:
   31773       42800 :     p->level--;
   31774       42800 :     return _res;
   31775             : }
   31776             : 
   31777             : // _loop1_131: (',' star_target)
   31778             : static asdl_seq *
   31779       16570 : _loop1_131_rule(Parser *p)
   31780             : {
   31781       16570 :     if (p->level++ == MAXSTACK) {
   31782           0 :         p->error_indicator = 1;
   31783           0 :         PyErr_NoMemory();
   31784             :     }
   31785       16570 :     if (p->error_indicator) {
   31786           0 :         p->level--;
   31787           0 :         return NULL;
   31788             :     }
   31789       16570 :     void *_res = NULL;
   31790       16570 :     int _mark = p->mark;
   31791       16570 :     int _start_mark = p->mark;
   31792       16570 :     void **_children = PyMem_Malloc(sizeof(void *));
   31793       16570 :     if (!_children) {
   31794           0 :         p->error_indicator = 1;
   31795           0 :         PyErr_NoMemory();
   31796           0 :         p->level--;
   31797           0 :         return NULL;
   31798             :     }
   31799       16570 :     Py_ssize_t _children_capacity = 1;
   31800       16570 :     Py_ssize_t _n = 0;
   31801             :     { // (',' star_target)
   31802       16570 :         if (p->error_indicator) {
   31803           0 :             p->level--;
   31804           0 :             return NULL;
   31805             :         }
   31806       16570 :         D(fprintf(stderr, "%*c> _loop1_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
   31807             :         void *_tmp_232_var;
   31808       49580 :         while (
   31809       33010 :             (_tmp_232_var = _tmp_232_rule(p))  // ',' star_target
   31810             :         )
   31811             :         {
   31812       16440 :             _res = _tmp_232_var;
   31813       16440 :             if (_n == _children_capacity) {
   31814        3870 :                 _children_capacity *= 2;
   31815        3870 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   31816        3870 :                 if (!_new_children) {
   31817           0 :                     p->error_indicator = 1;
   31818           0 :                     PyErr_NoMemory();
   31819           0 :                     p->level--;
   31820           0 :                     return NULL;
   31821             :                 }
   31822        3870 :                 _children = _new_children;
   31823             :             }
   31824       16440 :             _children[_n++] = _res;
   31825       16440 :             _mark = p->mark;
   31826             :         }
   31827       16570 :         p->mark = _mark;
   31828       16570 :         D(fprintf(stderr, "%*c%s _loop1_131[%d-%d]: %s failed!\n", p->level, ' ',
   31829             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
   31830             :     }
   31831       16570 :     if (_n == 0 || p->error_indicator) {
   31832        8944 :         PyMem_Free(_children);
   31833        8944 :         p->level--;
   31834        8944 :         return NULL;
   31835             :     }
   31836        7626 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31837        7626 :     if (!_seq) {
   31838           0 :         PyMem_Free(_children);
   31839           0 :         p->error_indicator = 1;
   31840           0 :         PyErr_NoMemory();
   31841           0 :         p->level--;
   31842           0 :         return NULL;
   31843             :     }
   31844       24066 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31845        7626 :     PyMem_Free(_children);
   31846        7626 :     _PyPegen_insert_memo(p, _start_mark, _loop1_131_type, _seq);
   31847        7626 :     p->level--;
   31848        7626 :     return _seq;
   31849             : }
   31850             : 
   31851             : // _tmp_132: !'*' star_target
   31852             : static void *
   31853         735 : _tmp_132_rule(Parser *p)
   31854             : {
   31855         735 :     if (p->level++ == MAXSTACK) {
   31856           0 :         p->error_indicator = 1;
   31857           0 :         PyErr_NoMemory();
   31858             :     }
   31859         735 :     if (p->error_indicator) {
   31860           0 :         p->level--;
   31861           0 :         return NULL;
   31862             :     }
   31863         735 :     void * _res = NULL;
   31864         735 :     int _mark = p->mark;
   31865             :     { // !'*' star_target
   31866         735 :         if (p->error_indicator) {
   31867           0 :             p->level--;
   31868           0 :             return NULL;
   31869             :         }
   31870         735 :         D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
   31871             :         expr_ty star_target_var;
   31872         735 :         if (
   31873         735 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16)  // token='*'
   31874         735 :             &&
   31875         735 :             (star_target_var = star_target_rule(p))  // star_target
   31876             :         )
   31877             :         {
   31878         699 :             D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
   31879         699 :             _res = star_target_var;
   31880         699 :             goto done;
   31881             :         }
   31882          36 :         p->mark = _mark;
   31883          36 :         D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
   31884             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
   31885             :     }
   31886          36 :     _res = NULL;
   31887         735 :   done:
   31888         735 :     p->level--;
   31889         735 :     return _res;
   31890             : }
   31891             : 
   31892             : // _loop0_134: ',' del_target
   31893             : static asdl_seq *
   31894        8999 : _loop0_134_rule(Parser *p)
   31895             : {
   31896        8999 :     if (p->level++ == MAXSTACK) {
   31897           0 :         p->error_indicator = 1;
   31898           0 :         PyErr_NoMemory();
   31899             :     }
   31900        8999 :     if (p->error_indicator) {
   31901           0 :         p->level--;
   31902           0 :         return NULL;
   31903             :     }
   31904        8999 :     void *_res = NULL;
   31905        8999 :     int _mark = p->mark;
   31906        8999 :     int _start_mark = p->mark;
   31907        8999 :     void **_children = PyMem_Malloc(sizeof(void *));
   31908        8999 :     if (!_children) {
   31909           0 :         p->error_indicator = 1;
   31910           0 :         PyErr_NoMemory();
   31911           0 :         p->level--;
   31912           0 :         return NULL;
   31913             :     }
   31914        8999 :     Py_ssize_t _children_capacity = 1;
   31915        8999 :     Py_ssize_t _n = 0;
   31916             :     { // ',' del_target
   31917        8999 :         if (p->error_indicator) {
   31918           0 :             p->level--;
   31919           0 :             return NULL;
   31920             :         }
   31921        8999 :         D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
   31922             :         Token * _literal;
   31923             :         expr_ty elem;
   31924       19742 :         while (
   31925       10743 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   31926        1757 :             &&
   31927        1757 :             (elem = del_target_rule(p))  // del_target
   31928             :         )
   31929             :         {
   31930        1744 :             _res = elem;
   31931        1744 :             if (_res == NULL && PyErr_Occurred()) {
   31932           0 :                 p->error_indicator = 1;
   31933           0 :                 PyMem_Free(_children);
   31934           0 :                 p->level--;
   31935           0 :                 return NULL;
   31936             :             }
   31937        1744 :             if (_n == _children_capacity) {
   31938         546 :                 _children_capacity *= 2;
   31939         546 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   31940         546 :                 if (!_new_children) {
   31941           0 :                     p->error_indicator = 1;
   31942           0 :                     PyErr_NoMemory();
   31943           0 :                     p->level--;
   31944           0 :                     return NULL;
   31945             :                 }
   31946         546 :                 _children = _new_children;
   31947             :             }
   31948        1744 :             _children[_n++] = _res;
   31949        1744 :             _mark = p->mark;
   31950             :         }
   31951        8999 :         p->mark = _mark;
   31952        8999 :         D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
   31953             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
   31954             :     }
   31955        8999 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31956        8999 :     if (!_seq) {
   31957           0 :         PyMem_Free(_children);
   31958           0 :         p->error_indicator = 1;
   31959           0 :         PyErr_NoMemory();
   31960           0 :         p->level--;
   31961           0 :         return NULL;
   31962             :     }
   31963       10743 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31964        8999 :     PyMem_Free(_children);
   31965        8999 :     _PyPegen_insert_memo(p, _start_mark, _loop0_134_type, _seq);
   31966        8999 :     p->level--;
   31967        8999 :     return _seq;
   31968             : }
   31969             : 
   31970             : // _gather_133: del_target _loop0_134
   31971             : static asdl_seq *
   31972        9065 : _gather_133_rule(Parser *p)
   31973             : {
   31974        9065 :     if (p->level++ == MAXSTACK) {
   31975           0 :         p->error_indicator = 1;
   31976           0 :         PyErr_NoMemory();
   31977             :     }
   31978        9065 :     if (p->error_indicator) {
   31979           0 :         p->level--;
   31980           0 :         return NULL;
   31981             :     }
   31982        9065 :     asdl_seq * _res = NULL;
   31983        9065 :     int _mark = p->mark;
   31984             :     { // del_target _loop0_134
   31985        9065 :         if (p->error_indicator) {
   31986           0 :             p->level--;
   31987           0 :             return NULL;
   31988             :         }
   31989        9065 :         D(fprintf(stderr, "%*c> _gather_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_134"));
   31990             :         expr_ty elem;
   31991             :         asdl_seq * seq;
   31992        9065 :         if (
   31993        9065 :             (elem = del_target_rule(p))  // del_target
   31994        8999 :             &&
   31995        8999 :             (seq = _loop0_134_rule(p))  // _loop0_134
   31996             :         )
   31997             :         {
   31998        8999 :             D(fprintf(stderr, "%*c+ _gather_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_134"));
   31999        8999 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   32000        8999 :             goto done;
   32001             :         }
   32002          66 :         p->mark = _mark;
   32003          66 :         D(fprintf(stderr, "%*c%s _gather_133[%d-%d]: %s failed!\n", p->level, ' ',
   32004             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_134"));
   32005             :     }
   32006          66 :     _res = NULL;
   32007        9065 :   done:
   32008        9065 :     p->level--;
   32009        9065 :     return _res;
   32010             : }
   32011             : 
   32012             : // _loop0_136: ',' expression
   32013             : static asdl_seq *
   32014          10 : _loop0_136_rule(Parser *p)
   32015             : {
   32016          10 :     if (p->level++ == MAXSTACK) {
   32017           0 :         p->error_indicator = 1;
   32018           0 :         PyErr_NoMemory();
   32019             :     }
   32020          10 :     if (p->error_indicator) {
   32021           0 :         p->level--;
   32022           0 :         return NULL;
   32023             :     }
   32024          10 :     void *_res = NULL;
   32025          10 :     int _mark = p->mark;
   32026          10 :     int _start_mark = p->mark;
   32027          10 :     void **_children = PyMem_Malloc(sizeof(void *));
   32028          10 :     if (!_children) {
   32029           0 :         p->error_indicator = 1;
   32030           0 :         PyErr_NoMemory();
   32031           0 :         p->level--;
   32032           0 :         return NULL;
   32033             :     }
   32034          10 :     Py_ssize_t _children_capacity = 1;
   32035          10 :     Py_ssize_t _n = 0;
   32036             :     { // ',' expression
   32037          10 :         if (p->error_indicator) {
   32038           0 :             p->level--;
   32039           0 :             return NULL;
   32040             :         }
   32041          10 :         D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
   32042             :         Token * _literal;
   32043             :         expr_ty elem;
   32044          24 :         while (
   32045          14 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   32046           9 :             &&
   32047           9 :             (elem = expression_rule(p))  // expression
   32048             :         )
   32049             :         {
   32050           4 :             _res = elem;
   32051           4 :             if (_res == NULL && PyErr_Occurred()) {
   32052           0 :                 p->error_indicator = 1;
   32053           0 :                 PyMem_Free(_children);
   32054           0 :                 p->level--;
   32055           0 :                 return NULL;
   32056             :             }
   32057           4 :             if (_n == _children_capacity) {
   32058           0 :                 _children_capacity *= 2;
   32059           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   32060           0 :                 if (!_new_children) {
   32061           0 :                     p->error_indicator = 1;
   32062           0 :                     PyErr_NoMemory();
   32063           0 :                     p->level--;
   32064           0 :                     return NULL;
   32065             :                 }
   32066           0 :                 _children = _new_children;
   32067             :             }
   32068           4 :             _children[_n++] = _res;
   32069           4 :             _mark = p->mark;
   32070             :         }
   32071          10 :         p->mark = _mark;
   32072          10 :         D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ',
   32073             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
   32074             :     }
   32075          10 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   32076          10 :     if (!_seq) {
   32077           0 :         PyMem_Free(_children);
   32078           0 :         p->error_indicator = 1;
   32079           0 :         PyErr_NoMemory();
   32080           0 :         p->level--;
   32081           0 :         return NULL;
   32082             :     }
   32083          14 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   32084          10 :     PyMem_Free(_children);
   32085          10 :     _PyPegen_insert_memo(p, _start_mark, _loop0_136_type, _seq);
   32086          10 :     p->level--;
   32087          10 :     return _seq;
   32088             : }
   32089             : 
   32090             : // _gather_135: expression _loop0_136
   32091             : static asdl_seq *
   32092          18 : _gather_135_rule(Parser *p)
   32093             : {
   32094          18 :     if (p->level++ == MAXSTACK) {
   32095           0 :         p->error_indicator = 1;
   32096           0 :         PyErr_NoMemory();
   32097             :     }
   32098          18 :     if (p->error_indicator) {
   32099           0 :         p->level--;
   32100           0 :         return NULL;
   32101             :     }
   32102          18 :     asdl_seq * _res = NULL;
   32103          18 :     int _mark = p->mark;
   32104             :     { // expression _loop0_136
   32105          18 :         if (p->error_indicator) {
   32106           0 :             p->level--;
   32107           0 :             return NULL;
   32108             :         }
   32109          18 :         D(fprintf(stderr, "%*c> _gather_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_136"));
   32110             :         expr_ty elem;
   32111             :         asdl_seq * seq;
   32112          18 :         if (
   32113          18 :             (elem = expression_rule(p))  // expression
   32114          10 :             &&
   32115          10 :             (seq = _loop0_136_rule(p))  // _loop0_136
   32116             :         )
   32117             :         {
   32118          10 :             D(fprintf(stderr, "%*c+ _gather_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_136"));
   32119          10 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   32120          10 :             goto done;
   32121             :         }
   32122           8 :         p->mark = _mark;
   32123           8 :         D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ',
   32124             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_136"));
   32125             :     }
   32126           8 :     _res = NULL;
   32127          18 :   done:
   32128          18 :     p->level--;
   32129          18 :     return _res;
   32130             : }
   32131             : 
   32132             : // _loop0_138: ',' expression
   32133             : static asdl_seq *
   32134           9 : _loop0_138_rule(Parser *p)
   32135             : {
   32136           9 :     if (p->level++ == MAXSTACK) {
   32137           0 :         p->error_indicator = 1;
   32138           0 :         PyErr_NoMemory();
   32139             :     }
   32140           9 :     if (p->error_indicator) {
   32141           0 :         p->level--;
   32142           0 :         return NULL;
   32143             :     }
   32144           9 :     void *_res = NULL;
   32145           9 :     int _mark = p->mark;
   32146           9 :     int _start_mark = p->mark;
   32147           9 :     void **_children = PyMem_Malloc(sizeof(void *));
   32148           9 :     if (!_children) {
   32149           0 :         p->error_indicator = 1;
   32150           0 :         PyErr_NoMemory();
   32151           0 :         p->level--;
   32152           0 :         return NULL;
   32153             :     }
   32154           9 :     Py_ssize_t _children_capacity = 1;
   32155           9 :     Py_ssize_t _n = 0;
   32156             :     { // ',' expression
   32157           9 :         if (p->error_indicator) {
   32158           0 :             p->level--;
   32159           0 :             return NULL;
   32160             :         }
   32161           9 :         D(fprintf(stderr, "%*c> _loop0_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
   32162             :         Token * _literal;
   32163             :         expr_ty elem;
   32164          22 :         while (
   32165          13 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   32166           8 :             &&
   32167           8 :             (elem = expression_rule(p))  // expression
   32168             :         )
   32169             :         {
   32170           4 :             _res = elem;
   32171           4 :             if (_res == NULL && PyErr_Occurred()) {
   32172           0 :                 p->error_indicator = 1;
   32173           0 :                 PyMem_Free(_children);
   32174           0 :                 p->level--;
   32175           0 :                 return NULL;
   32176             :             }
   32177           4 :             if (_n == _children_capacity) {
   32178           0 :                 _children_capacity *= 2;
   32179           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   32180           0 :                 if (!_new_children) {
   32181           0 :                     p->error_indicator = 1;
   32182           0 :                     PyErr_NoMemory();
   32183           0 :                     p->level--;
   32184           0 :                     return NULL;
   32185             :                 }
   32186           0 :                 _children = _new_children;
   32187             :             }
   32188           4 :             _children[_n++] = _res;
   32189           4 :             _mark = p->mark;
   32190             :         }
   32191           9 :         p->mark = _mark;
   32192           9 :         D(fprintf(stderr, "%*c%s _loop0_138[%d-%d]: %s failed!\n", p->level, ' ',
   32193             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
   32194             :     }
   32195           9 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   32196           9 :     if (!_seq) {
   32197           0 :         PyMem_Free(_children);
   32198           0 :         p->error_indicator = 1;
   32199           0 :         PyErr_NoMemory();
   32200           0 :         p->level--;
   32201           0 :         return NULL;
   32202             :     }
   32203          13 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   32204           9 :     PyMem_Free(_children);
   32205           9 :     _PyPegen_insert_memo(p, _start_mark, _loop0_138_type, _seq);
   32206           9 :     p->level--;
   32207           9 :     return _seq;
   32208             : }
   32209             : 
   32210             : // _gather_137: expression _loop0_138
   32211             : static asdl_seq *
   32212          17 : _gather_137_rule(Parser *p)
   32213             : {
   32214          17 :     if (p->level++ == MAXSTACK) {
   32215           0 :         p->error_indicator = 1;
   32216           0 :         PyErr_NoMemory();
   32217             :     }
   32218          17 :     if (p->error_indicator) {
   32219           0 :         p->level--;
   32220           0 :         return NULL;
   32221             :     }
   32222          17 :     asdl_seq * _res = NULL;
   32223          17 :     int _mark = p->mark;
   32224             :     { // expression _loop0_138
   32225          17 :         if (p->error_indicator) {
   32226           0 :             p->level--;
   32227           0 :             return NULL;
   32228             :         }
   32229          17 :         D(fprintf(stderr, "%*c> _gather_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_138"));
   32230             :         expr_ty elem;
   32231             :         asdl_seq * seq;
   32232          17 :         if (
   32233          17 :             (elem = expression_rule(p))  // expression
   32234           9 :             &&
   32235           9 :             (seq = _loop0_138_rule(p))  // _loop0_138
   32236             :         )
   32237             :         {
   32238           9 :             D(fprintf(stderr, "%*c+ _gather_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_138"));
   32239           9 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   32240           9 :             goto done;
   32241             :         }
   32242           8 :         p->mark = _mark;
   32243           8 :         D(fprintf(stderr, "%*c%s _gather_137[%d-%d]: %s failed!\n", p->level, ' ',
   32244             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_138"));
   32245             :     }
   32246           8 :     _res = NULL;
   32247          17 :   done:
   32248          17 :     p->level--;
   32249          17 :     return _res;
   32250             : }
   32251             : 
   32252             : // _loop0_140: ',' expression
   32253             : static asdl_seq *
   32254           7 : _loop0_140_rule(Parser *p)
   32255             : {
   32256           7 :     if (p->level++ == MAXSTACK) {
   32257           0 :         p->error_indicator = 1;
   32258           0 :         PyErr_NoMemory();
   32259             :     }
   32260           7 :     if (p->error_indicator) {
   32261           0 :         p->level--;
   32262           0 :         return NULL;
   32263             :     }
   32264           7 :     void *_res = NULL;
   32265           7 :     int _mark = p->mark;
   32266           7 :     int _start_mark = p->mark;
   32267           7 :     void **_children = PyMem_Malloc(sizeof(void *));
   32268           7 :     if (!_children) {
   32269           0 :         p->error_indicator = 1;
   32270           0 :         PyErr_NoMemory();
   32271           0 :         p->level--;
   32272           0 :         return NULL;
   32273             :     }
   32274           7 :     Py_ssize_t _children_capacity = 1;
   32275           7 :     Py_ssize_t _n = 0;
   32276             :     { // ',' expression
   32277           7 :         if (p->error_indicator) {
   32278           0 :             p->level--;
   32279           0 :             return NULL;
   32280             :         }
   32281           7 :         D(fprintf(stderr, "%*c> _loop0_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
   32282             :         Token * _literal;
   32283             :         expr_ty elem;
   32284          18 :         while (
   32285          11 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   32286           6 :             &&
   32287           6 :             (elem = expression_rule(p))  // expression
   32288             :         )
   32289             :         {
   32290           4 :             _res = elem;
   32291           4 :             if (_res == NULL && PyErr_Occurred()) {
   32292           0 :                 p->error_indicator = 1;
   32293           0 :                 PyMem_Free(_children);
   32294           0 :                 p->level--;
   32295           0 :                 return NULL;
   32296             :             }
   32297           4 :             if (_n == _children_capacity) {
   32298           0 :                 _children_capacity *= 2;
   32299           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   32300           0 :                 if (!_new_children) {
   32301           0 :                     p->error_indicator = 1;
   32302           0 :                     PyErr_NoMemory();
   32303           0 :                     p->level--;
   32304           0 :                     return NULL;
   32305             :                 }
   32306           0 :                 _children = _new_children;
   32307             :             }
   32308           4 :             _children[_n++] = _res;
   32309           4 :             _mark = p->mark;
   32310             :         }
   32311           7 :         p->mark = _mark;
   32312           7 :         D(fprintf(stderr, "%*c%s _loop0_140[%d-%d]: %s failed!\n", p->level, ' ',
   32313             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
   32314             :     }
   32315           7 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   32316           7 :     if (!_seq) {
   32317           0 :         PyMem_Free(_children);
   32318           0 :         p->error_indicator = 1;
   32319           0 :         PyErr_NoMemory();
   32320           0 :         p->level--;
   32321           0 :         return NULL;
   32322             :     }
   32323          11 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   32324           7 :     PyMem_Free(_children);
   32325           7 :     _PyPegen_insert_memo(p, _start_mark, _loop0_140_type, _seq);
   32326           7 :     p->level--;
   32327           7 :     return _seq;
   32328             : }
   32329             : 
   32330             : // _gather_139: expression _loop0_140
   32331             : static asdl_seq *
   32332          15 : _gather_139_rule(Parser *p)
   32333             : {
   32334          15 :     if (p->level++ == MAXSTACK) {
   32335           0 :         p->error_indicator = 1;
   32336           0 :         PyErr_NoMemory();
   32337             :     }
   32338          15 :     if (p->error_indicator) {
   32339           0 :         p->level--;
   32340           0 :         return NULL;
   32341             :     }
   32342          15 :     asdl_seq * _res = NULL;
   32343          15 :     int _mark = p->mark;
   32344             :     { // expression _loop0_140
   32345          15 :         if (p->error_indicator) {
   32346           0 :             p->level--;
   32347           0 :             return NULL;
   32348             :         }
   32349          15 :         D(fprintf(stderr, "%*c> _gather_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_140"));
   32350             :         expr_ty elem;
   32351             :         asdl_seq * seq;
   32352          15 :         if (
   32353          15 :             (elem = expression_rule(p))  // expression
   32354           7 :             &&
   32355           7 :             (seq = _loop0_140_rule(p))  // _loop0_140
   32356             :         )
   32357             :         {
   32358           7 :             D(fprintf(stderr, "%*c+ _gather_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_140"));
   32359           7 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   32360           7 :             goto done;
   32361             :         }
   32362           8 :         p->mark = _mark;
   32363           8 :         D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ',
   32364             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_140"));
   32365             :     }
   32366           8 :     _res = NULL;
   32367          15 :   done:
   32368          15 :     p->level--;
   32369          15 :     return _res;
   32370             : }
   32371             : 
   32372             : // _loop0_142: ',' expression
   32373             : static asdl_seq *
   32374           5 : _loop0_142_rule(Parser *p)
   32375             : {
   32376           5 :     if (p->level++ == MAXSTACK) {
   32377           0 :         p->error_indicator = 1;
   32378           0 :         PyErr_NoMemory();
   32379             :     }
   32380           5 :     if (p->error_indicator) {
   32381           0 :         p->level--;
   32382           0 :         return NULL;
   32383             :     }
   32384           5 :     void *_res = NULL;
   32385           5 :     int _mark = p->mark;
   32386           5 :     int _start_mark = p->mark;
   32387           5 :     void **_children = PyMem_Malloc(sizeof(void *));
   32388           5 :     if (!_children) {
   32389           0 :         p->error_indicator = 1;
   32390           0 :         PyErr_NoMemory();
   32391           0 :         p->level--;
   32392           0 :         return NULL;
   32393             :     }
   32394           5 :     Py_ssize_t _children_capacity = 1;
   32395           5 :     Py_ssize_t _n = 0;
   32396             :     { // ',' expression
   32397           5 :         if (p->error_indicator) {
   32398           0 :             p->level--;
   32399           0 :             return NULL;
   32400             :         }
   32401           5 :         D(fprintf(stderr, "%*c> _loop0_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
   32402             :         Token * _literal;
   32403             :         expr_ty elem;
   32404          14 :         while (
   32405           9 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   32406           4 :             &&
   32407           4 :             (elem = expression_rule(p))  // expression
   32408             :         )
   32409             :         {
   32410           4 :             _res = elem;
   32411           4 :             if (_res == NULL && PyErr_Occurred()) {
   32412           0 :                 p->error_indicator = 1;
   32413           0 :                 PyMem_Free(_children);
   32414           0 :                 p->level--;
   32415           0 :                 return NULL;
   32416             :             }
   32417           4 :             if (_n == _children_capacity) {
   32418           0 :                 _children_capacity *= 2;
   32419           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   32420           0 :                 if (!_new_children) {
   32421           0 :                     p->error_indicator = 1;
   32422           0 :                     PyErr_NoMemory();
   32423           0 :                     p->level--;
   32424           0 :                     return NULL;
   32425             :                 }
   32426           0 :                 _children = _new_children;
   32427             :             }
   32428           4 :             _children[_n++] = _res;
   32429           4 :             _mark = p->mark;
   32430             :         }
   32431           5 :         p->mark = _mark;
   32432           5 :         D(fprintf(stderr, "%*c%s _loop0_142[%d-%d]: %s failed!\n", p->level, ' ',
   32433             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
   32434             :     }
   32435           5 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   32436           5 :     if (!_seq) {
   32437           0 :         PyMem_Free(_children);
   32438           0 :         p->error_indicator = 1;
   32439           0 :         PyErr_NoMemory();
   32440           0 :         p->level--;
   32441           0 :         return NULL;
   32442             :     }
   32443           9 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   32444           5 :     PyMem_Free(_children);
   32445           5 :     _PyPegen_insert_memo(p, _start_mark, _loop0_142_type, _seq);
   32446           5 :     p->level--;
   32447           5 :     return _seq;
   32448             : }
   32449             : 
   32450             : // _gather_141: expression _loop0_142
   32451             : static asdl_seq *
   32452           8 : _gather_141_rule(Parser *p)
   32453             : {
   32454           8 :     if (p->level++ == MAXSTACK) {
   32455           0 :         p->error_indicator = 1;
   32456           0 :         PyErr_NoMemory();
   32457             :     }
   32458           8 :     if (p->error_indicator) {
   32459           0 :         p->level--;
   32460           0 :         return NULL;
   32461             :     }
   32462           8 :     asdl_seq * _res = NULL;
   32463           8 :     int _mark = p->mark;
   32464             :     { // expression _loop0_142
   32465           8 :         if (p->error_indicator) {
   32466           0 :             p->level--;
   32467           0 :             return NULL;
   32468             :         }
   32469           8 :         D(fprintf(stderr, "%*c> _gather_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_142"));
   32470             :         expr_ty elem;
   32471             :         asdl_seq * seq;
   32472           8 :         if (
   32473           8 :             (elem = expression_rule(p))  // expression
   32474           5 :             &&
   32475           5 :             (seq = _loop0_142_rule(p))  // _loop0_142
   32476             :         )
   32477             :         {
   32478           5 :             D(fprintf(stderr, "%*c+ _gather_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_142"));
   32479           5 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   32480           5 :             goto done;
   32481             :         }
   32482           3 :         p->mark = _mark;
   32483           3 :         D(fprintf(stderr, "%*c%s _gather_141[%d-%d]: %s failed!\n", p->level, ' ',
   32484             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_142"));
   32485             :     }
   32486           3 :     _res = NULL;
   32487           8 :   done:
   32488           8 :     p->level--;
   32489           8 :     return _res;
   32490             : }
   32491             : 
   32492             : // _tmp_143: NEWLINE INDENT
   32493             : static void *
   32494          27 : _tmp_143_rule(Parser *p)
   32495             : {
   32496          27 :     if (p->level++ == MAXSTACK) {
   32497           0 :         p->error_indicator = 1;
   32498           0 :         PyErr_NoMemory();
   32499             :     }
   32500          27 :     if (p->error_indicator) {
   32501           0 :         p->level--;
   32502           0 :         return NULL;
   32503             :     }
   32504          27 :     void * _res = NULL;
   32505          27 :     int _mark = p->mark;
   32506             :     { // NEWLINE INDENT
   32507          27 :         if (p->error_indicator) {
   32508           0 :             p->level--;
   32509           0 :             return NULL;
   32510             :         }
   32511          27 :         D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
   32512             :         Token * indent_var;
   32513             :         Token * newline_var;
   32514          27 :         if (
   32515          27 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   32516          27 :             &&
   32517          27 :             (indent_var = _PyPegen_expect_token(p, INDENT))  // token='INDENT'
   32518             :         )
   32519             :         {
   32520          27 :             D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
   32521          27 :             _res = _PyPegen_dummy_name(p, newline_var, indent_var);
   32522          27 :             goto done;
   32523             :         }
   32524           0 :         p->mark = _mark;
   32525           0 :         D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
   32526             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
   32527             :     }
   32528           0 :     _res = NULL;
   32529          27 :   done:
   32530          27 :     p->level--;
   32531          27 :     return _res;
   32532             : }
   32533             : 
   32534             : // _tmp_144: args | expression for_if_clauses
   32535             : static void *
   32536          11 : _tmp_144_rule(Parser *p)
   32537             : {
   32538          11 :     if (p->level++ == MAXSTACK) {
   32539           0 :         p->error_indicator = 1;
   32540           0 :         PyErr_NoMemory();
   32541             :     }
   32542          11 :     if (p->error_indicator) {
   32543           0 :         p->level--;
   32544           0 :         return NULL;
   32545             :     }
   32546          11 :     void * _res = NULL;
   32547          11 :     int _mark = p->mark;
   32548             :     { // args
   32549          11 :         if (p->error_indicator) {
   32550           0 :             p->level--;
   32551           0 :             return NULL;
   32552             :         }
   32553          11 :         D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
   32554             :         expr_ty args_var;
   32555          11 :         if (
   32556          11 :             (args_var = args_rule(p))  // args
   32557             :         )
   32558             :         {
   32559           9 :             D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
   32560           9 :             _res = args_var;
   32561           9 :             goto done;
   32562             :         }
   32563           2 :         p->mark = _mark;
   32564           2 :         D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
   32565             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
   32566             :     }
   32567             :     { // expression for_if_clauses
   32568           2 :         if (p->error_indicator) {
   32569           1 :             p->level--;
   32570           1 :             return NULL;
   32571             :         }
   32572           1 :         D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
   32573             :         expr_ty expression_var;
   32574             :         asdl_comprehension_seq* for_if_clauses_var;
   32575           1 :         if (
   32576           1 :             (expression_var = expression_rule(p))  // expression
   32577           0 :             &&
   32578           0 :             (for_if_clauses_var = for_if_clauses_rule(p))  // for_if_clauses
   32579             :         )
   32580             :         {
   32581           0 :             D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
   32582           0 :             _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
   32583           0 :             goto done;
   32584             :         }
   32585           1 :         p->mark = _mark;
   32586           1 :         D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
   32587             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
   32588             :     }
   32589           1 :     _res = NULL;
   32590          10 :   done:
   32591          10 :     p->level--;
   32592          10 :     return _res;
   32593             : }
   32594             : 
   32595             : // _tmp_145: 'True' | 'False' | 'None'
   32596             : static void *
   32597        1130 : _tmp_145_rule(Parser *p)
   32598             : {
   32599        1130 :     if (p->level++ == MAXSTACK) {
   32600           0 :         p->error_indicator = 1;
   32601           0 :         PyErr_NoMemory();
   32602             :     }
   32603        1130 :     if (p->error_indicator) {
   32604           0 :         p->level--;
   32605           0 :         return NULL;
   32606             :     }
   32607        1130 :     void * _res = NULL;
   32608        1130 :     int _mark = p->mark;
   32609             :     { // 'True'
   32610        1130 :         if (p->error_indicator) {
   32611           0 :             p->level--;
   32612           0 :             return NULL;
   32613             :         }
   32614        1130 :         D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
   32615             :         Token * _keyword;
   32616        1130 :         if (
   32617        1130 :             (_keyword = _PyPegen_expect_token(p, 600))  // token='True'
   32618             :         )
   32619             :         {
   32620           1 :             D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
   32621           1 :             _res = _keyword;
   32622           1 :             goto done;
   32623             :         }
   32624        1129 :         p->mark = _mark;
   32625        1129 :         D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
   32626             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
   32627             :     }
   32628             :     { // 'False'
   32629        1129 :         if (p->error_indicator) {
   32630           0 :             p->level--;
   32631           0 :             return NULL;
   32632             :         }
   32633        1129 :         D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
   32634             :         Token * _keyword;
   32635        1129 :         if (
   32636        1129 :             (_keyword = _PyPegen_expect_token(p, 602))  // token='False'
   32637             :         )
   32638             :         {
   32639           1 :             D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
   32640           1 :             _res = _keyword;
   32641           1 :             goto done;
   32642             :         }
   32643        1128 :         p->mark = _mark;
   32644        1128 :         D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
   32645             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
   32646             :     }
   32647             :     { // 'None'
   32648        1128 :         if (p->error_indicator) {
   32649           0 :             p->level--;
   32650           0 :             return NULL;
   32651             :         }
   32652        1128 :         D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
   32653             :         Token * _keyword;
   32654        1128 :         if (
   32655        1128 :             (_keyword = _PyPegen_expect_token(p, 601))  // token='None'
   32656             :         )
   32657             :         {
   32658           2 :             D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
   32659           2 :             _res = _keyword;
   32660           2 :             goto done;
   32661             :         }
   32662        1126 :         p->mark = _mark;
   32663        1126 :         D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
   32664             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
   32665             :     }
   32666        1126 :     _res = NULL;
   32667        1130 :   done:
   32668        1130 :     p->level--;
   32669        1130 :     return _res;
   32670             : }
   32671             : 
   32672             : // _tmp_146: NAME '='
   32673             : static void *
   32674        1125 : _tmp_146_rule(Parser *p)
   32675             : {
   32676        1125 :     if (p->level++ == MAXSTACK) {
   32677           0 :         p->error_indicator = 1;
   32678           0 :         PyErr_NoMemory();
   32679             :     }
   32680        1125 :     if (p->error_indicator) {
   32681           0 :         p->level--;
   32682           0 :         return NULL;
   32683             :     }
   32684        1125 :     void * _res = NULL;
   32685        1125 :     int _mark = p->mark;
   32686             :     { // NAME '='
   32687        1125 :         if (p->error_indicator) {
   32688           0 :             p->level--;
   32689           0 :             return NULL;
   32690             :         }
   32691        1125 :         D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
   32692             :         Token * _literal;
   32693             :         expr_ty name_var;
   32694        1125 :         if (
   32695        1125 :             (name_var = _PyPegen_name_token(p))  // NAME
   32696         276 :             &&
   32697         276 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   32698             :         )
   32699             :         {
   32700         167 :             D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
   32701         167 :             _res = _PyPegen_dummy_name(p, name_var, _literal);
   32702         167 :             goto done;
   32703             :         }
   32704         958 :         p->mark = _mark;
   32705         958 :         D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
   32706             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
   32707             :     }
   32708         958 :     _res = NULL;
   32709        1125 :   done:
   32710        1125 :     p->level--;
   32711        1125 :     return _res;
   32712             : }
   32713             : 
   32714             : // _tmp_147: NAME STRING | SOFT_KEYWORD
   32715             : static void *
   32716        2706 : _tmp_147_rule(Parser *p)
   32717             : {
   32718        2706 :     if (p->level++ == MAXSTACK) {
   32719           0 :         p->error_indicator = 1;
   32720           0 :         PyErr_NoMemory();
   32721             :     }
   32722        2706 :     if (p->error_indicator) {
   32723           0 :         p->level--;
   32724           0 :         return NULL;
   32725             :     }
   32726        2706 :     void * _res = NULL;
   32727        2706 :     int _mark = p->mark;
   32728             :     { // NAME STRING
   32729        2706 :         if (p->error_indicator) {
   32730           0 :             p->level--;
   32731           0 :             return NULL;
   32732             :         }
   32733        2706 :         D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
   32734             :         expr_ty name_var;
   32735             :         expr_ty string_var;
   32736        2706 :         if (
   32737        2706 :             (name_var = _PyPegen_name_token(p))  // NAME
   32738         704 :             &&
   32739         704 :             (string_var = _PyPegen_string_token(p))  // STRING
   32740             :         )
   32741             :         {
   32742          63 :             D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
   32743          63 :             _res = _PyPegen_dummy_name(p, name_var, string_var);
   32744          63 :             goto done;
   32745             :         }
   32746        2643 :         p->mark = _mark;
   32747        2643 :         D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
   32748             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
   32749             :     }
   32750             :     { // SOFT_KEYWORD
   32751        2643 :         if (p->error_indicator) {
   32752           0 :             p->level--;
   32753           0 :             return NULL;
   32754             :         }
   32755        2643 :         D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
   32756             :         expr_ty soft_keyword_var;
   32757        2643 :         if (
   32758        2643 :             (soft_keyword_var = _PyPegen_soft_keyword_token(p))  // SOFT_KEYWORD
   32759             :         )
   32760             :         {
   32761          31 :             D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
   32762          31 :             _res = soft_keyword_var;
   32763          31 :             goto done;
   32764             :         }
   32765        2612 :         p->mark = _mark;
   32766        2612 :         D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
   32767             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
   32768             :     }
   32769        2612 :     _res = NULL;
   32770        2706 :   done:
   32771        2706 :     p->level--;
   32772        2706 :     return _res;
   32773             : }
   32774             : 
   32775             : // _tmp_148: 'else' | ':'
   32776             : static void *
   32777           7 : _tmp_148_rule(Parser *p)
   32778             : {
   32779           7 :     if (p->level++ == MAXSTACK) {
   32780           0 :         p->error_indicator = 1;
   32781           0 :         PyErr_NoMemory();
   32782             :     }
   32783           7 :     if (p->error_indicator) {
   32784           0 :         p->level--;
   32785           0 :         return NULL;
   32786             :     }
   32787           7 :     void * _res = NULL;
   32788           7 :     int _mark = p->mark;
   32789             :     { // 'else'
   32790           7 :         if (p->error_indicator) {
   32791           0 :             p->level--;
   32792           0 :             return NULL;
   32793             :         }
   32794           7 :         D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'"));
   32795             :         Token * _keyword;
   32796           7 :         if (
   32797           7 :             (_keyword = _PyPegen_expect_token(p, 637))  // token='else'
   32798             :         )
   32799             :         {
   32800           2 :             D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'"));
   32801           2 :             _res = _keyword;
   32802           2 :             goto done;
   32803             :         }
   32804           5 :         p->mark = _mark;
   32805           5 :         D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
   32806             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else'"));
   32807             :     }
   32808             :     { // ':'
   32809           5 :         if (p->error_indicator) {
   32810           0 :             p->level--;
   32811           0 :             return NULL;
   32812             :         }
   32813           5 :         D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
   32814             :         Token * _literal;
   32815           5 :         if (
   32816           5 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   32817             :         )
   32818             :         {
   32819           1 :             D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
   32820           1 :             _res = _literal;
   32821           1 :             goto done;
   32822             :         }
   32823           4 :         p->mark = _mark;
   32824           4 :         D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
   32825             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
   32826             :     }
   32827           4 :     _res = NULL;
   32828           7 :   done:
   32829           7 :     p->level--;
   32830           7 :     return _res;
   32831             : }
   32832             : 
   32833             : // _tmp_149: '=' | ':='
   32834             : static void *
   32835          11 : _tmp_149_rule(Parser *p)
   32836             : {
   32837          11 :     if (p->level++ == MAXSTACK) {
   32838           0 :         p->error_indicator = 1;
   32839           0 :         PyErr_NoMemory();
   32840             :     }
   32841          11 :     if (p->error_indicator) {
   32842           0 :         p->level--;
   32843           0 :         return NULL;
   32844             :     }
   32845          11 :     void * _res = NULL;
   32846          11 :     int _mark = p->mark;
   32847             :     { // '='
   32848          11 :         if (p->error_indicator) {
   32849           0 :             p->level--;
   32850           0 :             return NULL;
   32851             :         }
   32852          11 :         D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
   32853             :         Token * _literal;
   32854          11 :         if (
   32855          11 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   32856             :         )
   32857             :         {
   32858           3 :             D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
   32859           3 :             _res = _literal;
   32860           3 :             goto done;
   32861             :         }
   32862           8 :         p->mark = _mark;
   32863           8 :         D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
   32864             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
   32865             :     }
   32866             :     { // ':='
   32867           8 :         if (p->error_indicator) {
   32868           0 :             p->level--;
   32869           0 :             return NULL;
   32870             :         }
   32871           8 :         D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
   32872             :         Token * _literal;
   32873           8 :         if (
   32874           8 :             (_literal = _PyPegen_expect_token(p, 53))  // token=':='
   32875             :         )
   32876             :         {
   32877           0 :             D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
   32878           0 :             _res = _literal;
   32879           0 :             goto done;
   32880             :         }
   32881           8 :         p->mark = _mark;
   32882           8 :         D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
   32883             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
   32884             :     }
   32885           8 :     _res = NULL;
   32886          11 :   done:
   32887          11 :     p->level--;
   32888          11 :     return _res;
   32889             : }
   32890             : 
   32891             : // _tmp_150: list | tuple | genexp | 'True' | 'None' | 'False'
   32892             : static void *
   32893        1239 : _tmp_150_rule(Parser *p)
   32894             : {
   32895        1239 :     if (p->level++ == MAXSTACK) {
   32896           0 :         p->error_indicator = 1;
   32897           0 :         PyErr_NoMemory();
   32898             :     }
   32899        1239 :     if (p->error_indicator) {
   32900           0 :         p->level--;
   32901           0 :         return NULL;
   32902             :     }
   32903        1239 :     void * _res = NULL;
   32904        1239 :     int _mark = p->mark;
   32905             :     { // list
   32906        1239 :         if (p->error_indicator) {
   32907           0 :             p->level--;
   32908           0 :             return NULL;
   32909             :         }
   32910        1239 :         D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
   32911             :         expr_ty list_var;
   32912        1239 :         if (
   32913        1239 :             (list_var = list_rule(p))  // list
   32914             :         )
   32915             :         {
   32916           5 :             D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
   32917           5 :             _res = list_var;
   32918           5 :             goto done;
   32919             :         }
   32920        1234 :         p->mark = _mark;
   32921        1234 :         D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
   32922             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
   32923             :     }
   32924             :     { // tuple
   32925        1234 :         if (p->error_indicator) {
   32926           0 :             p->level--;
   32927           0 :             return NULL;
   32928             :         }
   32929        1234 :         D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
   32930             :         expr_ty tuple_var;
   32931        1234 :         if (
   32932        1234 :             (tuple_var = tuple_rule(p))  // tuple
   32933             :         )
   32934             :         {
   32935          17 :             D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
   32936          17 :             _res = tuple_var;
   32937          17 :             goto done;
   32938             :         }
   32939        1217 :         p->mark = _mark;
   32940        1217 :         D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
   32941             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
   32942             :     }
   32943             :     { // genexp
   32944        1217 :         if (p->error_indicator) {
   32945           0 :             p->level--;
   32946           0 :             return NULL;
   32947             :         }
   32948        1217 :         D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
   32949             :         expr_ty genexp_var;
   32950        1217 :         if (
   32951        1217 :             (genexp_var = genexp_rule(p))  // genexp
   32952             :         )
   32953             :         {
   32954           4 :             D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
   32955           4 :             _res = genexp_var;
   32956           4 :             goto done;
   32957             :         }
   32958        1213 :         p->mark = _mark;
   32959        1213 :         D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
   32960             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
   32961             :     }
   32962             :     { // 'True'
   32963        1213 :         if (p->error_indicator) {
   32964           0 :             p->level--;
   32965           0 :             return NULL;
   32966             :         }
   32967        1213 :         D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
   32968             :         Token * _keyword;
   32969        1213 :         if (
   32970        1213 :             (_keyword = _PyPegen_expect_token(p, 600))  // token='True'
   32971             :         )
   32972             :         {
   32973          27 :             D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
   32974          27 :             _res = _keyword;
   32975          27 :             goto done;
   32976             :         }
   32977        1186 :         p->mark = _mark;
   32978        1186 :         D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
   32979             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
   32980             :     }
   32981             :     { // 'None'
   32982        1186 :         if (p->error_indicator) {
   32983           0 :             p->level--;
   32984           0 :             return NULL;
   32985             :         }
   32986        1186 :         D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
   32987             :         Token * _keyword;
   32988        1186 :         if (
   32989        1186 :             (_keyword = _PyPegen_expect_token(p, 601))  // token='None'
   32990             :         )
   32991             :         {
   32992          12 :             D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
   32993          12 :             _res = _keyword;
   32994          12 :             goto done;
   32995             :         }
   32996        1174 :         p->mark = _mark;
   32997        1174 :         D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
   32998             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
   32999             :     }
   33000             :     { // 'False'
   33001        1174 :         if (p->error_indicator) {
   33002           0 :             p->level--;
   33003           0 :             return NULL;
   33004             :         }
   33005        1174 :         D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
   33006             :         Token * _keyword;
   33007        1174 :         if (
   33008        1174 :             (_keyword = _PyPegen_expect_token(p, 602))  // token='False'
   33009             :         )
   33010             :         {
   33011           1 :             D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
   33012           1 :             _res = _keyword;
   33013           1 :             goto done;
   33014             :         }
   33015        1173 :         p->mark = _mark;
   33016        1173 :         D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
   33017             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
   33018             :     }
   33019        1173 :     _res = NULL;
   33020        1239 :   done:
   33021        1239 :     p->level--;
   33022        1239 :     return _res;
   33023             : }
   33024             : 
   33025             : // _tmp_151: '=' | ':='
   33026             : static void *
   33027          34 : _tmp_151_rule(Parser *p)
   33028             : {
   33029          34 :     if (p->level++ == MAXSTACK) {
   33030           0 :         p->error_indicator = 1;
   33031           0 :         PyErr_NoMemory();
   33032             :     }
   33033          34 :     if (p->error_indicator) {
   33034           0 :         p->level--;
   33035           0 :         return NULL;
   33036             :     }
   33037          34 :     void * _res = NULL;
   33038          34 :     int _mark = p->mark;
   33039             :     { // '='
   33040          34 :         if (p->error_indicator) {
   33041           0 :             p->level--;
   33042           0 :             return NULL;
   33043             :         }
   33044          34 :         D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
   33045             :         Token * _literal;
   33046          34 :         if (
   33047          34 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   33048             :         )
   33049             :         {
   33050           3 :             D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
   33051           3 :             _res = _literal;
   33052           3 :             goto done;
   33053             :         }
   33054          31 :         p->mark = _mark;
   33055          31 :         D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
   33056             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
   33057             :     }
   33058             :     { // ':='
   33059          31 :         if (p->error_indicator) {
   33060           0 :             p->level--;
   33061           0 :             return NULL;
   33062             :         }
   33063          31 :         D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
   33064             :         Token * _literal;
   33065          31 :         if (
   33066          31 :             (_literal = _PyPegen_expect_token(p, 53))  // token=':='
   33067             :         )
   33068             :         {
   33069           0 :             D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
   33070           0 :             _res = _literal;
   33071           0 :             goto done;
   33072             :         }
   33073          31 :         p->mark = _mark;
   33074          31 :         D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
   33075             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
   33076             :     }
   33077          31 :     _res = NULL;
   33078          34 :   done:
   33079          34 :     p->level--;
   33080          34 :     return _res;
   33081             : }
   33082             : 
   33083             : // _loop0_152: star_named_expressions
   33084             : static asdl_seq *
   33085           5 : _loop0_152_rule(Parser *p)
   33086             : {
   33087           5 :     if (p->level++ == MAXSTACK) {
   33088           0 :         p->error_indicator = 1;
   33089           0 :         PyErr_NoMemory();
   33090             :     }
   33091           5 :     if (p->error_indicator) {
   33092           0 :         p->level--;
   33093           0 :         return NULL;
   33094             :     }
   33095           5 :     void *_res = NULL;
   33096           5 :     int _mark = p->mark;
   33097           5 :     int _start_mark = p->mark;
   33098           5 :     void **_children = PyMem_Malloc(sizeof(void *));
   33099           5 :     if (!_children) {
   33100           0 :         p->error_indicator = 1;
   33101           0 :         PyErr_NoMemory();
   33102           0 :         p->level--;
   33103           0 :         return NULL;
   33104             :     }
   33105           5 :     Py_ssize_t _children_capacity = 1;
   33106           5 :     Py_ssize_t _n = 0;
   33107             :     { // star_named_expressions
   33108           5 :         if (p->error_indicator) {
   33109           0 :             p->level--;
   33110           0 :             return NULL;
   33111             :         }
   33112           5 :         D(fprintf(stderr, "%*c> _loop0_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
   33113             :         asdl_expr_seq* star_named_expressions_var;
   33114          13 :         while (
   33115           8 :             (star_named_expressions_var = star_named_expressions_rule(p))  // star_named_expressions
   33116             :         )
   33117             :         {
   33118           3 :             _res = star_named_expressions_var;
   33119           3 :             if (_n == _children_capacity) {
   33120           0 :                 _children_capacity *= 2;
   33121           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   33122           0 :                 if (!_new_children) {
   33123           0 :                     p->error_indicator = 1;
   33124           0 :                     PyErr_NoMemory();
   33125           0 :                     p->level--;
   33126           0 :                     return NULL;
   33127             :                 }
   33128           0 :                 _children = _new_children;
   33129             :             }
   33130           3 :             _children[_n++] = _res;
   33131           3 :             _mark = p->mark;
   33132             :         }
   33133           5 :         p->mark = _mark;
   33134           5 :         D(fprintf(stderr, "%*c%s _loop0_152[%d-%d]: %s failed!\n", p->level, ' ',
   33135             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
   33136             :     }
   33137           5 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   33138           5 :     if (!_seq) {
   33139           0 :         PyMem_Free(_children);
   33140           0 :         p->error_indicator = 1;
   33141           0 :         PyErr_NoMemory();
   33142           0 :         p->level--;
   33143           0 :         return NULL;
   33144             :     }
   33145           8 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   33146           5 :     PyMem_Free(_children);
   33147           5 :     _PyPegen_insert_memo(p, _start_mark, _loop0_152_type, _seq);
   33148           5 :     p->level--;
   33149           5 :     return _seq;
   33150             : }
   33151             : 
   33152             : // _loop0_153: (star_targets '=')
   33153             : static asdl_seq *
   33154         796 : _loop0_153_rule(Parser *p)
   33155             : {
   33156         796 :     if (p->level++ == MAXSTACK) {
   33157           0 :         p->error_indicator = 1;
   33158           0 :         PyErr_NoMemory();
   33159             :     }
   33160         796 :     if (p->error_indicator) {
   33161           0 :         p->level--;
   33162           0 :         return NULL;
   33163             :     }
   33164         796 :     void *_res = NULL;
   33165         796 :     int _mark = p->mark;
   33166         796 :     int _start_mark = p->mark;
   33167         796 :     void **_children = PyMem_Malloc(sizeof(void *));
   33168         796 :     if (!_children) {
   33169           0 :         p->error_indicator = 1;
   33170           0 :         PyErr_NoMemory();
   33171           0 :         p->level--;
   33172           0 :         return NULL;
   33173             :     }
   33174         796 :     Py_ssize_t _children_capacity = 1;
   33175         796 :     Py_ssize_t _n = 0;
   33176             :     { // (star_targets '=')
   33177         796 :         if (p->error_indicator) {
   33178           0 :             p->level--;
   33179           0 :             return NULL;
   33180             :         }
   33181         796 :         D(fprintf(stderr, "%*c> _loop0_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
   33182             :         void *_tmp_233_var;
   33183        1599 :         while (
   33184         803 :             (_tmp_233_var = _tmp_233_rule(p))  // star_targets '='
   33185             :         )
   33186             :         {
   33187           7 :             _res = _tmp_233_var;
   33188           7 :             if (_n == _children_capacity) {
   33189           3 :                 _children_capacity *= 2;
   33190           3 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   33191           3 :                 if (!_new_children) {
   33192           0 :                     p->error_indicator = 1;
   33193           0 :                     PyErr_NoMemory();
   33194           0 :                     p->level--;
   33195           0 :                     return NULL;
   33196             :                 }
   33197           3 :                 _children = _new_children;
   33198             :             }
   33199           7 :             _children[_n++] = _res;
   33200           7 :             _mark = p->mark;
   33201             :         }
   33202         796 :         p->mark = _mark;
   33203         796 :         D(fprintf(stderr, "%*c%s _loop0_153[%d-%d]: %s failed!\n", p->level, ' ',
   33204             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
   33205             :     }
   33206         796 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   33207         796 :     if (!_seq) {
   33208           0 :         PyMem_Free(_children);
   33209           0 :         p->error_indicator = 1;
   33210           0 :         PyErr_NoMemory();
   33211           0 :         p->level--;
   33212           0 :         return NULL;
   33213             :     }
   33214         803 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   33215         796 :     PyMem_Free(_children);
   33216         796 :     _PyPegen_insert_memo(p, _start_mark, _loop0_153_type, _seq);
   33217         796 :     p->level--;
   33218         796 :     return _seq;
   33219             : }
   33220             : 
   33221             : // _loop0_154: (star_targets '=')
   33222             : static asdl_seq *
   33223         774 : _loop0_154_rule(Parser *p)
   33224             : {
   33225         774 :     if (p->level++ == MAXSTACK) {
   33226           0 :         p->error_indicator = 1;
   33227           0 :         PyErr_NoMemory();
   33228             :     }
   33229         774 :     if (p->error_indicator) {
   33230           0 :         p->level--;
   33231           0 :         return NULL;
   33232             :     }
   33233         774 :     void *_res = NULL;
   33234         774 :     int _mark = p->mark;
   33235         774 :     int _start_mark = p->mark;
   33236         774 :     void **_children = PyMem_Malloc(sizeof(void *));
   33237         774 :     if (!_children) {
   33238           0 :         p->error_indicator = 1;
   33239           0 :         PyErr_NoMemory();
   33240           0 :         p->level--;
   33241           0 :         return NULL;
   33242             :     }
   33243         774 :     Py_ssize_t _children_capacity = 1;
   33244         774 :     Py_ssize_t _n = 0;
   33245             :     { // (star_targets '=')
   33246         774 :         if (p->error_indicator) {
   33247           0 :             p->level--;
   33248           0 :             return NULL;
   33249             :         }
   33250         774 :         D(fprintf(stderr, "%*c> _loop0_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
   33251             :         void *_tmp_234_var;
   33252        1553 :         while (
   33253         779 :             (_tmp_234_var = _tmp_234_rule(p))  // star_targets '='
   33254             :         )
   33255             :         {
   33256           5 :             _res = _tmp_234_var;
   33257           5 :             if (_n == _children_capacity) {
   33258           2 :                 _children_capacity *= 2;
   33259           2 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   33260           2 :                 if (!_new_children) {
   33261           0 :                     p->error_indicator = 1;
   33262           0 :                     PyErr_NoMemory();
   33263           0 :                     p->level--;
   33264           0 :                     return NULL;
   33265             :                 }
   33266           2 :                 _children = _new_children;
   33267             :             }
   33268           5 :             _children[_n++] = _res;
   33269           5 :             _mark = p->mark;
   33270             :         }
   33271         774 :         p->mark = _mark;
   33272         774 :         D(fprintf(stderr, "%*c%s _loop0_154[%d-%d]: %s failed!\n", p->level, ' ',
   33273             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
   33274             :     }
   33275         774 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   33276         774 :     if (!_seq) {
   33277           0 :         PyMem_Free(_children);
   33278           0 :         p->error_indicator = 1;
   33279           0 :         PyErr_NoMemory();
   33280           0 :         p->level--;
   33281           0 :         return NULL;
   33282             :     }
   33283         779 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   33284         774 :     PyMem_Free(_children);
   33285         774 :     _PyPegen_insert_memo(p, _start_mark, _loop0_154_type, _seq);
   33286         774 :     p->level--;
   33287         774 :     return _seq;
   33288             : }
   33289             : 
   33290             : // _tmp_155: yield_expr | star_expressions
   33291             : static void *
   33292          14 : _tmp_155_rule(Parser *p)
   33293             : {
   33294          14 :     if (p->level++ == MAXSTACK) {
   33295           0 :         p->error_indicator = 1;
   33296           0 :         PyErr_NoMemory();
   33297             :     }
   33298          14 :     if (p->error_indicator) {
   33299           0 :         p->level--;
   33300           0 :         return NULL;
   33301             :     }
   33302          14 :     void * _res = NULL;
   33303          14 :     int _mark = p->mark;
   33304             :     { // yield_expr
   33305          14 :         if (p->error_indicator) {
   33306           0 :             p->level--;
   33307           0 :             return NULL;
   33308             :         }
   33309          14 :         D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
   33310             :         expr_ty yield_expr_var;
   33311          14 :         if (
   33312          14 :             (yield_expr_var = yield_expr_rule(p))  // yield_expr
   33313             :         )
   33314             :         {
   33315           0 :             D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
   33316           0 :             _res = yield_expr_var;
   33317           0 :             goto done;
   33318             :         }
   33319          14 :         p->mark = _mark;
   33320          14 :         D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
   33321             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
   33322             :     }
   33323             :     { // star_expressions
   33324          14 :         if (p->error_indicator) {
   33325           0 :             p->level--;
   33326           0 :             return NULL;
   33327             :         }
   33328          14 :         D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
   33329             :         expr_ty star_expressions_var;
   33330          14 :         if (
   33331          14 :             (star_expressions_var = star_expressions_rule(p))  // star_expressions
   33332             :         )
   33333             :         {
   33334          14 :             D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
   33335          14 :             _res = star_expressions_var;
   33336          14 :             goto done;
   33337             :         }
   33338           0 :         p->mark = _mark;
   33339           0 :         D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
   33340             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
   33341             :     }
   33342           0 :     _res = NULL;
   33343          14 :   done:
   33344          14 :     p->level--;
   33345          14 :     return _res;
   33346             : }
   33347             : 
   33348             : // _tmp_156: '[' | '(' | '{'
   33349             : static void *
   33350        2906 : _tmp_156_rule(Parser *p)
   33351             : {
   33352        2906 :     if (p->level++ == MAXSTACK) {
   33353           0 :         p->error_indicator = 1;
   33354           0 :         PyErr_NoMemory();
   33355             :     }
   33356        2906 :     if (p->error_indicator) {
   33357           0 :         p->level--;
   33358           0 :         return NULL;
   33359             :     }
   33360        2906 :     void * _res = NULL;
   33361        2906 :     int _mark = p->mark;
   33362             :     { // '['
   33363        2906 :         if (p->error_indicator) {
   33364           0 :             p->level--;
   33365           0 :             return NULL;
   33366             :         }
   33367        2906 :         D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
   33368             :         Token * _literal;
   33369        2906 :         if (
   33370        2906 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   33371             :         )
   33372             :         {
   33373          71 :             D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
   33374          71 :             _res = _literal;
   33375          71 :             goto done;
   33376             :         }
   33377        2835 :         p->mark = _mark;
   33378        2835 :         D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
   33379             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
   33380             :     }
   33381             :     { // '('
   33382        2835 :         if (p->error_indicator) {
   33383           0 :             p->level--;
   33384           0 :             return NULL;
   33385             :         }
   33386        2835 :         D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
   33387             :         Token * _literal;
   33388        2835 :         if (
   33389        2835 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   33390             :         )
   33391             :         {
   33392         272 :             D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
   33393         272 :             _res = _literal;
   33394         272 :             goto done;
   33395             :         }
   33396        2563 :         p->mark = _mark;
   33397        2563 :         D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
   33398             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
   33399             :     }
   33400             :     { // '{'
   33401        2563 :         if (p->error_indicator) {
   33402           0 :             p->level--;
   33403           0 :             return NULL;
   33404             :         }
   33405        2563 :         D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
   33406             :         Token * _literal;
   33407        2563 :         if (
   33408        2563 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
   33409             :         )
   33410             :         {
   33411          79 :             D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
   33412          79 :             _res = _literal;
   33413          79 :             goto done;
   33414             :         }
   33415        2484 :         p->mark = _mark;
   33416        2484 :         D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
   33417             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
   33418             :     }
   33419        2484 :     _res = NULL;
   33420        2906 :   done:
   33421        2906 :     p->level--;
   33422        2906 :     return _res;
   33423             : }
   33424             : 
   33425             : // _tmp_157: '[' | '{'
   33426             : static void *
   33427        2900 : _tmp_157_rule(Parser *p)
   33428             : {
   33429        2900 :     if (p->level++ == MAXSTACK) {
   33430           0 :         p->error_indicator = 1;
   33431           0 :         PyErr_NoMemory();
   33432             :     }
   33433        2900 :     if (p->error_indicator) {
   33434           0 :         p->level--;
   33435           0 :         return NULL;
   33436             :     }
   33437        2900 :     void * _res = NULL;
   33438        2900 :     int _mark = p->mark;
   33439             :     { // '['
   33440        2900 :         if (p->error_indicator) {
   33441           0 :             p->level--;
   33442           0 :             return NULL;
   33443             :         }
   33444        2900 :         D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
   33445             :         Token * _literal;
   33446        2900 :         if (
   33447        2900 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   33448             :         )
   33449             :         {
   33450          66 :             D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
   33451          66 :             _res = _literal;
   33452          66 :             goto done;
   33453             :         }
   33454        2834 :         p->mark = _mark;
   33455        2834 :         D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
   33456             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
   33457             :     }
   33458             :     { // '{'
   33459        2834 :         if (p->error_indicator) {
   33460           0 :             p->level--;
   33461           0 :             return NULL;
   33462             :         }
   33463        2834 :         D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
   33464             :         Token * _literal;
   33465        2834 :         if (
   33466        2834 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
   33467             :         )
   33468             :         {
   33469          79 :             D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
   33470          79 :             _res = _literal;
   33471          79 :             goto done;
   33472             :         }
   33473        2755 :         p->mark = _mark;
   33474        2755 :         D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
   33475             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
   33476             :     }
   33477        2755 :     _res = NULL;
   33478        2900 :   done:
   33479        2900 :     p->level--;
   33480        2900 :     return _res;
   33481             : }
   33482             : 
   33483             : // _tmp_158: '[' | '{'
   33484             : static void *
   33485        2896 : _tmp_158_rule(Parser *p)
   33486             : {
   33487        2896 :     if (p->level++ == MAXSTACK) {
   33488           0 :         p->error_indicator = 1;
   33489           0 :         PyErr_NoMemory();
   33490             :     }
   33491        2896 :     if (p->error_indicator) {
   33492           0 :         p->level--;
   33493           0 :         return NULL;
   33494             :     }
   33495        2896 :     void * _res = NULL;
   33496        2896 :     int _mark = p->mark;
   33497             :     { // '['
   33498        2896 :         if (p->error_indicator) {
   33499           0 :             p->level--;
   33500           0 :             return NULL;
   33501             :         }
   33502        2896 :         D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
   33503             :         Token * _literal;
   33504        2896 :         if (
   33505        2896 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   33506             :         )
   33507             :         {
   33508          63 :             D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
   33509          63 :             _res = _literal;
   33510          63 :             goto done;
   33511             :         }
   33512        2833 :         p->mark = _mark;
   33513        2833 :         D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
   33514             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
   33515             :     }
   33516             :     { // '{'
   33517        2833 :         if (p->error_indicator) {
   33518           0 :             p->level--;
   33519           0 :             return NULL;
   33520             :         }
   33521        2833 :         D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
   33522             :         Token * _literal;
   33523        2833 :         if (
   33524        2833 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
   33525             :         )
   33526             :         {
   33527          78 :             D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
   33528          78 :             _res = _literal;
   33529          78 :             goto done;
   33530             :         }
   33531        2755 :         p->mark = _mark;
   33532        2755 :         D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
   33533             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
   33534             :     }
   33535        2755 :     _res = NULL;
   33536        2896 :   done:
   33537        2896 :     p->level--;
   33538        2896 :     return _res;
   33539             : }
   33540             : 
   33541             : // _loop0_159: param_no_default
   33542             : static asdl_seq *
   33543         302 : _loop0_159_rule(Parser *p)
   33544             : {
   33545         302 :     if (p->level++ == MAXSTACK) {
   33546           0 :         p->error_indicator = 1;
   33547           0 :         PyErr_NoMemory();
   33548             :     }
   33549         302 :     if (p->error_indicator) {
   33550           0 :         p->level--;
   33551           0 :         return NULL;
   33552             :     }
   33553         302 :     void *_res = NULL;
   33554         302 :     int _mark = p->mark;
   33555         302 :     int _start_mark = p->mark;
   33556         302 :     void **_children = PyMem_Malloc(sizeof(void *));
   33557         302 :     if (!_children) {
   33558           0 :         p->error_indicator = 1;
   33559           0 :         PyErr_NoMemory();
   33560           0 :         p->level--;
   33561           0 :         return NULL;
   33562             :     }
   33563         302 :     Py_ssize_t _children_capacity = 1;
   33564         302 :     Py_ssize_t _n = 0;
   33565             :     { // param_no_default
   33566         302 :         if (p->error_indicator) {
   33567           0 :             p->level--;
   33568           0 :             return NULL;
   33569             :         }
   33570         302 :         D(fprintf(stderr, "%*c> _loop0_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
   33571             :         arg_ty param_no_default_var;
   33572         669 :         while (
   33573         367 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   33574             :         )
   33575             :         {
   33576          65 :             _res = param_no_default_var;
   33577          65 :             if (_n == _children_capacity) {
   33578           6 :                 _children_capacity *= 2;
   33579           6 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   33580           6 :                 if (!_new_children) {
   33581           0 :                     p->error_indicator = 1;
   33582           0 :                     PyErr_NoMemory();
   33583           0 :                     p->level--;
   33584           0 :                     return NULL;
   33585             :                 }
   33586           6 :                 _children = _new_children;
   33587             :             }
   33588          65 :             _children[_n++] = _res;
   33589          65 :             _mark = p->mark;
   33590             :         }
   33591         302 :         p->mark = _mark;
   33592         302 :         D(fprintf(stderr, "%*c%s _loop0_159[%d-%d]: %s failed!\n", p->level, ' ',
   33593             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
   33594             :     }
   33595         302 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   33596         302 :     if (!_seq) {
   33597           0 :         PyMem_Free(_children);
   33598           0 :         p->error_indicator = 1;
   33599           0 :         PyErr_NoMemory();
   33600           0 :         p->level--;
   33601           0 :         return NULL;
   33602             :     }
   33603         367 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   33604         302 :     PyMem_Free(_children);
   33605         302 :     _PyPegen_insert_memo(p, _start_mark, _loop0_159_type, _seq);
   33606         302 :     p->level--;
   33607         302 :     return _seq;
   33608             : }
   33609             : 
   33610             : // _loop0_160: param_no_default
   33611             : static asdl_seq *
   33612         284 : _loop0_160_rule(Parser *p)
   33613             : {
   33614         284 :     if (p->level++ == MAXSTACK) {
   33615           0 :         p->error_indicator = 1;
   33616           0 :         PyErr_NoMemory();
   33617             :     }
   33618         284 :     if (p->error_indicator) {
   33619           0 :         p->level--;
   33620           0 :         return NULL;
   33621             :     }
   33622         284 :     void *_res = NULL;
   33623         284 :     int _mark = p->mark;
   33624         284 :     int _start_mark = p->mark;
   33625         284 :     void **_children = PyMem_Malloc(sizeof(void *));
   33626         284 :     if (!_children) {
   33627           0 :         p->error_indicator = 1;
   33628           0 :         PyErr_NoMemory();
   33629           0 :         p->level--;
   33630           0 :         return NULL;
   33631             :     }
   33632         284 :     Py_ssize_t _children_capacity = 1;
   33633         284 :     Py_ssize_t _n = 0;
   33634             :     { // param_no_default
   33635         284 :         if (p->error_indicator) {
   33636           0 :             p->level--;
   33637           0 :             return NULL;
   33638             :         }
   33639         284 :         D(fprintf(stderr, "%*c> _loop0_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
   33640             :         arg_ty param_no_default_var;
   33641         628 :         while (
   33642         344 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   33643             :         )
   33644             :         {
   33645          60 :             _res = param_no_default_var;
   33646          60 :             if (_n == _children_capacity) {
   33647           6 :                 _children_capacity *= 2;
   33648           6 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   33649           6 :                 if (!_new_children) {
   33650           0 :                     p->error_indicator = 1;
   33651           0 :                     PyErr_NoMemory();
   33652           0 :                     p->level--;
   33653           0 :                     return NULL;
   33654             :                 }
   33655           6 :                 _children = _new_children;
   33656             :             }
   33657          60 :             _children[_n++] = _res;
   33658          60 :             _mark = p->mark;
   33659             :         }
   33660         284 :         p->mark = _mark;
   33661         284 :         D(fprintf(stderr, "%*c%s _loop0_160[%d-%d]: %s failed!\n", p->level, ' ',
   33662             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
   33663             :     }
   33664         284 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   33665         284 :     if (!_seq) {
   33666           0 :         PyMem_Free(_children);
   33667           0 :         p->error_indicator = 1;
   33668           0 :         PyErr_NoMemory();
   33669           0 :         p->level--;
   33670           0 :         return NULL;
   33671             :     }
   33672         344 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   33673         284 :     PyMem_Free(_children);
   33674         284 :     _PyPegen_insert_memo(p, _start_mark, _loop0_160_type, _seq);
   33675         284 :     p->level--;
   33676         284 :     return _seq;
   33677             : }
   33678             : 
   33679             : // _loop1_161: param_no_default
   33680             : static asdl_seq *
   33681           4 : _loop1_161_rule(Parser *p)
   33682             : {
   33683           4 :     if (p->level++ == MAXSTACK) {
   33684           0 :         p->error_indicator = 1;
   33685           0 :         PyErr_NoMemory();
   33686             :     }
   33687           4 :     if (p->error_indicator) {
   33688           0 :         p->level--;
   33689           0 :         return NULL;
   33690             :     }
   33691           4 :     void *_res = NULL;
   33692           4 :     int _mark = p->mark;
   33693           4 :     int _start_mark = p->mark;
   33694           4 :     void **_children = PyMem_Malloc(sizeof(void *));
   33695           4 :     if (!_children) {
   33696           0 :         p->error_indicator = 1;
   33697           0 :         PyErr_NoMemory();
   33698           0 :         p->level--;
   33699           0 :         return NULL;
   33700             :     }
   33701           4 :     Py_ssize_t _children_capacity = 1;
   33702           4 :     Py_ssize_t _n = 0;
   33703             :     { // param_no_default
   33704           4 :         if (p->error_indicator) {
   33705           0 :             p->level--;
   33706           0 :             return NULL;
   33707             :         }
   33708           4 :         D(fprintf(stderr, "%*c> _loop1_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
   33709             :         arg_ty param_no_default_var;
   33710          20 :         while (
   33711          16 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   33712             :         )
   33713             :         {
   33714          12 :             _res = param_no_default_var;
   33715          12 :             if (_n == _children_capacity) {
   33716           7 :                 _children_capacity *= 2;
   33717           7 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   33718           7 :                 if (!_new_children) {
   33719           0 :                     p->error_indicator = 1;
   33720           0 :                     PyErr_NoMemory();
   33721           0 :                     p->level--;
   33722           0 :                     return NULL;
   33723             :                 }
   33724           7 :                 _children = _new_children;
   33725             :             }
   33726          12 :             _children[_n++] = _res;
   33727          12 :             _mark = p->mark;
   33728             :         }
   33729           4 :         p->mark = _mark;
   33730           4 :         D(fprintf(stderr, "%*c%s _loop1_161[%d-%d]: %s failed!\n", p->level, ' ',
   33731             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
   33732             :     }
   33733           4 :     if (_n == 0 || p->error_indicator) {
   33734           0 :         PyMem_Free(_children);
   33735           0 :         p->level--;
   33736           0 :         return NULL;
   33737             :     }
   33738           4 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   33739           4 :     if (!_seq) {
   33740           0 :         PyMem_Free(_children);
   33741           0 :         p->error_indicator = 1;
   33742           0 :         PyErr_NoMemory();
   33743           0 :         p->level--;
   33744           0 :         return NULL;
   33745             :     }
   33746          16 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   33747           4 :     PyMem_Free(_children);
   33748           4 :     _PyPegen_insert_memo(p, _start_mark, _loop1_161_type, _seq);
   33749           4 :     p->level--;
   33750           4 :     return _seq;
   33751             : }
   33752             : 
   33753             : // _tmp_162: slash_no_default | slash_with_default
   33754             : static void *
   33755         275 : _tmp_162_rule(Parser *p)
   33756             : {
   33757         275 :     if (p->level++ == MAXSTACK) {
   33758           0 :         p->error_indicator = 1;
   33759           0 :         PyErr_NoMemory();
   33760             :     }
   33761         275 :     if (p->error_indicator) {
   33762           0 :         p->level--;
   33763           0 :         return NULL;
   33764             :     }
   33765         275 :     void * _res = NULL;
   33766         275 :     int _mark = p->mark;
   33767             :     { // slash_no_default
   33768         275 :         if (p->error_indicator) {
   33769           0 :             p->level--;
   33770           0 :             return NULL;
   33771             :         }
   33772         275 :         D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default"));
   33773             :         asdl_arg_seq* slash_no_default_var;
   33774         275 :         if (
   33775         275 :             (slash_no_default_var = slash_no_default_rule(p))  // slash_no_default
   33776             :         )
   33777             :         {
   33778          12 :             D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default"));
   33779          12 :             _res = slash_no_default_var;
   33780          12 :             goto done;
   33781             :         }
   33782         263 :         p->mark = _mark;
   33783         263 :         D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
   33784             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default"));
   33785             :     }
   33786             :     { // slash_with_default
   33787         263 :         if (p->error_indicator) {
   33788           0 :             p->level--;
   33789           0 :             return NULL;
   33790             :         }
   33791         263 :         D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
   33792             :         SlashWithDefault* slash_with_default_var;
   33793         263 :         if (
   33794         263 :             (slash_with_default_var = slash_with_default_rule(p))  // slash_with_default
   33795             :         )
   33796             :         {
   33797           2 :             D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
   33798           2 :             _res = slash_with_default_var;
   33799           2 :             goto done;
   33800             :         }
   33801         261 :         p->mark = _mark;
   33802         261 :         D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
   33803             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
   33804             :     }
   33805         261 :     _res = NULL;
   33806         275 :   done:
   33807         275 :     p->level--;
   33808         275 :     return _res;
   33809             : }
   33810             : 
   33811             : // _loop0_163: param_maybe_default
   33812             : static asdl_seq *
   33813          14 : _loop0_163_rule(Parser *p)
   33814             : {
   33815          14 :     if (p->level++ == MAXSTACK) {
   33816           0 :         p->error_indicator = 1;
   33817           0 :         PyErr_NoMemory();
   33818             :     }
   33819          14 :     if (p->error_indicator) {
   33820           0 :         p->level--;
   33821           0 :         return NULL;
   33822             :     }
   33823          14 :     void *_res = NULL;
   33824          14 :     int _mark = p->mark;
   33825          14 :     int _start_mark = p->mark;
   33826          14 :     void **_children = PyMem_Malloc(sizeof(void *));
   33827          14 :     if (!_children) {
   33828           0 :         p->error_indicator = 1;
   33829           0 :         PyErr_NoMemory();
   33830           0 :         p->level--;
   33831           0 :         return NULL;
   33832             :     }
   33833          14 :     Py_ssize_t _children_capacity = 1;
   33834          14 :     Py_ssize_t _n = 0;
   33835             :     { // param_maybe_default
   33836          14 :         if (p->error_indicator) {
   33837           0 :             p->level--;
   33838           0 :             return NULL;
   33839             :         }
   33840          14 :         D(fprintf(stderr, "%*c> _loop0_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
   33841             :         NameDefaultPair* param_maybe_default_var;
   33842          39 :         while (
   33843          25 :             (param_maybe_default_var = param_maybe_default_rule(p))  // param_maybe_default
   33844             :         )
   33845             :         {
   33846          11 :             _res = param_maybe_default_var;
   33847          11 :             if (_n == _children_capacity) {
   33848           0 :                 _children_capacity *= 2;
   33849           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   33850           0 :                 if (!_new_children) {
   33851           0 :                     p->error_indicator = 1;
   33852           0 :                     PyErr_NoMemory();
   33853           0 :                     p->level--;
   33854           0 :                     return NULL;
   33855             :                 }
   33856           0 :                 _children = _new_children;
   33857             :             }
   33858          11 :             _children[_n++] = _res;
   33859          11 :             _mark = p->mark;
   33860             :         }
   33861          14 :         p->mark = _mark;
   33862          14 :         D(fprintf(stderr, "%*c%s _loop0_163[%d-%d]: %s failed!\n", p->level, ' ',
   33863             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
   33864             :     }
   33865          14 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   33866          14 :     if (!_seq) {
   33867           0 :         PyMem_Free(_children);
   33868           0 :         p->error_indicator = 1;
   33869           0 :         PyErr_NoMemory();
   33870           0 :         p->level--;
   33871           0 :         return NULL;
   33872             :     }
   33873          25 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   33874          14 :     PyMem_Free(_children);
   33875          14 :     _PyPegen_insert_memo(p, _start_mark, _loop0_163_type, _seq);
   33876          14 :     p->level--;
   33877          14 :     return _seq;
   33878             : }
   33879             : 
   33880             : // _tmp_164: slash_no_default | slash_with_default
   33881             : static void *
   33882         265 : _tmp_164_rule(Parser *p)
   33883             : {
   33884         265 :     if (p->level++ == MAXSTACK) {
   33885           0 :         p->error_indicator = 1;
   33886           0 :         PyErr_NoMemory();
   33887             :     }
   33888         265 :     if (p->error_indicator) {
   33889           0 :         p->level--;
   33890           0 :         return NULL;
   33891             :     }
   33892         265 :     void * _res = NULL;
   33893         265 :     int _mark = p->mark;
   33894             :     { // slash_no_default
   33895         265 :         if (p->error_indicator) {
   33896           0 :             p->level--;
   33897           0 :             return NULL;
   33898             :         }
   33899         265 :         D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default"));
   33900             :         asdl_arg_seq* slash_no_default_var;
   33901         265 :         if (
   33902         265 :             (slash_no_default_var = slash_no_default_rule(p))  // slash_no_default
   33903             :         )
   33904             :         {
   33905           3 :             D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default"));
   33906           3 :             _res = slash_no_default_var;
   33907           3 :             goto done;
   33908             :         }
   33909         262 :         p->mark = _mark;
   33910         262 :         D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
   33911             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default"));
   33912             :     }
   33913             :     { // slash_with_default
   33914         262 :         if (p->error_indicator) {
   33915           0 :             p->level--;
   33916           0 :             return NULL;
   33917             :         }
   33918         262 :         D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
   33919             :         SlashWithDefault* slash_with_default_var;
   33920         262 :         if (
   33921         262 :             (slash_with_default_var = slash_with_default_rule(p))  // slash_with_default
   33922             :         )
   33923             :         {
   33924           1 :             D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
   33925           1 :             _res = slash_with_default_var;
   33926           1 :             goto done;
   33927             :         }
   33928         261 :         p->mark = _mark;
   33929         261 :         D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
   33930             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
   33931             :     }
   33932         261 :     _res = NULL;
   33933         265 :   done:
   33934         265 :     p->level--;
   33935         265 :     return _res;
   33936             : }
   33937             : 
   33938             : // _loop0_165: param_maybe_default
   33939             : static asdl_seq *
   33940         265 : _loop0_165_rule(Parser *p)
   33941             : {
   33942         265 :     if (p->level++ == MAXSTACK) {
   33943           0 :         p->error_indicator = 1;
   33944           0 :         PyErr_NoMemory();
   33945             :     }
   33946         265 :     if (p->error_indicator) {
   33947           0 :         p->level--;
   33948           0 :         return NULL;
   33949             :     }
   33950         265 :     void *_res = NULL;
   33951         265 :     int _mark = p->mark;
   33952         265 :     int _start_mark = p->mark;
   33953         265 :     void **_children = PyMem_Malloc(sizeof(void *));
   33954         265 :     if (!_children) {
   33955           0 :         p->error_indicator = 1;
   33956           0 :         PyErr_NoMemory();
   33957           0 :         p->level--;
   33958           0 :         return NULL;
   33959             :     }
   33960         265 :     Py_ssize_t _children_capacity = 1;
   33961         265 :     Py_ssize_t _n = 0;
   33962             :     { // param_maybe_default
   33963         265 :         if (p->error_indicator) {
   33964           0 :             p->level--;
   33965           0 :             return NULL;
   33966             :         }
   33967         265 :         D(fprintf(stderr, "%*c> _loop0_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
   33968             :         NameDefaultPair* param_maybe_default_var;
   33969         579 :         while (
   33970         314 :             (param_maybe_default_var = param_maybe_default_rule(p))  // param_maybe_default
   33971             :         )
   33972             :         {
   33973          49 :             _res = param_maybe_default_var;
   33974          49 :             if (_n == _children_capacity) {
   33975           4 :                 _children_capacity *= 2;
   33976           4 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   33977           4 :                 if (!_new_children) {
   33978           0 :                     p->error_indicator = 1;
   33979           0 :                     PyErr_NoMemory();
   33980           0 :                     p->level--;
   33981           0 :                     return NULL;
   33982             :                 }
   33983           4 :                 _children = _new_children;
   33984             :             }
   33985          49 :             _children[_n++] = _res;
   33986          49 :             _mark = p->mark;
   33987             :         }
   33988         265 :         p->mark = _mark;
   33989         265 :         D(fprintf(stderr, "%*c%s _loop0_165[%d-%d]: %s failed!\n", p->level, ' ',
   33990             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
   33991             :     }
   33992         265 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   33993         265 :     if (!_seq) {
   33994           0 :         PyMem_Free(_children);
   33995           0 :         p->error_indicator = 1;
   33996           0 :         PyErr_NoMemory();
   33997           0 :         p->level--;
   33998           0 :         return NULL;
   33999             :     }
   34000         314 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   34001         265 :     PyMem_Free(_children);
   34002         265 :     _PyPegen_insert_memo(p, _start_mark, _loop0_165_type, _seq);
   34003         265 :     p->level--;
   34004         265 :     return _seq;
   34005             : }
   34006             : 
   34007             : // _tmp_166: ',' | param_no_default
   34008             : static void *
   34009          41 : _tmp_166_rule(Parser *p)
   34010             : {
   34011          41 :     if (p->level++ == MAXSTACK) {
   34012           0 :         p->error_indicator = 1;
   34013           0 :         PyErr_NoMemory();
   34014             :     }
   34015          41 :     if (p->error_indicator) {
   34016           0 :         p->level--;
   34017           0 :         return NULL;
   34018             :     }
   34019          41 :     void * _res = NULL;
   34020          41 :     int _mark = p->mark;
   34021             :     { // ','
   34022          41 :         if (p->error_indicator) {
   34023           0 :             p->level--;
   34024           0 :             return NULL;
   34025             :         }
   34026          41 :         D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
   34027             :         Token * _literal;
   34028          41 :         if (
   34029          41 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   34030             :         )
   34031             :         {
   34032          15 :             D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
   34033          15 :             _res = _literal;
   34034          15 :             goto done;
   34035             :         }
   34036          26 :         p->mark = _mark;
   34037          26 :         D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ',
   34038             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
   34039             :     }
   34040             :     { // param_no_default
   34041          26 :         if (p->error_indicator) {
   34042           0 :             p->level--;
   34043           0 :             return NULL;
   34044             :         }
   34045          26 :         D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
   34046             :         arg_ty param_no_default_var;
   34047          26 :         if (
   34048          26 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   34049             :         )
   34050             :         {
   34051          18 :             D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default"));
   34052          18 :             _res = param_no_default_var;
   34053          18 :             goto done;
   34054             :         }
   34055           8 :         p->mark = _mark;
   34056           8 :         D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ',
   34057             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
   34058             :     }
   34059           8 :     _res = NULL;
   34060          41 :   done:
   34061          41 :     p->level--;
   34062          41 :     return _res;
   34063             : }
   34064             : 
   34065             : // _loop0_167: param_maybe_default
   34066             : static asdl_seq *
   34067          33 : _loop0_167_rule(Parser *p)
   34068             : {
   34069          33 :     if (p->level++ == MAXSTACK) {
   34070           0 :         p->error_indicator = 1;
   34071           0 :         PyErr_NoMemory();
   34072             :     }
   34073          33 :     if (p->error_indicator) {
   34074           0 :         p->level--;
   34075           0 :         return NULL;
   34076             :     }
   34077          33 :     void *_res = NULL;
   34078          33 :     int _mark = p->mark;
   34079          33 :     int _start_mark = p->mark;
   34080          33 :     void **_children = PyMem_Malloc(sizeof(void *));
   34081          33 :     if (!_children) {
   34082           0 :         p->error_indicator = 1;
   34083           0 :         PyErr_NoMemory();
   34084           0 :         p->level--;
   34085           0 :         return NULL;
   34086             :     }
   34087          33 :     Py_ssize_t _children_capacity = 1;
   34088          33 :     Py_ssize_t _n = 0;
   34089             :     { // param_maybe_default
   34090          33 :         if (p->error_indicator) {
   34091           0 :             p->level--;
   34092           0 :             return NULL;
   34093             :         }
   34094          33 :         D(fprintf(stderr, "%*c> _loop0_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
   34095             :         NameDefaultPair* param_maybe_default_var;
   34096          82 :         while (
   34097          49 :             (param_maybe_default_var = param_maybe_default_rule(p))  // param_maybe_default
   34098             :         )
   34099             :         {
   34100          16 :             _res = param_maybe_default_var;
   34101          16 :             if (_n == _children_capacity) {
   34102           0 :                 _children_capacity *= 2;
   34103           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   34104           0 :                 if (!_new_children) {
   34105           0 :                     p->error_indicator = 1;
   34106           0 :                     PyErr_NoMemory();
   34107           0 :                     p->level--;
   34108           0 :                     return NULL;
   34109             :                 }
   34110           0 :                 _children = _new_children;
   34111             :             }
   34112          16 :             _children[_n++] = _res;
   34113          16 :             _mark = p->mark;
   34114             :         }
   34115          33 :         p->mark = _mark;
   34116          33 :         D(fprintf(stderr, "%*c%s _loop0_167[%d-%d]: %s failed!\n", p->level, ' ',
   34117             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
   34118             :     }
   34119          33 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   34120          33 :     if (!_seq) {
   34121           0 :         PyMem_Free(_children);
   34122           0 :         p->error_indicator = 1;
   34123           0 :         PyErr_NoMemory();
   34124           0 :         p->level--;
   34125           0 :         return NULL;
   34126             :     }
   34127          49 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   34128          33 :     PyMem_Free(_children);
   34129          33 :     _PyPegen_insert_memo(p, _start_mark, _loop0_167_type, _seq);
   34130          33 :     p->level--;
   34131          33 :     return _seq;
   34132             : }
   34133             : 
   34134             : // _loop1_168: param_maybe_default
   34135             : static asdl_seq *
   34136         253 : _loop1_168_rule(Parser *p)
   34137             : {
   34138         253 :     if (p->level++ == MAXSTACK) {
   34139           0 :         p->error_indicator = 1;
   34140           0 :         PyErr_NoMemory();
   34141             :     }
   34142         253 :     if (p->error_indicator) {
   34143           0 :         p->level--;
   34144           0 :         return NULL;
   34145             :     }
   34146         253 :     void *_res = NULL;
   34147         253 :     int _mark = p->mark;
   34148         253 :     int _start_mark = p->mark;
   34149         253 :     void **_children = PyMem_Malloc(sizeof(void *));
   34150         253 :     if (!_children) {
   34151           0 :         p->error_indicator = 1;
   34152           0 :         PyErr_NoMemory();
   34153           0 :         p->level--;
   34154           0 :         return NULL;
   34155             :     }
   34156         253 :     Py_ssize_t _children_capacity = 1;
   34157         253 :     Py_ssize_t _n = 0;
   34158             :     { // param_maybe_default
   34159         253 :         if (p->error_indicator) {
   34160           0 :             p->level--;
   34161           0 :             return NULL;
   34162             :         }
   34163         253 :         D(fprintf(stderr, "%*c> _loop1_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
   34164             :         NameDefaultPair* param_maybe_default_var;
   34165         554 :         while (
   34166         301 :             (param_maybe_default_var = param_maybe_default_rule(p))  // param_maybe_default
   34167             :         )
   34168             :         {
   34169          48 :             _res = param_maybe_default_var;
   34170          48 :             if (_n == _children_capacity) {
   34171           6 :                 _children_capacity *= 2;
   34172           6 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   34173           6 :                 if (!_new_children) {
   34174           0 :                     p->error_indicator = 1;
   34175           0 :                     PyErr_NoMemory();
   34176           0 :                     p->level--;
   34177           0 :                     return NULL;
   34178             :                 }
   34179           6 :                 _children = _new_children;
   34180             :             }
   34181          48 :             _children[_n++] = _res;
   34182          48 :             _mark = p->mark;
   34183             :         }
   34184         253 :         p->mark = _mark;
   34185         253 :         D(fprintf(stderr, "%*c%s _loop1_168[%d-%d]: %s failed!\n", p->level, ' ',
   34186             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
   34187             :     }
   34188         253 :     if (_n == 0 || p->error_indicator) {
   34189         211 :         PyMem_Free(_children);
   34190         211 :         p->level--;
   34191         211 :         return NULL;
   34192             :     }
   34193          42 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   34194          42 :     if (!_seq) {
   34195           0 :         PyMem_Free(_children);
   34196           0 :         p->error_indicator = 1;
   34197           0 :         PyErr_NoMemory();
   34198           0 :         p->level--;
   34199           0 :         return NULL;
   34200             :     }
   34201          90 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   34202          42 :     PyMem_Free(_children);
   34203          42 :     _PyPegen_insert_memo(p, _start_mark, _loop1_168_type, _seq);
   34204          42 :     p->level--;
   34205          42 :     return _seq;
   34206             : }
   34207             : 
   34208             : // _tmp_169: ')' | ','
   34209             : static void *
   34210         245 : _tmp_169_rule(Parser *p)
   34211             : {
   34212         245 :     if (p->level++ == MAXSTACK) {
   34213           0 :         p->error_indicator = 1;
   34214           0 :         PyErr_NoMemory();
   34215             :     }
   34216         245 :     if (p->error_indicator) {
   34217           0 :         p->level--;
   34218           0 :         return NULL;
   34219             :     }
   34220         245 :     void * _res = NULL;
   34221         245 :     int _mark = p->mark;
   34222             :     { // ')'
   34223         245 :         if (p->error_indicator) {
   34224           0 :             p->level--;
   34225           0 :             return NULL;
   34226             :         }
   34227         245 :         D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
   34228             :         Token * _literal;
   34229         245 :         if (
   34230         245 :             (_literal = _PyPegen_expect_token(p, 8))  // token=')'
   34231             :         )
   34232             :         {
   34233           0 :             D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
   34234           0 :             _res = _literal;
   34235           0 :             goto done;
   34236             :         }
   34237         245 :         p->mark = _mark;
   34238         245 :         D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
   34239             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
   34240             :     }
   34241             :     { // ','
   34242         245 :         if (p->error_indicator) {
   34243           0 :             p->level--;
   34244           0 :             return NULL;
   34245             :         }
   34246         245 :         D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
   34247             :         Token * _literal;
   34248         245 :         if (
   34249         245 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   34250             :         )
   34251             :         {
   34252           5 :             D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
   34253           5 :             _res = _literal;
   34254           5 :             goto done;
   34255             :         }
   34256         240 :         p->mark = _mark;
   34257         240 :         D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
   34258             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
   34259             :     }
   34260         240 :     _res = NULL;
   34261         245 :   done:
   34262         245 :     p->level--;
   34263         245 :     return _res;
   34264             : }
   34265             : 
   34266             : // _tmp_170: ')' | ',' (')' | '**')
   34267             : static void *
   34268          29 : _tmp_170_rule(Parser *p)
   34269             : {
   34270          29 :     if (p->level++ == MAXSTACK) {
   34271           0 :         p->error_indicator = 1;
   34272           0 :         PyErr_NoMemory();
   34273             :     }
   34274          29 :     if (p->error_indicator) {
   34275           0 :         p->level--;
   34276           0 :         return NULL;
   34277             :     }
   34278          29 :     void * _res = NULL;
   34279          29 :     int _mark = p->mark;
   34280             :     { // ')'
   34281          29 :         if (p->error_indicator) {
   34282           0 :             p->level--;
   34283           0 :             return NULL;
   34284             :         }
   34285          29 :         D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
   34286             :         Token * _literal;
   34287          29 :         if (
   34288          29 :             (_literal = _PyPegen_expect_token(p, 8))  // token=')'
   34289             :         )
   34290             :         {
   34291           2 :             D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
   34292           2 :             _res = _literal;
   34293           2 :             goto done;
   34294             :         }
   34295          27 :         p->mark = _mark;
   34296          27 :         D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
   34297             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
   34298             :     }
   34299             :     { // ',' (')' | '**')
   34300          27 :         if (p->error_indicator) {
   34301           0 :             p->level--;
   34302           0 :             return NULL;
   34303             :         }
   34304          27 :         D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
   34305             :         Token * _literal;
   34306             :         void *_tmp_235_var;
   34307          27 :         if (
   34308          27 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   34309           9 :             &&
   34310           9 :             (_tmp_235_var = _tmp_235_rule(p))  // ')' | '**'
   34311             :         )
   34312             :         {
   34313           1 :             D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
   34314           1 :             _res = _PyPegen_dummy_name(p, _literal, _tmp_235_var);
   34315           1 :             goto done;
   34316             :         }
   34317          26 :         p->mark = _mark;
   34318          26 :         D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
   34319             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
   34320             :     }
   34321          26 :     _res = NULL;
   34322          29 :   done:
   34323          29 :     p->level--;
   34324          29 :     return _res;
   34325             : }
   34326             : 
   34327             : // _tmp_171: param_no_default | ','
   34328             : static void *
   34329          23 : _tmp_171_rule(Parser *p)
   34330             : {
   34331          23 :     if (p->level++ == MAXSTACK) {
   34332           0 :         p->error_indicator = 1;
   34333           0 :         PyErr_NoMemory();
   34334             :     }
   34335          23 :     if (p->error_indicator) {
   34336           0 :         p->level--;
   34337           0 :         return NULL;
   34338             :     }
   34339          23 :     void * _res = NULL;
   34340          23 :     int _mark = p->mark;
   34341             :     { // param_no_default
   34342          23 :         if (p->error_indicator) {
   34343           0 :             p->level--;
   34344           0 :             return NULL;
   34345             :         }
   34346          23 :         D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
   34347             :         arg_ty param_no_default_var;
   34348          23 :         if (
   34349          23 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   34350             :         )
   34351             :         {
   34352          12 :             D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default"));
   34353          12 :             _res = param_no_default_var;
   34354          12 :             goto done;
   34355             :         }
   34356          11 :         p->mark = _mark;
   34357          11 :         D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
   34358             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
   34359             :     }
   34360             :     { // ','
   34361          11 :         if (p->error_indicator) {
   34362           0 :             p->level--;
   34363           0 :             return NULL;
   34364             :         }
   34365          11 :         D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
   34366             :         Token * _literal;
   34367          11 :         if (
   34368          11 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   34369             :         )
   34370             :         {
   34371           7 :             D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
   34372           7 :             _res = _literal;
   34373           7 :             goto done;
   34374             :         }
   34375           4 :         p->mark = _mark;
   34376           4 :         D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
   34377             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
   34378             :     }
   34379           4 :     _res = NULL;
   34380          23 :   done:
   34381          23 :     p->level--;
   34382          23 :     return _res;
   34383             : }
   34384             : 
   34385             : // _loop0_172: param_maybe_default
   34386             : static asdl_seq *
   34387          19 : _loop0_172_rule(Parser *p)
   34388             : {
   34389          19 :     if (p->level++ == MAXSTACK) {
   34390           0 :         p->error_indicator = 1;
   34391           0 :         PyErr_NoMemory();
   34392             :     }
   34393          19 :     if (p->error_indicator) {
   34394           0 :         p->level--;
   34395           0 :         return NULL;
   34396             :     }
   34397          19 :     void *_res = NULL;
   34398          19 :     int _mark = p->mark;
   34399          19 :     int _start_mark = p->mark;
   34400          19 :     void **_children = PyMem_Malloc(sizeof(void *));
   34401          19 :     if (!_children) {
   34402           0 :         p->error_indicator = 1;
   34403           0 :         PyErr_NoMemory();
   34404           0 :         p->level--;
   34405           0 :         return NULL;
   34406             :     }
   34407          19 :     Py_ssize_t _children_capacity = 1;
   34408          19 :     Py_ssize_t _n = 0;
   34409             :     { // param_maybe_default
   34410          19 :         if (p->error_indicator) {
   34411           0 :             p->level--;
   34412           0 :             return NULL;
   34413             :         }
   34414          19 :         D(fprintf(stderr, "%*c> _loop0_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
   34415             :         NameDefaultPair* param_maybe_default_var;
   34416          46 :         while (
   34417          27 :             (param_maybe_default_var = param_maybe_default_rule(p))  // param_maybe_default
   34418             :         )
   34419             :         {
   34420           8 :             _res = param_maybe_default_var;
   34421           8 :             if (_n == _children_capacity) {
   34422           0 :                 _children_capacity *= 2;
   34423           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   34424           0 :                 if (!_new_children) {
   34425           0 :                     p->error_indicator = 1;
   34426           0 :                     PyErr_NoMemory();
   34427           0 :                     p->level--;
   34428           0 :                     return NULL;
   34429             :                 }
   34430           0 :                 _children = _new_children;
   34431             :             }
   34432           8 :             _children[_n++] = _res;
   34433           8 :             _mark = p->mark;
   34434             :         }
   34435          19 :         p->mark = _mark;
   34436          19 :         D(fprintf(stderr, "%*c%s _loop0_172[%d-%d]: %s failed!\n", p->level, ' ',
   34437             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
   34438             :     }
   34439          19 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   34440          19 :     if (!_seq) {
   34441           0 :         PyMem_Free(_children);
   34442           0 :         p->error_indicator = 1;
   34443           0 :         PyErr_NoMemory();
   34444           0 :         p->level--;
   34445           0 :         return NULL;
   34446             :     }
   34447          27 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   34448          19 :     PyMem_Free(_children);
   34449          19 :     _PyPegen_insert_memo(p, _start_mark, _loop0_172_type, _seq);
   34450          19 :     p->level--;
   34451          19 :     return _seq;
   34452             : }
   34453             : 
   34454             : // _tmp_173: param_no_default | ','
   34455             : static void *
   34456           4 : _tmp_173_rule(Parser *p)
   34457             : {
   34458           4 :     if (p->level++ == MAXSTACK) {
   34459           0 :         p->error_indicator = 1;
   34460           0 :         PyErr_NoMemory();
   34461             :     }
   34462           4 :     if (p->error_indicator) {
   34463           0 :         p->level--;
   34464           0 :         return NULL;
   34465             :     }
   34466           4 :     void * _res = NULL;
   34467           4 :     int _mark = p->mark;
   34468             :     { // param_no_default
   34469           4 :         if (p->error_indicator) {
   34470           0 :             p->level--;
   34471           0 :             return NULL;
   34472             :         }
   34473           4 :         D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
   34474             :         arg_ty param_no_default_var;
   34475           4 :         if (
   34476           4 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   34477             :         )
   34478             :         {
   34479           4 :             D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default"));
   34480           4 :             _res = param_no_default_var;
   34481           4 :             goto done;
   34482             :         }
   34483           0 :         p->mark = _mark;
   34484           0 :         D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
   34485             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
   34486             :     }
   34487             :     { // ','
   34488           0 :         if (p->error_indicator) {
   34489           0 :             p->level--;
   34490           0 :             return NULL;
   34491             :         }
   34492           0 :         D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
   34493             :         Token * _literal;
   34494           0 :         if (
   34495           0 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   34496             :         )
   34497             :         {
   34498           0 :             D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
   34499           0 :             _res = _literal;
   34500           0 :             goto done;
   34501             :         }
   34502           0 :         p->mark = _mark;
   34503           0 :         D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
   34504             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
   34505             :     }
   34506           0 :     _res = NULL;
   34507           4 :   done:
   34508           4 :     p->level--;
   34509           4 :     return _res;
   34510             : }
   34511             : 
   34512             : // _tmp_174: '*' | '**' | '/'
   34513             : static void *
   34514           5 : _tmp_174_rule(Parser *p)
   34515             : {
   34516           5 :     if (p->level++ == MAXSTACK) {
   34517           0 :         p->error_indicator = 1;
   34518           0 :         PyErr_NoMemory();
   34519             :     }
   34520           5 :     if (p->error_indicator) {
   34521           0 :         p->level--;
   34522           0 :         return NULL;
   34523             :     }
   34524           5 :     void * _res = NULL;
   34525           5 :     int _mark = p->mark;
   34526             :     { // '*'
   34527           5 :         if (p->error_indicator) {
   34528           0 :             p->level--;
   34529           0 :             return NULL;
   34530             :         }
   34531           5 :         D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
   34532             :         Token * _literal;
   34533           5 :         if (
   34534           5 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   34535             :         )
   34536             :         {
   34537           1 :             D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
   34538           1 :             _res = _literal;
   34539           1 :             goto done;
   34540             :         }
   34541           4 :         p->mark = _mark;
   34542           4 :         D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
   34543             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
   34544             :     }
   34545             :     { // '**'
   34546           4 :         if (p->error_indicator) {
   34547           0 :             p->level--;
   34548           0 :             return NULL;
   34549             :         }
   34550           4 :         D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
   34551             :         Token * _literal;
   34552           4 :         if (
   34553           4 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   34554             :         )
   34555             :         {
   34556           1 :             D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
   34557           1 :             _res = _literal;
   34558           1 :             goto done;
   34559             :         }
   34560           3 :         p->mark = _mark;
   34561           3 :         D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
   34562             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
   34563             :     }
   34564             :     { // '/'
   34565           3 :         if (p->error_indicator) {
   34566           0 :             p->level--;
   34567           0 :             return NULL;
   34568             :         }
   34569           3 :         D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'"));
   34570             :         Token * _literal;
   34571           3 :         if (
   34572           3 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
   34573             :         )
   34574             :         {
   34575           3 :             D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'"));
   34576           3 :             _res = _literal;
   34577           3 :             goto done;
   34578             :         }
   34579           0 :         p->mark = _mark;
   34580           0 :         D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
   34581             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'"));
   34582             :     }
   34583           0 :     _res = NULL;
   34584           5 :   done:
   34585           5 :     p->level--;
   34586           5 :     return _res;
   34587             : }
   34588             : 
   34589             : // _loop1_175: param_with_default
   34590             : static asdl_seq *
   34591         288 : _loop1_175_rule(Parser *p)
   34592             : {
   34593         288 :     if (p->level++ == MAXSTACK) {
   34594           0 :         p->error_indicator = 1;
   34595           0 :         PyErr_NoMemory();
   34596             :     }
   34597         288 :     if (p->error_indicator) {
   34598           0 :         p->level--;
   34599           0 :         return NULL;
   34600             :     }
   34601         288 :     void *_res = NULL;
   34602         288 :     int _mark = p->mark;
   34603         288 :     int _start_mark = p->mark;
   34604         288 :     void **_children = PyMem_Malloc(sizeof(void *));
   34605         288 :     if (!_children) {
   34606           0 :         p->error_indicator = 1;
   34607           0 :         PyErr_NoMemory();
   34608           0 :         p->level--;
   34609           0 :         return NULL;
   34610             :     }
   34611         288 :     Py_ssize_t _children_capacity = 1;
   34612         288 :     Py_ssize_t _n = 0;
   34613             :     { // param_with_default
   34614         288 :         if (p->error_indicator) {
   34615           0 :             p->level--;
   34616           0 :             return NULL;
   34617             :         }
   34618         288 :         D(fprintf(stderr, "%*c> _loop1_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
   34619             :         NameDefaultPair* param_with_default_var;
   34620         584 :         while (
   34621         296 :             (param_with_default_var = param_with_default_rule(p))  // param_with_default
   34622             :         )
   34623             :         {
   34624           8 :             _res = param_with_default_var;
   34625           8 :             if (_n == _children_capacity) {
   34626           0 :                 _children_capacity *= 2;
   34627           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   34628           0 :                 if (!_new_children) {
   34629           0 :                     p->error_indicator = 1;
   34630           0 :                     PyErr_NoMemory();
   34631           0 :                     p->level--;
   34632           0 :                     return NULL;
   34633             :                 }
   34634           0 :                 _children = _new_children;
   34635             :             }
   34636           8 :             _children[_n++] = _res;
   34637           8 :             _mark = p->mark;
   34638             :         }
   34639         288 :         p->mark = _mark;
   34640         288 :         D(fprintf(stderr, "%*c%s _loop1_175[%d-%d]: %s failed!\n", p->level, ' ',
   34641             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
   34642             :     }
   34643         288 :     if (_n == 0 || p->error_indicator) {
   34644         280 :         PyMem_Free(_children);
   34645         280 :         p->level--;
   34646         280 :         return NULL;
   34647             :     }
   34648           8 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   34649           8 :     if (!_seq) {
   34650           0 :         PyMem_Free(_children);
   34651           0 :         p->error_indicator = 1;
   34652           0 :         PyErr_NoMemory();
   34653           0 :         p->level--;
   34654           0 :         return NULL;
   34655             :     }
   34656          16 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   34657           8 :     PyMem_Free(_children);
   34658           8 :     _PyPegen_insert_memo(p, _start_mark, _loop1_175_type, _seq);
   34659           8 :     p->level--;
   34660           8 :     return _seq;
   34661             : }
   34662             : 
   34663             : // _loop0_176: lambda_param_no_default
   34664             : static asdl_seq *
   34665          52 : _loop0_176_rule(Parser *p)
   34666             : {
   34667          52 :     if (p->level++ == MAXSTACK) {
   34668           0 :         p->error_indicator = 1;
   34669           0 :         PyErr_NoMemory();
   34670             :     }
   34671          52 :     if (p->error_indicator) {
   34672           0 :         p->level--;
   34673           0 :         return NULL;
   34674             :     }
   34675          52 :     void *_res = NULL;
   34676          52 :     int _mark = p->mark;
   34677          52 :     int _start_mark = p->mark;
   34678          52 :     void **_children = PyMem_Malloc(sizeof(void *));
   34679          52 :     if (!_children) {
   34680           0 :         p->error_indicator = 1;
   34681           0 :         PyErr_NoMemory();
   34682           0 :         p->level--;
   34683           0 :         return NULL;
   34684             :     }
   34685          52 :     Py_ssize_t _children_capacity = 1;
   34686          52 :     Py_ssize_t _n = 0;
   34687             :     { // lambda_param_no_default
   34688          52 :         if (p->error_indicator) {
   34689           0 :             p->level--;
   34690           0 :             return NULL;
   34691             :         }
   34692          52 :         D(fprintf(stderr, "%*c> _loop0_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
   34693             :         arg_ty lambda_param_no_default_var;
   34694         132 :         while (
   34695          80 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   34696             :         )
   34697             :         {
   34698          28 :             _res = lambda_param_no_default_var;
   34699          28 :             if (_n == _children_capacity) {
   34700           2 :                 _children_capacity *= 2;
   34701           2 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   34702           2 :                 if (!_new_children) {
   34703           0 :                     p->error_indicator = 1;
   34704           0 :                     PyErr_NoMemory();
   34705           0 :                     p->level--;
   34706           0 :                     return NULL;
   34707             :                 }
   34708           2 :                 _children = _new_children;
   34709             :             }
   34710          28 :             _children[_n++] = _res;
   34711          28 :             _mark = p->mark;
   34712             :         }
   34713          52 :         p->mark = _mark;
   34714          52 :         D(fprintf(stderr, "%*c%s _loop0_176[%d-%d]: %s failed!\n", p->level, ' ',
   34715             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
   34716             :     }
   34717          52 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   34718          52 :     if (!_seq) {
   34719           0 :         PyMem_Free(_children);
   34720           0 :         p->error_indicator = 1;
   34721           0 :         PyErr_NoMemory();
   34722           0 :         p->level--;
   34723           0 :         return NULL;
   34724             :     }
   34725          80 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   34726          52 :     PyMem_Free(_children);
   34727          52 :     _PyPegen_insert_memo(p, _start_mark, _loop0_176_type, _seq);
   34728          52 :     p->level--;
   34729          52 :     return _seq;
   34730             : }
   34731             : 
   34732             : // _loop0_177: lambda_param_no_default
   34733             : static asdl_seq *
   34734          47 : _loop0_177_rule(Parser *p)
   34735             : {
   34736          47 :     if (p->level++ == MAXSTACK) {
   34737           0 :         p->error_indicator = 1;
   34738           0 :         PyErr_NoMemory();
   34739             :     }
   34740          47 :     if (p->error_indicator) {
   34741           0 :         p->level--;
   34742           0 :         return NULL;
   34743             :     }
   34744          47 :     void *_res = NULL;
   34745          47 :     int _mark = p->mark;
   34746          47 :     int _start_mark = p->mark;
   34747          47 :     void **_children = PyMem_Malloc(sizeof(void *));
   34748          47 :     if (!_children) {
   34749           0 :         p->error_indicator = 1;
   34750           0 :         PyErr_NoMemory();
   34751           0 :         p->level--;
   34752           0 :         return NULL;
   34753             :     }
   34754          47 :     Py_ssize_t _children_capacity = 1;
   34755          47 :     Py_ssize_t _n = 0;
   34756             :     { // lambda_param_no_default
   34757          47 :         if (p->error_indicator) {
   34758           0 :             p->level--;
   34759           0 :             return NULL;
   34760             :         }
   34761          47 :         D(fprintf(stderr, "%*c> _loop0_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
   34762             :         arg_ty lambda_param_no_default_var;
   34763         120 :         while (
   34764          73 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   34765             :         )
   34766             :         {
   34767          26 :             _res = lambda_param_no_default_var;
   34768          26 :             if (_n == _children_capacity) {
   34769           2 :                 _children_capacity *= 2;
   34770           2 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   34771           2 :                 if (!_new_children) {
   34772           0 :                     p->error_indicator = 1;
   34773           0 :                     PyErr_NoMemory();
   34774           0 :                     p->level--;
   34775           0 :                     return NULL;
   34776             :                 }
   34777           2 :                 _children = _new_children;
   34778             :             }
   34779          26 :             _children[_n++] = _res;
   34780          26 :             _mark = p->mark;
   34781             :         }
   34782          47 :         p->mark = _mark;
   34783          47 :         D(fprintf(stderr, "%*c%s _loop0_177[%d-%d]: %s failed!\n", p->level, ' ',
   34784             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
   34785             :     }
   34786          47 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   34787          47 :     if (!_seq) {
   34788           0 :         PyMem_Free(_children);
   34789           0 :         p->error_indicator = 1;
   34790           0 :         PyErr_NoMemory();
   34791           0 :         p->level--;
   34792           0 :         return NULL;
   34793             :     }
   34794          73 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   34795          47 :     PyMem_Free(_children);
   34796          47 :     _PyPegen_insert_memo(p, _start_mark, _loop0_177_type, _seq);
   34797          47 :     p->level--;
   34798          47 :     return _seq;
   34799             : }
   34800             : 
   34801             : // _loop0_179: ',' lambda_param
   34802             : static asdl_seq *
   34803           4 : _loop0_179_rule(Parser *p)
   34804             : {
   34805           4 :     if (p->level++ == MAXSTACK) {
   34806           0 :         p->error_indicator = 1;
   34807           0 :         PyErr_NoMemory();
   34808             :     }
   34809           4 :     if (p->error_indicator) {
   34810           0 :         p->level--;
   34811           0 :         return NULL;
   34812             :     }
   34813           4 :     void *_res = NULL;
   34814           4 :     int _mark = p->mark;
   34815           4 :     int _start_mark = p->mark;
   34816           4 :     void **_children = PyMem_Malloc(sizeof(void *));
   34817           4 :     if (!_children) {
   34818           0 :         p->error_indicator = 1;
   34819           0 :         PyErr_NoMemory();
   34820           0 :         p->level--;
   34821           0 :         return NULL;
   34822             :     }
   34823           4 :     Py_ssize_t _children_capacity = 1;
   34824           4 :     Py_ssize_t _n = 0;
   34825             :     { // ',' lambda_param
   34826           4 :         if (p->error_indicator) {
   34827           0 :             p->level--;
   34828           0 :             return NULL;
   34829             :         }
   34830           4 :         D(fprintf(stderr, "%*c> _loop0_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' lambda_param"));
   34831             :         Token * _literal;
   34832             :         arg_ty elem;
   34833          16 :         while (
   34834          12 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   34835           8 :             &&
   34836           8 :             (elem = lambda_param_rule(p))  // lambda_param
   34837             :         )
   34838             :         {
   34839           8 :             _res = elem;
   34840           8 :             if (_res == NULL && PyErr_Occurred()) {
   34841           0 :                 p->error_indicator = 1;
   34842           0 :                 PyMem_Free(_children);
   34843           0 :                 p->level--;
   34844           0 :                 return NULL;
   34845             :             }
   34846           8 :             if (_n == _children_capacity) {
   34847           4 :                 _children_capacity *= 2;
   34848           4 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   34849           4 :                 if (!_new_children) {
   34850           0 :                     p->error_indicator = 1;
   34851           0 :                     PyErr_NoMemory();
   34852           0 :                     p->level--;
   34853           0 :                     return NULL;
   34854             :                 }
   34855           4 :                 _children = _new_children;
   34856             :             }
   34857           8 :             _children[_n++] = _res;
   34858           8 :             _mark = p->mark;
   34859             :         }
   34860           4 :         p->mark = _mark;
   34861           4 :         D(fprintf(stderr, "%*c%s _loop0_179[%d-%d]: %s failed!\n", p->level, ' ',
   34862             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' lambda_param"));
   34863             :     }
   34864           4 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   34865           4 :     if (!_seq) {
   34866           0 :         PyMem_Free(_children);
   34867           0 :         p->error_indicator = 1;
   34868           0 :         PyErr_NoMemory();
   34869           0 :         p->level--;
   34870           0 :         return NULL;
   34871             :     }
   34872          12 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   34873           4 :     PyMem_Free(_children);
   34874           4 :     _PyPegen_insert_memo(p, _start_mark, _loop0_179_type, _seq);
   34875           4 :     p->level--;
   34876           4 :     return _seq;
   34877             : }
   34878             : 
   34879             : // _gather_178: lambda_param _loop0_179
   34880             : static asdl_seq *
   34881           5 : _gather_178_rule(Parser *p)
   34882             : {
   34883           5 :     if (p->level++ == MAXSTACK) {
   34884           0 :         p->error_indicator = 1;
   34885           0 :         PyErr_NoMemory();
   34886             :     }
   34887           5 :     if (p->error_indicator) {
   34888           0 :         p->level--;
   34889           0 :         return NULL;
   34890             :     }
   34891           5 :     asdl_seq * _res = NULL;
   34892           5 :     int _mark = p->mark;
   34893             :     { // lambda_param _loop0_179
   34894           5 :         if (p->error_indicator) {
   34895           0 :             p->level--;
   34896           0 :             return NULL;
   34897             :         }
   34898           5 :         D(fprintf(stderr, "%*c> _gather_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_179"));
   34899             :         arg_ty elem;
   34900             :         asdl_seq * seq;
   34901           5 :         if (
   34902           5 :             (elem = lambda_param_rule(p))  // lambda_param
   34903           4 :             &&
   34904           4 :             (seq = _loop0_179_rule(p))  // _loop0_179
   34905             :         )
   34906             :         {
   34907           4 :             D(fprintf(stderr, "%*c+ _gather_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_179"));
   34908           4 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   34909           4 :             goto done;
   34910             :         }
   34911           1 :         p->mark = _mark;
   34912           1 :         D(fprintf(stderr, "%*c%s _gather_178[%d-%d]: %s failed!\n", p->level, ' ',
   34913             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param _loop0_179"));
   34914             :     }
   34915           1 :     _res = NULL;
   34916           5 :   done:
   34917           5 :     p->level--;
   34918           5 :     return _res;
   34919             : }
   34920             : 
   34921             : // _tmp_180: lambda_slash_no_default | lambda_slash_with_default
   34922             : static void *
   34923          40 : _tmp_180_rule(Parser *p)
   34924             : {
   34925          40 :     if (p->level++ == MAXSTACK) {
   34926           0 :         p->error_indicator = 1;
   34927           0 :         PyErr_NoMemory();
   34928             :     }
   34929          40 :     if (p->error_indicator) {
   34930           0 :         p->level--;
   34931           0 :         return NULL;
   34932             :     }
   34933          40 :     void * _res = NULL;
   34934          40 :     int _mark = p->mark;
   34935             :     { // lambda_slash_no_default
   34936          40 :         if (p->error_indicator) {
   34937           0 :             p->level--;
   34938           0 :             return NULL;
   34939             :         }
   34940          40 :         D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default"));
   34941             :         asdl_arg_seq* lambda_slash_no_default_var;
   34942          40 :         if (
   34943          40 :             (lambda_slash_no_default_var = lambda_slash_no_default_rule(p))  // lambda_slash_no_default
   34944             :         )
   34945             :         {
   34946           8 :             D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default"));
   34947           8 :             _res = lambda_slash_no_default_var;
   34948           8 :             goto done;
   34949             :         }
   34950          32 :         p->mark = _mark;
   34951          32 :         D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
   34952             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default"));
   34953             :     }
   34954             :     { // lambda_slash_with_default
   34955          32 :         if (p->error_indicator) {
   34956           0 :             p->level--;
   34957           0 :             return NULL;
   34958             :         }
   34959          32 :         D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
   34960             :         SlashWithDefault* lambda_slash_with_default_var;
   34961          32 :         if (
   34962          32 :             (lambda_slash_with_default_var = lambda_slash_with_default_rule(p))  // lambda_slash_with_default
   34963             :         )
   34964             :         {
   34965           2 :             D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
   34966           2 :             _res = lambda_slash_with_default_var;
   34967           2 :             goto done;
   34968             :         }
   34969          30 :         p->mark = _mark;
   34970          30 :         D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
   34971             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
   34972             :     }
   34973          30 :     _res = NULL;
   34974          40 :   done:
   34975          40 :     p->level--;
   34976          40 :     return _res;
   34977             : }
   34978             : 
   34979             : // _loop0_181: lambda_param_maybe_default
   34980             : static asdl_seq *
   34981          10 : _loop0_181_rule(Parser *p)
   34982             : {
   34983          10 :     if (p->level++ == MAXSTACK) {
   34984           0 :         p->error_indicator = 1;
   34985           0 :         PyErr_NoMemory();
   34986             :     }
   34987          10 :     if (p->error_indicator) {
   34988           0 :         p->level--;
   34989           0 :         return NULL;
   34990             :     }
   34991          10 :     void *_res = NULL;
   34992          10 :     int _mark = p->mark;
   34993          10 :     int _start_mark = p->mark;
   34994          10 :     void **_children = PyMem_Malloc(sizeof(void *));
   34995          10 :     if (!_children) {
   34996           0 :         p->error_indicator = 1;
   34997           0 :         PyErr_NoMemory();
   34998           0 :         p->level--;
   34999           0 :         return NULL;
   35000             :     }
   35001          10 :     Py_ssize_t _children_capacity = 1;
   35002          10 :     Py_ssize_t _n = 0;
   35003             :     { // lambda_param_maybe_default
   35004          10 :         if (p->error_indicator) {
   35005           0 :             p->level--;
   35006           0 :             return NULL;
   35007             :         }
   35008          10 :         D(fprintf(stderr, "%*c> _loop0_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
   35009             :         NameDefaultPair* lambda_param_maybe_default_var;
   35010          27 :         while (
   35011          17 :             (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p))  // lambda_param_maybe_default
   35012             :         )
   35013             :         {
   35014           7 :             _res = lambda_param_maybe_default_var;
   35015           7 :             if (_n == _children_capacity) {
   35016           0 :                 _children_capacity *= 2;
   35017           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   35018           0 :                 if (!_new_children) {
   35019           0 :                     p->error_indicator = 1;
   35020           0 :                     PyErr_NoMemory();
   35021           0 :                     p->level--;
   35022           0 :                     return NULL;
   35023             :                 }
   35024           0 :                 _children = _new_children;
   35025             :             }
   35026           7 :             _children[_n++] = _res;
   35027           7 :             _mark = p->mark;
   35028             :         }
   35029          10 :         p->mark = _mark;
   35030          10 :         D(fprintf(stderr, "%*c%s _loop0_181[%d-%d]: %s failed!\n", p->level, ' ',
   35031             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
   35032             :     }
   35033          10 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   35034          10 :     if (!_seq) {
   35035           0 :         PyMem_Free(_children);
   35036           0 :         p->error_indicator = 1;
   35037           0 :         PyErr_NoMemory();
   35038           0 :         p->level--;
   35039           0 :         return NULL;
   35040             :     }
   35041          17 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   35042          10 :     PyMem_Free(_children);
   35043          10 :     _PyPegen_insert_memo(p, _start_mark, _loop0_181_type, _seq);
   35044          10 :     p->level--;
   35045          10 :     return _seq;
   35046             : }
   35047             : 
   35048             : // _tmp_182: lambda_slash_no_default | lambda_slash_with_default
   35049             : static void *
   35050          33 : _tmp_182_rule(Parser *p)
   35051             : {
   35052          33 :     if (p->level++ == MAXSTACK) {
   35053           0 :         p->error_indicator = 1;
   35054           0 :         PyErr_NoMemory();
   35055             :     }
   35056          33 :     if (p->error_indicator) {
   35057           0 :         p->level--;
   35058           0 :         return NULL;
   35059             :     }
   35060          33 :     void * _res = NULL;
   35061          33 :     int _mark = p->mark;
   35062             :     { // lambda_slash_no_default
   35063          33 :         if (p->error_indicator) {
   35064           0 :             p->level--;
   35065           0 :             return NULL;
   35066             :         }
   35067          33 :         D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default"));
   35068             :         asdl_arg_seq* lambda_slash_no_default_var;
   35069          33 :         if (
   35070          33 :             (lambda_slash_no_default_var = lambda_slash_no_default_rule(p))  // lambda_slash_no_default
   35071             :         )
   35072             :         {
   35073           2 :             D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default"));
   35074           2 :             _res = lambda_slash_no_default_var;
   35075           2 :             goto done;
   35076             :         }
   35077          31 :         p->mark = _mark;
   35078          31 :         D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
   35079             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default"));
   35080             :     }
   35081             :     { // lambda_slash_with_default
   35082          31 :         if (p->error_indicator) {
   35083           0 :             p->level--;
   35084           0 :             return NULL;
   35085             :         }
   35086          31 :         D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
   35087             :         SlashWithDefault* lambda_slash_with_default_var;
   35088          31 :         if (
   35089          31 :             (lambda_slash_with_default_var = lambda_slash_with_default_rule(p))  // lambda_slash_with_default
   35090             :         )
   35091             :         {
   35092           1 :             D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
   35093           1 :             _res = lambda_slash_with_default_var;
   35094           1 :             goto done;
   35095             :         }
   35096          30 :         p->mark = _mark;
   35097          30 :         D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
   35098             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
   35099             :     }
   35100          30 :     _res = NULL;
   35101          33 :   done:
   35102          33 :     p->level--;
   35103          33 :     return _res;
   35104             : }
   35105             : 
   35106             : // _loop0_183: lambda_param_maybe_default
   35107             : static asdl_seq *
   35108          33 : _loop0_183_rule(Parser *p)
   35109             : {
   35110          33 :     if (p->level++ == MAXSTACK) {
   35111           0 :         p->error_indicator = 1;
   35112           0 :         PyErr_NoMemory();
   35113             :     }
   35114          33 :     if (p->error_indicator) {
   35115           0 :         p->level--;
   35116           0 :         return NULL;
   35117             :     }
   35118          33 :     void *_res = NULL;
   35119          33 :     int _mark = p->mark;
   35120          33 :     int _start_mark = p->mark;
   35121          33 :     void **_children = PyMem_Malloc(sizeof(void *));
   35122          33 :     if (!_children) {
   35123           0 :         p->error_indicator = 1;
   35124           0 :         PyErr_NoMemory();
   35125           0 :         p->level--;
   35126           0 :         return NULL;
   35127             :     }
   35128          33 :     Py_ssize_t _children_capacity = 1;
   35129          33 :     Py_ssize_t _n = 0;
   35130             :     { // lambda_param_maybe_default
   35131          33 :         if (p->error_indicator) {
   35132           0 :             p->level--;
   35133           0 :             return NULL;
   35134             :         }
   35135          33 :         D(fprintf(stderr, "%*c> _loop0_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
   35136             :         NameDefaultPair* lambda_param_maybe_default_var;
   35137          84 :         while (
   35138          51 :             (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p))  // lambda_param_maybe_default
   35139             :         )
   35140             :         {
   35141          18 :             _res = lambda_param_maybe_default_var;
   35142          18 :             if (_n == _children_capacity) {
   35143           0 :                 _children_capacity *= 2;
   35144           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   35145           0 :                 if (!_new_children) {
   35146           0 :                     p->error_indicator = 1;
   35147           0 :                     PyErr_NoMemory();
   35148           0 :                     p->level--;
   35149           0 :                     return NULL;
   35150             :                 }
   35151           0 :                 _children = _new_children;
   35152             :             }
   35153          18 :             _children[_n++] = _res;
   35154          18 :             _mark = p->mark;
   35155             :         }
   35156          33 :         p->mark = _mark;
   35157          33 :         D(fprintf(stderr, "%*c%s _loop0_183[%d-%d]: %s failed!\n", p->level, ' ',
   35158             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
   35159             :     }
   35160          33 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   35161          33 :     if (!_seq) {
   35162           0 :         PyMem_Free(_children);
   35163           0 :         p->error_indicator = 1;
   35164           0 :         PyErr_NoMemory();
   35165           0 :         p->level--;
   35166           0 :         return NULL;
   35167             :     }
   35168          51 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   35169          33 :     PyMem_Free(_children);
   35170          33 :     _PyPegen_insert_memo(p, _start_mark, _loop0_183_type, _seq);
   35171          33 :     p->level--;
   35172          33 :     return _seq;
   35173             : }
   35174             : 
   35175             : // _tmp_184: ',' | lambda_param_no_default
   35176             : static void *
   35177          17 : _tmp_184_rule(Parser *p)
   35178             : {
   35179          17 :     if (p->level++ == MAXSTACK) {
   35180           0 :         p->error_indicator = 1;
   35181           0 :         PyErr_NoMemory();
   35182             :     }
   35183          17 :     if (p->error_indicator) {
   35184           0 :         p->level--;
   35185           0 :         return NULL;
   35186             :     }
   35187          17 :     void * _res = NULL;
   35188          17 :     int _mark = p->mark;
   35189             :     { // ','
   35190          17 :         if (p->error_indicator) {
   35191           0 :             p->level--;
   35192           0 :             return NULL;
   35193             :         }
   35194          17 :         D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
   35195             :         Token * _literal;
   35196          17 :         if (
   35197          17 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   35198             :         )
   35199             :         {
   35200           3 :             D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
   35201           3 :             _res = _literal;
   35202           3 :             goto done;
   35203             :         }
   35204          14 :         p->mark = _mark;
   35205          14 :         D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
   35206             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
   35207             :     }
   35208             :     { // lambda_param_no_default
   35209          14 :         if (p->error_indicator) {
   35210           0 :             p->level--;
   35211           0 :             return NULL;
   35212             :         }
   35213          14 :         D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
   35214             :         arg_ty lambda_param_no_default_var;
   35215          14 :         if (
   35216          14 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   35217             :         )
   35218             :         {
   35219          12 :             D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
   35220          12 :             _res = lambda_param_no_default_var;
   35221          12 :             goto done;
   35222             :         }
   35223           2 :         p->mark = _mark;
   35224           2 :         D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
   35225             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
   35226             :     }
   35227           2 :     _res = NULL;
   35228          17 :   done:
   35229          17 :     p->level--;
   35230          17 :     return _res;
   35231             : }
   35232             : 
   35233             : // _loop0_185: lambda_param_maybe_default
   35234             : static asdl_seq *
   35235          15 : _loop0_185_rule(Parser *p)
   35236             : {
   35237          15 :     if (p->level++ == MAXSTACK) {
   35238           0 :         p->error_indicator = 1;
   35239           0 :         PyErr_NoMemory();
   35240             :     }
   35241          15 :     if (p->error_indicator) {
   35242           0 :         p->level--;
   35243           0 :         return NULL;
   35244             :     }
   35245          15 :     void *_res = NULL;
   35246          15 :     int _mark = p->mark;
   35247          15 :     int _start_mark = p->mark;
   35248          15 :     void **_children = PyMem_Malloc(sizeof(void *));
   35249          15 :     if (!_children) {
   35250           0 :         p->error_indicator = 1;
   35251           0 :         PyErr_NoMemory();
   35252           0 :         p->level--;
   35253           0 :         return NULL;
   35254             :     }
   35255          15 :     Py_ssize_t _children_capacity = 1;
   35256          15 :     Py_ssize_t _n = 0;
   35257             :     { // lambda_param_maybe_default
   35258          15 :         if (p->error_indicator) {
   35259           0 :             p->level--;
   35260           0 :             return NULL;
   35261             :         }
   35262          15 :         D(fprintf(stderr, "%*c> _loop0_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
   35263             :         NameDefaultPair* lambda_param_maybe_default_var;
   35264          42 :         while (
   35265          27 :             (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p))  // lambda_param_maybe_default
   35266             :         )
   35267             :         {
   35268          12 :             _res = lambda_param_maybe_default_var;
   35269          12 :             if (_n == _children_capacity) {
   35270           0 :                 _children_capacity *= 2;
   35271           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   35272           0 :                 if (!_new_children) {
   35273           0 :                     p->error_indicator = 1;
   35274           0 :                     PyErr_NoMemory();
   35275           0 :                     p->level--;
   35276           0 :                     return NULL;
   35277             :                 }
   35278           0 :                 _children = _new_children;
   35279             :             }
   35280          12 :             _children[_n++] = _res;
   35281          12 :             _mark = p->mark;
   35282             :         }
   35283          15 :         p->mark = _mark;
   35284          15 :         D(fprintf(stderr, "%*c%s _loop0_185[%d-%d]: %s failed!\n", p->level, ' ',
   35285             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
   35286             :     }
   35287          15 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   35288          15 :     if (!_seq) {
   35289           0 :         PyMem_Free(_children);
   35290           0 :         p->error_indicator = 1;
   35291           0 :         PyErr_NoMemory();
   35292           0 :         p->level--;
   35293           0 :         return NULL;
   35294             :     }
   35295          27 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   35296          15 :     PyMem_Free(_children);
   35297          15 :     _PyPegen_insert_memo(p, _start_mark, _loop0_185_type, _seq);
   35298          15 :     p->level--;
   35299          15 :     return _seq;
   35300             : }
   35301             : 
   35302             : // _loop1_186: lambda_param_maybe_default
   35303             : static asdl_seq *
   35304          26 : _loop1_186_rule(Parser *p)
   35305             : {
   35306          26 :     if (p->level++ == MAXSTACK) {
   35307           0 :         p->error_indicator = 1;
   35308           0 :         PyErr_NoMemory();
   35309             :     }
   35310          26 :     if (p->error_indicator) {
   35311           0 :         p->level--;
   35312           0 :         return NULL;
   35313             :     }
   35314          26 :     void *_res = NULL;
   35315          26 :     int _mark = p->mark;
   35316          26 :     int _start_mark = p->mark;
   35317          26 :     void **_children = PyMem_Malloc(sizeof(void *));
   35318          26 :     if (!_children) {
   35319           0 :         p->error_indicator = 1;
   35320           0 :         PyErr_NoMemory();
   35321           0 :         p->level--;
   35322           0 :         return NULL;
   35323             :     }
   35324          26 :     Py_ssize_t _children_capacity = 1;
   35325          26 :     Py_ssize_t _n = 0;
   35326             :     { // lambda_param_maybe_default
   35327          26 :         if (p->error_indicator) {
   35328           0 :             p->level--;
   35329           0 :             return NULL;
   35330             :         }
   35331          26 :         D(fprintf(stderr, "%*c> _loop1_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
   35332             :         NameDefaultPair* lambda_param_maybe_default_var;
   35333          70 :         while (
   35334          44 :             (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p))  // lambda_param_maybe_default
   35335             :         )
   35336             :         {
   35337          18 :             _res = lambda_param_maybe_default_var;
   35338          18 :             if (_n == _children_capacity) {
   35339           2 :                 _children_capacity *= 2;
   35340           2 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   35341           2 :                 if (!_new_children) {
   35342           0 :                     p->error_indicator = 1;
   35343           0 :                     PyErr_NoMemory();
   35344           0 :                     p->level--;
   35345           0 :                     return NULL;
   35346             :                 }
   35347           2 :                 _children = _new_children;
   35348             :             }
   35349          18 :             _children[_n++] = _res;
   35350          18 :             _mark = p->mark;
   35351             :         }
   35352          26 :         p->mark = _mark;
   35353          26 :         D(fprintf(stderr, "%*c%s _loop1_186[%d-%d]: %s failed!\n", p->level, ' ',
   35354             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
   35355             :     }
   35356          26 :     if (_n == 0 || p->error_indicator) {
   35357          10 :         PyMem_Free(_children);
   35358          10 :         p->level--;
   35359          10 :         return NULL;
   35360             :     }
   35361          16 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   35362          16 :     if (!_seq) {
   35363           0 :         PyMem_Free(_children);
   35364           0 :         p->error_indicator = 1;
   35365           0 :         PyErr_NoMemory();
   35366           0 :         p->level--;
   35367           0 :         return NULL;
   35368             :     }
   35369          34 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   35370          16 :     PyMem_Free(_children);
   35371          16 :     _PyPegen_insert_memo(p, _start_mark, _loop1_186_type, _seq);
   35372          16 :     p->level--;
   35373          16 :     return _seq;
   35374             : }
   35375             : 
   35376             : // _loop1_187: lambda_param_with_default
   35377             : static asdl_seq *
   35378          47 : _loop1_187_rule(Parser *p)
   35379             : {
   35380          47 :     if (p->level++ == MAXSTACK) {
   35381           0 :         p->error_indicator = 1;
   35382           0 :         PyErr_NoMemory();
   35383             :     }
   35384          47 :     if (p->error_indicator) {
   35385           0 :         p->level--;
   35386           0 :         return NULL;
   35387             :     }
   35388          47 :     void *_res = NULL;
   35389          47 :     int _mark = p->mark;
   35390          47 :     int _start_mark = p->mark;
   35391          47 :     void **_children = PyMem_Malloc(sizeof(void *));
   35392          47 :     if (!_children) {
   35393           0 :         p->error_indicator = 1;
   35394           0 :         PyErr_NoMemory();
   35395           0 :         p->level--;
   35396           0 :         return NULL;
   35397             :     }
   35398          47 :     Py_ssize_t _children_capacity = 1;
   35399          47 :     Py_ssize_t _n = 0;
   35400             :     { // lambda_param_with_default
   35401          47 :         if (p->error_indicator) {
   35402           0 :             p->level--;
   35403           0 :             return NULL;
   35404             :         }
   35405          47 :         D(fprintf(stderr, "%*c> _loop1_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
   35406             :         NameDefaultPair* lambda_param_with_default_var;
   35407          98 :         while (
   35408          51 :             (lambda_param_with_default_var = lambda_param_with_default_rule(p))  // lambda_param_with_default
   35409             :         )
   35410             :         {
   35411           4 :             _res = lambda_param_with_default_var;
   35412           4 :             if (_n == _children_capacity) {
   35413           0 :                 _children_capacity *= 2;
   35414           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   35415           0 :                 if (!_new_children) {
   35416           0 :                     p->error_indicator = 1;
   35417           0 :                     PyErr_NoMemory();
   35418           0 :                     p->level--;
   35419           0 :                     return NULL;
   35420             :                 }
   35421           0 :                 _children = _new_children;
   35422             :             }
   35423           4 :             _children[_n++] = _res;
   35424           4 :             _mark = p->mark;
   35425             :         }
   35426          47 :         p->mark = _mark;
   35427          47 :         D(fprintf(stderr, "%*c%s _loop1_187[%d-%d]: %s failed!\n", p->level, ' ',
   35428             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
   35429             :     }
   35430          47 :     if (_n == 0 || p->error_indicator) {
   35431          43 :         PyMem_Free(_children);
   35432          43 :         p->level--;
   35433          43 :         return NULL;
   35434             :     }
   35435           4 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   35436           4 :     if (!_seq) {
   35437           0 :         PyMem_Free(_children);
   35438           0 :         p->error_indicator = 1;
   35439           0 :         PyErr_NoMemory();
   35440           0 :         p->level--;
   35441           0 :         return NULL;
   35442             :     }
   35443           8 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   35444           4 :     PyMem_Free(_children);
   35445           4 :     _PyPegen_insert_memo(p, _start_mark, _loop1_187_type, _seq);
   35446           4 :     p->level--;
   35447           4 :     return _seq;
   35448             : }
   35449             : 
   35450             : // _tmp_188: ':' | ',' (':' | '**')
   35451             : static void *
   35452          10 : _tmp_188_rule(Parser *p)
   35453             : {
   35454          10 :     if (p->level++ == MAXSTACK) {
   35455           0 :         p->error_indicator = 1;
   35456           0 :         PyErr_NoMemory();
   35457             :     }
   35458          10 :     if (p->error_indicator) {
   35459           0 :         p->level--;
   35460           0 :         return NULL;
   35461             :     }
   35462          10 :     void * _res = NULL;
   35463          10 :     int _mark = p->mark;
   35464             :     { // ':'
   35465          10 :         if (p->error_indicator) {
   35466           0 :             p->level--;
   35467           0 :             return NULL;
   35468             :         }
   35469          10 :         D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
   35470             :         Token * _literal;
   35471          10 :         if (
   35472          10 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   35473             :         )
   35474             :         {
   35475           1 :             D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
   35476           1 :             _res = _literal;
   35477           1 :             goto done;
   35478             :         }
   35479           9 :         p->mark = _mark;
   35480           9 :         D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
   35481             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
   35482             :     }
   35483             :     { // ',' (':' | '**')
   35484           9 :         if (p->error_indicator) {
   35485           0 :             p->level--;
   35486           0 :             return NULL;
   35487             :         }
   35488           9 :         D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
   35489             :         Token * _literal;
   35490             :         void *_tmp_236_var;
   35491           9 :         if (
   35492           9 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   35493           0 :             &&
   35494           0 :             (_tmp_236_var = _tmp_236_rule(p))  // ':' | '**'
   35495             :         )
   35496             :         {
   35497           0 :             D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
   35498           0 :             _res = _PyPegen_dummy_name(p, _literal, _tmp_236_var);
   35499           0 :             goto done;
   35500             :         }
   35501           9 :         p->mark = _mark;
   35502           9 :         D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
   35503             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
   35504             :     }
   35505           9 :     _res = NULL;
   35506          10 :   done:
   35507          10 :     p->level--;
   35508          10 :     return _res;
   35509             : }
   35510             : 
   35511             : // _tmp_189: lambda_param_no_default | ','
   35512             : static void *
   35513           8 : _tmp_189_rule(Parser *p)
   35514             : {
   35515           8 :     if (p->level++ == MAXSTACK) {
   35516           0 :         p->error_indicator = 1;
   35517           0 :         PyErr_NoMemory();
   35518             :     }
   35519           8 :     if (p->error_indicator) {
   35520           0 :         p->level--;
   35521           0 :         return NULL;
   35522             :     }
   35523           8 :     void * _res = NULL;
   35524           8 :     int _mark = p->mark;
   35525             :     { // lambda_param_no_default
   35526           8 :         if (p->error_indicator) {
   35527           0 :             p->level--;
   35528           0 :             return NULL;
   35529             :         }
   35530           8 :         D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
   35531             :         arg_ty lambda_param_no_default_var;
   35532           8 :         if (
   35533           8 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   35534             :         )
   35535             :         {
   35536           8 :             D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
   35537           8 :             _res = lambda_param_no_default_var;
   35538           8 :             goto done;
   35539             :         }
   35540           0 :         p->mark = _mark;
   35541           0 :         D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
   35542             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
   35543             :     }
   35544             :     { // ','
   35545           0 :         if (p->error_indicator) {
   35546           0 :             p->level--;
   35547           0 :             return NULL;
   35548             :         }
   35549           0 :         D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
   35550             :         Token * _literal;
   35551           0 :         if (
   35552           0 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   35553             :         )
   35554             :         {
   35555           0 :             D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
   35556           0 :             _res = _literal;
   35557           0 :             goto done;
   35558             :         }
   35559           0 :         p->mark = _mark;
   35560           0 :         D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
   35561             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
   35562             :     }
   35563           0 :     _res = NULL;
   35564           8 :   done:
   35565           8 :     p->level--;
   35566           8 :     return _res;
   35567             : }
   35568             : 
   35569             : // _loop0_190: lambda_param_maybe_default
   35570             : static asdl_seq *
   35571           8 : _loop0_190_rule(Parser *p)
   35572             : {
   35573           8 :     if (p->level++ == MAXSTACK) {
   35574           0 :         p->error_indicator = 1;
   35575           0 :         PyErr_NoMemory();
   35576             :     }
   35577           8 :     if (p->error_indicator) {
   35578           0 :         p->level--;
   35579           0 :         return NULL;
   35580             :     }
   35581           8 :     void *_res = NULL;
   35582           8 :     int _mark = p->mark;
   35583           8 :     int _start_mark = p->mark;
   35584           8 :     void **_children = PyMem_Malloc(sizeof(void *));
   35585           8 :     if (!_children) {
   35586           0 :         p->error_indicator = 1;
   35587           0 :         PyErr_NoMemory();
   35588           0 :         p->level--;
   35589           0 :         return NULL;
   35590             :     }
   35591           8 :     Py_ssize_t _children_capacity = 1;
   35592           8 :     Py_ssize_t _n = 0;
   35593             :     { // lambda_param_maybe_default
   35594           8 :         if (p->error_indicator) {
   35595           0 :             p->level--;
   35596           0 :             return NULL;
   35597             :         }
   35598           8 :         D(fprintf(stderr, "%*c> _loop0_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
   35599             :         NameDefaultPair* lambda_param_maybe_default_var;
   35600          23 :         while (
   35601          15 :             (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p))  // lambda_param_maybe_default
   35602             :         )
   35603             :         {
   35604           7 :             _res = lambda_param_maybe_default_var;
   35605           7 :             if (_n == _children_capacity) {
   35606           0 :                 _children_capacity *= 2;
   35607           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   35608           0 :                 if (!_new_children) {
   35609           0 :                     p->error_indicator = 1;
   35610           0 :                     PyErr_NoMemory();
   35611           0 :                     p->level--;
   35612           0 :                     return NULL;
   35613             :                 }
   35614           0 :                 _children = _new_children;
   35615             :             }
   35616           7 :             _children[_n++] = _res;
   35617           7 :             _mark = p->mark;
   35618             :         }
   35619           8 :         p->mark = _mark;
   35620           8 :         D(fprintf(stderr, "%*c%s _loop0_190[%d-%d]: %s failed!\n", p->level, ' ',
   35621             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
   35622             :     }
   35623           8 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   35624           8 :     if (!_seq) {
   35625           0 :         PyMem_Free(_children);
   35626           0 :         p->error_indicator = 1;
   35627           0 :         PyErr_NoMemory();
   35628           0 :         p->level--;
   35629           0 :         return NULL;
   35630             :     }
   35631          15 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   35632           8 :     PyMem_Free(_children);
   35633           8 :     _PyPegen_insert_memo(p, _start_mark, _loop0_190_type, _seq);
   35634           8 :     p->level--;
   35635           8 :     return _seq;
   35636             : }
   35637             : 
   35638             : // _tmp_191: lambda_param_no_default | ','
   35639             : static void *
   35640           4 : _tmp_191_rule(Parser *p)
   35641             : {
   35642           4 :     if (p->level++ == MAXSTACK) {
   35643           0 :         p->error_indicator = 1;
   35644           0 :         PyErr_NoMemory();
   35645             :     }
   35646           4 :     if (p->error_indicator) {
   35647           0 :         p->level--;
   35648           0 :         return NULL;
   35649             :     }
   35650           4 :     void * _res = NULL;
   35651           4 :     int _mark = p->mark;
   35652             :     { // lambda_param_no_default
   35653           4 :         if (p->error_indicator) {
   35654           0 :             p->level--;
   35655           0 :             return NULL;
   35656             :         }
   35657           4 :         D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
   35658             :         arg_ty lambda_param_no_default_var;
   35659           4 :         if (
   35660           4 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   35661             :         )
   35662             :         {
   35663           4 :             D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
   35664           4 :             _res = lambda_param_no_default_var;
   35665           4 :             goto done;
   35666             :         }
   35667           0 :         p->mark = _mark;
   35668           0 :         D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
   35669             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
   35670             :     }
   35671             :     { // ','
   35672           0 :         if (p->error_indicator) {
   35673           0 :             p->level--;
   35674           0 :             return NULL;
   35675             :         }
   35676           0 :         D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
   35677             :         Token * _literal;
   35678           0 :         if (
   35679           0 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   35680             :         )
   35681             :         {
   35682           0 :             D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
   35683           0 :             _res = _literal;
   35684           0 :             goto done;
   35685             :         }
   35686           0 :         p->mark = _mark;
   35687           0 :         D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
   35688             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
   35689             :     }
   35690           0 :     _res = NULL;
   35691           4 :   done:
   35692           4 :     p->level--;
   35693           4 :     return _res;
   35694             : }
   35695             : 
   35696             : // _tmp_192: '*' | '**' | '/'
   35697             : static void *
   35698           4 : _tmp_192_rule(Parser *p)
   35699             : {
   35700           4 :     if (p->level++ == MAXSTACK) {
   35701           0 :         p->error_indicator = 1;
   35702           0 :         PyErr_NoMemory();
   35703             :     }
   35704           4 :     if (p->error_indicator) {
   35705           0 :         p->level--;
   35706           0 :         return NULL;
   35707             :     }
   35708           4 :     void * _res = NULL;
   35709           4 :     int _mark = p->mark;
   35710             :     { // '*'
   35711           4 :         if (p->error_indicator) {
   35712           0 :             p->level--;
   35713           0 :             return NULL;
   35714             :         }
   35715           4 :         D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
   35716             :         Token * _literal;
   35717           4 :         if (
   35718           4 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   35719             :         )
   35720             :         {
   35721           1 :             D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
   35722           1 :             _res = _literal;
   35723           1 :             goto done;
   35724             :         }
   35725           3 :         p->mark = _mark;
   35726           3 :         D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
   35727             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
   35728             :     }
   35729             :     { // '**'
   35730           3 :         if (p->error_indicator) {
   35731           0 :             p->level--;
   35732           0 :             return NULL;
   35733             :         }
   35734           3 :         D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
   35735             :         Token * _literal;
   35736           3 :         if (
   35737           3 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   35738             :         )
   35739             :         {
   35740           1 :             D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
   35741           1 :             _res = _literal;
   35742           1 :             goto done;
   35743             :         }
   35744           2 :         p->mark = _mark;
   35745           2 :         D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
   35746             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
   35747             :     }
   35748             :     { // '/'
   35749           2 :         if (p->error_indicator) {
   35750           0 :             p->level--;
   35751           0 :             return NULL;
   35752             :         }
   35753           2 :         D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'"));
   35754             :         Token * _literal;
   35755           2 :         if (
   35756           2 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
   35757             :         )
   35758             :         {
   35759           2 :             D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'"));
   35760           2 :             _res = _literal;
   35761           2 :             goto done;
   35762             :         }
   35763           0 :         p->mark = _mark;
   35764           0 :         D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
   35765             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'"));
   35766             :     }
   35767           0 :     _res = NULL;
   35768           4 :   done:
   35769           4 :     p->level--;
   35770           4 :     return _res;
   35771             : }
   35772             : 
   35773             : // _tmp_193: ',' | ')' | ':'
   35774             : static void *
   35775          14 : _tmp_193_rule(Parser *p)
   35776             : {
   35777          14 :     if (p->level++ == MAXSTACK) {
   35778           0 :         p->error_indicator = 1;
   35779           0 :         PyErr_NoMemory();
   35780             :     }
   35781          14 :     if (p->error_indicator) {
   35782           0 :         p->level--;
   35783           0 :         return NULL;
   35784             :     }
   35785          14 :     void * _res = NULL;
   35786          14 :     int _mark = p->mark;
   35787             :     { // ','
   35788          14 :         if (p->error_indicator) {
   35789           0 :             p->level--;
   35790           0 :             return NULL;
   35791             :         }
   35792          14 :         D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
   35793             :         Token * _literal;
   35794          14 :         if (
   35795          14 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   35796             :         )
   35797             :         {
   35798           1 :             D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
   35799           1 :             _res = _literal;
   35800           1 :             goto done;
   35801             :         }
   35802          13 :         p->mark = _mark;
   35803          13 :         D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
   35804             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
   35805             :     }
   35806             :     { // ')'
   35807          13 :         if (p->error_indicator) {
   35808           0 :             p->level--;
   35809           0 :             return NULL;
   35810             :         }
   35811          13 :         D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
   35812             :         Token * _literal;
   35813          13 :         if (
   35814          13 :             (_literal = _PyPegen_expect_token(p, 8))  // token=')'
   35815             :         )
   35816             :         {
   35817           0 :             D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
   35818           0 :             _res = _literal;
   35819           0 :             goto done;
   35820             :         }
   35821          13 :         p->mark = _mark;
   35822          13 :         D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
   35823             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
   35824             :     }
   35825             :     { // ':'
   35826          13 :         if (p->error_indicator) {
   35827           0 :             p->level--;
   35828           0 :             return NULL;
   35829             :         }
   35830          13 :         D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
   35831             :         Token * _literal;
   35832          13 :         if (
   35833          13 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   35834             :         )
   35835             :         {
   35836          10 :             D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
   35837          10 :             _res = _literal;
   35838          10 :             goto done;
   35839             :         }
   35840           3 :         p->mark = _mark;
   35841           3 :         D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
   35842             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
   35843             :     }
   35844           3 :     _res = NULL;
   35845          14 :   done:
   35846          14 :     p->level--;
   35847          14 :     return _res;
   35848             : }
   35849             : 
   35850             : // _loop0_195: ',' (expression ['as' star_target])
   35851             : static asdl_seq *
   35852           7 : _loop0_195_rule(Parser *p)
   35853             : {
   35854           7 :     if (p->level++ == MAXSTACK) {
   35855           0 :         p->error_indicator = 1;
   35856           0 :         PyErr_NoMemory();
   35857             :     }
   35858           7 :     if (p->error_indicator) {
   35859           0 :         p->level--;
   35860           0 :         return NULL;
   35861             :     }
   35862           7 :     void *_res = NULL;
   35863           7 :     int _mark = p->mark;
   35864           7 :     int _start_mark = p->mark;
   35865           7 :     void **_children = PyMem_Malloc(sizeof(void *));
   35866           7 :     if (!_children) {
   35867           0 :         p->error_indicator = 1;
   35868           0 :         PyErr_NoMemory();
   35869           0 :         p->level--;
   35870           0 :         return NULL;
   35871             :     }
   35872           7 :     Py_ssize_t _children_capacity = 1;
   35873           7 :     Py_ssize_t _n = 0;
   35874             :     { // ',' (expression ['as' star_target])
   35875           7 :         if (p->error_indicator) {
   35876           0 :             p->level--;
   35877           0 :             return NULL;
   35878             :         }
   35879           7 :         D(fprintf(stderr, "%*c> _loop0_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
   35880             :         Token * _literal;
   35881             :         void *elem;
   35882          17 :         while (
   35883          10 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   35884           3 :             &&
   35885           3 :             (elem = _tmp_237_rule(p))  // expression ['as' star_target]
   35886             :         )
   35887             :         {
   35888           3 :             _res = elem;
   35889           3 :             if (_res == NULL && PyErr_Occurred()) {
   35890           0 :                 p->error_indicator = 1;
   35891           0 :                 PyMem_Free(_children);
   35892           0 :                 p->level--;
   35893           0 :                 return NULL;
   35894             :             }
   35895           3 :             if (_n == _children_capacity) {
   35896           1 :                 _children_capacity *= 2;
   35897           1 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   35898           1 :                 if (!_new_children) {
   35899           0 :                     p->error_indicator = 1;
   35900           0 :                     PyErr_NoMemory();
   35901           0 :                     p->level--;
   35902           0 :                     return NULL;
   35903             :                 }
   35904           1 :                 _children = _new_children;
   35905             :             }
   35906           3 :             _children[_n++] = _res;
   35907           3 :             _mark = p->mark;
   35908             :         }
   35909           7 :         p->mark = _mark;
   35910           7 :         D(fprintf(stderr, "%*c%s _loop0_195[%d-%d]: %s failed!\n", p->level, ' ',
   35911             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
   35912             :     }
   35913           7 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   35914           7 :     if (!_seq) {
   35915           0 :         PyMem_Free(_children);
   35916           0 :         p->error_indicator = 1;
   35917           0 :         PyErr_NoMemory();
   35918           0 :         p->level--;
   35919           0 :         return NULL;
   35920             :     }
   35921          10 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   35922           7 :     PyMem_Free(_children);
   35923           7 :     _PyPegen_insert_memo(p, _start_mark, _loop0_195_type, _seq);
   35924           7 :     p->level--;
   35925           7 :     return _seq;
   35926             : }
   35927             : 
   35928             : // _gather_194: (expression ['as' star_target]) _loop0_195
   35929             : static asdl_seq *
   35930          11 : _gather_194_rule(Parser *p)
   35931             : {
   35932          11 :     if (p->level++ == MAXSTACK) {
   35933           0 :         p->error_indicator = 1;
   35934           0 :         PyErr_NoMemory();
   35935             :     }
   35936          11 :     if (p->error_indicator) {
   35937           0 :         p->level--;
   35938           0 :         return NULL;
   35939             :     }
   35940          11 :     asdl_seq * _res = NULL;
   35941          11 :     int _mark = p->mark;
   35942             :     { // (expression ['as' star_target]) _loop0_195
   35943          11 :         if (p->error_indicator) {
   35944           0 :             p->level--;
   35945           0 :             return NULL;
   35946             :         }
   35947          11 :         D(fprintf(stderr, "%*c> _gather_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_195"));
   35948             :         void *elem;
   35949             :         asdl_seq * seq;
   35950          11 :         if (
   35951          11 :             (elem = _tmp_237_rule(p))  // expression ['as' star_target]
   35952           7 :             &&
   35953           7 :             (seq = _loop0_195_rule(p))  // _loop0_195
   35954             :         )
   35955             :         {
   35956           7 :             D(fprintf(stderr, "%*c+ _gather_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_195"));
   35957           7 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   35958           7 :             goto done;
   35959             :         }
   35960           4 :         p->mark = _mark;
   35961           4 :         D(fprintf(stderr, "%*c%s _gather_194[%d-%d]: %s failed!\n", p->level, ' ',
   35962             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_195"));
   35963             :     }
   35964           4 :     _res = NULL;
   35965          11 :   done:
   35966          11 :     p->level--;
   35967          11 :     return _res;
   35968             : }
   35969             : 
   35970             : // _loop0_197: ',' (expressions ['as' star_target])
   35971             : static asdl_seq *
   35972           3 : _loop0_197_rule(Parser *p)
   35973             : {
   35974           3 :     if (p->level++ == MAXSTACK) {
   35975           0 :         p->error_indicator = 1;
   35976           0 :         PyErr_NoMemory();
   35977             :     }
   35978           3 :     if (p->error_indicator) {
   35979           0 :         p->level--;
   35980           0 :         return NULL;
   35981             :     }
   35982           3 :     void *_res = NULL;
   35983           3 :     int _mark = p->mark;
   35984           3 :     int _start_mark = p->mark;
   35985           3 :     void **_children = PyMem_Malloc(sizeof(void *));
   35986           3 :     if (!_children) {
   35987           0 :         p->error_indicator = 1;
   35988           0 :         PyErr_NoMemory();
   35989           0 :         p->level--;
   35990           0 :         return NULL;
   35991             :     }
   35992           3 :     Py_ssize_t _children_capacity = 1;
   35993           3 :     Py_ssize_t _n = 0;
   35994             :     { // ',' (expressions ['as' star_target])
   35995           3 :         if (p->error_indicator) {
   35996           0 :             p->level--;
   35997           0 :             return NULL;
   35998             :         }
   35999           3 :         D(fprintf(stderr, "%*c> _loop0_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
   36000             :         Token * _literal;
   36001             :         void *elem;
   36002           7 :         while (
   36003           4 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   36004           1 :             &&
   36005           1 :             (elem = _tmp_238_rule(p))  // expressions ['as' star_target]
   36006             :         )
   36007             :         {
   36008           1 :             _res = elem;
   36009           1 :             if (_res == NULL && PyErr_Occurred()) {
   36010           0 :                 p->error_indicator = 1;
   36011           0 :                 PyMem_Free(_children);
   36012           0 :                 p->level--;
   36013           0 :                 return NULL;
   36014             :             }
   36015           1 :             if (_n == _children_capacity) {
   36016           0 :                 _children_capacity *= 2;
   36017           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   36018           0 :                 if (!_new_children) {
   36019           0 :                     p->error_indicator = 1;
   36020           0 :                     PyErr_NoMemory();
   36021           0 :                     p->level--;
   36022           0 :                     return NULL;
   36023             :                 }
   36024           0 :                 _children = _new_children;
   36025             :             }
   36026           1 :             _children[_n++] = _res;
   36027           1 :             _mark = p->mark;
   36028             :         }
   36029           3 :         p->mark = _mark;
   36030           3 :         D(fprintf(stderr, "%*c%s _loop0_197[%d-%d]: %s failed!\n", p->level, ' ',
   36031             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
   36032             :     }
   36033           3 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   36034           3 :     if (!_seq) {
   36035           0 :         PyMem_Free(_children);
   36036           0 :         p->error_indicator = 1;
   36037           0 :         PyErr_NoMemory();
   36038           0 :         p->level--;
   36039           0 :         return NULL;
   36040             :     }
   36041           4 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   36042           3 :     PyMem_Free(_children);
   36043           3 :     _PyPegen_insert_memo(p, _start_mark, _loop0_197_type, _seq);
   36044           3 :     p->level--;
   36045           3 :     return _seq;
   36046             : }
   36047             : 
   36048             : // _gather_196: (expressions ['as' star_target]) _loop0_197
   36049             : static asdl_seq *
   36050           3 : _gather_196_rule(Parser *p)
   36051             : {
   36052           3 :     if (p->level++ == MAXSTACK) {
   36053           0 :         p->error_indicator = 1;
   36054           0 :         PyErr_NoMemory();
   36055             :     }
   36056           3 :     if (p->error_indicator) {
   36057           0 :         p->level--;
   36058           0 :         return NULL;
   36059             :     }
   36060           3 :     asdl_seq * _res = NULL;
   36061           3 :     int _mark = p->mark;
   36062             :     { // (expressions ['as' star_target]) _loop0_197
   36063           3 :         if (p->error_indicator) {
   36064           0 :             p->level--;
   36065           0 :             return NULL;
   36066             :         }
   36067           3 :         D(fprintf(stderr, "%*c> _gather_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_197"));
   36068             :         void *elem;
   36069             :         asdl_seq * seq;
   36070           3 :         if (
   36071           3 :             (elem = _tmp_238_rule(p))  // expressions ['as' star_target]
   36072           3 :             &&
   36073           3 :             (seq = _loop0_197_rule(p))  // _loop0_197
   36074             :         )
   36075             :         {
   36076           3 :             D(fprintf(stderr, "%*c+ _gather_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_197"));
   36077           3 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   36078           3 :             goto done;
   36079             :         }
   36080           0 :         p->mark = _mark;
   36081           0 :         D(fprintf(stderr, "%*c%s _gather_196[%d-%d]: %s failed!\n", p->level, ' ',
   36082             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_197"));
   36083             :     }
   36084           0 :     _res = NULL;
   36085           3 :   done:
   36086           3 :     p->level--;
   36087           3 :     return _res;
   36088             : }
   36089             : 
   36090             : // _loop0_199: ',' (expression ['as' star_target])
   36091             : static asdl_seq *
   36092          22 : _loop0_199_rule(Parser *p)
   36093             : {
   36094          22 :     if (p->level++ == MAXSTACK) {
   36095           0 :         p->error_indicator = 1;
   36096           0 :         PyErr_NoMemory();
   36097             :     }
   36098          22 :     if (p->error_indicator) {
   36099           0 :         p->level--;
   36100           0 :         return NULL;
   36101             :     }
   36102          22 :     void *_res = NULL;
   36103          22 :     int _mark = p->mark;
   36104          22 :     int _start_mark = p->mark;
   36105          22 :     void **_children = PyMem_Malloc(sizeof(void *));
   36106          22 :     if (!_children) {
   36107           0 :         p->error_indicator = 1;
   36108           0 :         PyErr_NoMemory();
   36109           0 :         p->level--;
   36110           0 :         return NULL;
   36111             :     }
   36112          22 :     Py_ssize_t _children_capacity = 1;
   36113          22 :     Py_ssize_t _n = 0;
   36114             :     { // ',' (expression ['as' star_target])
   36115          22 :         if (p->error_indicator) {
   36116           0 :             p->level--;
   36117           0 :             return NULL;
   36118             :         }
   36119          22 :         D(fprintf(stderr, "%*c> _loop0_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
   36120             :         Token * _literal;
   36121             :         void *elem;
   36122          50 :         while (
   36123          28 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   36124           6 :             &&
   36125           6 :             (elem = _tmp_239_rule(p))  // expression ['as' star_target]
   36126             :         )
   36127             :         {
   36128           6 :             _res = elem;
   36129           6 :             if (_res == NULL && PyErr_Occurred()) {
   36130           0 :                 p->error_indicator = 1;
   36131           0 :                 PyMem_Free(_children);
   36132           0 :                 p->level--;
   36133           0 :                 return NULL;
   36134             :             }
   36135           6 :             if (_n == _children_capacity) {
   36136           1 :                 _children_capacity *= 2;
   36137           1 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   36138           1 :                 if (!_new_children) {
   36139           0 :                     p->error_indicator = 1;
   36140           0 :                     PyErr_NoMemory();
   36141           0 :                     p->level--;
   36142           0 :                     return NULL;
   36143             :                 }
   36144           1 :                 _children = _new_children;
   36145             :             }
   36146           6 :             _children[_n++] = _res;
   36147           6 :             _mark = p->mark;
   36148             :         }
   36149          22 :         p->mark = _mark;
   36150          22 :         D(fprintf(stderr, "%*c%s _loop0_199[%d-%d]: %s failed!\n", p->level, ' ',
   36151             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
   36152             :     }
   36153          22 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   36154          22 :     if (!_seq) {
   36155           0 :         PyMem_Free(_children);
   36156           0 :         p->error_indicator = 1;
   36157           0 :         PyErr_NoMemory();
   36158           0 :         p->level--;
   36159           0 :         return NULL;
   36160             :     }
   36161          28 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   36162          22 :     PyMem_Free(_children);
   36163          22 :     _PyPegen_insert_memo(p, _start_mark, _loop0_199_type, _seq);
   36164          22 :     p->level--;
   36165          22 :     return _seq;
   36166             : }
   36167             : 
   36168             : // _gather_198: (expression ['as' star_target]) _loop0_199
   36169             : static asdl_seq *
   36170          29 : _gather_198_rule(Parser *p)
   36171             : {
   36172          29 :     if (p->level++ == MAXSTACK) {
   36173           0 :         p->error_indicator = 1;
   36174           0 :         PyErr_NoMemory();
   36175             :     }
   36176          29 :     if (p->error_indicator) {
   36177           0 :         p->level--;
   36178           0 :         return NULL;
   36179             :     }
   36180          29 :     asdl_seq * _res = NULL;
   36181          29 :     int _mark = p->mark;
   36182             :     { // (expression ['as' star_target]) _loop0_199
   36183          29 :         if (p->error_indicator) {
   36184           0 :             p->level--;
   36185           0 :             return NULL;
   36186             :         }
   36187          29 :         D(fprintf(stderr, "%*c> _gather_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_199"));
   36188             :         void *elem;
   36189             :         asdl_seq * seq;
   36190          29 :         if (
   36191          29 :             (elem = _tmp_239_rule(p))  // expression ['as' star_target]
   36192          22 :             &&
   36193          22 :             (seq = _loop0_199_rule(p))  // _loop0_199
   36194             :         )
   36195             :         {
   36196          22 :             D(fprintf(stderr, "%*c+ _gather_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_199"));
   36197          22 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   36198          22 :             goto done;
   36199             :         }
   36200           7 :         p->mark = _mark;
   36201           7 :         D(fprintf(stderr, "%*c%s _gather_198[%d-%d]: %s failed!\n", p->level, ' ',
   36202             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_199"));
   36203             :     }
   36204           7 :     _res = NULL;
   36205          29 :   done:
   36206          29 :     p->level--;
   36207          29 :     return _res;
   36208             : }
   36209             : 
   36210             : // _loop0_201: ',' (expressions ['as' star_target])
   36211             : static asdl_seq *
   36212           6 : _loop0_201_rule(Parser *p)
   36213             : {
   36214           6 :     if (p->level++ == MAXSTACK) {
   36215           0 :         p->error_indicator = 1;
   36216           0 :         PyErr_NoMemory();
   36217             :     }
   36218           6 :     if (p->error_indicator) {
   36219           0 :         p->level--;
   36220           0 :         return NULL;
   36221             :     }
   36222           6 :     void *_res = NULL;
   36223           6 :     int _mark = p->mark;
   36224           6 :     int _start_mark = p->mark;
   36225           6 :     void **_children = PyMem_Malloc(sizeof(void *));
   36226           6 :     if (!_children) {
   36227           0 :         p->error_indicator = 1;
   36228           0 :         PyErr_NoMemory();
   36229           0 :         p->level--;
   36230           0 :         return NULL;
   36231             :     }
   36232           6 :     Py_ssize_t _children_capacity = 1;
   36233           6 :     Py_ssize_t _n = 0;
   36234             :     { // ',' (expressions ['as' star_target])
   36235           6 :         if (p->error_indicator) {
   36236           0 :             p->level--;
   36237           0 :             return NULL;
   36238             :         }
   36239           6 :         D(fprintf(stderr, "%*c> _loop0_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
   36240             :         Token * _literal;
   36241             :         void *elem;
   36242          15 :         while (
   36243           9 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   36244           3 :             &&
   36245           3 :             (elem = _tmp_240_rule(p))  // expressions ['as' star_target]
   36246             :         )
   36247             :         {
   36248           3 :             _res = elem;
   36249           3 :             if (_res == NULL && PyErr_Occurred()) {
   36250           0 :                 p->error_indicator = 1;
   36251           0 :                 PyMem_Free(_children);
   36252           0 :                 p->level--;
   36253           0 :                 return NULL;
   36254             :             }
   36255           3 :             if (_n == _children_capacity) {
   36256           0 :                 _children_capacity *= 2;
   36257           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   36258           0 :                 if (!_new_children) {
   36259           0 :                     p->error_indicator = 1;
   36260           0 :                     PyErr_NoMemory();
   36261           0 :                     p->level--;
   36262           0 :                     return NULL;
   36263             :                 }
   36264           0 :                 _children = _new_children;
   36265             :             }
   36266           3 :             _children[_n++] = _res;
   36267           3 :             _mark = p->mark;
   36268             :         }
   36269           6 :         p->mark = _mark;
   36270           6 :         D(fprintf(stderr, "%*c%s _loop0_201[%d-%d]: %s failed!\n", p->level, ' ',
   36271             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
   36272             :     }
   36273           6 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   36274           6 :     if (!_seq) {
   36275           0 :         PyMem_Free(_children);
   36276           0 :         p->error_indicator = 1;
   36277           0 :         PyErr_NoMemory();
   36278           0 :         p->level--;
   36279           0 :         return NULL;
   36280             :     }
   36281           9 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   36282           6 :     PyMem_Free(_children);
   36283           6 :     _PyPegen_insert_memo(p, _start_mark, _loop0_201_type, _seq);
   36284           6 :     p->level--;
   36285           6 :     return _seq;
   36286             : }
   36287             : 
   36288             : // _gather_200: (expressions ['as' star_target]) _loop0_201
   36289             : static asdl_seq *
   36290           6 : _gather_200_rule(Parser *p)
   36291             : {
   36292           6 :     if (p->level++ == MAXSTACK) {
   36293           0 :         p->error_indicator = 1;
   36294           0 :         PyErr_NoMemory();
   36295             :     }
   36296           6 :     if (p->error_indicator) {
   36297           0 :         p->level--;
   36298           0 :         return NULL;
   36299             :     }
   36300           6 :     asdl_seq * _res = NULL;
   36301           6 :     int _mark = p->mark;
   36302             :     { // (expressions ['as' star_target]) _loop0_201
   36303           6 :         if (p->error_indicator) {
   36304           0 :             p->level--;
   36305           0 :             return NULL;
   36306             :         }
   36307           6 :         D(fprintf(stderr, "%*c> _gather_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_201"));
   36308             :         void *elem;
   36309             :         asdl_seq * seq;
   36310           6 :         if (
   36311           6 :             (elem = _tmp_240_rule(p))  // expressions ['as' star_target]
   36312           6 :             &&
   36313           6 :             (seq = _loop0_201_rule(p))  // _loop0_201
   36314             :         )
   36315             :         {
   36316           6 :             D(fprintf(stderr, "%*c+ _gather_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_201"));
   36317           6 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   36318           6 :             goto done;
   36319             :         }
   36320           0 :         p->mark = _mark;
   36321           0 :         D(fprintf(stderr, "%*c%s _gather_200[%d-%d]: %s failed!\n", p->level, ' ',
   36322             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_201"));
   36323             :     }
   36324           0 :     _res = NULL;
   36325           6 :   done:
   36326           6 :     p->level--;
   36327           6 :     return _res;
   36328             : }
   36329             : 
   36330             : // _tmp_202: 'except' | 'finally'
   36331             : static void *
   36332          41 : _tmp_202_rule(Parser *p)
   36333             : {
   36334          41 :     if (p->level++ == MAXSTACK) {
   36335           0 :         p->error_indicator = 1;
   36336           0 :         PyErr_NoMemory();
   36337             :     }
   36338          41 :     if (p->error_indicator) {
   36339           0 :         p->level--;
   36340           0 :         return NULL;
   36341             :     }
   36342          41 :     void * _res = NULL;
   36343          41 :     int _mark = p->mark;
   36344             :     { // 'except'
   36345          41 :         if (p->error_indicator) {
   36346           0 :             p->level--;
   36347           0 :             return NULL;
   36348             :         }
   36349          41 :         D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
   36350             :         Token * _keyword;
   36351          41 :         if (
   36352          41 :             (_keyword = _PyPegen_expect_token(p, 629))  // token='except'
   36353             :         )
   36354             :         {
   36355          31 :             D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
   36356          31 :             _res = _keyword;
   36357          31 :             goto done;
   36358             :         }
   36359          10 :         p->mark = _mark;
   36360          10 :         D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
   36361             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'"));
   36362             :     }
   36363             :     { // 'finally'
   36364          10 :         if (p->error_indicator) {
   36365           0 :             p->level--;
   36366           0 :             return NULL;
   36367             :         }
   36368          10 :         D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
   36369             :         Token * _keyword;
   36370          10 :         if (
   36371          10 :             (_keyword = _PyPegen_expect_token(p, 625))  // token='finally'
   36372             :         )
   36373             :         {
   36374           9 :             D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
   36375           9 :             _res = _keyword;
   36376           9 :             goto done;
   36377             :         }
   36378           1 :         p->mark = _mark;
   36379           1 :         D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
   36380             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'"));
   36381             :     }
   36382           1 :     _res = NULL;
   36383          41 :   done:
   36384          41 :     p->level--;
   36385          41 :     return _res;
   36386             : }
   36387             : 
   36388             : // _loop0_203: block
   36389             : static asdl_seq *
   36390          49 : _loop0_203_rule(Parser *p)
   36391             : {
   36392          49 :     if (p->level++ == MAXSTACK) {
   36393           0 :         p->error_indicator = 1;
   36394           0 :         PyErr_NoMemory();
   36395             :     }
   36396          49 :     if (p->error_indicator) {
   36397           0 :         p->level--;
   36398           0 :         return NULL;
   36399             :     }
   36400          49 :     void *_res = NULL;
   36401          49 :     int _mark = p->mark;
   36402          49 :     int _start_mark = p->mark;
   36403          49 :     void **_children = PyMem_Malloc(sizeof(void *));
   36404          49 :     if (!_children) {
   36405           0 :         p->error_indicator = 1;
   36406           0 :         PyErr_NoMemory();
   36407           0 :         p->level--;
   36408           0 :         return NULL;
   36409             :     }
   36410          49 :     Py_ssize_t _children_capacity = 1;
   36411          49 :     Py_ssize_t _n = 0;
   36412             :     { // block
   36413          49 :         if (p->error_indicator) {
   36414           0 :             p->level--;
   36415           0 :             return NULL;
   36416             :         }
   36417          49 :         D(fprintf(stderr, "%*c> _loop0_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block"));
   36418             :         asdl_stmt_seq* block_var;
   36419         138 :         while (
   36420          89 :             (block_var = block_rule(p))  // block
   36421             :         )
   36422             :         {
   36423          40 :             _res = block_var;
   36424          40 :             if (_n == _children_capacity) {
   36425           0 :                 _children_capacity *= 2;
   36426           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   36427           0 :                 if (!_new_children) {
   36428           0 :                     p->error_indicator = 1;
   36429           0 :                     PyErr_NoMemory();
   36430           0 :                     p->level--;
   36431           0 :                     return NULL;
   36432             :                 }
   36433           0 :                 _children = _new_children;
   36434             :             }
   36435          40 :             _children[_n++] = _res;
   36436          40 :             _mark = p->mark;
   36437             :         }
   36438          49 :         p->mark = _mark;
   36439          49 :         D(fprintf(stderr, "%*c%s _loop0_203[%d-%d]: %s failed!\n", p->level, ' ',
   36440             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "block"));
   36441             :     }
   36442          49 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   36443          49 :     if (!_seq) {
   36444           0 :         PyMem_Free(_children);
   36445           0 :         p->error_indicator = 1;
   36446           0 :         PyErr_NoMemory();
   36447           0 :         p->level--;
   36448           0 :         return NULL;
   36449             :     }
   36450          89 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   36451          49 :     PyMem_Free(_children);
   36452          49 :     _PyPegen_insert_memo(p, _start_mark, _loop0_203_type, _seq);
   36453          49 :     p->level--;
   36454          49 :     return _seq;
   36455             : }
   36456             : 
   36457             : // _tmp_204: (except_block+ except_star_block) | (except_star_block+ except_block)
   36458             : static void *
   36459          49 : _tmp_204_rule(Parser *p)
   36460             : {
   36461          49 :     if (p->level++ == MAXSTACK) {
   36462           0 :         p->error_indicator = 1;
   36463           0 :         PyErr_NoMemory();
   36464             :     }
   36465          49 :     if (p->error_indicator) {
   36466           0 :         p->level--;
   36467           0 :         return NULL;
   36468             :     }
   36469          49 :     void * _res = NULL;
   36470          49 :     int _mark = p->mark;
   36471             :     { // (except_block+ except_star_block)
   36472          49 :         if (p->error_indicator) {
   36473           0 :             p->level--;
   36474           0 :             return NULL;
   36475             :         }
   36476          49 :         D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(except_block+ except_star_block)"));
   36477             :         void *_tmp_241_var;
   36478          49 :         if (
   36479          49 :             (_tmp_241_var = _tmp_241_rule(p))  // except_block+ except_star_block
   36480             :         )
   36481             :         {
   36482           5 :             D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(except_block+ except_star_block)"));
   36483           5 :             _res = _tmp_241_var;
   36484           5 :             goto done;
   36485             :         }
   36486          44 :         p->mark = _mark;
   36487          44 :         D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ',
   36488             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(except_block+ except_star_block)"));
   36489             :     }
   36490             :     { // (except_star_block+ except_block)
   36491          44 :         if (p->error_indicator) {
   36492          14 :             p->level--;
   36493          14 :             return NULL;
   36494             :         }
   36495          30 :         D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(except_star_block+ except_block)"));
   36496             :         void *_tmp_242_var;
   36497          30 :         if (
   36498          30 :             (_tmp_242_var = _tmp_242_rule(p))  // except_star_block+ except_block
   36499             :         )
   36500             :         {
   36501           6 :             D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(except_star_block+ except_block)"));
   36502           6 :             _res = _tmp_242_var;
   36503           6 :             goto done;
   36504             :         }
   36505          24 :         p->mark = _mark;
   36506          24 :         D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ',
   36507             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(except_star_block+ except_block)"));
   36508             :     }
   36509          24 :     _res = NULL;
   36510          35 :   done:
   36511          35 :     p->level--;
   36512          35 :     return _res;
   36513             : }
   36514             : 
   36515             : // _loop0_205: block
   36516             : static asdl_seq *
   36517          11 : _loop0_205_rule(Parser *p)
   36518             : {
   36519          11 :     if (p->level++ == MAXSTACK) {
   36520           0 :         p->error_indicator = 1;
   36521           0 :         PyErr_NoMemory();
   36522             :     }
   36523          11 :     if (p->error_indicator) {
   36524           0 :         p->level--;
   36525           0 :         return NULL;
   36526             :     }
   36527          11 :     void *_res = NULL;
   36528          11 :     int _mark = p->mark;
   36529          11 :     int _start_mark = p->mark;
   36530          11 :     void **_children = PyMem_Malloc(sizeof(void *));
   36531          11 :     if (!_children) {
   36532           0 :         p->error_indicator = 1;
   36533           0 :         PyErr_NoMemory();
   36534           0 :         p->level--;
   36535           0 :         return NULL;
   36536             :     }
   36537          11 :     Py_ssize_t _children_capacity = 1;
   36538          11 :     Py_ssize_t _n = 0;
   36539             :     { // block
   36540          11 :         if (p->error_indicator) {
   36541           0 :             p->level--;
   36542           0 :             return NULL;
   36543             :         }
   36544          11 :         D(fprintf(stderr, "%*c> _loop0_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block"));
   36545             :         asdl_stmt_seq* block_var;
   36546          22 :         while (
   36547          11 :             (block_var = block_rule(p))  // block
   36548             :         )
   36549             :         {
   36550           0 :             _res = block_var;
   36551           0 :             if (_n == _children_capacity) {
   36552           0 :                 _children_capacity *= 2;
   36553           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   36554           0 :                 if (!_new_children) {
   36555           0 :                     p->error_indicator = 1;
   36556           0 :                     PyErr_NoMemory();
   36557           0 :                     p->level--;
   36558           0 :                     return NULL;
   36559             :                 }
   36560           0 :                 _children = _new_children;
   36561             :             }
   36562           0 :             _children[_n++] = _res;
   36563           0 :             _mark = p->mark;
   36564             :         }
   36565          11 :         p->mark = _mark;
   36566          11 :         D(fprintf(stderr, "%*c%s _loop0_205[%d-%d]: %s failed!\n", p->level, ' ',
   36567             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "block"));
   36568             :     }
   36569          11 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   36570          11 :     if (!_seq) {
   36571           0 :         PyMem_Free(_children);
   36572           0 :         p->error_indicator = 1;
   36573           0 :         PyErr_NoMemory();
   36574           0 :         p->level--;
   36575           0 :         return NULL;
   36576             :     }
   36577          11 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   36578          11 :     PyMem_Free(_children);
   36579          11 :     _PyPegen_insert_memo(p, _start_mark, _loop0_205_type, _seq);
   36580          11 :     p->level--;
   36581          11 :     return _seq;
   36582             : }
   36583             : 
   36584             : // _tmp_206: 'as' NAME
   36585             : static void *
   36586           8 : _tmp_206_rule(Parser *p)
   36587             : {
   36588           8 :     if (p->level++ == MAXSTACK) {
   36589           0 :         p->error_indicator = 1;
   36590           0 :         PyErr_NoMemory();
   36591             :     }
   36592           8 :     if (p->error_indicator) {
   36593           0 :         p->level--;
   36594           0 :         return NULL;
   36595             :     }
   36596           8 :     void * _res = NULL;
   36597           8 :     int _mark = p->mark;
   36598             :     { // 'as' NAME
   36599           8 :         if (p->error_indicator) {
   36600           0 :             p->level--;
   36601           0 :             return NULL;
   36602             :         }
   36603           8 :         D(fprintf(stderr, "%*c> _tmp_206[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   36604             :         Token * _keyword;
   36605             :         expr_ty name_var;
   36606           8 :         if (
   36607           8 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   36608           4 :             &&
   36609           4 :             (name_var = _PyPegen_name_token(p))  // NAME
   36610             :         )
   36611             :         {
   36612           4 :             D(fprintf(stderr, "%*c+ _tmp_206[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   36613           4 :             _res = _PyPegen_dummy_name(p, _keyword, name_var);
   36614           4 :             goto done;
   36615             :         }
   36616           4 :         p->mark = _mark;
   36617           4 :         D(fprintf(stderr, "%*c%s _tmp_206[%d-%d]: %s failed!\n", p->level, ' ',
   36618             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
   36619             :     }
   36620           4 :     _res = NULL;
   36621           8 :   done:
   36622           8 :     p->level--;
   36623           8 :     return _res;
   36624             : }
   36625             : 
   36626             : // _tmp_207: 'as' NAME
   36627             : static void *
   36628          29 : _tmp_207_rule(Parser *p)
   36629             : {
   36630          29 :     if (p->level++ == MAXSTACK) {
   36631           0 :         p->error_indicator = 1;
   36632           0 :         PyErr_NoMemory();
   36633             :     }
   36634          29 :     if (p->error_indicator) {
   36635           0 :         p->level--;
   36636           0 :         return NULL;
   36637             :     }
   36638          29 :     void * _res = NULL;
   36639          29 :     int _mark = p->mark;
   36640             :     { // 'as' NAME
   36641          29 :         if (p->error_indicator) {
   36642           0 :             p->level--;
   36643           0 :             return NULL;
   36644             :         }
   36645          29 :         D(fprintf(stderr, "%*c> _tmp_207[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   36646             :         Token * _keyword;
   36647             :         expr_ty name_var;
   36648          29 :         if (
   36649          29 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   36650          12 :             &&
   36651          12 :             (name_var = _PyPegen_name_token(p))  // NAME
   36652             :         )
   36653             :         {
   36654          12 :             D(fprintf(stderr, "%*c+ _tmp_207[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   36655          12 :             _res = _PyPegen_dummy_name(p, _keyword, name_var);
   36656          12 :             goto done;
   36657             :         }
   36658          17 :         p->mark = _mark;
   36659          17 :         D(fprintf(stderr, "%*c%s _tmp_207[%d-%d]: %s failed!\n", p->level, ' ',
   36660             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
   36661             :     }
   36662          17 :     _res = NULL;
   36663          29 :   done:
   36664          29 :     p->level--;
   36665          29 :     return _res;
   36666             : }
   36667             : 
   36668             : // _tmp_208: NEWLINE | ':'
   36669             : static void *
   36670          23 : _tmp_208_rule(Parser *p)
   36671             : {
   36672          23 :     if (p->level++ == MAXSTACK) {
   36673           0 :         p->error_indicator = 1;
   36674           0 :         PyErr_NoMemory();
   36675             :     }
   36676          23 :     if (p->error_indicator) {
   36677           0 :         p->level--;
   36678           0 :         return NULL;
   36679             :     }
   36680          23 :     void * _res = NULL;
   36681          23 :     int _mark = p->mark;
   36682             :     { // NEWLINE
   36683          23 :         if (p->error_indicator) {
   36684           0 :             p->level--;
   36685           0 :             return NULL;
   36686             :         }
   36687          23 :         D(fprintf(stderr, "%*c> _tmp_208[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
   36688             :         Token * newline_var;
   36689          23 :         if (
   36690          23 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   36691             :         )
   36692             :         {
   36693           0 :             D(fprintf(stderr, "%*c+ _tmp_208[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
   36694           0 :             _res = newline_var;
   36695           0 :             goto done;
   36696             :         }
   36697          23 :         p->mark = _mark;
   36698          23 :         D(fprintf(stderr, "%*c%s _tmp_208[%d-%d]: %s failed!\n", p->level, ' ',
   36699             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
   36700             :     }
   36701             :     { // ':'
   36702          23 :         if (p->error_indicator) {
   36703           0 :             p->level--;
   36704           0 :             return NULL;
   36705             :         }
   36706          23 :         D(fprintf(stderr, "%*c> _tmp_208[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
   36707             :         Token * _literal;
   36708          23 :         if (
   36709          23 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   36710             :         )
   36711             :         {
   36712           4 :             D(fprintf(stderr, "%*c+ _tmp_208[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
   36713           4 :             _res = _literal;
   36714           4 :             goto done;
   36715             :         }
   36716          19 :         p->mark = _mark;
   36717          19 :         D(fprintf(stderr, "%*c%s _tmp_208[%d-%d]: %s failed!\n", p->level, ' ',
   36718             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
   36719             :     }
   36720          19 :     _res = NULL;
   36721          23 :   done:
   36722          23 :     p->level--;
   36723          23 :     return _res;
   36724             : }
   36725             : 
   36726             : // _tmp_209: 'as' NAME
   36727             : static void *
   36728          21 : _tmp_209_rule(Parser *p)
   36729             : {
   36730          21 :     if (p->level++ == MAXSTACK) {
   36731           0 :         p->error_indicator = 1;
   36732           0 :         PyErr_NoMemory();
   36733             :     }
   36734          21 :     if (p->error_indicator) {
   36735           0 :         p->level--;
   36736           0 :         return NULL;
   36737             :     }
   36738          21 :     void * _res = NULL;
   36739          21 :     int _mark = p->mark;
   36740             :     { // 'as' NAME
   36741          21 :         if (p->error_indicator) {
   36742           0 :             p->level--;
   36743           0 :             return NULL;
   36744             :         }
   36745          21 :         D(fprintf(stderr, "%*c> _tmp_209[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   36746             :         Token * _keyword;
   36747             :         expr_ty name_var;
   36748          21 :         if (
   36749          21 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   36750           4 :             &&
   36751           4 :             (name_var = _PyPegen_name_token(p))  // NAME
   36752             :         )
   36753             :         {
   36754           4 :             D(fprintf(stderr, "%*c+ _tmp_209[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   36755           4 :             _res = _PyPegen_dummy_name(p, _keyword, name_var);
   36756           4 :             goto done;
   36757             :         }
   36758          17 :         p->mark = _mark;
   36759          17 :         D(fprintf(stderr, "%*c%s _tmp_209[%d-%d]: %s failed!\n", p->level, ' ',
   36760             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
   36761             :     }
   36762          17 :     _res = NULL;
   36763          21 :   done:
   36764          21 :     p->level--;
   36765          21 :     return _res;
   36766             : }
   36767             : 
   36768             : // _tmp_210: 'as' NAME
   36769             : static void *
   36770          18 : _tmp_210_rule(Parser *p)
   36771             : {
   36772          18 :     if (p->level++ == MAXSTACK) {
   36773           0 :         p->error_indicator = 1;
   36774           0 :         PyErr_NoMemory();
   36775             :     }
   36776          18 :     if (p->error_indicator) {
   36777           0 :         p->level--;
   36778           0 :         return NULL;
   36779             :     }
   36780          18 :     void * _res = NULL;
   36781          18 :     int _mark = p->mark;
   36782             :     { // 'as' NAME
   36783          18 :         if (p->error_indicator) {
   36784           0 :             p->level--;
   36785           0 :             return NULL;
   36786             :         }
   36787          18 :         D(fprintf(stderr, "%*c> _tmp_210[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   36788             :         Token * _keyword;
   36789             :         expr_ty name_var;
   36790          18 :         if (
   36791          18 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   36792           5 :             &&
   36793           5 :             (name_var = _PyPegen_name_token(p))  // NAME
   36794             :         )
   36795             :         {
   36796           5 :             D(fprintf(stderr, "%*c+ _tmp_210[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   36797           5 :             _res = _PyPegen_dummy_name(p, _keyword, name_var);
   36798           5 :             goto done;
   36799             :         }
   36800          13 :         p->mark = _mark;
   36801          13 :         D(fprintf(stderr, "%*c%s _tmp_210[%d-%d]: %s failed!\n", p->level, ' ',
   36802             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
   36803             :     }
   36804          13 :     _res = NULL;
   36805          18 :   done:
   36806          18 :     p->level--;
   36807          18 :     return _res;
   36808             : }
   36809             : 
   36810             : // _tmp_211: positional_patterns ','
   36811             : static void *
   36812           4 : _tmp_211_rule(Parser *p)
   36813             : {
   36814           4 :     if (p->level++ == MAXSTACK) {
   36815           0 :         p->error_indicator = 1;
   36816           0 :         PyErr_NoMemory();
   36817             :     }
   36818           4 :     if (p->error_indicator) {
   36819           0 :         p->level--;
   36820           0 :         return NULL;
   36821             :     }
   36822           4 :     void * _res = NULL;
   36823           4 :     int _mark = p->mark;
   36824             :     { // positional_patterns ','
   36825           4 :         if (p->error_indicator) {
   36826           0 :             p->level--;
   36827           0 :             return NULL;
   36828             :         }
   36829           4 :         D(fprintf(stderr, "%*c> _tmp_211[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
   36830             :         Token * _literal;
   36831             :         asdl_pattern_seq* positional_patterns_var;
   36832           4 :         if (
   36833           4 :             (positional_patterns_var = positional_patterns_rule(p))  // positional_patterns
   36834           1 :             &&
   36835           1 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   36836             :         )
   36837             :         {
   36838           1 :             D(fprintf(stderr, "%*c+ _tmp_211[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
   36839           1 :             _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal);
   36840           1 :             goto done;
   36841             :         }
   36842           3 :         p->mark = _mark;
   36843           3 :         D(fprintf(stderr, "%*c%s _tmp_211[%d-%d]: %s failed!\n", p->level, ' ',
   36844             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','"));
   36845             :     }
   36846           3 :     _res = NULL;
   36847           4 :   done:
   36848           4 :     p->level--;
   36849           4 :     return _res;
   36850             : }
   36851             : 
   36852             : // _tmp_212: '->' expression
   36853             : static void *
   36854          66 : _tmp_212_rule(Parser *p)
   36855             : {
   36856          66 :     if (p->level++ == MAXSTACK) {
   36857           0 :         p->error_indicator = 1;
   36858           0 :         PyErr_NoMemory();
   36859             :     }
   36860          66 :     if (p->error_indicator) {
   36861           0 :         p->level--;
   36862           0 :         return NULL;
   36863             :     }
   36864          66 :     void * _res = NULL;
   36865          66 :     int _mark = p->mark;
   36866             :     { // '->' expression
   36867          66 :         if (p->error_indicator) {
   36868           0 :             p->level--;
   36869           0 :             return NULL;
   36870             :         }
   36871          66 :         D(fprintf(stderr, "%*c> _tmp_212[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
   36872             :         Token * _literal;
   36873             :         expr_ty expression_var;
   36874          66 :         if (
   36875          66 :             (_literal = _PyPegen_expect_token(p, 51))  // token='->'
   36876           0 :             &&
   36877           0 :             (expression_var = expression_rule(p))  // expression
   36878             :         )
   36879             :         {
   36880           0 :             D(fprintf(stderr, "%*c+ _tmp_212[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
   36881           0 :             _res = _PyPegen_dummy_name(p, _literal, expression_var);
   36882           0 :             goto done;
   36883             :         }
   36884          66 :         p->mark = _mark;
   36885          66 :         D(fprintf(stderr, "%*c%s _tmp_212[%d-%d]: %s failed!\n", p->level, ' ',
   36886             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
   36887             :     }
   36888          66 :     _res = NULL;
   36889          66 :   done:
   36890          66 :     p->level--;
   36891          66 :     return _res;
   36892             : }
   36893             : 
   36894             : // _tmp_213: '(' arguments? ')'
   36895             : static void *
   36896           6 : _tmp_213_rule(Parser *p)
   36897             : {
   36898           6 :     if (p->level++ == MAXSTACK) {
   36899           0 :         p->error_indicator = 1;
   36900           0 :         PyErr_NoMemory();
   36901             :     }
   36902           6 :     if (p->error_indicator) {
   36903           0 :         p->level--;
   36904           0 :         return NULL;
   36905             :     }
   36906           6 :     void * _res = NULL;
   36907           6 :     int _mark = p->mark;
   36908             :     { // '(' arguments? ')'
   36909           6 :         if (p->error_indicator) {
   36910           0 :             p->level--;
   36911           0 :             return NULL;
   36912             :         }
   36913           6 :         D(fprintf(stderr, "%*c> _tmp_213[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
   36914             :         Token * _literal;
   36915             :         Token * _literal_1;
   36916             :         void *_opt_var;
   36917             :         UNUSED(_opt_var); // Silence compiler warnings
   36918           6 :         if (
   36919           6 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   36920           2 :             &&
   36921           2 :             (_opt_var = arguments_rule(p), !p->error_indicator)  // arguments?
   36922           2 :             &&
   36923           2 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   36924             :         )
   36925             :         {
   36926           1 :             D(fprintf(stderr, "%*c+ _tmp_213[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
   36927           1 :             _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
   36928           1 :             goto done;
   36929             :         }
   36930           5 :         p->mark = _mark;
   36931           5 :         D(fprintf(stderr, "%*c%s _tmp_213[%d-%d]: %s failed!\n", p->level, ' ',
   36932             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
   36933             :     }
   36934           5 :     _res = NULL;
   36935           6 :   done:
   36936           6 :     p->level--;
   36937           6 :     return _res;
   36938             : }
   36939             : 
   36940             : // _tmp_214: '(' arguments? ')'
   36941             : static void *
   36942           5 : _tmp_214_rule(Parser *p)
   36943             : {
   36944           5 :     if (p->level++ == MAXSTACK) {
   36945           0 :         p->error_indicator = 1;
   36946           0 :         PyErr_NoMemory();
   36947             :     }
   36948           5 :     if (p->error_indicator) {
   36949           0 :         p->level--;
   36950           0 :         return NULL;
   36951             :     }
   36952           5 :     void * _res = NULL;
   36953           5 :     int _mark = p->mark;
   36954             :     { // '(' arguments? ')'
   36955           5 :         if (p->error_indicator) {
   36956           0 :             p->level--;
   36957           0 :             return NULL;
   36958             :         }
   36959           5 :         D(fprintf(stderr, "%*c> _tmp_214[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
   36960             :         Token * _literal;
   36961             :         Token * _literal_1;
   36962             :         void *_opt_var;
   36963             :         UNUSED(_opt_var); // Silence compiler warnings
   36964           5 :         if (
   36965           5 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   36966           2 :             &&
   36967           2 :             (_opt_var = arguments_rule(p), !p->error_indicator)  // arguments?
   36968           2 :             &&
   36969           2 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   36970             :         )
   36971             :         {
   36972           1 :             D(fprintf(stderr, "%*c+ _tmp_214[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
   36973           1 :             _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
   36974           1 :             goto done;
   36975             :         }
   36976           4 :         p->mark = _mark;
   36977           4 :         D(fprintf(stderr, "%*c%s _tmp_214[%d-%d]: %s failed!\n", p->level, ' ',
   36978             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
   36979             :     }
   36980           4 :     _res = NULL;
   36981           5 :   done:
   36982           5 :     p->level--;
   36983           5 :     return _res;
   36984             : }
   36985             : 
   36986             : // _loop0_216: ',' double_starred_kvpair
   36987             : static asdl_seq *
   36988        3800 : _loop0_216_rule(Parser *p)
   36989             : {
   36990        3800 :     if (p->level++ == MAXSTACK) {
   36991           0 :         p->error_indicator = 1;
   36992           0 :         PyErr_NoMemory();
   36993             :     }
   36994        3800 :     if (p->error_indicator) {
   36995           0 :         p->level--;
   36996           0 :         return NULL;
   36997             :     }
   36998        3800 :     void *_res = NULL;
   36999        3800 :     int _mark = p->mark;
   37000        3800 :     int _start_mark = p->mark;
   37001        3800 :     void **_children = PyMem_Malloc(sizeof(void *));
   37002        3800 :     if (!_children) {
   37003           0 :         p->error_indicator = 1;
   37004           0 :         PyErr_NoMemory();
   37005           0 :         p->level--;
   37006           0 :         return NULL;
   37007             :     }
   37008        3800 :     Py_ssize_t _children_capacity = 1;
   37009        3800 :     Py_ssize_t _n = 0;
   37010             :     { // ',' double_starred_kvpair
   37011        3800 :         if (p->error_indicator) {
   37012           0 :             p->level--;
   37013           0 :             return NULL;
   37014             :         }
   37015        3800 :         D(fprintf(stderr, "%*c> _loop0_216[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
   37016             :         Token * _literal;
   37017             :         KeyValuePair* elem;
   37018        7608 :         while (
   37019        3808 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   37020          11 :             &&
   37021          11 :             (elem = double_starred_kvpair_rule(p))  // double_starred_kvpair
   37022             :         )
   37023             :         {
   37024           8 :             _res = elem;
   37025           8 :             if (_res == NULL && PyErr_Occurred()) {
   37026           0 :                 p->error_indicator = 1;
   37027           0 :                 PyMem_Free(_children);
   37028           0 :                 p->level--;
   37029           0 :                 return NULL;
   37030             :             }
   37031           8 :             if (_n == _children_capacity) {
   37032           0 :                 _children_capacity *= 2;
   37033           0 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   37034           0 :                 if (!_new_children) {
   37035           0 :                     p->error_indicator = 1;
   37036           0 :                     PyErr_NoMemory();
   37037           0 :                     p->level--;
   37038           0 :                     return NULL;
   37039             :                 }
   37040           0 :                 _children = _new_children;
   37041             :             }
   37042           8 :             _children[_n++] = _res;
   37043           8 :             _mark = p->mark;
   37044             :         }
   37045        3800 :         p->mark = _mark;
   37046        3800 :         D(fprintf(stderr, "%*c%s _loop0_216[%d-%d]: %s failed!\n", p->level, ' ',
   37047             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
   37048             :     }
   37049        3800 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   37050        3800 :     if (!_seq) {
   37051           0 :         PyMem_Free(_children);
   37052           0 :         p->error_indicator = 1;
   37053           0 :         PyErr_NoMemory();
   37054           0 :         p->level--;
   37055           0 :         return NULL;
   37056             :     }
   37057        3808 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   37058        3800 :     PyMem_Free(_children);
   37059        3800 :     _PyPegen_insert_memo(p, _start_mark, _loop0_216_type, _seq);
   37060        3800 :     p->level--;
   37061        3800 :     return _seq;
   37062             : }
   37063             : 
   37064             : // _gather_215: double_starred_kvpair _loop0_216
   37065             : static asdl_seq *
   37066       13748 : _gather_215_rule(Parser *p)
   37067             : {
   37068       13748 :     if (p->level++ == MAXSTACK) {
   37069           0 :         p->error_indicator = 1;
   37070           0 :         PyErr_NoMemory();
   37071             :     }
   37072       13748 :     if (p->error_indicator) {
   37073           0 :         p->level--;
   37074           0 :         return NULL;
   37075             :     }
   37076       13748 :     asdl_seq * _res = NULL;
   37077       13748 :     int _mark = p->mark;
   37078             :     { // double_starred_kvpair _loop0_216
   37079       13748 :         if (p->error_indicator) {
   37080           0 :             p->level--;
   37081           0 :             return NULL;
   37082             :         }
   37083       13748 :         D(fprintf(stderr, "%*c> _gather_215[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_216"));
   37084             :         KeyValuePair* elem;
   37085             :         asdl_seq * seq;
   37086       13748 :         if (
   37087       13748 :             (elem = double_starred_kvpair_rule(p))  // double_starred_kvpair
   37088        3800 :             &&
   37089        3800 :             (seq = _loop0_216_rule(p))  // _loop0_216
   37090             :         )
   37091             :         {
   37092        3800 :             D(fprintf(stderr, "%*c+ _gather_215[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_216"));
   37093        3800 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   37094        3800 :             goto done;
   37095             :         }
   37096        9948 :         p->mark = _mark;
   37097        9948 :         D(fprintf(stderr, "%*c%s _gather_215[%d-%d]: %s failed!\n", p->level, ' ',
   37098             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_216"));
   37099             :     }
   37100        9948 :     _res = NULL;
   37101       13748 :   done:
   37102       13748 :     p->level--;
   37103       13748 :     return _res;
   37104             : }
   37105             : 
   37106             : // _tmp_217: '}' | ','
   37107             : static void *
   37108        3807 : _tmp_217_rule(Parser *p)
   37109             : {
   37110        3807 :     if (p->level++ == MAXSTACK) {
   37111           0 :         p->error_indicator = 1;
   37112           0 :         PyErr_NoMemory();
   37113             :     }
   37114        3807 :     if (p->error_indicator) {
   37115           0 :         p->level--;
   37116           0 :         return NULL;
   37117             :     }
   37118        3807 :     void * _res = NULL;
   37119        3807 :     int _mark = p->mark;
   37120             :     { // '}'
   37121        3807 :         if (p->error_indicator) {
   37122           0 :             p->level--;
   37123           0 :             return NULL;
   37124             :         }
   37125        3807 :         D(fprintf(stderr, "%*c> _tmp_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
   37126             :         Token * _literal;
   37127        3807 :         if (
   37128        3807 :             (_literal = _PyPegen_expect_token(p, 26))  // token='}'
   37129             :         )
   37130             :         {
   37131           1 :             D(fprintf(stderr, "%*c+ _tmp_217[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
   37132           1 :             _res = _literal;
   37133           1 :             goto done;
   37134             :         }
   37135        3806 :         p->mark = _mark;
   37136        3806 :         D(fprintf(stderr, "%*c%s _tmp_217[%d-%d]: %s failed!\n", p->level, ' ',
   37137             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
   37138             :     }
   37139             :     { // ','
   37140        3806 :         if (p->error_indicator) {
   37141           0 :             p->level--;
   37142           0 :             return NULL;
   37143             :         }
   37144        3806 :         D(fprintf(stderr, "%*c> _tmp_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
   37145             :         Token * _literal;
   37146        3806 :         if (
   37147        3806 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   37148             :         )
   37149             :         {
   37150           0 :             D(fprintf(stderr, "%*c+ _tmp_217[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
   37151           0 :             _res = _literal;
   37152           0 :             goto done;
   37153             :         }
   37154        3806 :         p->mark = _mark;
   37155        3806 :         D(fprintf(stderr, "%*c%s _tmp_217[%d-%d]: %s failed!\n", p->level, ' ',
   37156             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
   37157             :     }
   37158        3806 :     _res = NULL;
   37159        3807 :   done:
   37160        3807 :     p->level--;
   37161        3807 :     return _res;
   37162             : }
   37163             : 
   37164             : // _tmp_218: '}' | ','
   37165             : static void *
   37166           1 : _tmp_218_rule(Parser *p)
   37167             : {
   37168           1 :     if (p->level++ == MAXSTACK) {
   37169           0 :         p->error_indicator = 1;
   37170           0 :         PyErr_NoMemory();
   37171             :     }
   37172           1 :     if (p->error_indicator) {
   37173           0 :         p->level--;
   37174           0 :         return NULL;
   37175             :     }
   37176           1 :     void * _res = NULL;
   37177           1 :     int _mark = p->mark;
   37178             :     { // '}'
   37179           1 :         if (p->error_indicator) {
   37180           0 :             p->level--;
   37181           0 :             return NULL;
   37182             :         }
   37183           1 :         D(fprintf(stderr, "%*c> _tmp_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
   37184             :         Token * _literal;
   37185           1 :         if (
   37186           1 :             (_literal = _PyPegen_expect_token(p, 26))  // token='}'
   37187             :         )
   37188             :         {
   37189           1 :             D(fprintf(stderr, "%*c+ _tmp_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
   37190           1 :             _res = _literal;
   37191           1 :             goto done;
   37192             :         }
   37193           0 :         p->mark = _mark;
   37194           0 :         D(fprintf(stderr, "%*c%s _tmp_218[%d-%d]: %s failed!\n", p->level, ' ',
   37195             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
   37196             :     }
   37197             :     { // ','
   37198           0 :         if (p->error_indicator) {
   37199           0 :             p->level--;
   37200           0 :             return NULL;
   37201             :         }
   37202           0 :         D(fprintf(stderr, "%*c> _tmp_218[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
   37203             :         Token * _literal;
   37204           0 :         if (
   37205           0 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   37206             :         )
   37207             :         {
   37208           0 :             D(fprintf(stderr, "%*c+ _tmp_218[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
   37209           0 :             _res = _literal;
   37210           0 :             goto done;
   37211             :         }
   37212           0 :         p->mark = _mark;
   37213           0 :         D(fprintf(stderr, "%*c%s _tmp_218[%d-%d]: %s failed!\n", p->level, ' ',
   37214             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
   37215             :     }
   37216           0 :     _res = NULL;
   37217           1 :   done:
   37218           1 :     p->level--;
   37219           1 :     return _res;
   37220             : }
   37221             : 
   37222             : // _tmp_219: star_targets '='
   37223             : static void *
   37224     4035830 : _tmp_219_rule(Parser *p)
   37225             : {
   37226     4035830 :     if (p->level++ == MAXSTACK) {
   37227           0 :         p->error_indicator = 1;
   37228           0 :         PyErr_NoMemory();
   37229             :     }
   37230     4035830 :     if (p->error_indicator) {
   37231           0 :         p->level--;
   37232           0 :         return NULL;
   37233             :     }
   37234     4035830 :     void * _res = NULL;
   37235     4035830 :     int _mark = p->mark;
   37236             :     { // star_targets '='
   37237     4035830 :         if (p->error_indicator) {
   37238           0 :             p->level--;
   37239           0 :             return NULL;
   37240             :         }
   37241     4035830 :         D(fprintf(stderr, "%*c> _tmp_219[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
   37242             :         Token * _literal;
   37243             :         expr_ty z;
   37244     4035830 :         if (
   37245     4035830 :             (z = star_targets_rule(p))  // star_targets
   37246     2168100 :             &&
   37247     2168100 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   37248             :         )
   37249             :         {
   37250      817078 :             D(fprintf(stderr, "%*c+ _tmp_219[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
   37251      817078 :             _res = z;
   37252      817078 :             if (_res == NULL && PyErr_Occurred()) {
   37253           0 :                 p->error_indicator = 1;
   37254           0 :                 p->level--;
   37255           0 :                 return NULL;
   37256             :             }
   37257      817078 :             goto done;
   37258             :         }
   37259     3218750 :         p->mark = _mark;
   37260     3218750 :         D(fprintf(stderr, "%*c%s _tmp_219[%d-%d]: %s failed!\n", p->level, ' ',
   37261             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
   37262             :     }
   37263     3218750 :     _res = NULL;
   37264     4035830 :   done:
   37265     4035830 :     p->level--;
   37266     4035830 :     return _res;
   37267             : }
   37268             : 
   37269             : // _tmp_220: '.' | '...'
   37270             : static void *
   37271       57973 : _tmp_220_rule(Parser *p)
   37272             : {
   37273       57973 :     if (p->level++ == MAXSTACK) {
   37274           0 :         p->error_indicator = 1;
   37275           0 :         PyErr_NoMemory();
   37276             :     }
   37277       57973 :     if (p->error_indicator) {
   37278           0 :         p->level--;
   37279           0 :         return NULL;
   37280             :     }
   37281       57973 :     void * _res = NULL;
   37282       57973 :     int _mark = p->mark;
   37283             :     { // '.'
   37284       57973 :         if (p->error_indicator) {
   37285           0 :             p->level--;
   37286           0 :             return NULL;
   37287             :         }
   37288       57973 :         D(fprintf(stderr, "%*c> _tmp_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
   37289             :         Token * _literal;
   37290       57973 :         if (
   37291       57973 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   37292             :         )
   37293             :         {
   37294       11796 :             D(fprintf(stderr, "%*c+ _tmp_220[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
   37295       11796 :             _res = _literal;
   37296       11796 :             goto done;
   37297             :         }
   37298       46177 :         p->mark = _mark;
   37299       46177 :         D(fprintf(stderr, "%*c%s _tmp_220[%d-%d]: %s failed!\n", p->level, ' ',
   37300             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
   37301             :     }
   37302             :     { // '...'
   37303       46177 :         if (p->error_indicator) {
   37304           0 :             p->level--;
   37305           0 :             return NULL;
   37306             :         }
   37307       46177 :         D(fprintf(stderr, "%*c> _tmp_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
   37308             :         Token * _literal;
   37309       46177 :         if (
   37310       46177 :             (_literal = _PyPegen_expect_token(p, 52))  // token='...'
   37311             :         )
   37312             :         {
   37313           6 :             D(fprintf(stderr, "%*c+ _tmp_220[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
   37314           6 :             _res = _literal;
   37315           6 :             goto done;
   37316             :         }
   37317       46171 :         p->mark = _mark;
   37318       46171 :         D(fprintf(stderr, "%*c%s _tmp_220[%d-%d]: %s failed!\n", p->level, ' ',
   37319             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
   37320             :     }
   37321       46171 :     _res = NULL;
   37322       57973 :   done:
   37323       57973 :     p->level--;
   37324       57973 :     return _res;
   37325             : }
   37326             : 
   37327             : // _tmp_221: '.' | '...'
   37328             : static void *
   37329        2644 : _tmp_221_rule(Parser *p)
   37330             : {
   37331        2644 :     if (p->level++ == MAXSTACK) {
   37332           0 :         p->error_indicator = 1;
   37333           0 :         PyErr_NoMemory();
   37334             :     }
   37335        2644 :     if (p->error_indicator) {
   37336           0 :         p->level--;
   37337           0 :         return NULL;
   37338             :     }
   37339        2644 :     void * _res = NULL;
   37340        2644 :     int _mark = p->mark;
   37341             :     { // '.'
   37342        2644 :         if (p->error_indicator) {
   37343           0 :             p->level--;
   37344           0 :             return NULL;
   37345             :         }
   37346        2644 :         D(fprintf(stderr, "%*c> _tmp_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
   37347             :         Token * _literal;
   37348        2644 :         if (
   37349        2644 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   37350             :         )
   37351             :         {
   37352        1369 :             D(fprintf(stderr, "%*c+ _tmp_221[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
   37353        1369 :             _res = _literal;
   37354        1369 :             goto done;
   37355             :         }
   37356        1275 :         p->mark = _mark;
   37357        1275 :         D(fprintf(stderr, "%*c%s _tmp_221[%d-%d]: %s failed!\n", p->level, ' ',
   37358             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
   37359             :     }
   37360             :     { // '...'
   37361        1275 :         if (p->error_indicator) {
   37362           0 :             p->level--;
   37363           0 :             return NULL;
   37364             :         }
   37365        1275 :         D(fprintf(stderr, "%*c> _tmp_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
   37366             :         Token * _literal;
   37367        1275 :         if (
   37368        1275 :             (_literal = _PyPegen_expect_token(p, 52))  // token='...'
   37369             :         )
   37370             :         {
   37371           1 :             D(fprintf(stderr, "%*c+ _tmp_221[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
   37372           1 :             _res = _literal;
   37373           1 :             goto done;
   37374             :         }
   37375        1274 :         p->mark = _mark;
   37376        1274 :         D(fprintf(stderr, "%*c%s _tmp_221[%d-%d]: %s failed!\n", p->level, ' ',
   37377             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
   37378             :     }
   37379        1274 :     _res = NULL;
   37380        2644 :   done:
   37381        2644 :     p->level--;
   37382        2644 :     return _res;
   37383             : }
   37384             : 
   37385             : // _tmp_222: '@' named_expression NEWLINE
   37386             : static void *
   37387      443836 : _tmp_222_rule(Parser *p)
   37388             : {
   37389      443836 :     if (p->level++ == MAXSTACK) {
   37390           0 :         p->error_indicator = 1;
   37391           0 :         PyErr_NoMemory();
   37392             :     }
   37393      443836 :     if (p->error_indicator) {
   37394           0 :         p->level--;
   37395           0 :         return NULL;
   37396             :     }
   37397      443836 :     void * _res = NULL;
   37398      443836 :     int _mark = p->mark;
   37399             :     { // '@' named_expression NEWLINE
   37400      443836 :         if (p->error_indicator) {
   37401           0 :             p->level--;
   37402           0 :             return NULL;
   37403             :         }
   37404      443836 :         D(fprintf(stderr, "%*c> _tmp_222[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
   37405             :         Token * _literal;
   37406             :         expr_ty f;
   37407             :         Token * newline_var;
   37408      443836 :         if (
   37409      443836 :             (_literal = _PyPegen_expect_token(p, 49))  // token='@'
   37410       40473 :             &&
   37411       40473 :             (f = named_expression_rule(p))  // named_expression
   37412       40454 :             &&
   37413       40454 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   37414             :         )
   37415             :         {
   37416       40444 :             D(fprintf(stderr, "%*c+ _tmp_222[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
   37417       40444 :             _res = f;
   37418       40444 :             if (_res == NULL && PyErr_Occurred()) {
   37419           0 :                 p->error_indicator = 1;
   37420           0 :                 p->level--;
   37421           0 :                 return NULL;
   37422             :             }
   37423       40444 :             goto done;
   37424             :         }
   37425      403392 :         p->mark = _mark;
   37426      403392 :         D(fprintf(stderr, "%*c%s _tmp_222[%d-%d]: %s failed!\n", p->level, ' ',
   37427             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
   37428             :     }
   37429      403392 :     _res = NULL;
   37430      443836 :   done:
   37431      443836 :     p->level--;
   37432      443836 :     return _res;
   37433             : }
   37434             : 
   37435             : // _tmp_223: ',' expression
   37436             : static void *
   37437      514664 : _tmp_223_rule(Parser *p)
   37438             : {
   37439      514664 :     if (p->level++ == MAXSTACK) {
   37440           0 :         p->error_indicator = 1;
   37441           0 :         PyErr_NoMemory();
   37442             :     }
   37443      514664 :     if (p->error_indicator) {
   37444           0 :         p->level--;
   37445           0 :         return NULL;
   37446             :     }
   37447      514664 :     void * _res = NULL;
   37448      514664 :     int _mark = p->mark;
   37449             :     { // ',' expression
   37450      514664 :         if (p->error_indicator) {
   37451           0 :             p->level--;
   37452           0 :             return NULL;
   37453             :         }
   37454      514664 :         D(fprintf(stderr, "%*c> _tmp_223[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
   37455             :         Token * _literal;
   37456             :         expr_ty c;
   37457      514664 :         if (
   37458      514664 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   37459      441245 :             &&
   37460      441245 :             (c = expression_rule(p))  // expression
   37461             :         )
   37462             :         {
   37463      441222 :             D(fprintf(stderr, "%*c+ _tmp_223[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
   37464      441222 :             _res = c;
   37465      441222 :             if (_res == NULL && PyErr_Occurred()) {
   37466           0 :                 p->error_indicator = 1;
   37467           0 :                 p->level--;
   37468           0 :                 return NULL;
   37469             :             }
   37470      441222 :             goto done;
   37471             :         }
   37472       73442 :         p->mark = _mark;
   37473       73442 :         D(fprintf(stderr, "%*c%s _tmp_223[%d-%d]: %s failed!\n", p->level, ' ',
   37474             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
   37475             :     }
   37476       73442 :     _res = NULL;
   37477      514664 :   done:
   37478      514664 :     p->level--;
   37479      514664 :     return _res;
   37480             : }
   37481             : 
   37482             : // _tmp_224: ',' star_expression
   37483             : static void *
   37484     2134100 : _tmp_224_rule(Parser *p)
   37485             : {
   37486     2134100 :     if (p->level++ == MAXSTACK) {
   37487           0 :         p->error_indicator = 1;
   37488           0 :         PyErr_NoMemory();
   37489             :     }
   37490     2134100 :     if (p->error_indicator) {
   37491           0 :         p->level--;
   37492           0 :         return NULL;
   37493             :     }
   37494     2134100 :     void * _res = NULL;
   37495     2134100 :     int _mark = p->mark;
   37496             :     { // ',' star_expression
   37497     2134100 :         if (p->error_indicator) {
   37498           0 :             p->level--;
   37499           0 :             return NULL;
   37500             :         }
   37501     2134100 :         D(fprintf(stderr, "%*c> _tmp_224[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
   37502             :         Token * _literal;
   37503             :         expr_ty c;
   37504     2134100 :         if (
   37505     2134100 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   37506       28451 :             &&
   37507       28451 :             (c = star_expression_rule(p))  // star_expression
   37508             :         )
   37509             :         {
   37510       28158 :             D(fprintf(stderr, "%*c+ _tmp_224[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
   37511       28158 :             _res = c;
   37512       28158 :             if (_res == NULL && PyErr_Occurred()) {
   37513           0 :                 p->error_indicator = 1;
   37514           0 :                 p->level--;
   37515           0 :                 return NULL;
   37516             :             }
   37517       28158 :             goto done;
   37518             :         }
   37519     2105940 :         p->mark = _mark;
   37520     2105940 :         D(fprintf(stderr, "%*c%s _tmp_224[%d-%d]: %s failed!\n", p->level, ' ',
   37521             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
   37522             :     }
   37523     2105940 :     _res = NULL;
   37524     2134100 :   done:
   37525     2134100 :     p->level--;
   37526     2134100 :     return _res;
   37527             : }
   37528             : 
   37529             : // _tmp_225: 'or' conjunction
   37530             : static void *
   37531     9775950 : _tmp_225_rule(Parser *p)
   37532             : {
   37533     9775950 :     if (p->level++ == MAXSTACK) {
   37534           0 :         p->error_indicator = 1;
   37535           0 :         PyErr_NoMemory();
   37536             :     }
   37537     9775950 :     if (p->error_indicator) {
   37538           0 :         p->level--;
   37539           0 :         return NULL;
   37540             :     }
   37541     9775950 :     void * _res = NULL;
   37542     9775950 :     int _mark = p->mark;
   37543             :     { // 'or' conjunction
   37544     9775950 :         if (p->error_indicator) {
   37545           0 :             p->level--;
   37546           0 :             return NULL;
   37547             :         }
   37548     9775950 :         D(fprintf(stderr, "%*c> _tmp_225[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
   37549             :         Token * _keyword;
   37550             :         expr_ty c;
   37551     9775950 :         if (
   37552     9775950 :             (_keyword = _PyPegen_expect_token(p, 574))  // token='or'
   37553       28940 :             &&
   37554       28940 :             (c = conjunction_rule(p))  // conjunction
   37555             :         )
   37556             :         {
   37557       28940 :             D(fprintf(stderr, "%*c+ _tmp_225[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
   37558       28940 :             _res = c;
   37559       28940 :             if (_res == NULL && PyErr_Occurred()) {
   37560           0 :                 p->error_indicator = 1;
   37561           0 :                 p->level--;
   37562           0 :                 return NULL;
   37563             :             }
   37564       28940 :             goto done;
   37565             :         }
   37566     9747010 :         p->mark = _mark;
   37567     9747010 :         D(fprintf(stderr, "%*c%s _tmp_225[%d-%d]: %s failed!\n", p->level, ' ',
   37568             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
   37569             :     }
   37570     9747010 :     _res = NULL;
   37571     9775950 :   done:
   37572     9775950 :     p->level--;
   37573     9775950 :     return _res;
   37574             : }
   37575             : 
   37576             : // _tmp_226: 'and' inversion
   37577             : static void *
   37578     9822190 : _tmp_226_rule(Parser *p)
   37579             : {
   37580     9822190 :     if (p->level++ == MAXSTACK) {
   37581           0 :         p->error_indicator = 1;
   37582           0 :         PyErr_NoMemory();
   37583             :     }
   37584     9822190 :     if (p->error_indicator) {
   37585           0 :         p->level--;
   37586           0 :         return NULL;
   37587             :     }
   37588     9822190 :     void * _res = NULL;
   37589     9822190 :     int _mark = p->mark;
   37590             :     { // 'and' inversion
   37591     9822190 :         if (p->error_indicator) {
   37592           0 :             p->level--;
   37593           0 :             return NULL;
   37594             :         }
   37595     9822190 :         D(fprintf(stderr, "%*c> _tmp_226[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
   37596             :         Token * _keyword;
   37597             :         expr_ty c;
   37598     9822190 :         if (
   37599     9822190 :             (_keyword = _PyPegen_expect_token(p, 575))  // token='and'
   37600       46240 :             &&
   37601       46240 :             (c = inversion_rule(p))  // inversion
   37602             :         )
   37603             :         {
   37604       46240 :             D(fprintf(stderr, "%*c+ _tmp_226[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
   37605       46240 :             _res = c;
   37606       46240 :             if (_res == NULL && PyErr_Occurred()) {
   37607           0 :                 p->error_indicator = 1;
   37608           0 :                 p->level--;
   37609           0 :                 return NULL;
   37610             :             }
   37611       46240 :             goto done;
   37612             :         }
   37613     9775950 :         p->mark = _mark;
   37614     9775950 :         D(fprintf(stderr, "%*c%s _tmp_226[%d-%d]: %s failed!\n", p->level, ' ',
   37615             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
   37616             :     }
   37617     9775950 :     _res = NULL;
   37618     9822190 :   done:
   37619     9822190 :     p->level--;
   37620     9822190 :     return _res;
   37621             : }
   37622             : 
   37623             : // _tmp_227: slice | starred_expression
   37624             : static void *
   37625       48014 : _tmp_227_rule(Parser *p)
   37626             : {
   37627       48014 :     if (p->level++ == MAXSTACK) {
   37628           0 :         p->error_indicator = 1;
   37629           0 :         PyErr_NoMemory();
   37630             :     }
   37631       48014 :     if (p->error_indicator) {
   37632           0 :         p->level--;
   37633           0 :         return NULL;
   37634             :     }
   37635       48014 :     void * _res = NULL;
   37636       48014 :     int _mark = p->mark;
   37637             :     { // slice
   37638       48014 :         if (p->error_indicator) {
   37639           0 :             p->level--;
   37640           0 :             return NULL;
   37641             :         }
   37642       48014 :         D(fprintf(stderr, "%*c> _tmp_227[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice"));
   37643             :         expr_ty slice_var;
   37644       48014 :         if (
   37645       48014 :             (slice_var = slice_rule(p))  // slice
   37646             :         )
   37647             :         {
   37648       45944 :             D(fprintf(stderr, "%*c+ _tmp_227[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice"));
   37649       45944 :             _res = slice_var;
   37650       45944 :             goto done;
   37651             :         }
   37652        2070 :         p->mark = _mark;
   37653        2070 :         D(fprintf(stderr, "%*c%s _tmp_227[%d-%d]: %s failed!\n", p->level, ' ',
   37654             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice"));
   37655             :     }
   37656             :     { // starred_expression
   37657        2070 :         if (p->error_indicator) {
   37658           2 :             p->level--;
   37659           2 :             return NULL;
   37660             :         }
   37661        2068 :         D(fprintf(stderr, "%*c> _tmp_227[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
   37662             :         expr_ty starred_expression_var;
   37663        2068 :         if (
   37664        2068 :             (starred_expression_var = starred_expression_rule(p))  // starred_expression
   37665             :         )
   37666             :         {
   37667        1545 :             D(fprintf(stderr, "%*c+ _tmp_227[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
   37668        1545 :             _res = starred_expression_var;
   37669        1545 :             goto done;
   37670             :         }
   37671         523 :         p->mark = _mark;
   37672         523 :         D(fprintf(stderr, "%*c%s _tmp_227[%d-%d]: %s failed!\n", p->level, ' ',
   37673             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
   37674             :     }
   37675         523 :     _res = NULL;
   37676       48012 :   done:
   37677       48012 :     p->level--;
   37678       48012 :     return _res;
   37679             : }
   37680             : 
   37681             : // _tmp_228: 'if' disjunction
   37682             : static void *
   37683         568 : _tmp_228_rule(Parser *p)
   37684             : {
   37685         568 :     if (p->level++ == MAXSTACK) {
   37686           0 :         p->error_indicator = 1;
   37687           0 :         PyErr_NoMemory();
   37688             :     }
   37689         568 :     if (p->error_indicator) {
   37690           0 :         p->level--;
   37691           0 :         return NULL;
   37692             :     }
   37693         568 :     void * _res = NULL;
   37694         568 :     int _mark = p->mark;
   37695             :     { // 'if' disjunction
   37696         568 :         if (p->error_indicator) {
   37697           0 :             p->level--;
   37698           0 :             return NULL;
   37699             :         }
   37700         568 :         D(fprintf(stderr, "%*c> _tmp_228[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
   37701             :         Token * _keyword;
   37702             :         expr_ty z;
   37703         568 :         if (
   37704         568 :             (_keyword = _PyPegen_expect_token(p, 634))  // token='if'
   37705          60 :             &&
   37706          60 :             (z = disjunction_rule(p))  // disjunction
   37707             :         )
   37708             :         {
   37709          60 :             D(fprintf(stderr, "%*c+ _tmp_228[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
   37710          60 :             _res = z;
   37711          60 :             if (_res == NULL && PyErr_Occurred()) {
   37712           0 :                 p->error_indicator = 1;
   37713           0 :                 p->level--;
   37714           0 :                 return NULL;
   37715             :             }
   37716          60 :             goto done;
   37717             :         }
   37718         508 :         p->mark = _mark;
   37719         508 :         D(fprintf(stderr, "%*c%s _tmp_228[%d-%d]: %s failed!\n", p->level, ' ',
   37720             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
   37721             :     }
   37722         508 :     _res = NULL;
   37723         568 :   done:
   37724         568 :     p->level--;
   37725         568 :     return _res;
   37726             : }
   37727             : 
   37728             : // _tmp_229: 'if' disjunction
   37729             : static void *
   37730       63959 : _tmp_229_rule(Parser *p)
   37731             : {
   37732       63959 :     if (p->level++ == MAXSTACK) {
   37733           0 :         p->error_indicator = 1;
   37734           0 :         PyErr_NoMemory();
   37735             :     }
   37736       63959 :     if (p->error_indicator) {
   37737           0 :         p->level--;
   37738           0 :         return NULL;
   37739             :     }
   37740       63959 :     void * _res = NULL;
   37741       63959 :     int _mark = p->mark;
   37742             :     { // 'if' disjunction
   37743       63959 :         if (p->error_indicator) {
   37744           0 :             p->level--;
   37745           0 :             return NULL;
   37746             :         }
   37747       63959 :         D(fprintf(stderr, "%*c> _tmp_229[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
   37748             :         Token * _keyword;
   37749             :         expr_ty z;
   37750       63959 :         if (
   37751       63959 :             (_keyword = _PyPegen_expect_token(p, 634))  // token='if'
   37752       12576 :             &&
   37753       12576 :             (z = disjunction_rule(p))  // disjunction
   37754             :         )
   37755             :         {
   37756       12576 :             D(fprintf(stderr, "%*c+ _tmp_229[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
   37757       12576 :             _res = z;
   37758       12576 :             if (_res == NULL && PyErr_Occurred()) {
   37759           0 :                 p->error_indicator = 1;
   37760           0 :                 p->level--;
   37761           0 :                 return NULL;
   37762             :             }
   37763       12576 :             goto done;
   37764             :         }
   37765       51383 :         p->mark = _mark;
   37766       51383 :         D(fprintf(stderr, "%*c%s _tmp_229[%d-%d]: %s failed!\n", p->level, ' ',
   37767             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
   37768             :     }
   37769       51383 :     _res = NULL;
   37770       63959 :   done:
   37771       63959 :     p->level--;
   37772       63959 :     return _res;
   37773             : }
   37774             : 
   37775             : // _tmp_230: starred_expression | (assignment_expression | expression !':=') !'='
   37776             : static void *
   37777     2760360 : _tmp_230_rule(Parser *p)
   37778             : {
   37779     2760360 :     if (p->level++ == MAXSTACK) {
   37780           0 :         p->error_indicator = 1;
   37781           0 :         PyErr_NoMemory();
   37782             :     }
   37783     2760360 :     if (p->error_indicator) {
   37784           0 :         p->level--;
   37785           0 :         return NULL;
   37786             :     }
   37787     2760360 :     void * _res = NULL;
   37788     2760360 :     int _mark = p->mark;
   37789             :     { // starred_expression
   37790     2760360 :         if (p->error_indicator) {
   37791           0 :             p->level--;
   37792           0 :             return NULL;
   37793             :         }
   37794     2760360 :         D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
   37795             :         expr_ty starred_expression_var;
   37796     2760360 :         if (
   37797     2760360 :             (starred_expression_var = starred_expression_rule(p))  // starred_expression
   37798             :         )
   37799             :         {
   37800       10955 :             D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
   37801       10955 :             _res = starred_expression_var;
   37802       10955 :             goto done;
   37803             :         }
   37804     2749400 :         p->mark = _mark;
   37805     2749400 :         D(fprintf(stderr, "%*c%s _tmp_230[%d-%d]: %s failed!\n", p->level, ' ',
   37806             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
   37807             :     }
   37808             :     { // (assignment_expression | expression !':=') !'='
   37809     2749400 :         if (p->error_indicator) {
   37810          10 :             p->level--;
   37811          10 :             return NULL;
   37812             :         }
   37813     2749390 :         D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
   37814             :         void *_tmp_243_var;
   37815     2749390 :         if (
   37816     2749390 :             (_tmp_243_var = _tmp_243_rule(p))  // assignment_expression | expression !':='
   37817     2190600 :             &&
   37818     2190600 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22)  // token='='
   37819             :         )
   37820             :         {
   37821     2091660 :             D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
   37822     2091660 :             _res = _tmp_243_var;
   37823     2091660 :             goto done;
   37824             :         }
   37825      657737 :         p->mark = _mark;
   37826      657737 :         D(fprintf(stderr, "%*c%s _tmp_230[%d-%d]: %s failed!\n", p->level, ' ',
   37827             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
   37828             :     }
   37829      657737 :     _res = NULL;
   37830     2760350 :   done:
   37831     2760350 :     p->level--;
   37832     2760350 :     return _res;
   37833             : }
   37834             : 
   37835             : // _tmp_231: ',' star_target
   37836             : static void *
   37837      136232 : _tmp_231_rule(Parser *p)
   37838             : {
   37839      136232 :     if (p->level++ == MAXSTACK) {
   37840           0 :         p->error_indicator = 1;
   37841           0 :         PyErr_NoMemory();
   37842             :     }
   37843      136232 :     if (p->error_indicator) {
   37844           0 :         p->level--;
   37845           0 :         return NULL;
   37846             :     }
   37847      136232 :     void * _res = NULL;
   37848      136232 :     int _mark = p->mark;
   37849             :     { // ',' star_target
   37850      136232 :         if (p->error_indicator) {
   37851           0 :             p->level--;
   37852           0 :             return NULL;
   37853             :         }
   37854      136232 :         D(fprintf(stderr, "%*c> _tmp_231[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
   37855             :         Token * _literal;
   37856             :         expr_ty c;
   37857      136232 :         if (
   37858      136232 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   37859       80301 :             &&
   37860       80301 :             (c = star_target_rule(p))  // star_target
   37861             :         )
   37862             :         {
   37863       79137 :             D(fprintf(stderr, "%*c+ _tmp_231[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
   37864       79137 :             _res = c;
   37865       79137 :             if (_res == NULL && PyErr_Occurred()) {
   37866           0 :                 p->error_indicator = 1;
   37867           0 :                 p->level--;
   37868           0 :                 return NULL;
   37869             :             }
   37870       79137 :             goto done;
   37871             :         }
   37872       57095 :         p->mark = _mark;
   37873       57095 :         D(fprintf(stderr, "%*c%s _tmp_231[%d-%d]: %s failed!\n", p->level, ' ',
   37874             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
   37875             :     }
   37876       57095 :     _res = NULL;
   37877      136232 :   done:
   37878      136232 :     p->level--;
   37879      136232 :     return _res;
   37880             : }
   37881             : 
   37882             : // _tmp_232: ',' star_target
   37883             : static void *
   37884       33010 : _tmp_232_rule(Parser *p)
   37885             : {
   37886       33010 :     if (p->level++ == MAXSTACK) {
   37887           0 :         p->error_indicator = 1;
   37888           0 :         PyErr_NoMemory();
   37889             :     }
   37890       33010 :     if (p->error_indicator) {
   37891           0 :         p->level--;
   37892           0 :         return NULL;
   37893             :     }
   37894       33010 :     void * _res = NULL;
   37895       33010 :     int _mark = p->mark;
   37896             :     { // ',' star_target
   37897       33010 :         if (p->error_indicator) {
   37898           0 :             p->level--;
   37899           0 :             return NULL;
   37900             :         }
   37901       33010 :         D(fprintf(stderr, "%*c> _tmp_232[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
   37902             :         Token * _literal;
   37903             :         expr_ty c;
   37904       33010 :         if (
   37905       33010 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   37906       18741 :             &&
   37907       18741 :             (c = star_target_rule(p))  // star_target
   37908             :         )
   37909             :         {
   37910       16440 :             D(fprintf(stderr, "%*c+ _tmp_232[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
   37911       16440 :             _res = c;
   37912       16440 :             if (_res == NULL && PyErr_Occurred()) {
   37913           0 :                 p->error_indicator = 1;
   37914           0 :                 p->level--;
   37915           0 :                 return NULL;
   37916             :             }
   37917       16440 :             goto done;
   37918             :         }
   37919       16570 :         p->mark = _mark;
   37920       16570 :         D(fprintf(stderr, "%*c%s _tmp_232[%d-%d]: %s failed!\n", p->level, ' ',
   37921             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
   37922             :     }
   37923       16570 :     _res = NULL;
   37924       33010 :   done:
   37925       33010 :     p->level--;
   37926       33010 :     return _res;
   37927             : }
   37928             : 
   37929             : // _tmp_233: star_targets '='
   37930             : static void *
   37931         803 : _tmp_233_rule(Parser *p)
   37932             : {
   37933         803 :     if (p->level++ == MAXSTACK) {
   37934           0 :         p->error_indicator = 1;
   37935           0 :         PyErr_NoMemory();
   37936             :     }
   37937         803 :     if (p->error_indicator) {
   37938           0 :         p->level--;
   37939           0 :         return NULL;
   37940             :     }
   37941         803 :     void * _res = NULL;
   37942         803 :     int _mark = p->mark;
   37943             :     { // star_targets '='
   37944         803 :         if (p->error_indicator) {
   37945           0 :             p->level--;
   37946           0 :             return NULL;
   37947             :         }
   37948         803 :         D(fprintf(stderr, "%*c> _tmp_233[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
   37949             :         Token * _literal;
   37950             :         expr_ty star_targets_var;
   37951         803 :         if (
   37952         803 :             (star_targets_var = star_targets_rule(p))  // star_targets
   37953         106 :             &&
   37954         106 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   37955             :         )
   37956             :         {
   37957           7 :             D(fprintf(stderr, "%*c+ _tmp_233[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
   37958           7 :             _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
   37959           7 :             goto done;
   37960             :         }
   37961         796 :         p->mark = _mark;
   37962         796 :         D(fprintf(stderr, "%*c%s _tmp_233[%d-%d]: %s failed!\n", p->level, ' ',
   37963             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
   37964             :     }
   37965         796 :     _res = NULL;
   37966         803 :   done:
   37967         803 :     p->level--;
   37968         803 :     return _res;
   37969             : }
   37970             : 
   37971             : // _tmp_234: star_targets '='
   37972             : static void *
   37973         779 : _tmp_234_rule(Parser *p)
   37974             : {
   37975         779 :     if (p->level++ == MAXSTACK) {
   37976           0 :         p->error_indicator = 1;
   37977           0 :         PyErr_NoMemory();
   37978             :     }
   37979         779 :     if (p->error_indicator) {
   37980           0 :         p->level--;
   37981           0 :         return NULL;
   37982             :     }
   37983         779 :     void * _res = NULL;
   37984         779 :     int _mark = p->mark;
   37985             :     { // star_targets '='
   37986         779 :         if (p->error_indicator) {
   37987           0 :             p->level--;
   37988           0 :             return NULL;
   37989             :         }
   37990         779 :         D(fprintf(stderr, "%*c> _tmp_234[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
   37991             :         Token * _literal;
   37992             :         expr_ty star_targets_var;
   37993         779 :         if (
   37994         779 :             (star_targets_var = star_targets_rule(p))  // star_targets
   37995         103 :             &&
   37996         103 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   37997             :         )
   37998             :         {
   37999           5 :             D(fprintf(stderr, "%*c+ _tmp_234[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
   38000           5 :             _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
   38001           5 :             goto done;
   38002             :         }
   38003         774 :         p->mark = _mark;
   38004         774 :         D(fprintf(stderr, "%*c%s _tmp_234[%d-%d]: %s failed!\n", p->level, ' ',
   38005             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
   38006             :     }
   38007         774 :     _res = NULL;
   38008         779 :   done:
   38009         779 :     p->level--;
   38010         779 :     return _res;
   38011             : }
   38012             : 
   38013             : // _tmp_235: ')' | '**'
   38014             : static void *
   38015           9 : _tmp_235_rule(Parser *p)
   38016             : {
   38017           9 :     if (p->level++ == MAXSTACK) {
   38018           0 :         p->error_indicator = 1;
   38019           0 :         PyErr_NoMemory();
   38020             :     }
   38021           9 :     if (p->error_indicator) {
   38022           0 :         p->level--;
   38023           0 :         return NULL;
   38024             :     }
   38025           9 :     void * _res = NULL;
   38026           9 :     int _mark = p->mark;
   38027             :     { // ')'
   38028           9 :         if (p->error_indicator) {
   38029           0 :             p->level--;
   38030           0 :             return NULL;
   38031             :         }
   38032           9 :         D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
   38033             :         Token * _literal;
   38034           9 :         if (
   38035           9 :             (_literal = _PyPegen_expect_token(p, 8))  // token=')'
   38036             :         )
   38037             :         {
   38038           0 :             D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
   38039           0 :             _res = _literal;
   38040           0 :             goto done;
   38041             :         }
   38042           9 :         p->mark = _mark;
   38043           9 :         D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ',
   38044             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
   38045             :     }
   38046             :     { // '**'
   38047           9 :         if (p->error_indicator) {
   38048           0 :             p->level--;
   38049           0 :             return NULL;
   38050             :         }
   38051           9 :         D(fprintf(stderr, "%*c> _tmp_235[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
   38052             :         Token * _literal;
   38053           9 :         if (
   38054           9 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   38055             :         )
   38056             :         {
   38057           1 :             D(fprintf(stderr, "%*c+ _tmp_235[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
   38058           1 :             _res = _literal;
   38059           1 :             goto done;
   38060             :         }
   38061           8 :         p->mark = _mark;
   38062           8 :         D(fprintf(stderr, "%*c%s _tmp_235[%d-%d]: %s failed!\n", p->level, ' ',
   38063             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
   38064             :     }
   38065           8 :     _res = NULL;
   38066           9 :   done:
   38067           9 :     p->level--;
   38068           9 :     return _res;
   38069             : }
   38070             : 
   38071             : // _tmp_236: ':' | '**'
   38072             : static void *
   38073           0 : _tmp_236_rule(Parser *p)
   38074             : {
   38075           0 :     if (p->level++ == MAXSTACK) {
   38076           0 :         p->error_indicator = 1;
   38077           0 :         PyErr_NoMemory();
   38078             :     }
   38079           0 :     if (p->error_indicator) {
   38080           0 :         p->level--;
   38081           0 :         return NULL;
   38082             :     }
   38083           0 :     void * _res = NULL;
   38084           0 :     int _mark = p->mark;
   38085             :     { // ':'
   38086           0 :         if (p->error_indicator) {
   38087           0 :             p->level--;
   38088           0 :             return NULL;
   38089             :         }
   38090           0 :         D(fprintf(stderr, "%*c> _tmp_236[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
   38091             :         Token * _literal;
   38092           0 :         if (
   38093           0 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   38094             :         )
   38095             :         {
   38096           0 :             D(fprintf(stderr, "%*c+ _tmp_236[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
   38097           0 :             _res = _literal;
   38098           0 :             goto done;
   38099             :         }
   38100           0 :         p->mark = _mark;
   38101           0 :         D(fprintf(stderr, "%*c%s _tmp_236[%d-%d]: %s failed!\n", p->level, ' ',
   38102             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
   38103             :     }
   38104             :     { // '**'
   38105           0 :         if (p->error_indicator) {
   38106           0 :             p->level--;
   38107           0 :             return NULL;
   38108             :         }
   38109           0 :         D(fprintf(stderr, "%*c> _tmp_236[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
   38110             :         Token * _literal;
   38111           0 :         if (
   38112           0 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   38113             :         )
   38114             :         {
   38115           0 :             D(fprintf(stderr, "%*c+ _tmp_236[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
   38116           0 :             _res = _literal;
   38117           0 :             goto done;
   38118             :         }
   38119           0 :         p->mark = _mark;
   38120           0 :         D(fprintf(stderr, "%*c%s _tmp_236[%d-%d]: %s failed!\n", p->level, ' ',
   38121             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
   38122             :     }
   38123           0 :     _res = NULL;
   38124           0 :   done:
   38125           0 :     p->level--;
   38126           0 :     return _res;
   38127             : }
   38128             : 
   38129             : // _tmp_237: expression ['as' star_target]
   38130             : static void *
   38131          14 : _tmp_237_rule(Parser *p)
   38132             : {
   38133          14 :     if (p->level++ == MAXSTACK) {
   38134           0 :         p->error_indicator = 1;
   38135           0 :         PyErr_NoMemory();
   38136             :     }
   38137          14 :     if (p->error_indicator) {
   38138           0 :         p->level--;
   38139           0 :         return NULL;
   38140             :     }
   38141          14 :     void * _res = NULL;
   38142          14 :     int _mark = p->mark;
   38143             :     { // expression ['as' star_target]
   38144          14 :         if (p->error_indicator) {
   38145           0 :             p->level--;
   38146           0 :             return NULL;
   38147             :         }
   38148          14 :         D(fprintf(stderr, "%*c> _tmp_237[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
   38149             :         void *_opt_var;
   38150             :         UNUSED(_opt_var); // Silence compiler warnings
   38151             :         expr_ty expression_var;
   38152          14 :         if (
   38153          14 :             (expression_var = expression_rule(p))  // expression
   38154          10 :             &&
   38155          10 :             (_opt_var = _tmp_244_rule(p), !p->error_indicator)  // ['as' star_target]
   38156             :         )
   38157             :         {
   38158          10 :             D(fprintf(stderr, "%*c+ _tmp_237[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
   38159          10 :             _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
   38160          10 :             goto done;
   38161             :         }
   38162           4 :         p->mark = _mark;
   38163           4 :         D(fprintf(stderr, "%*c%s _tmp_237[%d-%d]: %s failed!\n", p->level, ' ',
   38164             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
   38165             :     }
   38166           4 :     _res = NULL;
   38167          14 :   done:
   38168          14 :     p->level--;
   38169          14 :     return _res;
   38170             : }
   38171             : 
   38172             : // _tmp_238: expressions ['as' star_target]
   38173             : static void *
   38174           4 : _tmp_238_rule(Parser *p)
   38175             : {
   38176           4 :     if (p->level++ == MAXSTACK) {
   38177           0 :         p->error_indicator = 1;
   38178           0 :         PyErr_NoMemory();
   38179             :     }
   38180           4 :     if (p->error_indicator) {
   38181           0 :         p->level--;
   38182           0 :         return NULL;
   38183             :     }
   38184           4 :     void * _res = NULL;
   38185           4 :     int _mark = p->mark;
   38186             :     { // expressions ['as' star_target]
   38187           4 :         if (p->error_indicator) {
   38188           0 :             p->level--;
   38189           0 :             return NULL;
   38190             :         }
   38191           4 :         D(fprintf(stderr, "%*c> _tmp_238[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
   38192             :         void *_opt_var;
   38193             :         UNUSED(_opt_var); // Silence compiler warnings
   38194             :         expr_ty expressions_var;
   38195           4 :         if (
   38196           4 :             (expressions_var = expressions_rule(p))  // expressions
   38197           4 :             &&
   38198           4 :             (_opt_var = _tmp_245_rule(p), !p->error_indicator)  // ['as' star_target]
   38199             :         )
   38200             :         {
   38201           4 :             D(fprintf(stderr, "%*c+ _tmp_238[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
   38202           4 :             _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
   38203           4 :             goto done;
   38204             :         }
   38205           0 :         p->mark = _mark;
   38206           0 :         D(fprintf(stderr, "%*c%s _tmp_238[%d-%d]: %s failed!\n", p->level, ' ',
   38207             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
   38208             :     }
   38209           0 :     _res = NULL;
   38210           4 :   done:
   38211           4 :     p->level--;
   38212           4 :     return _res;
   38213             : }
   38214             : 
   38215             : // _tmp_239: expression ['as' star_target]
   38216             : static void *
   38217          35 : _tmp_239_rule(Parser *p)
   38218             : {
   38219          35 :     if (p->level++ == MAXSTACK) {
   38220           0 :         p->error_indicator = 1;
   38221           0 :         PyErr_NoMemory();
   38222             :     }
   38223          35 :     if (p->error_indicator) {
   38224           0 :         p->level--;
   38225           0 :         return NULL;
   38226             :     }
   38227          35 :     void * _res = NULL;
   38228          35 :     int _mark = p->mark;
   38229             :     { // expression ['as' star_target]
   38230          35 :         if (p->error_indicator) {
   38231           0 :             p->level--;
   38232           0 :             return NULL;
   38233             :         }
   38234          35 :         D(fprintf(stderr, "%*c> _tmp_239[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
   38235             :         void *_opt_var;
   38236             :         UNUSED(_opt_var); // Silence compiler warnings
   38237             :         expr_ty expression_var;
   38238          35 :         if (
   38239          35 :             (expression_var = expression_rule(p))  // expression
   38240          28 :             &&
   38241          28 :             (_opt_var = _tmp_246_rule(p), !p->error_indicator)  // ['as' star_target]
   38242             :         )
   38243             :         {
   38244          28 :             D(fprintf(stderr, "%*c+ _tmp_239[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
   38245          28 :             _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
   38246          28 :             goto done;
   38247             :         }
   38248           7 :         p->mark = _mark;
   38249           7 :         D(fprintf(stderr, "%*c%s _tmp_239[%d-%d]: %s failed!\n", p->level, ' ',
   38250             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
   38251             :     }
   38252           7 :     _res = NULL;
   38253          35 :   done:
   38254          35 :     p->level--;
   38255          35 :     return _res;
   38256             : }
   38257             : 
   38258             : // _tmp_240: expressions ['as' star_target]
   38259             : static void *
   38260           9 : _tmp_240_rule(Parser *p)
   38261             : {
   38262           9 :     if (p->level++ == MAXSTACK) {
   38263           0 :         p->error_indicator = 1;
   38264           0 :         PyErr_NoMemory();
   38265             :     }
   38266           9 :     if (p->error_indicator) {
   38267           0 :         p->level--;
   38268           0 :         return NULL;
   38269             :     }
   38270           9 :     void * _res = NULL;
   38271           9 :     int _mark = p->mark;
   38272             :     { // expressions ['as' star_target]
   38273           9 :         if (p->error_indicator) {
   38274           0 :             p->level--;
   38275           0 :             return NULL;
   38276             :         }
   38277           9 :         D(fprintf(stderr, "%*c> _tmp_240[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
   38278             :         void *_opt_var;
   38279             :         UNUSED(_opt_var); // Silence compiler warnings
   38280             :         expr_ty expressions_var;
   38281           9 :         if (
   38282           9 :             (expressions_var = expressions_rule(p))  // expressions
   38283           9 :             &&
   38284           9 :             (_opt_var = _tmp_247_rule(p), !p->error_indicator)  // ['as' star_target]
   38285             :         )
   38286             :         {
   38287           9 :             D(fprintf(stderr, "%*c+ _tmp_240[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
   38288           9 :             _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
   38289           9 :             goto done;
   38290             :         }
   38291           0 :         p->mark = _mark;
   38292           0 :         D(fprintf(stderr, "%*c%s _tmp_240[%d-%d]: %s failed!\n", p->level, ' ',
   38293             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
   38294             :     }
   38295           0 :     _res = NULL;
   38296           9 :   done:
   38297           9 :     p->level--;
   38298           9 :     return _res;
   38299             : }
   38300             : 
   38301             : // _tmp_241: except_block+ except_star_block
   38302             : static void *
   38303          49 : _tmp_241_rule(Parser *p)
   38304             : {
   38305          49 :     if (p->level++ == MAXSTACK) {
   38306           0 :         p->error_indicator = 1;
   38307           0 :         PyErr_NoMemory();
   38308             :     }
   38309          49 :     if (p->error_indicator) {
   38310           0 :         p->level--;
   38311           0 :         return NULL;
   38312             :     }
   38313          49 :     void * _res = NULL;
   38314          49 :     int _mark = p->mark;
   38315             :     { // except_block+ except_star_block
   38316          49 :         if (p->error_indicator) {
   38317           0 :             p->level--;
   38318           0 :             return NULL;
   38319             :         }
   38320          49 :         D(fprintf(stderr, "%*c> _tmp_241[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block+ except_star_block"));
   38321             :         asdl_seq * _loop1_248_var;
   38322             :         excepthandler_ty except_star_block_var;
   38323          49 :         if (
   38324          49 :             (_loop1_248_var = _loop1_248_rule(p))  // except_block+
   38325           6 :             &&
   38326           6 :             (except_star_block_var = except_star_block_rule(p))  // except_star_block
   38327             :         )
   38328             :         {
   38329           5 :             D(fprintf(stderr, "%*c+ _tmp_241[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "except_block+ except_star_block"));
   38330           5 :             _res = _PyPegen_dummy_name(p, _loop1_248_var, except_star_block_var);
   38331           5 :             goto done;
   38332             :         }
   38333          44 :         p->mark = _mark;
   38334          44 :         D(fprintf(stderr, "%*c%s _tmp_241[%d-%d]: %s failed!\n", p->level, ' ',
   38335             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block+ except_star_block"));
   38336             :     }
   38337          44 :     _res = NULL;
   38338          49 :   done:
   38339          49 :     p->level--;
   38340          49 :     return _res;
   38341             : }
   38342             : 
   38343             : // _tmp_242: except_star_block+ except_block
   38344             : static void *
   38345          30 : _tmp_242_rule(Parser *p)
   38346             : {
   38347          30 :     if (p->level++ == MAXSTACK) {
   38348           0 :         p->error_indicator = 1;
   38349           0 :         PyErr_NoMemory();
   38350             :     }
   38351          30 :     if (p->error_indicator) {
   38352           0 :         p->level--;
   38353           0 :         return NULL;
   38354             :     }
   38355          30 :     void * _res = NULL;
   38356          30 :     int _mark = p->mark;
   38357             :     { // except_star_block+ except_block
   38358          30 :         if (p->error_indicator) {
   38359           0 :             p->level--;
   38360           0 :             return NULL;
   38361             :         }
   38362          30 :         D(fprintf(stderr, "%*c> _tmp_242[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block+ except_block"));
   38363             :         asdl_seq * _loop1_249_var;
   38364             :         excepthandler_ty except_block_var;
   38365          30 :         if (
   38366          30 :             (_loop1_249_var = _loop1_249_rule(p))  // except_star_block+
   38367           7 :             &&
   38368           7 :             (except_block_var = except_block_rule(p))  // except_block
   38369             :         )
   38370             :         {
   38371           6 :             D(fprintf(stderr, "%*c+ _tmp_242[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "except_star_block+ except_block"));
   38372           6 :             _res = _PyPegen_dummy_name(p, _loop1_249_var, except_block_var);
   38373           6 :             goto done;
   38374             :         }
   38375          24 :         p->mark = _mark;
   38376          24 :         D(fprintf(stderr, "%*c%s _tmp_242[%d-%d]: %s failed!\n", p->level, ' ',
   38377             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block+ except_block"));
   38378             :     }
   38379          24 :     _res = NULL;
   38380          30 :   done:
   38381          30 :     p->level--;
   38382          30 :     return _res;
   38383             : }
   38384             : 
   38385             : // _tmp_243: assignment_expression | expression !':='
   38386             : static void *
   38387     2749390 : _tmp_243_rule(Parser *p)
   38388             : {
   38389     2749390 :     if (p->level++ == MAXSTACK) {
   38390           0 :         p->error_indicator = 1;
   38391           0 :         PyErr_NoMemory();
   38392             :     }
   38393     2749390 :     if (p->error_indicator) {
   38394           0 :         p->level--;
   38395           0 :         return NULL;
   38396             :     }
   38397     2749390 :     void * _res = NULL;
   38398     2749390 :     int _mark = p->mark;
   38399             :     { // assignment_expression
   38400     2749390 :         if (p->error_indicator) {
   38401           0 :             p->level--;
   38402           0 :             return NULL;
   38403             :         }
   38404     2749390 :         D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
   38405             :         expr_ty assignment_expression_var;
   38406     2749390 :         if (
   38407     2749390 :             (assignment_expression_var = assignment_expression_rule(p))  // assignment_expression
   38408             :         )
   38409             :         {
   38410          33 :             D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
   38411          33 :             _res = assignment_expression_var;
   38412          33 :             goto done;
   38413             :         }
   38414     2749360 :         p->mark = _mark;
   38415     2749360 :         D(fprintf(stderr, "%*c%s _tmp_243[%d-%d]: %s failed!\n", p->level, ' ',
   38416             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
   38417             :     }
   38418             :     { // expression !':='
   38419     2749360 :         if (p->error_indicator) {
   38420           6 :             p->level--;
   38421           6 :             return NULL;
   38422             :         }
   38423     2749350 :         D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
   38424             :         expr_ty expression_var;
   38425     2749350 :         if (
   38426     2749350 :             (expression_var = expression_rule(p))  // expression
   38427     2190570 :             &&
   38428     2190570 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53)  // token=':='
   38429             :         )
   38430             :         {
   38431     2190570 :             D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
   38432     2190570 :             _res = expression_var;
   38433     2190570 :             goto done;
   38434             :         }
   38435      558783 :         p->mark = _mark;
   38436      558783 :         D(fprintf(stderr, "%*c%s _tmp_243[%d-%d]: %s failed!\n", p->level, ' ',
   38437             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
   38438             :     }
   38439      558783 :     _res = NULL;
   38440     2749390 :   done:
   38441     2749390 :     p->level--;
   38442     2749390 :     return _res;
   38443             : }
   38444             : 
   38445             : // _tmp_244: 'as' star_target
   38446             : static void *
   38447          10 : _tmp_244_rule(Parser *p)
   38448             : {
   38449          10 :     if (p->level++ == MAXSTACK) {
   38450           0 :         p->error_indicator = 1;
   38451           0 :         PyErr_NoMemory();
   38452             :     }
   38453          10 :     if (p->error_indicator) {
   38454           0 :         p->level--;
   38455           0 :         return NULL;
   38456             :     }
   38457          10 :     void * _res = NULL;
   38458          10 :     int _mark = p->mark;
   38459             :     { // 'as' star_target
   38460          10 :         if (p->error_indicator) {
   38461           0 :             p->level--;
   38462           0 :             return NULL;
   38463             :         }
   38464          10 :         D(fprintf(stderr, "%*c> _tmp_244[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
   38465             :         Token * _keyword;
   38466             :         expr_ty star_target_var;
   38467          10 :         if (
   38468          10 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   38469           4 :             &&
   38470           4 :             (star_target_var = star_target_rule(p))  // star_target
   38471             :         )
   38472             :         {
   38473           4 :             D(fprintf(stderr, "%*c+ _tmp_244[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
   38474           4 :             _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
   38475           4 :             goto done;
   38476             :         }
   38477           6 :         p->mark = _mark;
   38478           6 :         D(fprintf(stderr, "%*c%s _tmp_244[%d-%d]: %s failed!\n", p->level, ' ',
   38479             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
   38480             :     }
   38481           6 :     _res = NULL;
   38482          10 :   done:
   38483          10 :     p->level--;
   38484          10 :     return _res;
   38485             : }
   38486             : 
   38487             : // _tmp_245: 'as' star_target
   38488             : static void *
   38489           4 : _tmp_245_rule(Parser *p)
   38490             : {
   38491           4 :     if (p->level++ == MAXSTACK) {
   38492           0 :         p->error_indicator = 1;
   38493           0 :         PyErr_NoMemory();
   38494             :     }
   38495           4 :     if (p->error_indicator) {
   38496           0 :         p->level--;
   38497           0 :         return NULL;
   38498             :     }
   38499           4 :     void * _res = NULL;
   38500           4 :     int _mark = p->mark;
   38501             :     { // 'as' star_target
   38502           4 :         if (p->error_indicator) {
   38503           0 :             p->level--;
   38504           0 :             return NULL;
   38505             :         }
   38506           4 :         D(fprintf(stderr, "%*c> _tmp_245[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
   38507             :         Token * _keyword;
   38508             :         expr_ty star_target_var;
   38509           4 :         if (
   38510           4 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   38511           3 :             &&
   38512           3 :             (star_target_var = star_target_rule(p))  // star_target
   38513             :         )
   38514             :         {
   38515           3 :             D(fprintf(stderr, "%*c+ _tmp_245[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
   38516           3 :             _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
   38517           3 :             goto done;
   38518             :         }
   38519           1 :         p->mark = _mark;
   38520           1 :         D(fprintf(stderr, "%*c%s _tmp_245[%d-%d]: %s failed!\n", p->level, ' ',
   38521             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
   38522             :     }
   38523           1 :     _res = NULL;
   38524           4 :   done:
   38525           4 :     p->level--;
   38526           4 :     return _res;
   38527             : }
   38528             : 
   38529             : // _tmp_246: 'as' star_target
   38530             : static void *
   38531          28 : _tmp_246_rule(Parser *p)
   38532             : {
   38533          28 :     if (p->level++ == MAXSTACK) {
   38534           0 :         p->error_indicator = 1;
   38535           0 :         PyErr_NoMemory();
   38536             :     }
   38537          28 :     if (p->error_indicator) {
   38538           0 :         p->level--;
   38539           0 :         return NULL;
   38540             :     }
   38541          28 :     void * _res = NULL;
   38542          28 :     int _mark = p->mark;
   38543             :     { // 'as' star_target
   38544          28 :         if (p->error_indicator) {
   38545           0 :             p->level--;
   38546           0 :             return NULL;
   38547             :         }
   38548          28 :         D(fprintf(stderr, "%*c> _tmp_246[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
   38549             :         Token * _keyword;
   38550             :         expr_ty star_target_var;
   38551          28 :         if (
   38552          28 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   38553          20 :             &&
   38554          20 :             (star_target_var = star_target_rule(p))  // star_target
   38555             :         )
   38556             :         {
   38557          11 :             D(fprintf(stderr, "%*c+ _tmp_246[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
   38558          11 :             _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
   38559          11 :             goto done;
   38560             :         }
   38561          17 :         p->mark = _mark;
   38562          17 :         D(fprintf(stderr, "%*c%s _tmp_246[%d-%d]: %s failed!\n", p->level, ' ',
   38563             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
   38564             :     }
   38565          17 :     _res = NULL;
   38566          28 :   done:
   38567          28 :     p->level--;
   38568          28 :     return _res;
   38569             : }
   38570             : 
   38571             : // _tmp_247: 'as' star_target
   38572             : static void *
   38573           9 : _tmp_247_rule(Parser *p)
   38574             : {
   38575           9 :     if (p->level++ == MAXSTACK) {
   38576           0 :         p->error_indicator = 1;
   38577           0 :         PyErr_NoMemory();
   38578             :     }
   38579           9 :     if (p->error_indicator) {
   38580           0 :         p->level--;
   38581           0 :         return NULL;
   38582             :     }
   38583           9 :     void * _res = NULL;
   38584           9 :     int _mark = p->mark;
   38585             :     { // 'as' star_target
   38586           9 :         if (p->error_indicator) {
   38587           0 :             p->level--;
   38588           0 :             return NULL;
   38589             :         }
   38590           9 :         D(fprintf(stderr, "%*c> _tmp_247[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
   38591             :         Token * _keyword;
   38592             :         expr_ty star_target_var;
   38593           9 :         if (
   38594           9 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   38595           7 :             &&
   38596           7 :             (star_target_var = star_target_rule(p))  // star_target
   38597             :         )
   38598             :         {
   38599           7 :             D(fprintf(stderr, "%*c+ _tmp_247[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
   38600           7 :             _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
   38601           7 :             goto done;
   38602             :         }
   38603           2 :         p->mark = _mark;
   38604           2 :         D(fprintf(stderr, "%*c%s _tmp_247[%d-%d]: %s failed!\n", p->level, ' ',
   38605             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
   38606             :     }
   38607           2 :     _res = NULL;
   38608           9 :   done:
   38609           9 :     p->level--;
   38610           9 :     return _res;
   38611             : }
   38612             : 
   38613             : // _loop1_248: except_block
   38614             : static asdl_seq *
   38615          49 : _loop1_248_rule(Parser *p)
   38616             : {
   38617          49 :     if (p->level++ == MAXSTACK) {
   38618           0 :         p->error_indicator = 1;
   38619           0 :         PyErr_NoMemory();
   38620             :     }
   38621          49 :     if (p->error_indicator) {
   38622           0 :         p->level--;
   38623           0 :         return NULL;
   38624             :     }
   38625          49 :     void *_res = NULL;
   38626          49 :     int _mark = p->mark;
   38627          49 :     int _start_mark = p->mark;
   38628          49 :     void **_children = PyMem_Malloc(sizeof(void *));
   38629          49 :     if (!_children) {
   38630           0 :         p->error_indicator = 1;
   38631           0 :         PyErr_NoMemory();
   38632           0 :         p->level--;
   38633           0 :         return NULL;
   38634             :     }
   38635          49 :     Py_ssize_t _children_capacity = 1;
   38636          49 :     Py_ssize_t _n = 0;
   38637             :     { // except_block
   38638          49 :         if (p->error_indicator) {
   38639           0 :             p->level--;
   38640           0 :             return NULL;
   38641             :         }
   38642          49 :         D(fprintf(stderr, "%*c> _loop1_248[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
   38643             :         excepthandler_ty except_block_var;
   38644         106 :         while (
   38645          57 :             (except_block_var = except_block_rule(p))  // except_block
   38646             :         )
   38647             :         {
   38648           8 :             _res = except_block_var;
   38649           8 :             if (_n == _children_capacity) {
   38650           1 :                 _children_capacity *= 2;
   38651           1 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   38652           1 :                 if (!_new_children) {
   38653           0 :                     p->error_indicator = 1;
   38654           0 :                     PyErr_NoMemory();
   38655           0 :                     p->level--;
   38656           0 :                     return NULL;
   38657             :                 }
   38658           1 :                 _children = _new_children;
   38659             :             }
   38660           8 :             _children[_n++] = _res;
   38661           8 :             _mark = p->mark;
   38662             :         }
   38663          49 :         p->mark = _mark;
   38664          49 :         D(fprintf(stderr, "%*c%s _loop1_248[%d-%d]: %s failed!\n", p->level, ' ',
   38665             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
   38666             :     }
   38667          49 :     if (_n == 0 || p->error_indicator) {
   38668          43 :         PyMem_Free(_children);
   38669          43 :         p->level--;
   38670          43 :         return NULL;
   38671             :     }
   38672           6 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   38673           6 :     if (!_seq) {
   38674           0 :         PyMem_Free(_children);
   38675           0 :         p->error_indicator = 1;
   38676           0 :         PyErr_NoMemory();
   38677           0 :         p->level--;
   38678           0 :         return NULL;
   38679             :     }
   38680          13 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   38681           6 :     PyMem_Free(_children);
   38682           6 :     _PyPegen_insert_memo(p, _start_mark, _loop1_248_type, _seq);
   38683           6 :     p->level--;
   38684           6 :     return _seq;
   38685             : }
   38686             : 
   38687             : // _loop1_249: except_star_block
   38688             : static asdl_seq *
   38689          30 : _loop1_249_rule(Parser *p)
   38690             : {
   38691          30 :     if (p->level++ == MAXSTACK) {
   38692           0 :         p->error_indicator = 1;
   38693           0 :         PyErr_NoMemory();
   38694             :     }
   38695          30 :     if (p->error_indicator) {
   38696           0 :         p->level--;
   38697           0 :         return NULL;
   38698             :     }
   38699          30 :     void *_res = NULL;
   38700          30 :     int _mark = p->mark;
   38701          30 :     int _start_mark = p->mark;
   38702          30 :     void **_children = PyMem_Malloc(sizeof(void *));
   38703          30 :     if (!_children) {
   38704           0 :         p->error_indicator = 1;
   38705           0 :         PyErr_NoMemory();
   38706           0 :         p->level--;
   38707           0 :         return NULL;
   38708             :     }
   38709          30 :     Py_ssize_t _children_capacity = 1;
   38710          30 :     Py_ssize_t _n = 0;
   38711             :     { // except_star_block
   38712          30 :         if (p->error_indicator) {
   38713           0 :             p->level--;
   38714           0 :             return NULL;
   38715             :         }
   38716          30 :         D(fprintf(stderr, "%*c> _loop1_249[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block"));
   38717             :         excepthandler_ty except_star_block_var;
   38718          69 :         while (
   38719          39 :             (except_star_block_var = except_star_block_rule(p))  // except_star_block
   38720             :         )
   38721             :         {
   38722           9 :             _res = except_star_block_var;
   38723           9 :             if (_n == _children_capacity) {
   38724           1 :                 _children_capacity *= 2;
   38725           1 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   38726           1 :                 if (!_new_children) {
   38727           0 :                     p->error_indicator = 1;
   38728           0 :                     PyErr_NoMemory();
   38729           0 :                     p->level--;
   38730           0 :                     return NULL;
   38731             :                 }
   38732           1 :                 _children = _new_children;
   38733             :             }
   38734           9 :             _children[_n++] = _res;
   38735           9 :             _mark = p->mark;
   38736             :         }
   38737          30 :         p->mark = _mark;
   38738          30 :         D(fprintf(stderr, "%*c%s _loop1_249[%d-%d]: %s failed!\n", p->level, ' ',
   38739             :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block"));
   38740             :     }
   38741          30 :     if (_n == 0 || p->error_indicator) {
   38742          23 :         PyMem_Free(_children);
   38743          23 :         p->level--;
   38744          23 :         return NULL;
   38745             :     }
   38746           7 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   38747           7 :     if (!_seq) {
   38748           0 :         PyMem_Free(_children);
   38749           0 :         p->error_indicator = 1;
   38750           0 :         PyErr_NoMemory();
   38751           0 :         p->level--;
   38752           0 :         return NULL;
   38753             :     }
   38754          15 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   38755           7 :     PyMem_Free(_children);
   38756           7 :     _PyPegen_insert_memo(p, _start_mark, _loop1_249_type, _seq);
   38757           7 :     p->level--;
   38758           7 :     return _seq;
   38759             : }
   38760             : 
   38761             : void *
   38762      225947 : _PyPegen_parse(Parser *p)
   38763             : {
   38764             :     // Initialize keywords
   38765      225947 :     p->keywords = reserved_keywords;
   38766      225947 :     p->n_keyword_lists = n_keyword_lists;
   38767      225947 :     p->soft_keywords = soft_keywords;
   38768             : 
   38769             :     // Run parser
   38770      225947 :     void *result = NULL;
   38771      225947 :     if (p->start_rule == Py_file_input) {
   38772       49568 :         result = file_rule(p);
   38773      176379 :     } else if (p->start_rule == Py_single_input) {
   38774        5080 :         result = interactive_rule(p);
   38775      171299 :     } else if (p->start_rule == Py_eval_input) {
   38776       75155 :         result = eval_rule(p);
   38777       96144 :     } else if (p->start_rule == Py_func_type_input) {
   38778          18 :         result = func_type_rule(p);
   38779       96126 :     } else if (p->start_rule == Py_fstring_input) {
   38780       96126 :         result = fstring_rule(p);
   38781             :     }
   38782             : 
   38783      225947 :     return result;
   38784             : }

Generated by: LCOV version 1.14