LCOV - code coverage report
Current view: top level - Parser - parser.c (source / functions) Hit Total Coverage
Test: CPython 3.12 LCOV report [commit acb105a7c1f] Lines: 15032 21121 71.2 %
Date: 2022-07-20 13:12:14 Functions: 488 489 99.8 %
Branches: 7110 11360 62.6 %

           Branch data     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                 :      49245 : file_rule(Parser *p)
    1042                 :            : {
    1043         [ -  + ]:      49245 :     if (p->level++ == MAXSTACK) {
    1044                 :          0 :         p->error_indicator = 1;
    1045                 :            :         PyErr_NoMemory();
    1046                 :            :     }
    1047         [ +  + ]:      49245 :     if (p->error_indicator) {
    1048                 :        184 :         p->level--;
    1049                 :        184 :         return NULL;
    1050                 :            :     }
    1051                 :      49061 :     mod_ty _res = NULL;
    1052                 :      49061 :     int _mark = p->mark;
    1053                 :            :     { // statements? $
    1054         [ -  + ]:      49061 :         if (p->error_indicator) {
    1055                 :          0 :             p->level--;
    1056                 :          0 :             return NULL;
    1057                 :            :         }
    1058                 :            :         D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
    1059                 :            :         void *a;
    1060                 :            :         Token * endmarker_var;
    1061                 :      49061 :         if (
    1062         [ +  + ]:      49061 :             (a = statements_rule(p), !p->error_indicator)  // statements?
    1063         [ +  + ]:      48679 :             &&
    1064                 :      48679 :             (endmarker_var = _PyPegen_expect_token(p, ENDMARKER))  // token='ENDMARKER'
    1065                 :            :         )
    1066                 :            :         {
    1067                 :            :             D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
    1068                 :      47877 :             _res = _PyPegen_make_module ( p , a );
    1069   [ -  +  -  - ]:      47877 :             if (_res == NULL && PyErr_Occurred()) {
    1070                 :          0 :                 p->error_indicator = 1;
    1071                 :          0 :                 p->level--;
    1072                 :          0 :                 return NULL;
    1073                 :            :             }
    1074                 :      47877 :             goto done;
    1075                 :            :         }
    1076                 :       1184 :         p->mark = _mark;
    1077                 :            :         D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
    1078                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
    1079                 :            :     }
    1080                 :       1184 :     _res = NULL;
    1081                 :      49061 :   done:
    1082                 :      49061 :     p->level--;
    1083                 :      49061 :     return _res;
    1084                 :            : }
    1085                 :            : 
    1086                 :            : // interactive: statement_newline
    1087                 :            : static mod_ty
    1088                 :       5077 : interactive_rule(Parser *p)
    1089                 :            : {
    1090         [ -  + ]:       5077 :     if (p->level++ == MAXSTACK) {
    1091                 :          0 :         p->error_indicator = 1;
    1092                 :            :         PyErr_NoMemory();
    1093                 :            :     }
    1094         [ +  + ]:       5077 :     if (p->error_indicator) {
    1095                 :         17 :         p->level--;
    1096                 :         17 :         return NULL;
    1097                 :            :     }
    1098                 :       5060 :     mod_ty _res = NULL;
    1099                 :       5060 :     int _mark = p->mark;
    1100                 :            :     { // statement_newline
    1101         [ -  + ]:       5060 :         if (p->error_indicator) {
    1102                 :          0 :             p->level--;
    1103                 :          0 :             return NULL;
    1104                 :            :         }
    1105                 :            :         D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
    1106                 :            :         asdl_stmt_seq* a;
    1107         [ +  + ]:       5060 :         if (
    1108                 :       5060 :             (a = statement_newline_rule(p))  // statement_newline
    1109                 :            :         )
    1110                 :            :         {
    1111                 :            :             D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
    1112                 :       4160 :             _res = _PyAST_Interactive ( a , p -> arena );
    1113   [ -  +  -  - ]:       4160 :             if (_res == NULL && PyErr_Occurred()) {
    1114                 :          0 :                 p->error_indicator = 1;
    1115                 :          0 :                 p->level--;
    1116                 :          0 :                 return NULL;
    1117                 :            :             }
    1118                 :       4160 :             goto done;
    1119                 :            :         }
    1120                 :        900 :         p->mark = _mark;
    1121                 :            :         D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
    1122                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
    1123                 :            :     }
    1124                 :        900 :     _res = NULL;
    1125                 :       5060 :   done:
    1126                 :       5060 :     p->level--;
    1127                 :       5060 :     return _res;
    1128                 :            : }
    1129                 :            : 
    1130                 :            : // eval: expressions NEWLINE* $
    1131                 :            : static mod_ty
    1132                 :      73802 : eval_rule(Parser *p)
    1133                 :            : {
    1134         [ -  + ]:      73802 :     if (p->level++ == MAXSTACK) {
    1135                 :          0 :         p->error_indicator = 1;
    1136                 :            :         PyErr_NoMemory();
    1137                 :            :     }
    1138         [ +  + ]:      73802 :     if (p->error_indicator) {
    1139                 :        848 :         p->level--;
    1140                 :        848 :         return NULL;
    1141                 :            :     }
    1142                 :      72954 :     mod_ty _res = NULL;
    1143                 :      72954 :     int _mark = p->mark;
    1144                 :            :     { // expressions NEWLINE* $
    1145         [ -  + ]:      72954 :         if (p->error_indicator) {
    1146                 :          0 :             p->level--;
    1147                 :          0 :             return NULL;
    1148                 :            :         }
    1149                 :            :         D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
    1150                 :            :         asdl_seq * _loop0_1_var;
    1151                 :            :         expr_ty a;
    1152                 :            :         Token * endmarker_var;
    1153         [ +  + ]:      72954 :         if (
    1154                 :      72954 :             (a = expressions_rule(p))  // expressions
    1155         [ +  - ]:      72068 :             &&
    1156                 :      72068 :             (_loop0_1_var = _loop0_1_rule(p))  // NEWLINE*
    1157         [ +  + ]:      72068 :             &&
    1158                 :      72068 :             (endmarker_var = _PyPegen_expect_token(p, ENDMARKER))  // token='ENDMARKER'
    1159                 :            :         )
    1160                 :            :         {
    1161                 :            :             D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
    1162                 :      71904 :             _res = _PyAST_Expression ( a , p -> arena );
    1163   [ -  +  -  - ]:      71904 :             if (_res == NULL && PyErr_Occurred()) {
    1164                 :          0 :                 p->error_indicator = 1;
    1165                 :          0 :                 p->level--;
    1166                 :          0 :                 return NULL;
    1167                 :            :             }
    1168                 :      71904 :             goto done;
    1169                 :            :         }
    1170                 :       1050 :         p->mark = _mark;
    1171                 :            :         D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
    1172                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
    1173                 :            :     }
    1174                 :       1050 :     _res = NULL;
    1175                 :      72954 :   done:
    1176                 :      72954 :     p->level--;
    1177                 :      72954 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :      96084 : fstring_rule(Parser *p)
    1245                 :            : {
    1246         [ -  + ]:      96084 :     if (p->level++ == MAXSTACK) {
    1247                 :          0 :         p->error_indicator = 1;
    1248                 :            :         PyErr_NoMemory();
    1249                 :            :     }
    1250         [ +  + ]:      96084 :     if (p->error_indicator) {
    1251                 :          4 :         p->level--;
    1252                 :          4 :         return NULL;
    1253                 :            :     }
    1254                 :      96080 :     expr_ty _res = NULL;
    1255                 :      96080 :     int _mark = p->mark;
    1256                 :            :     { // star_expressions
    1257         [ -  + ]:      96080 :         if (p->error_indicator) {
    1258                 :          0 :             p->level--;
    1259                 :          0 :             return NULL;
    1260                 :            :         }
    1261                 :            :         D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
    1262                 :            :         expr_ty star_expressions_var;
    1263         [ +  + ]:      96080 :         if (
    1264                 :      96080 :             (star_expressions_var = star_expressions_rule(p))  // star_expressions
    1265                 :            :         )
    1266                 :            :         {
    1267                 :            :             D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
    1268                 :      96052 :             _res = star_expressions_var;
    1269                 :      96052 :             goto done;
    1270                 :            :         }
    1271                 :         28 :         p->mark = _mark;
    1272                 :            :         D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
    1273                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
    1274                 :            :     }
    1275                 :         28 :     _res = NULL;
    1276                 :      96080 :   done:
    1277                 :      96080 :     p->level--;
    1278                 :      96080 :     return _res;
    1279                 :            : }
    1280                 :            : 
    1281                 :            : // statements: statement+
    1282                 :            : static asdl_stmt_seq*
    1283                 :    1038152 : statements_rule(Parser *p)
    1284                 :            : {
    1285         [ -  + ]:    1038152 :     if (p->level++ == MAXSTACK) {
    1286                 :          0 :         p->error_indicator = 1;
    1287                 :            :         PyErr_NoMemory();
    1288                 :            :     }
    1289         [ -  + ]:    1038152 :     if (p->error_indicator) {
    1290                 :          0 :         p->level--;
    1291                 :          0 :         return NULL;
    1292                 :            :     }
    1293                 :    1038152 :     asdl_stmt_seq* _res = NULL;
    1294                 :    1038152 :     int _mark = p->mark;
    1295                 :            :     { // statement+
    1296         [ -  + ]:    1038152 :         if (p->error_indicator) {
    1297                 :          0 :             p->level--;
    1298                 :          0 :             return NULL;
    1299                 :            :         }
    1300                 :            :         D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
    1301                 :            :         asdl_seq * a;
    1302         [ +  + ]:    1038152 :         if (
    1303                 :    1038152 :             (a = _loop1_3_rule(p))  // statement+
    1304                 :            :         )
    1305                 :            :         {
    1306                 :            :             D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
    1307                 :    1036171 :             _res = ( asdl_stmt_seq* ) _PyPegen_seq_flatten ( p , a );
    1308   [ -  +  -  - ]:    1036171 :             if (_res == NULL && PyErr_Occurred()) {
    1309                 :          0 :                 p->error_indicator = 1;
    1310                 :          0 :                 p->level--;
    1311                 :          0 :                 return NULL;
    1312                 :            :             }
    1313                 :    1036171 :             goto done;
    1314                 :            :         }
    1315                 :       1981 :         p->mark = _mark;
    1316                 :            :         D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
    1317                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
    1318                 :            :     }
    1319                 :       1981 :     _res = NULL;
    1320                 :    1038152 :   done:
    1321                 :    1038152 :     p->level--;
    1322                 :    1038152 :     return _res;
    1323                 :            : }
    1324                 :            : 
    1325                 :            : // statement: compound_stmt | simple_stmts
    1326                 :            : static asdl_stmt_seq*
    1327                 :    4032083 : statement_rule(Parser *p)
    1328                 :            : {
    1329         [ -  + ]:    4032083 :     if (p->level++ == MAXSTACK) {
    1330                 :          0 :         p->error_indicator = 1;
    1331                 :            :         PyErr_NoMemory();
    1332                 :            :     }
    1333         [ -  + ]:    4032083 :     if (p->error_indicator) {
    1334                 :          0 :         p->level--;
    1335                 :          0 :         return NULL;
    1336                 :            :     }
    1337                 :    4032083 :     asdl_stmt_seq* _res = NULL;
    1338                 :    4032083 :     int _mark = p->mark;
    1339                 :            :     { // compound_stmt
    1340         [ -  + ]:    4032083 :         if (p->error_indicator) {
    1341                 :          0 :             p->level--;
    1342                 :          0 :             return NULL;
    1343                 :            :         }
    1344                 :            :         D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
    1345                 :            :         stmt_ty a;
    1346         [ +  + ]:    4032083 :         if (
    1347                 :    4032083 :             (a = compound_stmt_rule(p))  // compound_stmt
    1348                 :            :         )
    1349                 :            :         {
    1350                 :            :             D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
    1351                 :    1045074 :             _res = ( asdl_stmt_seq* ) _PyPegen_singleton_seq ( p , a );
    1352   [ -  +  -  - ]:    1045074 :             if (_res == NULL && PyErr_Occurred()) {
    1353                 :          0 :                 p->error_indicator = 1;
    1354                 :          0 :                 p->level--;
    1355                 :          0 :                 return NULL;
    1356                 :            :             }
    1357                 :    1045074 :             goto done;
    1358                 :            :         }
    1359                 :    2987009 :         p->mark = _mark;
    1360                 :            :         D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
    1361                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
    1362                 :            :     }
    1363                 :            :     { // simple_stmts
    1364         [ +  + ]:    2987009 :         if (p->error_indicator) {
    1365                 :        186 :             p->level--;
    1366                 :        186 :             return NULL;
    1367                 :            :         }
    1368                 :            :         D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
    1369                 :            :         asdl_stmt_seq* a;
    1370         [ +  + ]:    2986823 :         if (
    1371                 :    2986823 :             (a = (asdl_stmt_seq*)simple_stmts_rule(p))  // simple_stmts
    1372                 :            :         )
    1373                 :            :         {
    1374                 :            :             D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
    1375                 :    1948857 :             _res = a;
    1376   [ -  +  -  - ]:    1948857 :             if (_res == NULL && PyErr_Occurred()) {
    1377                 :          0 :                 p->error_indicator = 1;
    1378                 :          0 :                 p->level--;
    1379                 :          0 :                 return NULL;
    1380                 :            :             }
    1381                 :    1948857 :             goto done;
    1382                 :            :         }
    1383                 :    1037966 :         p->mark = _mark;
    1384                 :            :         D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
    1385                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
    1386                 :            :     }
    1387                 :    1037966 :     _res = NULL;
    1388                 :    4031897 :   done:
    1389                 :    4031897 :     p->level--;
    1390                 :    4031897 :     return _res;
    1391                 :            : }
    1392                 :            : 
    1393                 :            : // statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
    1394                 :            : static asdl_stmt_seq*
    1395                 :       5060 : statement_newline_rule(Parser *p)
    1396                 :            : {
    1397         [ -  + ]:       5060 :     if (p->level++ == MAXSTACK) {
    1398                 :          0 :         p->error_indicator = 1;
    1399                 :            :         PyErr_NoMemory();
    1400                 :            :     }
    1401         [ -  + ]:       5060 :     if (p->error_indicator) {
    1402                 :          0 :         p->level--;
    1403                 :          0 :         return NULL;
    1404                 :            :     }
    1405                 :       5060 :     asdl_stmt_seq* _res = NULL;
    1406                 :       5060 :     int _mark = p->mark;
    1407   [ +  +  -  + ]:       5060 :     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                 :       5060 :     int _start_lineno = p->tokens[_mark]->lineno;
    1413                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    1414                 :       5060 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    1415                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    1416                 :            :     { // compound_stmt NEWLINE
    1417         [ -  + ]:       5060 :         if (p->error_indicator) {
    1418                 :          0 :             p->level--;
    1419                 :          0 :             return NULL;
    1420                 :            :         }
    1421                 :            :         D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
    1422                 :            :         stmt_ty a;
    1423                 :            :         Token * newline_var;
    1424         [ +  + ]:       5060 :         if (
    1425                 :       5060 :             (a = compound_stmt_rule(p))  // compound_stmt
    1426         [ +  + ]:        628 :             &&
    1427                 :        628 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
    1428                 :            :         )
    1429                 :            :         {
    1430                 :            :             D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
    1431                 :        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                 :       4464 :         p->mark = _mark;
    1440                 :            :         D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
    1441                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
    1442                 :            :     }
    1443                 :            :     { // simple_stmts
    1444         [ +  + ]:       4464 :         if (p->error_indicator) {
    1445                 :        159 :             p->level--;
    1446                 :        159 :             return NULL;
    1447                 :            :         }
    1448                 :            :         D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
    1449                 :            :         asdl_stmt_seq* simple_stmts_var;
    1450         [ +  + ]:       4305 :         if (
    1451                 :       4305 :             (simple_stmts_var = simple_stmts_rule(p))  // simple_stmts
    1452                 :            :         )
    1453                 :            :         {
    1454                 :            :             D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
    1455                 :       3562 :             _res = simple_stmts_var;
    1456                 :       3562 :             goto done;
    1457                 :            :         }
    1458                 :        743 :         p->mark = _mark;
    1459                 :            :         D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
    1460                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
    1461                 :            :     }
    1462                 :            :     { // NEWLINE
    1463         [ +  + ]:        743 :         if (p->error_indicator) {
    1464                 :        245 :             p->level--;
    1465                 :        245 :             return NULL;
    1466                 :            :         }
    1467                 :            :         D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
    1468                 :            :         Token * newline_var;
    1469         [ +  + ]:        498 :         if (
    1470                 :        498 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
    1471                 :            :         )
    1472                 :            :         {
    1473                 :            :             D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
    1474                 :          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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :       4656 :   done:
    1521                 :       4656 :     p->level--;
    1522                 :       4656 :     return _res;
    1523                 :            : }
    1524                 :            : 
    1525                 :            : // simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
    1526                 :            : static asdl_stmt_seq*
    1527                 :    3203076 : simple_stmts_rule(Parser *p)
    1528                 :            : {
    1529         [ -  + ]:    3203076 :     if (p->level++ == MAXSTACK) {
    1530                 :          0 :         p->error_indicator = 1;
    1531                 :            :         PyErr_NoMemory();
    1532                 :            :     }
    1533         [ -  + ]:    3203076 :     if (p->error_indicator) {
    1534                 :          0 :         p->level--;
    1535                 :          0 :         return NULL;
    1536                 :            :     }
    1537                 :    3203076 :     asdl_stmt_seq* _res = NULL;
    1538                 :    3203076 :     int _mark = p->mark;
    1539                 :            :     { // simple_stmt !';' NEWLINE
    1540         [ -  + ]:    3203076 :         if (p->error_indicator) {
    1541                 :          0 :             p->level--;
    1542                 :          0 :             return NULL;
    1543                 :            :         }
    1544                 :            :         D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE"));
    1545                 :            :         stmt_ty a;
    1546                 :            :         Token * newline_var;
    1547         [ +  + ]:    3203076 :         if (
    1548                 :    3203076 :             (a = simple_stmt_rule(p))  // simple_stmt
    1549         [ +  + ]:    2164576 :             &&
    1550                 :    2164576 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13)  // token=';'
    1551         [ +  + ]:    2162402 :             &&
    1552                 :    2162402 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
    1553                 :            :         )
    1554                 :            :         {
    1555                 :            :             D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE"));
    1556                 :    2161852 :             _res = ( asdl_stmt_seq* ) _PyPegen_singleton_seq ( p , a );
    1557   [ -  +  -  - ]:    2161852 :             if (_res == NULL && PyErr_Occurred()) {
    1558                 :          0 :                 p->error_indicator = 1;
    1559                 :          0 :                 p->level--;
    1560                 :          0 :                 return NULL;
    1561                 :            :             }
    1562                 :    2161852 :             goto done;
    1563                 :            :         }
    1564                 :    1041224 :         p->mark = _mark;
    1565                 :            :         D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
    1566                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
    1567                 :            :     }
    1568                 :            :     { // ';'.simple_stmt+ ';'? NEWLINE
    1569         [ +  + ]:    1041224 :         if (p->error_indicator) {
    1570                 :        476 :             p->level--;
    1571                 :        476 :             return NULL;
    1572                 :            :         }
    1573                 :            :         D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
    1574                 :            :         void *_opt_var;
    1575                 :            :         UNUSED(_opt_var); // Silence compiler warnings
    1576                 :            :         asdl_stmt_seq* a;
    1577                 :            :         Token * newline_var;
    1578         [ +  + ]:    1040748 :         if (
    1579                 :    1040748 :             (a = (asdl_stmt_seq*)_gather_4_rule(p))  // ';'.simple_stmt+
    1580                 :       2724 :             &&
    1581         [ +  + ]:       2724 :             (_opt_var = _PyPegen_expect_token(p, 13), !p->error_indicator)  // ';'?
    1582         [ +  + ]:       2722 :             &&
    1583                 :       2722 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
    1584                 :            :         )
    1585                 :            :         {
    1586                 :            :             D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
    1587                 :       2164 :             _res = a;
    1588   [ -  +  -  - ]:       2164 :             if (_res == NULL && PyErr_Occurred()) {
    1589                 :          0 :                 p->error_indicator = 1;
    1590                 :          0 :                 p->level--;
    1591                 :          0 :                 return NULL;
    1592                 :            :             }
    1593                 :       2164 :             goto done;
    1594                 :            :         }
    1595                 :    1038584 :         p->mark = _mark;
    1596                 :            :         D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
    1597                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
    1598                 :            :     }
    1599                 :    1038584 :     _res = NULL;
    1600                 :    3202600 :   done:
    1601                 :    3202600 :     p->level--;
    1602                 :    3202600 :     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                 :    4251610 : simple_stmt_rule(Parser *p)
    1621                 :            : {
    1622         [ -  + ]:    4251610 :     if (p->level++ == MAXSTACK) {
    1623                 :          0 :         p->error_indicator = 1;
    1624                 :            :         PyErr_NoMemory();
    1625                 :            :     }
    1626         [ -  + ]:    4251610 :     if (p->error_indicator) {
    1627                 :          0 :         p->level--;
    1628                 :          0 :         return NULL;
    1629                 :            :     }
    1630                 :    4251610 :     stmt_ty _res = NULL;
    1631         [ +  + ]:    4251610 :     if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
    1632                 :    1040748 :         p->level--;
    1633                 :    1040748 :         return _res;
    1634                 :            :     }
    1635                 :    3210862 :     int _mark = p->mark;
    1636   [ -  +  -  - ]:    3210862 :     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                 :    3210862 :     int _start_lineno = p->tokens[_mark]->lineno;
    1642                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    1643                 :    3210862 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    1644                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    1645                 :            :     { // assignment
    1646         [ -  + ]:    3210862 :         if (p->error_indicator) {
    1647                 :          0 :             p->level--;
    1648                 :          0 :             return NULL;
    1649                 :            :         }
    1650                 :            :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
    1651                 :            :         stmt_ty assignment_var;
    1652         [ +  + ]:    3210862 :         if (
    1653                 :    3210862 :             (assignment_var = assignment_rule(p))  // assignment
    1654                 :            :         )
    1655                 :            :         {
    1656                 :            :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
    1657                 :     840196 :             _res = assignment_var;
    1658                 :     840196 :             goto done;
    1659                 :            :         }
    1660                 :    2370666 :         p->mark = _mark;
    1661                 :            :         D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    1662                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
    1663                 :            :     }
    1664                 :            :     { // star_expressions
    1665         [ +  + ]:    2370666 :         if (p->error_indicator) {
    1666                 :        412 :             p->level--;
    1667                 :        412 :             return NULL;
    1668                 :            :         }
    1669                 :            :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
    1670                 :            :         expr_ty e;
    1671         [ +  + ]:    2370254 :         if (
    1672                 :    2370254 :             (e = star_expressions_rule(p))  // star_expressions
    1673                 :            :         )
    1674                 :            :         {
    1675                 :            :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
    1676                 :     859293 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    1677         [ -  + ]:     859293 :             if (_token == NULL) {
    1678                 :          0 :                 p->level--;
    1679                 :          0 :                 return NULL;
    1680                 :            :             }
    1681                 :     859293 :             int _end_lineno = _token->end_lineno;
    1682                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    1683                 :     859293 :             int _end_col_offset = _token->end_col_offset;
    1684                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    1685                 :     859293 :             _res = _PyAST_Expr ( e , EXTRA );
    1686   [ -  +  -  - ]:     859293 :             if (_res == NULL && PyErr_Occurred()) {
    1687                 :          0 :                 p->error_indicator = 1;
    1688                 :          0 :                 p->level--;
    1689                 :          0 :                 return NULL;
    1690                 :            :             }
    1691                 :     859293 :             goto done;
    1692                 :            :         }
    1693                 :    1510961 :         p->mark = _mark;
    1694                 :            :         D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    1695                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
    1696                 :            :     }
    1697                 :            :     { // &'return' return_stmt
    1698         [ +  + ]:    1510961 :         if (p->error_indicator) {
    1699                 :         14 :             p->level--;
    1700                 :         14 :             return NULL;
    1701                 :            :         }
    1702                 :            :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
    1703                 :            :         stmt_ty return_stmt_var;
    1704         [ +  + ]:    1510947 :         if (
    1705                 :    1510947 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 519)  // token='return'
    1706         [ +  + ]:     239070 :             &&
    1707                 :     239070 :             (return_stmt_var = return_stmt_rule(p))  // return_stmt
    1708                 :            :         )
    1709                 :            :         {
    1710                 :            :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
    1711                 :     239069 :             _res = return_stmt_var;
    1712                 :     239069 :             goto done;
    1713                 :            :         }
    1714                 :    1271878 :         p->mark = _mark;
    1715                 :            :         D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    1716                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
    1717                 :            :     }
    1718                 :            :     { // &('import' | 'from') import_stmt
    1719         [ +  + ]:    1271878 :         if (p->error_indicator) {
    1720                 :          1 :             p->level--;
    1721                 :          1 :             return NULL;
    1722                 :            :         }
    1723                 :            :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
    1724                 :            :         stmt_ty import_stmt_var;
    1725         [ +  + ]:    1271877 :         if (
    1726                 :    1271877 :             _PyPegen_lookahead(1, _tmp_6_rule, p)
    1727         [ +  + ]:      90627 :             &&
    1728                 :      90627 :             (import_stmt_var = import_stmt_rule(p))  // import_stmt
    1729                 :            :         )
    1730                 :            :         {
    1731                 :            :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
    1732                 :      90571 :             _res = import_stmt_var;
    1733                 :      90571 :             goto done;
    1734                 :            :         }
    1735                 :    1181306 :         p->mark = _mark;
    1736                 :            :         D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    1737                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
    1738                 :            :     }
    1739                 :            :     { // &'raise' raise_stmt
    1740         [ +  + ]:    1181306 :         if (p->error_indicator) {
    1741                 :         21 :             p->level--;
    1742                 :         21 :             return NULL;
    1743                 :            :         }
    1744                 :            :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
    1745                 :            :         stmt_ty raise_stmt_var;
    1746         [ +  + ]:    1181285 :         if (
    1747                 :    1181285 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 522)  // token='raise'
    1748         [ +  - ]:      61013 :             &&
    1749                 :      61013 :             (raise_stmt_var = raise_stmt_rule(p))  // raise_stmt
    1750                 :            :         )
    1751                 :            :         {
    1752                 :            :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
    1753                 :      61013 :             _res = raise_stmt_var;
    1754                 :      61013 :             goto done;
    1755                 :            :         }
    1756                 :    1120272 :         p->mark = _mark;
    1757                 :            :         D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    1758                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
    1759                 :            :     }
    1760                 :            :     { // 'pass'
    1761         [ -  + ]:    1120272 :         if (p->error_indicator) {
    1762                 :          0 :             p->level--;
    1763                 :          0 :             return NULL;
    1764                 :            :         }
    1765                 :            :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
    1766                 :            :         Token * _keyword;
    1767         [ +  + ]:    1120272 :         if (
    1768                 :    1120272 :             (_keyword = _PyPegen_expect_token(p, 504))  // token='pass'
    1769                 :            :         )
    1770                 :            :         {
    1771                 :            :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
    1772                 :      27152 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    1773         [ -  + ]:      27152 :             if (_token == NULL) {
    1774                 :          0 :                 p->level--;
    1775                 :          0 :                 return NULL;
    1776                 :            :             }
    1777                 :      27152 :             int _end_lineno = _token->end_lineno;
    1778                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    1779                 :      27152 :             int _end_col_offset = _token->end_col_offset;
    1780                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    1781                 :      27152 :             _res = _PyAST_Pass ( EXTRA );
    1782   [ -  +  -  - ]:      27152 :             if (_res == NULL && PyErr_Occurred()) {
    1783                 :          0 :                 p->error_indicator = 1;
    1784                 :          0 :                 p->level--;
    1785                 :          0 :                 return NULL;
    1786                 :            :             }
    1787                 :      27152 :             goto done;
    1788                 :            :         }
    1789                 :    1093120 :         p->mark = _mark;
    1790                 :            :         D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    1791                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
    1792                 :            :     }
    1793                 :            :     { // &'del' del_stmt
    1794         [ -  + ]:    1093120 :         if (p->error_indicator) {
    1795                 :          0 :             p->level--;
    1796                 :          0 :             return NULL;
    1797                 :            :         }
    1798                 :            :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
    1799                 :            :         stmt_ty del_stmt_var;
    1800         [ +  + ]:    1093120 :         if (
    1801                 :    1093120 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 603)  // token='del'
    1802         [ +  + ]:       8844 :             &&
    1803                 :       8844 :             (del_stmt_var = del_stmt_rule(p))  // del_stmt
    1804                 :            :         )
    1805                 :            :         {
    1806                 :            :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
    1807                 :       8764 :             _res = del_stmt_var;
    1808                 :       8764 :             goto done;
    1809                 :            :         }
    1810                 :    1084356 :         p->mark = _mark;
    1811                 :            :         D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    1812                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
    1813                 :            :     }
    1814                 :            :     { // &'yield' yield_stmt
    1815         [ +  + ]:    1084356 :         if (p->error_indicator) {
    1816                 :         30 :             p->level--;
    1817                 :         30 :             return NULL;
    1818                 :            :         }
    1819                 :            :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
    1820                 :            :         stmt_ty yield_stmt_var;
    1821         [ +  + ]:    1084326 :         if (
    1822                 :    1084326 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 573)  // token='yield'
    1823         [ +  - ]:      15191 :             &&
    1824                 :      15191 :             (yield_stmt_var = yield_stmt_rule(p))  // yield_stmt
    1825                 :            :         )
    1826                 :            :         {
    1827                 :            :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
    1828                 :      15191 :             _res = yield_stmt_var;
    1829                 :      15191 :             goto done;
    1830                 :            :         }
    1831                 :    1069135 :         p->mark = _mark;
    1832                 :            :         D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    1833                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
    1834                 :            :     }
    1835                 :            :     { // &'assert' assert_stmt
    1836         [ -  + ]:    1069135 :         if (p->error_indicator) {
    1837                 :          0 :             p->level--;
    1838                 :          0 :             return NULL;
    1839                 :            :         }
    1840                 :            :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
    1841                 :            :         stmt_ty assert_stmt_var;
    1842         [ +  + ]:    1069135 :         if (
    1843                 :    1069135 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 526)  // token='assert'
    1844         [ +  + ]:       9810 :             &&
    1845                 :       9810 :             (assert_stmt_var = assert_stmt_rule(p))  // assert_stmt
    1846                 :            :         )
    1847                 :            :         {
    1848                 :            :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
    1849                 :       9808 :             _res = assert_stmt_var;
    1850                 :       9808 :             goto done;
    1851                 :            :         }
    1852                 :    1059327 :         p->mark = _mark;
    1853                 :            :         D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    1854                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
    1855                 :            :     }
    1856                 :            :     { // 'break'
    1857         [ -  + ]:    1059327 :         if (p->error_indicator) {
    1858                 :          0 :             p->level--;
    1859                 :          0 :             return NULL;
    1860                 :            :         }
    1861                 :            :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
    1862                 :            :         Token * _keyword;
    1863         [ +  + ]:    1059327 :         if (
    1864                 :    1059327 :             (_keyword = _PyPegen_expect_token(p, 508))  // token='break'
    1865                 :            :         )
    1866                 :            :         {
    1867                 :            :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
    1868                 :       9747 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    1869         [ -  + ]:       9747 :             if (_token == NULL) {
    1870                 :          0 :                 p->level--;
    1871                 :          0 :                 return NULL;
    1872                 :            :             }
    1873                 :       9747 :             int _end_lineno = _token->end_lineno;
    1874                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    1875                 :       9747 :             int _end_col_offset = _token->end_col_offset;
    1876                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    1877                 :       9747 :             _res = _PyAST_Break ( EXTRA );
    1878   [ -  +  -  - ]:       9747 :             if (_res == NULL && PyErr_Occurred()) {
    1879                 :          0 :                 p->error_indicator = 1;
    1880                 :          0 :                 p->level--;
    1881                 :          0 :                 return NULL;
    1882                 :            :             }
    1883                 :       9747 :             goto done;
    1884                 :            :         }
    1885                 :    1049580 :         p->mark = _mark;
    1886                 :            :         D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    1887                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
    1888                 :            :     }
    1889                 :            :     { // 'continue'
    1890         [ -  + ]:    1049580 :         if (p->error_indicator) {
    1891                 :          0 :             p->level--;
    1892                 :          0 :             return NULL;
    1893                 :            :         }
    1894                 :            :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
    1895                 :            :         Token * _keyword;
    1896         [ +  + ]:    1049580 :         if (
    1897                 :    1049580 :             (_keyword = _PyPegen_expect_token(p, 509))  // token='continue'
    1898                 :            :         )
    1899                 :            :         {
    1900                 :            :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
    1901                 :       8669 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    1902         [ -  + ]:       8669 :             if (_token == NULL) {
    1903                 :          0 :                 p->level--;
    1904                 :          0 :                 return NULL;
    1905                 :            :             }
    1906                 :       8669 :             int _end_lineno = _token->end_lineno;
    1907                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    1908                 :       8669 :             int _end_col_offset = _token->end_col_offset;
    1909                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    1910                 :       8669 :             _res = _PyAST_Continue ( EXTRA );
    1911   [ -  +  -  - ]:       8669 :             if (_res == NULL && PyErr_Occurred()) {
    1912                 :          0 :                 p->error_indicator = 1;
    1913                 :          0 :                 p->level--;
    1914                 :          0 :                 return NULL;
    1915                 :            :             }
    1916                 :       8669 :             goto done;
    1917                 :            :         }
    1918                 :    1040911 :         p->mark = _mark;
    1919                 :            :         D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    1920                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
    1921                 :            :     }
    1922                 :            :     { // &'global' global_stmt
    1923         [ -  + ]:    1040911 :         if (p->error_indicator) {
    1924                 :          0 :             p->level--;
    1925                 :          0 :             return NULL;
    1926                 :            :         }
    1927                 :            :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
    1928                 :            :         stmt_ty global_stmt_var;
    1929         [ +  + ]:    1040911 :         if (
    1930                 :    1040911 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 523)  // token='global'
    1931         [ +  + ]:       1818 :             &&
    1932                 :       1818 :             (global_stmt_var = global_stmt_rule(p))  // global_stmt
    1933                 :            :         )
    1934                 :            :         {
    1935                 :            :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
    1936                 :       1816 :             _res = global_stmt_var;
    1937                 :       1816 :             goto done;
    1938                 :            :         }
    1939                 :    1039095 :         p->mark = _mark;
    1940                 :            :         D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    1941                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
    1942                 :            :     }
    1943                 :            :     { // &'nonlocal' nonlocal_stmt
    1944         [ -  + ]:    1039095 :         if (p->error_indicator) {
    1945                 :          0 :             p->level--;
    1946                 :          0 :             return NULL;
    1947                 :            :         }
    1948                 :            :         D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
    1949                 :            :         stmt_ty nonlocal_stmt_var;
    1950         [ +  + ]:    1039095 :         if (
    1951                 :    1039095 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 524)  // token='nonlocal'
    1952         [ +  + ]:        930 :             &&
    1953                 :        930 :             (nonlocal_stmt_var = nonlocal_stmt_rule(p))  // nonlocal_stmt
    1954                 :            :         )
    1955                 :            :         {
    1956                 :            :             D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
    1957                 :        928 :             _res = nonlocal_stmt_var;
    1958                 :        928 :             goto done;
    1959                 :            :         }
    1960                 :    1038167 :         p->mark = _mark;
    1961                 :            :         D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    1962                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
    1963                 :            :     }
    1964                 :    1038167 :     _res = NULL;
    1965                 :    3210384 :   done:
    1966                 :    3210384 :     _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
    1967                 :    3210384 :     p->level--;
    1968                 :    3210384 :     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                 :    4037143 : compound_stmt_rule(Parser *p)
    1982                 :            : {
    1983         [ -  + ]:    4037143 :     if (p->level++ == MAXSTACK) {
    1984                 :          0 :         p->error_indicator = 1;
    1985                 :            :         PyErr_NoMemory();
    1986                 :            :     }
    1987         [ -  + ]:    4037143 :     if (p->error_indicator) {
    1988                 :          0 :         p->level--;
    1989                 :          0 :         return NULL;
    1990                 :            :     }
    1991                 :    4037143 :     stmt_ty _res = NULL;
    1992                 :    4037143 :     int _mark = p->mark;
    1993                 :            :     { // &('def' | '@' | ASYNC) function_def
    1994         [ -  + ]:    4037143 :         if (p->error_indicator) {
    1995                 :          0 :             p->level--;
    1996                 :          0 :             return NULL;
    1997                 :            :         }
    1998                 :            :         D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
    1999                 :            :         stmt_ty function_def_var;
    2000         [ +  + ]:    4037143 :         if (
    2001                 :    4037143 :             _PyPegen_lookahead(1, _tmp_7_rule, p)
    2002         [ +  + ]:     344359 :             &&
    2003                 :     344359 :             (function_def_var = function_def_rule(p))  // function_def
    2004                 :            :         )
    2005                 :            :         {
    2006                 :            :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
    2007                 :     340159 :             _res = function_def_var;
    2008                 :     340159 :             goto done;
    2009                 :            :         }
    2010                 :    3696984 :         p->mark = _mark;
    2011                 :            :         D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    2012                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
    2013                 :            :     }
    2014                 :            :     { // &'if' if_stmt
    2015         [ +  + ]:    3696984 :         if (p->error_indicator) {
    2016                 :        204 :             p->level--;
    2017                 :        204 :             return NULL;
    2018                 :            :         }
    2019                 :            :         D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
    2020                 :            :         stmt_ty if_stmt_var;
    2021         [ +  + ]:    3696780 :         if (
    2022                 :    3696780 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 634)  // token='if'
    2023         [ +  + ]:     487179 :             &&
    2024                 :     487179 :             (if_stmt_var = if_stmt_rule(p))  // if_stmt
    2025                 :            :         )
    2026                 :            :         {
    2027                 :            :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
    2028                 :     487088 :             _res = if_stmt_var;
    2029                 :     487088 :             goto done;
    2030                 :            :         }
    2031                 :    3209692 :         p->mark = _mark;
    2032                 :            :         D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    2033                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
    2034                 :            :     }
    2035                 :            :     { // &('class' | '@') class_def
    2036         [ +  + ]:    3209692 :         if (p->error_indicator) {
    2037                 :         30 :             p->level--;
    2038                 :         30 :             return NULL;
    2039                 :            :         }
    2040                 :            :         D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
    2041                 :            :         stmt_ty class_def_var;
    2042         [ +  + ]:    3209662 :         if (
    2043                 :    3209662 :             _PyPegen_lookahead(1, _tmp_8_rule, p)
    2044         [ +  + ]:      56490 :             &&
    2045                 :      56490 :             (class_def_var = class_def_rule(p))  // class_def
    2046                 :            :         )
    2047                 :            :         {
    2048                 :            :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
    2049                 :      56449 :             _res = class_def_var;
    2050                 :      56449 :             goto done;
    2051                 :            :         }
    2052                 :    3153213 :         p->mark = _mark;
    2053                 :            :         D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    2054                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
    2055                 :            :     }
    2056                 :            :     { // &('with' | ASYNC) with_stmt
    2057         [ +  + ]:    3153213 :         if (p->error_indicator) {
    2058                 :          8 :             p->level--;
    2059                 :          8 :             return NULL;
    2060                 :            :         }
    2061                 :            :         D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
    2062                 :            :         stmt_ty with_stmt_var;
    2063         [ +  + ]:    3153205 :         if (
    2064                 :    3153205 :             _PyPegen_lookahead(1, _tmp_9_rule, p)
    2065         [ +  + ]:      39282 :             &&
    2066                 :      39282 :             (with_stmt_var = with_stmt_rule(p))  // with_stmt
    2067                 :            :         )
    2068                 :            :         {
    2069                 :            :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
    2070                 :      38946 :             _res = with_stmt_var;
    2071                 :      38946 :             goto done;
    2072                 :            :         }
    2073                 :    3114259 :         p->mark = _mark;
    2074                 :            :         D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    2075                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
    2076                 :            :     }
    2077                 :            :     { // &('for' | ASYNC) for_stmt
    2078         [ +  + ]:    3114259 :         if (p->error_indicator) {
    2079                 :         28 :             p->level--;
    2080                 :         28 :             return NULL;
    2081                 :            :         }
    2082                 :            :         D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
    2083                 :            :         stmt_ty for_stmt_var;
    2084         [ +  + ]:    3114231 :         if (
    2085                 :    3114231 :             _PyPegen_lookahead(1, _tmp_10_rule, p)
    2086         [ +  + ]:      61364 :             &&
    2087                 :      61364 :             (for_stmt_var = for_stmt_rule(p))  // for_stmt
    2088                 :            :         )
    2089                 :            :         {
    2090                 :            :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
    2091                 :      61237 :             _res = for_stmt_var;
    2092                 :      61237 :             goto done;
    2093                 :            :         }
    2094                 :    3052994 :         p->mark = _mark;
    2095                 :            :         D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    2096                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
    2097                 :            :     }
    2098                 :            :     { // &'try' try_stmt
    2099         [ +  + ]:    3052994 :         if (p->error_indicator) {
    2100                 :         17 :             p->level--;
    2101                 :         17 :             return NULL;
    2102                 :            :         }
    2103                 :            :         D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
    2104                 :            :         stmt_ty try_stmt_var;
    2105         [ +  + ]:    3052977 :         if (
    2106                 :    3052977 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 618)  // token='try'
    2107         [ +  + ]:      49059 :             &&
    2108                 :      49059 :             (try_stmt_var = try_stmt_rule(p))  // try_stmt
    2109                 :            :         )
    2110                 :            :         {
    2111                 :            :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
    2112                 :      48962 :             _res = try_stmt_var;
    2113                 :      48962 :             goto done;
    2114                 :            :         }
    2115                 :    3004015 :         p->mark = _mark;
    2116                 :            :         D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    2117                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
    2118                 :            :     }
    2119                 :            :     { // &'while' while_stmt
    2120         [ +  + ]:    3004015 :         if (p->error_indicator) {
    2121                 :         35 :             p->level--;
    2122                 :         35 :             return NULL;
    2123                 :            :         }
    2124                 :            :         D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
    2125                 :            :         stmt_ty while_stmt_var;
    2126         [ +  + ]:    3003980 :         if (
    2127                 :    3003980 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 639)  // token='while'
    2128         [ +  + ]:      11686 :             &&
    2129                 :      11686 :             (while_stmt_var = while_stmt_rule(p))  // while_stmt
    2130                 :            :         )
    2131                 :            :         {
    2132                 :            :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
    2133                 :      11638 :             _res = while_stmt_var;
    2134                 :      11638 :             goto done;
    2135                 :            :         }
    2136                 :    2992342 :         p->mark = _mark;
    2137                 :            :         D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    2138                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
    2139                 :            :     }
    2140                 :            :     { // match_stmt
    2141         [ +  + ]:    2992342 :         if (p->error_indicator) {
    2142                 :          4 :             p->level--;
    2143                 :          4 :             return NULL;
    2144                 :            :         }
    2145                 :            :         D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
    2146                 :            :         stmt_ty match_stmt_var;
    2147         [ +  + ]:    2992338 :         if (
    2148                 :    2992338 :             (match_stmt_var = match_stmt_rule(p))  // match_stmt
    2149                 :            :         )
    2150                 :            :         {
    2151                 :            :             D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
    2152                 :       1223 :             _res = match_stmt_var;
    2153                 :       1223 :             goto done;
    2154                 :            :         }
    2155                 :    2991115 :         p->mark = _mark;
    2156                 :            :         D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    2157                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
    2158                 :            :     }
    2159                 :    2991115 :     _res = NULL;
    2160                 :    4036817 :   done:
    2161                 :    4036817 :     p->level--;
    2162                 :    4036817 :     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                 :    3210862 : assignment_rule(Parser *p)
    2173                 :            : {
    2174         [ -  + ]:    3210862 :     if (p->level++ == MAXSTACK) {
    2175                 :          0 :         p->error_indicator = 1;
    2176                 :            :         PyErr_NoMemory();
    2177                 :            :     }
    2178         [ -  + ]:    3210862 :     if (p->error_indicator) {
    2179                 :          0 :         p->level--;
    2180                 :          0 :         return NULL;
    2181                 :            :     }
    2182                 :    3210862 :     stmt_ty _res = NULL;
    2183                 :    3210862 :     int _mark = p->mark;
    2184   [ -  +  -  - ]:    3210862 :     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                 :    3210862 :     int _start_lineno = p->tokens[_mark]->lineno;
    2190                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    2191                 :    3210862 :     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         [ -  + ]:    3210862 :         if (p->error_indicator) {
    2195                 :          0 :             p->level--;
    2196                 :          0 :             return NULL;
    2197                 :            :         }
    2198                 :            :         D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
    2199                 :            :         Token * _literal;
    2200                 :            :         expr_ty a;
    2201                 :            :         expr_ty b;
    2202                 :            :         void *c;
    2203         [ +  + ]:    3210862 :         if (
    2204                 :    3210862 :             (a = _PyPegen_name_token(p))  // NAME
    2205         [ +  + ]:    1574727 :             &&
    2206                 :    1574727 :             (_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                 :            :             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                 :    3201376 :         p->mark = _mark;
    2232                 :            :         D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
    2233                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
    2234                 :            :     }
    2235                 :            :     { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
    2236         [ +  + ]:    3201376 :         if (p->error_indicator) {
    2237                 :          3 :             p->level--;
    2238                 :          3 :             return NULL;
    2239                 :            :         }
    2240                 :            :         D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
    2241                 :            :         Token * _literal;
    2242                 :            :         void *a;
    2243                 :            :         expr_ty b;
    2244                 :            :         void *c;
    2245         [ +  + ]:    3201373 :         if (
    2246                 :    3201373 :             (a = _tmp_12_rule(p))  // '(' single_target ')' | single_subscript_attribute_target
    2247         [ +  + ]:     178230 :             &&
    2248                 :     178230 :             (_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                 :            :             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                 :    3199404 :         p->mark = _mark;
    2274                 :            :         D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
    2275                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
    2276                 :            :     }
    2277                 :            :     { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
    2278         [ +  + ]:    3199404 :         if (p->error_indicator) {
    2279                 :        224 :             p->level--;
    2280                 :        224 :             return NULL;
    2281                 :            :         }
    2282                 :            :         D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
    2283                 :            :         asdl_expr_seq* a;
    2284                 :            :         void *b;
    2285                 :            :         void *tc;
    2286         [ +  + ]:    3199180 :         if (
    2287                 :    3199180 :             (a = (asdl_expr_seq*)_loop1_14_rule(p))  // ((star_targets '='))+
    2288         [ +  + ]:     803173 :             &&
    2289                 :     803173 :             (b = _tmp_15_rule(p))  // yield_expr | star_expressions
    2290         [ +  + ]:     803157 :             &&
    2291                 :     803157 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22)  // token='='
    2292                 :     803153 :             &&
    2293         [ +  - ]:     803153 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    2294                 :            :         )
    2295                 :            :         {
    2296                 :            :             D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
    2297                 :     803153 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    2298         [ -  + ]:     803153 :             if (_token == NULL) {
    2299                 :          0 :                 p->level--;
    2300                 :          0 :                 return NULL;
    2301                 :            :             }
    2302                 :     803153 :             int _end_lineno = _token->end_lineno;
    2303                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    2304                 :     803153 :             int _end_col_offset = _token->end_col_offset;
    2305                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    2306                 :     803153 :             _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
    2307   [ -  +  -  - ]:     803153 :             if (_res == NULL && PyErr_Occurred()) {
    2308                 :          0 :                 p->error_indicator = 1;
    2309                 :          0 :                 p->level--;
    2310                 :          0 :                 return NULL;
    2311                 :            :             }
    2312                 :     803153 :             goto done;
    2313                 :            :         }
    2314                 :    2396027 :         p->mark = _mark;
    2315                 :            :         D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
    2316                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
    2317                 :            :     }
    2318                 :            :     { // single_target augassign ~ (yield_expr | star_expressions)
    2319         [ +  + ]:    2396027 :         if (p->error_indicator) {
    2320                 :         41 :             p->level--;
    2321                 :         41 :             return NULL;
    2322                 :            :         }
    2323                 :            :         D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
    2324                 :    2395986 :         int _cut_var = 0;
    2325                 :            :         expr_ty a;
    2326                 :            :         AugOperator* b;
    2327                 :            :         void *c;
    2328         [ +  + ]:    2395986 :         if (
    2329                 :    2395986 :             (a = single_target_rule(p))  // single_target
    2330         [ +  + ]:     761806 :             &&
    2331                 :     761806 :             (b = augassign_rule(p))  // augassign
    2332                 :            :             &&
    2333                 :      25588 :             (_cut_var = 1)
    2334         [ +  - ]:      25588 :             &&
    2335                 :      25588 :             (c = _tmp_16_rule(p))  // yield_expr | star_expressions
    2336                 :            :         )
    2337                 :            :         {
    2338                 :            :             D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
    2339                 :      25588 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    2340         [ -  + ]:      25588 :             if (_token == NULL) {
    2341                 :          0 :                 p->level--;
    2342                 :          0 :                 return NULL;
    2343                 :            :             }
    2344                 :      25588 :             int _end_lineno = _token->end_lineno;
    2345                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    2346                 :      25588 :             int _end_col_offset = _token->end_col_offset;
    2347                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    2348                 :      25588 :             _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
    2349   [ -  +  -  - ]:      25588 :             if (_res == NULL && PyErr_Occurred()) {
    2350                 :          0 :                 p->error_indicator = 1;
    2351                 :          0 :                 p->level--;
    2352                 :          0 :                 return NULL;
    2353                 :            :             }
    2354                 :      25588 :             goto done;
    2355                 :            :         }
    2356                 :    2370398 :         p->mark = _mark;
    2357                 :            :         D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
    2358                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
    2359         [ -  + ]:    2370398 :         if (_cut_var) {
    2360                 :          0 :             p->level--;
    2361                 :          0 :             return NULL;
    2362                 :            :         }
    2363                 :            :     }
    2364         [ +  + ]:    2370398 :     if (p->call_invalid_rules) { // invalid_assignment
    2365         [ -  + ]:        901 :         if (p->error_indicator) {
    2366                 :          0 :             p->level--;
    2367                 :          0 :             return NULL;
    2368                 :            :         }
    2369                 :            :         D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
    2370                 :            :         void *invalid_assignment_var;
    2371         [ -  + ]:        901 :         if (
    2372                 :        901 :             (invalid_assignment_var = invalid_assignment_rule(p))  // invalid_assignment
    2373                 :            :         )
    2374                 :            :         {
    2375                 :            :             D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
    2376                 :          0 :             _res = invalid_assignment_var;
    2377                 :          0 :             goto done;
    2378                 :            :         }
    2379                 :        901 :         p->mark = _mark;
    2380                 :            :         D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
    2381                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
    2382                 :            :     }
    2383                 :    2370398 :     _res = NULL;
    2384                 :    3210594 :   done:
    2385                 :    3210594 :     p->level--;
    2386                 :    3210594 :     return _res;
    2387                 :            : }
    2388                 :            : 
    2389                 :            : // annotated_rhs: yield_expr | star_expressions
    2390                 :            : static expr_ty
    2391                 :       7604 : annotated_rhs_rule(Parser *p)
    2392                 :            : {
    2393         [ -  + ]:       7604 :     if (p->level++ == MAXSTACK) {
    2394                 :          0 :         p->error_indicator = 1;
    2395                 :            :         PyErr_NoMemory();
    2396                 :            :     }
    2397         [ -  + ]:       7604 :     if (p->error_indicator) {
    2398                 :          0 :         p->level--;
    2399                 :          0 :         return NULL;
    2400                 :            :     }
    2401                 :       7604 :     expr_ty _res = NULL;
    2402                 :       7604 :     int _mark = p->mark;
    2403                 :            :     { // yield_expr
    2404         [ -  + ]:       7604 :         if (p->error_indicator) {
    2405                 :          0 :             p->level--;
    2406                 :          0 :             return NULL;
    2407                 :            :         }
    2408                 :            :         D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
    2409                 :            :         expr_ty yield_expr_var;
    2410         [ +  + ]:       7604 :         if (
    2411                 :       7604 :             (yield_expr_var = yield_expr_rule(p))  // yield_expr
    2412                 :            :         )
    2413                 :            :         {
    2414                 :            :             D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
    2415                 :          1 :             _res = yield_expr_var;
    2416                 :          1 :             goto done;
    2417                 :            :         }
    2418                 :       7603 :         p->mark = _mark;
    2419                 :            :         D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
    2420                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
    2421                 :            :     }
    2422                 :            :     { // star_expressions
    2423         [ -  + ]:       7603 :         if (p->error_indicator) {
    2424                 :          0 :             p->level--;
    2425                 :          0 :             return NULL;
    2426                 :            :         }
    2427                 :            :         D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
    2428                 :            :         expr_ty star_expressions_var;
    2429         [ +  - ]:       7603 :         if (
    2430                 :       7603 :             (star_expressions_var = star_expressions_rule(p))  // star_expressions
    2431                 :            :         )
    2432                 :            :         {
    2433                 :            :             D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
    2434                 :       7603 :             _res = star_expressions_var;
    2435                 :       7603 :             goto done;
    2436                 :            :         }
    2437                 :          0 :         p->mark = _mark;
    2438                 :            :         D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
    2439                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
    2440                 :            :     }
    2441                 :          0 :     _res = NULL;
    2442                 :       7604 :   done:
    2443                 :       7604 :     p->level--;
    2444                 :       7604 :     return _res;
    2445                 :            : }
    2446                 :            : 
    2447                 :            : // augassign:
    2448                 :            : //     | '+='
    2449                 :            : //     | '-='
    2450                 :            : //     | '*='
    2451                 :            : //     | '@='
    2452                 :            : //     | '/='
    2453                 :            : //     | '%='
    2454                 :            : //     | '&='
    2455                 :            : //     | '|='
    2456                 :            : //     | '^='
    2457                 :            : //     | '<<='
    2458                 :            : //     | '>>='
    2459                 :            : //     | '**='
    2460                 :            : //     | '//='
    2461                 :            : static AugOperator*
    2462                 :     761937 : augassign_rule(Parser *p)
    2463                 :            : {
    2464         [ -  + ]:     761937 :     if (p->level++ == MAXSTACK) {
    2465                 :          0 :         p->error_indicator = 1;
    2466                 :            :         PyErr_NoMemory();
    2467                 :            :     }
    2468         [ -  + ]:     761937 :     if (p->error_indicator) {
    2469                 :          0 :         p->level--;
    2470                 :          0 :         return NULL;
    2471                 :            :     }
    2472                 :     761937 :     AugOperator* _res = NULL;
    2473                 :     761937 :     int _mark = p->mark;
    2474                 :            :     { // '+='
    2475         [ -  + ]:     761937 :         if (p->error_indicator) {
    2476                 :          0 :             p->level--;
    2477                 :          0 :             return NULL;
    2478                 :            :         }
    2479                 :            :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
    2480                 :            :         Token * _literal;
    2481         [ +  + ]:     761937 :         if (
    2482                 :     761937 :             (_literal = _PyPegen_expect_token(p, 36))  // token='+='
    2483                 :            :         )
    2484                 :            :         {
    2485                 :            :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
    2486                 :      18834 :             _res = _PyPegen_augoperator ( p , Add );
    2487   [ -  +  -  - ]:      18834 :             if (_res == NULL && PyErr_Occurred()) {
    2488                 :          0 :                 p->error_indicator = 1;
    2489                 :          0 :                 p->level--;
    2490                 :          0 :                 return NULL;
    2491                 :            :             }
    2492                 :      18834 :             goto done;
    2493                 :            :         }
    2494                 :     743103 :         p->mark = _mark;
    2495                 :            :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2496                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
    2497                 :            :     }
    2498                 :            :     { // '-='
    2499         [ -  + ]:     743103 :         if (p->error_indicator) {
    2500                 :          0 :             p->level--;
    2501                 :          0 :             return NULL;
    2502                 :            :         }
    2503                 :            :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
    2504                 :            :         Token * _literal;
    2505         [ +  + ]:     743103 :         if (
    2506                 :     743103 :             (_literal = _PyPegen_expect_token(p, 37))  // token='-='
    2507                 :            :         )
    2508                 :            :         {
    2509                 :            :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
    2510                 :       2726 :             _res = _PyPegen_augoperator ( p , Sub );
    2511   [ -  +  -  - ]:       2726 :             if (_res == NULL && PyErr_Occurred()) {
    2512                 :          0 :                 p->error_indicator = 1;
    2513                 :          0 :                 p->level--;
    2514                 :          0 :                 return NULL;
    2515                 :            :             }
    2516                 :       2726 :             goto done;
    2517                 :            :         }
    2518                 :     740377 :         p->mark = _mark;
    2519                 :            :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2520                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
    2521                 :            :     }
    2522                 :            :     { // '*='
    2523         [ -  + ]:     740377 :         if (p->error_indicator) {
    2524                 :          0 :             p->level--;
    2525                 :          0 :             return NULL;
    2526                 :            :         }
    2527                 :            :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
    2528                 :            :         Token * _literal;
    2529         [ +  + ]:     740377 :         if (
    2530                 :     740377 :             (_literal = _PyPegen_expect_token(p, 38))  // token='*='
    2531                 :            :         )
    2532                 :            :         {
    2533                 :            :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
    2534                 :        651 :             _res = _PyPegen_augoperator ( p , Mult );
    2535   [ -  +  -  - ]:        651 :             if (_res == NULL && PyErr_Occurred()) {
    2536                 :          0 :                 p->error_indicator = 1;
    2537                 :          0 :                 p->level--;
    2538                 :          0 :                 return NULL;
    2539                 :            :             }
    2540                 :        651 :             goto done;
    2541                 :            :         }
    2542                 :     739726 :         p->mark = _mark;
    2543                 :            :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2544                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
    2545                 :            :     }
    2546                 :            :     { // '@='
    2547         [ -  + ]:     739726 :         if (p->error_indicator) {
    2548                 :          0 :             p->level--;
    2549                 :          0 :             return NULL;
    2550                 :            :         }
    2551                 :            :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
    2552                 :            :         Token * _literal;
    2553         [ +  + ]:     739726 :         if (
    2554                 :     739726 :             (_literal = _PyPegen_expect_token(p, 50))  // token='@='
    2555                 :            :         )
    2556                 :            :         {
    2557                 :            :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
    2558                 :         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                 :     739681 :         p->mark = _mark;
    2567                 :            :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2568                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
    2569                 :            :     }
    2570                 :            :     { // '/='
    2571         [ -  + ]:     739681 :         if (p->error_indicator) {
    2572                 :          0 :             p->level--;
    2573                 :          0 :             return NULL;
    2574                 :            :         }
    2575                 :            :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
    2576                 :            :         Token * _literal;
    2577         [ +  + ]:     739681 :         if (
    2578                 :     739681 :             (_literal = _PyPegen_expect_token(p, 39))  // token='/='
    2579                 :            :         )
    2580                 :            :         {
    2581                 :            :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
    2582                 :        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                 :     739555 :         p->mark = _mark;
    2591                 :            :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2592                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
    2593                 :            :     }
    2594                 :            :     { // '%='
    2595         [ -  + ]:     739555 :         if (p->error_indicator) {
    2596                 :          0 :             p->level--;
    2597                 :          0 :             return NULL;
    2598                 :            :         }
    2599                 :            :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
    2600                 :            :         Token * _literal;
    2601         [ +  + ]:     739555 :         if (
    2602                 :     739555 :             (_literal = _PyPegen_expect_token(p, 40))  // token='%='
    2603                 :            :         )
    2604                 :            :         {
    2605                 :            :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
    2606                 :         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                 :     739482 :         p->mark = _mark;
    2615                 :            :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2616                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
    2617                 :            :     }
    2618                 :            :     { // '&='
    2619         [ -  + ]:     739482 :         if (p->error_indicator) {
    2620                 :          0 :             p->level--;
    2621                 :          0 :             return NULL;
    2622                 :            :         }
    2623                 :            :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
    2624                 :            :         Token * _literal;
    2625         [ +  + ]:     739482 :         if (
    2626                 :     739482 :             (_literal = _PyPegen_expect_token(p, 41))  // token='&='
    2627                 :            :         )
    2628                 :            :         {
    2629                 :            :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
    2630                 :        477 :             _res = _PyPegen_augoperator ( p , BitAnd );
    2631   [ -  +  -  - ]:        477 :             if (_res == NULL && PyErr_Occurred()) {
    2632                 :          0 :                 p->error_indicator = 1;
    2633                 :          0 :                 p->level--;
    2634                 :          0 :                 return NULL;
    2635                 :            :             }
    2636                 :        477 :             goto done;
    2637                 :            :         }
    2638                 :     739005 :         p->mark = _mark;
    2639                 :            :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2640                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
    2641                 :            :     }
    2642                 :            :     { // '|='
    2643         [ -  + ]:     739005 :         if (p->error_indicator) {
    2644                 :          0 :             p->level--;
    2645                 :          0 :             return NULL;
    2646                 :            :         }
    2647                 :            :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
    2648                 :            :         Token * _literal;
    2649         [ +  + ]:     739005 :         if (
    2650                 :     739005 :             (_literal = _PyPegen_expect_token(p, 42))  // token='|='
    2651                 :            :         )
    2652                 :            :         {
    2653                 :            :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
    2654                 :       1692 :             _res = _PyPegen_augoperator ( p , BitOr );
    2655   [ -  +  -  - ]:       1692 :             if (_res == NULL && PyErr_Occurred()) {
    2656                 :          0 :                 p->error_indicator = 1;
    2657                 :          0 :                 p->level--;
    2658                 :          0 :                 return NULL;
    2659                 :            :             }
    2660                 :       1692 :             goto done;
    2661                 :            :         }
    2662                 :     737313 :         p->mark = _mark;
    2663                 :            :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2664                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
    2665                 :            :     }
    2666                 :            :     { // '^='
    2667         [ -  + ]:     737313 :         if (p->error_indicator) {
    2668                 :          0 :             p->level--;
    2669                 :          0 :             return NULL;
    2670                 :            :         }
    2671                 :            :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
    2672                 :            :         Token * _literal;
    2673         [ +  + ]:     737313 :         if (
    2674                 :     737313 :             (_literal = _PyPegen_expect_token(p, 43))  // token='^='
    2675                 :            :         )
    2676                 :            :         {
    2677                 :            :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
    2678                 :        212 :             _res = _PyPegen_augoperator ( p , BitXor );
    2679   [ -  +  -  - ]:        212 :             if (_res == NULL && PyErr_Occurred()) {
    2680                 :          0 :                 p->error_indicator = 1;
    2681                 :          0 :                 p->level--;
    2682                 :          0 :                 return NULL;
    2683                 :            :             }
    2684                 :        212 :             goto done;
    2685                 :            :         }
    2686                 :     737101 :         p->mark = _mark;
    2687                 :            :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2688                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
    2689                 :            :     }
    2690                 :            :     { // '<<='
    2691         [ -  + ]:     737101 :         if (p->error_indicator) {
    2692                 :          0 :             p->level--;
    2693                 :          0 :             return NULL;
    2694                 :            :         }
    2695                 :            :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
    2696                 :            :         Token * _literal;
    2697         [ +  + ]:     737101 :         if (
    2698                 :     737101 :             (_literal = _PyPegen_expect_token(p, 44))  // token='<<='
    2699                 :            :         )
    2700                 :            :         {
    2701                 :            :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
    2702                 :        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                 :     736832 :         p->mark = _mark;
    2711                 :            :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2712                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
    2713                 :            :     }
    2714                 :            :     { // '>>='
    2715         [ -  + ]:     736832 :         if (p->error_indicator) {
    2716                 :          0 :             p->level--;
    2717                 :          0 :             return NULL;
    2718                 :            :         }
    2719                 :            :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
    2720                 :            :         Token * _literal;
    2721         [ +  + ]:     736832 :         if (
    2722                 :     736832 :             (_literal = _PyPegen_expect_token(p, 45))  // token='>>='
    2723                 :            :         )
    2724                 :            :         {
    2725                 :            :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
    2726                 :         82 :             _res = _PyPegen_augoperator ( p , RShift );
    2727   [ -  +  -  - ]:         82 :             if (_res == NULL && PyErr_Occurred()) {
    2728                 :          0 :                 p->error_indicator = 1;
    2729                 :          0 :                 p->level--;
    2730                 :          0 :                 return NULL;
    2731                 :            :             }
    2732                 :         82 :             goto done;
    2733                 :            :         }
    2734                 :     736750 :         p->mark = _mark;
    2735                 :            :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2736                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
    2737                 :            :     }
    2738                 :            :     { // '**='
    2739         [ -  + ]:     736750 :         if (p->error_indicator) {
    2740                 :          0 :             p->level--;
    2741                 :          0 :             return NULL;
    2742                 :            :         }
    2743                 :            :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
    2744                 :            :         Token * _literal;
    2745         [ +  + ]:     736750 :         if (
    2746                 :     736750 :             (_literal = _PyPegen_expect_token(p, 46))  // token='**='
    2747                 :            :         )
    2748                 :            :         {
    2749                 :            :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
    2750                 :         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                 :     736692 :         p->mark = _mark;
    2759                 :            :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2760                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
    2761                 :            :     }
    2762                 :            :     { // '//='
    2763         [ -  + ]:     736692 :         if (p->error_indicator) {
    2764                 :          0 :             p->level--;
    2765                 :          0 :             return NULL;
    2766                 :            :         }
    2767                 :            :         D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
    2768                 :            :         Token * _literal;
    2769         [ +  + ]:     736692 :         if (
    2770                 :     736692 :             (_literal = _PyPegen_expect_token(p, 48))  // token='//='
    2771                 :            :         )
    2772                 :            :         {
    2773                 :            :             D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
    2774                 :        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                 :     736335 :         p->mark = _mark;
    2783                 :            :         D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
    2784                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
    2785                 :            :     }
    2786                 :     736335 :     _res = NULL;
    2787                 :     761937 :   done:
    2788                 :     761937 :     p->level--;
    2789                 :     761937 :     return _res;
    2790                 :            : }
    2791                 :            : 
    2792                 :            : // return_stmt: 'return' star_expressions?
    2793                 :            : static stmt_ty
    2794                 :     239070 : return_stmt_rule(Parser *p)
    2795                 :            : {
    2796         [ -  + ]:     239070 :     if (p->level++ == MAXSTACK) {
    2797                 :          0 :         p->error_indicator = 1;
    2798                 :            :         PyErr_NoMemory();
    2799                 :            :     }
    2800         [ -  + ]:     239070 :     if (p->error_indicator) {
    2801                 :          0 :         p->level--;
    2802                 :          0 :         return NULL;
    2803                 :            :     }
    2804                 :     239070 :     stmt_ty _res = NULL;
    2805                 :     239070 :     int _mark = p->mark;
    2806   [ -  +  -  - ]:     239070 :     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                 :     239070 :     int _start_lineno = p->tokens[_mark]->lineno;
    2812                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    2813                 :     239070 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    2814                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    2815                 :            :     { // 'return' star_expressions?
    2816         [ -  + ]:     239070 :         if (p->error_indicator) {
    2817                 :          0 :             p->level--;
    2818                 :          0 :             return NULL;
    2819                 :            :         }
    2820                 :            :         D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
    2821                 :            :         Token * _keyword;
    2822                 :            :         void *a;
    2823         [ +  - ]:     239070 :         if (
    2824                 :     239070 :             (_keyword = _PyPegen_expect_token(p, 519))  // token='return'
    2825                 :     239070 :             &&
    2826         [ +  + ]:     239070 :             (a = star_expressions_rule(p), !p->error_indicator)  // star_expressions?
    2827                 :            :         )
    2828                 :            :         {
    2829                 :            :             D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
    2830                 :     239069 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    2831         [ -  + ]:     239069 :             if (_token == NULL) {
    2832                 :          0 :                 p->level--;
    2833                 :          0 :                 return NULL;
    2834                 :            :             }
    2835                 :     239069 :             int _end_lineno = _token->end_lineno;
    2836                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    2837                 :     239069 :             int _end_col_offset = _token->end_col_offset;
    2838                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    2839                 :     239069 :             _res = _PyAST_Return ( a , EXTRA );
    2840   [ -  +  -  - ]:     239069 :             if (_res == NULL && PyErr_Occurred()) {
    2841                 :          0 :                 p->error_indicator = 1;
    2842                 :          0 :                 p->level--;
    2843                 :          0 :                 return NULL;
    2844                 :            :             }
    2845                 :     239069 :             goto done;
    2846                 :            :         }
    2847                 :          1 :         p->mark = _mark;
    2848                 :            :         D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    2849                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
    2850                 :            :     }
    2851                 :          1 :     _res = NULL;
    2852                 :     239070 :   done:
    2853                 :     239070 :     p->level--;
    2854                 :     239070 :     return _res;
    2855                 :            : }
    2856                 :            : 
    2857                 :            : // raise_stmt: 'raise' expression ['from' expression] | 'raise'
    2858                 :            : static stmt_ty
    2859                 :      61013 : raise_stmt_rule(Parser *p)
    2860                 :            : {
    2861         [ -  + ]:      61013 :     if (p->level++ == MAXSTACK) {
    2862                 :          0 :         p->error_indicator = 1;
    2863                 :            :         PyErr_NoMemory();
    2864                 :            :     }
    2865         [ -  + ]:      61013 :     if (p->error_indicator) {
    2866                 :          0 :         p->level--;
    2867                 :          0 :         return NULL;
    2868                 :            :     }
    2869                 :      61013 :     stmt_ty _res = NULL;
    2870                 :      61013 :     int _mark = p->mark;
    2871   [ -  +  -  - ]:      61013 :     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                 :      61013 :     int _start_lineno = p->tokens[_mark]->lineno;
    2877                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    2878                 :      61013 :     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         [ -  + ]:      61013 :         if (p->error_indicator) {
    2882                 :          0 :             p->level--;
    2883                 :          0 :             return NULL;
    2884                 :            :         }
    2885                 :            :         D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
    2886                 :            :         Token * _keyword;
    2887                 :            :         expr_ty a;
    2888                 :            :         void *b;
    2889         [ +  - ]:      61013 :         if (
    2890                 :      61013 :             (_keyword = _PyPegen_expect_token(p, 522))  // token='raise'
    2891         [ +  + ]:      61013 :             &&
    2892                 :      61013 :             (a = expression_rule(p))  // expression
    2893                 :      56377 :             &&
    2894         [ +  - ]:      56377 :             (b = _tmp_17_rule(p), !p->error_indicator)  // ['from' expression]
    2895                 :            :         )
    2896                 :            :         {
    2897                 :            :             D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
    2898                 :      56377 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    2899         [ -  + ]:      56377 :             if (_token == NULL) {
    2900                 :          0 :                 p->level--;
    2901                 :          0 :                 return NULL;
    2902                 :            :             }
    2903                 :      56377 :             int _end_lineno = _token->end_lineno;
    2904                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    2905                 :      56377 :             int _end_col_offset = _token->end_col_offset;
    2906                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    2907                 :      56377 :             _res = _PyAST_Raise ( a , b , EXTRA );
    2908   [ -  +  -  - ]:      56377 :             if (_res == NULL && PyErr_Occurred()) {
    2909                 :          0 :                 p->error_indicator = 1;
    2910                 :          0 :                 p->level--;
    2911                 :          0 :                 return NULL;
    2912                 :            :             }
    2913                 :      56377 :             goto done;
    2914                 :            :         }
    2915                 :       4636 :         p->mark = _mark;
    2916                 :            :         D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    2917                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
    2918                 :            :     }
    2919                 :            :     { // 'raise'
    2920         [ -  + ]:       4636 :         if (p->error_indicator) {
    2921                 :          0 :             p->level--;
    2922                 :          0 :             return NULL;
    2923                 :            :         }
    2924                 :            :         D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
    2925                 :            :         Token * _keyword;
    2926         [ +  - ]:       4636 :         if (
    2927                 :       4636 :             (_keyword = _PyPegen_expect_token(p, 522))  // token='raise'
    2928                 :            :         )
    2929                 :            :         {
    2930                 :            :             D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
    2931                 :       4636 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    2932         [ -  + ]:       4636 :             if (_token == NULL) {
    2933                 :          0 :                 p->level--;
    2934                 :          0 :                 return NULL;
    2935                 :            :             }
    2936                 :       4636 :             int _end_lineno = _token->end_lineno;
    2937                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    2938                 :       4636 :             int _end_col_offset = _token->end_col_offset;
    2939                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    2940                 :       4636 :             _res = _PyAST_Raise ( NULL , NULL , EXTRA );
    2941   [ -  +  -  - ]:       4636 :             if (_res == NULL && PyErr_Occurred()) {
    2942                 :          0 :                 p->error_indicator = 1;
    2943                 :          0 :                 p->level--;
    2944                 :          0 :                 return NULL;
    2945                 :            :             }
    2946                 :       4636 :             goto done;
    2947                 :            :         }
    2948                 :          0 :         p->mark = _mark;
    2949                 :            :         D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    2950                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
    2951                 :            :     }
    2952                 :          0 :     _res = NULL;
    2953                 :      61013 :   done:
    2954                 :      61013 :     p->level--;
    2955                 :      61013 :     return _res;
    2956                 :            : }
    2957                 :            : 
    2958                 :            : // global_stmt: 'global' ','.NAME+
    2959                 :            : static stmt_ty
    2960                 :       1818 : global_stmt_rule(Parser *p)
    2961                 :            : {
    2962         [ -  + ]:       1818 :     if (p->level++ == MAXSTACK) {
    2963                 :          0 :         p->error_indicator = 1;
    2964                 :            :         PyErr_NoMemory();
    2965                 :            :     }
    2966         [ -  + ]:       1818 :     if (p->error_indicator) {
    2967                 :          0 :         p->level--;
    2968                 :          0 :         return NULL;
    2969                 :            :     }
    2970                 :       1818 :     stmt_ty _res = NULL;
    2971                 :       1818 :     int _mark = p->mark;
    2972   [ -  +  -  - ]:       1818 :     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                 :       1818 :     int _start_lineno = p->tokens[_mark]->lineno;
    2978                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    2979                 :       1818 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    2980                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    2981                 :            :     { // 'global' ','.NAME+
    2982         [ -  + ]:       1818 :         if (p->error_indicator) {
    2983                 :          0 :             p->level--;
    2984                 :          0 :             return NULL;
    2985                 :            :         }
    2986                 :            :         D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
    2987                 :            :         Token * _keyword;
    2988                 :            :         asdl_expr_seq* a;
    2989         [ +  - ]:       1818 :         if (
    2990                 :       1818 :             (_keyword = _PyPegen_expect_token(p, 523))  // token='global'
    2991         [ +  + ]:       1818 :             &&
    2992                 :       1818 :             (a = (asdl_expr_seq*)_gather_18_rule(p))  // ','.NAME+
    2993                 :            :         )
    2994                 :            :         {
    2995                 :            :             D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
    2996                 :       1816 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    2997         [ -  + ]:       1816 :             if (_token == NULL) {
    2998                 :          0 :                 p->level--;
    2999                 :          0 :                 return NULL;
    3000                 :            :             }
    3001                 :       1816 :             int _end_lineno = _token->end_lineno;
    3002                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3003                 :       1816 :             int _end_col_offset = _token->end_col_offset;
    3004                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3005                 :       1816 :             _res = _PyAST_Global ( CHECK ( asdl_identifier_seq* , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
    3006   [ -  +  -  - ]:       1816 :             if (_res == NULL && PyErr_Occurred()) {
    3007                 :          0 :                 p->error_indicator = 1;
    3008                 :          0 :                 p->level--;
    3009                 :          0 :                 return NULL;
    3010                 :            :             }
    3011                 :       1816 :             goto done;
    3012                 :            :         }
    3013                 :          2 :         p->mark = _mark;
    3014                 :            :         D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    3015                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
    3016                 :            :     }
    3017                 :          2 :     _res = NULL;
    3018                 :       1818 :   done:
    3019                 :       1818 :     p->level--;
    3020                 :       1818 :     return _res;
    3021                 :            : }
    3022                 :            : 
    3023                 :            : // nonlocal_stmt: 'nonlocal' ','.NAME+
    3024                 :            : static stmt_ty
    3025                 :        930 : nonlocal_stmt_rule(Parser *p)
    3026                 :            : {
    3027         [ -  + ]:        930 :     if (p->level++ == MAXSTACK) {
    3028                 :          0 :         p->error_indicator = 1;
    3029                 :            :         PyErr_NoMemory();
    3030                 :            :     }
    3031         [ -  + ]:        930 :     if (p->error_indicator) {
    3032                 :          0 :         p->level--;
    3033                 :          0 :         return NULL;
    3034                 :            :     }
    3035                 :        930 :     stmt_ty _res = NULL;
    3036                 :        930 :     int _mark = p->mark;
    3037   [ -  +  -  - ]:        930 :     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                 :        930 :     int _start_lineno = p->tokens[_mark]->lineno;
    3043                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3044                 :        930 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    3045                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    3046                 :            :     { // 'nonlocal' ','.NAME+
    3047         [ -  + ]:        930 :         if (p->error_indicator) {
    3048                 :          0 :             p->level--;
    3049                 :          0 :             return NULL;
    3050                 :            :         }
    3051                 :            :         D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
    3052                 :            :         Token * _keyword;
    3053                 :            :         asdl_expr_seq* a;
    3054         [ +  - ]:        930 :         if (
    3055                 :        930 :             (_keyword = _PyPegen_expect_token(p, 524))  // token='nonlocal'
    3056         [ +  + ]:        930 :             &&
    3057                 :        930 :             (a = (asdl_expr_seq*)_gather_20_rule(p))  // ','.NAME+
    3058                 :            :         )
    3059                 :            :         {
    3060                 :            :             D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
    3061                 :        928 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3062         [ -  + ]:        928 :             if (_token == NULL) {
    3063                 :          0 :                 p->level--;
    3064                 :          0 :                 return NULL;
    3065                 :            :             }
    3066                 :        928 :             int _end_lineno = _token->end_lineno;
    3067                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3068                 :        928 :             int _end_col_offset = _token->end_col_offset;
    3069                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3070                 :        928 :             _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq* , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
    3071   [ -  +  -  - ]:        928 :             if (_res == NULL && PyErr_Occurred()) {
    3072                 :          0 :                 p->error_indicator = 1;
    3073                 :          0 :                 p->level--;
    3074                 :          0 :                 return NULL;
    3075                 :            :             }
    3076                 :        928 :             goto done;
    3077                 :            :         }
    3078                 :          2 :         p->mark = _mark;
    3079                 :            :         D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    3080                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
    3081                 :            :     }
    3082                 :          2 :     _res = NULL;
    3083                 :        930 :   done:
    3084                 :        930 :     p->level--;
    3085                 :        930 :     return _res;
    3086                 :            : }
    3087                 :            : 
    3088                 :            : // del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
    3089                 :            : static stmt_ty
    3090                 :       8844 : del_stmt_rule(Parser *p)
    3091                 :            : {
    3092         [ -  + ]:       8844 :     if (p->level++ == MAXSTACK) {
    3093                 :          0 :         p->error_indicator = 1;
    3094                 :            :         PyErr_NoMemory();
    3095                 :            :     }
    3096         [ -  + ]:       8844 :     if (p->error_indicator) {
    3097                 :          0 :         p->level--;
    3098                 :          0 :         return NULL;
    3099                 :            :     }
    3100                 :       8844 :     stmt_ty _res = NULL;
    3101                 :       8844 :     int _mark = p->mark;
    3102   [ -  +  -  - ]:       8844 :     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                 :       8844 :     int _start_lineno = p->tokens[_mark]->lineno;
    3108                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3109                 :       8844 :     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         [ -  + ]:       8844 :         if (p->error_indicator) {
    3113                 :          0 :             p->level--;
    3114                 :          0 :             return NULL;
    3115                 :            :         }
    3116                 :            :         D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
    3117                 :            :         Token * _keyword;
    3118                 :            :         asdl_expr_seq* a;
    3119         [ +  - ]:       8844 :         if (
    3120                 :       8844 :             (_keyword = _PyPegen_expect_token(p, 603))  // token='del'
    3121         [ +  + ]:       8844 :             &&
    3122                 :       8844 :             (a = del_targets_rule(p))  // del_targets
    3123         [ +  + ]:       8798 :             &&
    3124                 :       8798 :             _PyPegen_lookahead(1, _tmp_22_rule, p)
    3125                 :            :         )
    3126                 :            :         {
    3127                 :            :             D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
    3128                 :       8764 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3129         [ -  + ]:       8764 :             if (_token == NULL) {
    3130                 :          0 :                 p->level--;
    3131                 :          0 :                 return NULL;
    3132                 :            :             }
    3133                 :       8764 :             int _end_lineno = _token->end_lineno;
    3134                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3135                 :       8764 :             int _end_col_offset = _token->end_col_offset;
    3136                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3137                 :       8764 :             _res = _PyAST_Delete ( a , EXTRA );
    3138   [ -  +  -  - ]:       8764 :             if (_res == NULL && PyErr_Occurred()) {
    3139                 :          0 :                 p->error_indicator = 1;
    3140                 :          0 :                 p->level--;
    3141                 :          0 :                 return NULL;
    3142                 :            :             }
    3143                 :       8764 :             goto done;
    3144                 :            :         }
    3145                 :         80 :         p->mark = _mark;
    3146                 :            :         D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    3147                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
    3148                 :            :     }
    3149         [ +  + ]:         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                 :            :         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                 :            :             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                 :            :         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                 :       8843 :   done:
    3170                 :       8843 :     p->level--;
    3171                 :       8843 :     return _res;
    3172                 :            : }
    3173                 :            : 
    3174                 :            : // yield_stmt: yield_expr
    3175                 :            : static stmt_ty
    3176                 :      15191 : yield_stmt_rule(Parser *p)
    3177                 :            : {
    3178         [ -  + ]:      15191 :     if (p->level++ == MAXSTACK) {
    3179                 :          0 :         p->error_indicator = 1;
    3180                 :            :         PyErr_NoMemory();
    3181                 :            :     }
    3182         [ -  + ]:      15191 :     if (p->error_indicator) {
    3183                 :          0 :         p->level--;
    3184                 :          0 :         return NULL;
    3185                 :            :     }
    3186                 :      15191 :     stmt_ty _res = NULL;
    3187                 :      15191 :     int _mark = p->mark;
    3188   [ -  +  -  - ]:      15191 :     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                 :      15191 :     int _start_lineno = p->tokens[_mark]->lineno;
    3194                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3195                 :      15191 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    3196                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    3197                 :            :     { // yield_expr
    3198         [ -  + ]:      15191 :         if (p->error_indicator) {
    3199                 :          0 :             p->level--;
    3200                 :          0 :             return NULL;
    3201                 :            :         }
    3202                 :            :         D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
    3203                 :            :         expr_ty y;
    3204         [ +  - ]:      15191 :         if (
    3205                 :      15191 :             (y = yield_expr_rule(p))  // yield_expr
    3206                 :            :         )
    3207                 :            :         {
    3208                 :            :             D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
    3209                 :      15191 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3210         [ -  + ]:      15191 :             if (_token == NULL) {
    3211                 :          0 :                 p->level--;
    3212                 :          0 :                 return NULL;
    3213                 :            :             }
    3214                 :      15191 :             int _end_lineno = _token->end_lineno;
    3215                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3216                 :      15191 :             int _end_col_offset = _token->end_col_offset;
    3217                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3218                 :      15191 :             _res = _PyAST_Expr ( y , EXTRA );
    3219   [ -  +  -  - ]:      15191 :             if (_res == NULL && PyErr_Occurred()) {
    3220                 :          0 :                 p->error_indicator = 1;
    3221                 :          0 :                 p->level--;
    3222                 :          0 :                 return NULL;
    3223                 :            :             }
    3224                 :      15191 :             goto done;
    3225                 :            :         }
    3226                 :          0 :         p->mark = _mark;
    3227                 :            :         D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    3228                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
    3229                 :            :     }
    3230                 :          0 :     _res = NULL;
    3231                 :      15191 :   done:
    3232                 :      15191 :     p->level--;
    3233                 :      15191 :     return _res;
    3234                 :            : }
    3235                 :            : 
    3236                 :            : // assert_stmt: 'assert' expression [',' expression]
    3237                 :            : static stmt_ty
    3238                 :       9810 : assert_stmt_rule(Parser *p)
    3239                 :            : {
    3240         [ -  + ]:       9810 :     if (p->level++ == MAXSTACK) {
    3241                 :          0 :         p->error_indicator = 1;
    3242                 :            :         PyErr_NoMemory();
    3243                 :            :     }
    3244         [ -  + ]:       9810 :     if (p->error_indicator) {
    3245                 :          0 :         p->level--;
    3246                 :          0 :         return NULL;
    3247                 :            :     }
    3248                 :       9810 :     stmt_ty _res = NULL;
    3249                 :       9810 :     int _mark = p->mark;
    3250   [ -  +  -  - ]:       9810 :     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                 :       9810 :     int _start_lineno = p->tokens[_mark]->lineno;
    3256                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3257                 :       9810 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    3258                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    3259                 :            :     { // 'assert' expression [',' expression]
    3260         [ -  + ]:       9810 :         if (p->error_indicator) {
    3261                 :          0 :             p->level--;
    3262                 :          0 :             return NULL;
    3263                 :            :         }
    3264                 :            :         D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
    3265                 :            :         Token * _keyword;
    3266                 :            :         expr_ty a;
    3267                 :            :         void *b;
    3268         [ +  - ]:       9810 :         if (
    3269                 :       9810 :             (_keyword = _PyPegen_expect_token(p, 526))  // token='assert'
    3270         [ +  + ]:       9810 :             &&
    3271                 :       9810 :             (a = expression_rule(p))  // expression
    3272                 :       9808 :             &&
    3273         [ +  - ]:       9808 :             (b = _tmp_23_rule(p), !p->error_indicator)  // [',' expression]
    3274                 :            :         )
    3275                 :            :         {
    3276                 :            :             D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
    3277                 :       9808 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3278         [ -  + ]:       9808 :             if (_token == NULL) {
    3279                 :          0 :                 p->level--;
    3280                 :          0 :                 return NULL;
    3281                 :            :             }
    3282                 :       9808 :             int _end_lineno = _token->end_lineno;
    3283                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3284                 :       9808 :             int _end_col_offset = _token->end_col_offset;
    3285                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3286                 :       9808 :             _res = _PyAST_Assert ( a , b , EXTRA );
    3287   [ -  +  -  - ]:       9808 :             if (_res == NULL && PyErr_Occurred()) {
    3288                 :          0 :                 p->error_indicator = 1;
    3289                 :          0 :                 p->level--;
    3290                 :          0 :                 return NULL;
    3291                 :            :             }
    3292                 :       9808 :             goto done;
    3293                 :            :         }
    3294                 :          2 :         p->mark = _mark;
    3295                 :            :         D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    3296                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
    3297                 :            :     }
    3298                 :          2 :     _res = NULL;
    3299                 :       9810 :   done:
    3300                 :       9810 :     p->level--;
    3301                 :       9810 :     return _res;
    3302                 :            : }
    3303                 :            : 
    3304                 :            : // import_stmt: import_name | import_from
    3305                 :            : static stmt_ty
    3306                 :      90627 : import_stmt_rule(Parser *p)
    3307                 :            : {
    3308         [ -  + ]:      90627 :     if (p->level++ == MAXSTACK) {
    3309                 :          0 :         p->error_indicator = 1;
    3310                 :            :         PyErr_NoMemory();
    3311                 :            :     }
    3312         [ -  + ]:      90627 :     if (p->error_indicator) {
    3313                 :          0 :         p->level--;
    3314                 :          0 :         return NULL;
    3315                 :            :     }
    3316                 :      90627 :     stmt_ty _res = NULL;
    3317                 :      90627 :     int _mark = p->mark;
    3318                 :            :     { // import_name
    3319         [ -  + ]:      90627 :         if (p->error_indicator) {
    3320                 :          0 :             p->level--;
    3321                 :          0 :             return NULL;
    3322                 :            :         }
    3323                 :            :         D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
    3324                 :            :         stmt_ty import_name_var;
    3325         [ +  + ]:      90627 :         if (
    3326                 :      90627 :             (import_name_var = import_name_rule(p))  // import_name
    3327                 :            :         )
    3328                 :            :         {
    3329                 :            :             D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
    3330                 :      44819 :             _res = import_name_var;
    3331                 :      44819 :             goto done;
    3332                 :            :         }
    3333                 :      45808 :         p->mark = _mark;
    3334                 :            :         D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    3335                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
    3336                 :            :     }
    3337                 :            :     { // import_from
    3338         [ +  + ]:      45808 :         if (p->error_indicator) {
    3339                 :          2 :             p->level--;
    3340                 :          2 :             return NULL;
    3341                 :            :         }
    3342                 :            :         D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
    3343                 :            :         stmt_ty import_from_var;
    3344         [ +  + ]:      45806 :         if (
    3345                 :      45806 :             (import_from_var = import_from_rule(p))  // import_from
    3346                 :            :         )
    3347                 :            :         {
    3348                 :            :             D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
    3349                 :      45752 :             _res = import_from_var;
    3350                 :      45752 :             goto done;
    3351                 :            :         }
    3352                 :         54 :         p->mark = _mark;
    3353                 :            :         D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    3354                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
    3355                 :            :     }
    3356                 :         54 :     _res = NULL;
    3357                 :      90625 :   done:
    3358                 :      90625 :     p->level--;
    3359                 :      90625 :     return _res;
    3360                 :            : }
    3361                 :            : 
    3362                 :            : // import_name: 'import' dotted_as_names
    3363                 :            : static stmt_ty
    3364                 :      90627 : import_name_rule(Parser *p)
    3365                 :            : {
    3366         [ -  + ]:      90627 :     if (p->level++ == MAXSTACK) {
    3367                 :          0 :         p->error_indicator = 1;
    3368                 :            :         PyErr_NoMemory();
    3369                 :            :     }
    3370         [ -  + ]:      90627 :     if (p->error_indicator) {
    3371                 :          0 :         p->level--;
    3372                 :          0 :         return NULL;
    3373                 :            :     }
    3374                 :      90627 :     stmt_ty _res = NULL;
    3375                 :      90627 :     int _mark = p->mark;
    3376   [ -  +  -  - ]:      90627 :     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                 :      90627 :     int _start_lineno = p->tokens[_mark]->lineno;
    3382                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3383                 :      90627 :     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         [ -  + ]:      90627 :         if (p->error_indicator) {
    3387                 :          0 :             p->level--;
    3388                 :          0 :             return NULL;
    3389                 :            :         }
    3390                 :            :         D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
    3391                 :            :         Token * _keyword;
    3392                 :            :         asdl_alias_seq* a;
    3393         [ +  + ]:      90627 :         if (
    3394                 :      90627 :             (_keyword = _PyPegen_expect_token(p, 531))  // token='import'
    3395         [ +  + ]:      44837 :             &&
    3396                 :      44837 :             (a = dotted_as_names_rule(p))  // dotted_as_names
    3397                 :            :         )
    3398                 :            :         {
    3399                 :            :             D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
    3400                 :      44819 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3401         [ -  + ]:      44819 :             if (_token == NULL) {
    3402                 :          0 :                 p->level--;
    3403                 :          0 :                 return NULL;
    3404                 :            :             }
    3405                 :      44819 :             int _end_lineno = _token->end_lineno;
    3406                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3407                 :      44819 :             int _end_col_offset = _token->end_col_offset;
    3408                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3409                 :      44819 :             _res = _PyAST_Import ( a , EXTRA );
    3410   [ -  +  -  - ]:      44819 :             if (_res == NULL && PyErr_Occurred()) {
    3411                 :          0 :                 p->error_indicator = 1;
    3412                 :          0 :                 p->level--;
    3413                 :          0 :                 return NULL;
    3414                 :            :             }
    3415                 :      44819 :             goto done;
    3416                 :            :         }
    3417                 :      45808 :         p->mark = _mark;
    3418                 :            :         D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
    3419                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
    3420                 :            :     }
    3421                 :      45808 :     _res = NULL;
    3422                 :      90627 :   done:
    3423                 :      90627 :     p->level--;
    3424                 :      90627 :     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                 :      45806 : import_from_rule(Parser *p)
    3432                 :            : {
    3433         [ -  + ]:      45806 :     if (p->level++ == MAXSTACK) {
    3434                 :          0 :         p->error_indicator = 1;
    3435                 :            :         PyErr_NoMemory();
    3436                 :            :     }
    3437         [ -  + ]:      45806 :     if (p->error_indicator) {
    3438                 :          0 :         p->level--;
    3439                 :          0 :         return NULL;
    3440                 :            :     }
    3441                 :      45806 :     stmt_ty _res = NULL;
    3442                 :      45806 :     int _mark = p->mark;
    3443   [ -  +  -  - ]:      45806 :     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                 :      45806 :     int _start_lineno = p->tokens[_mark]->lineno;
    3449                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3450                 :      45806 :     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         [ -  + ]:      45806 :         if (p->error_indicator) {
    3454                 :          0 :             p->level--;
    3455                 :          0 :             return NULL;
    3456                 :            :         }
    3457                 :            :         D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
    3458                 :            :         Token * _keyword;
    3459                 :            :         Token * _keyword_1;
    3460                 :            :         asdl_seq * a;
    3461                 :            :         expr_ty b;
    3462                 :            :         asdl_alias_seq* c;
    3463         [ +  + ]:      45806 :         if (
    3464                 :      45806 :             (_keyword = _PyPegen_expect_token(p, 572))  // token='from'
    3465         [ +  - ]:      45790 :             &&
    3466                 :      45790 :             (a = _loop0_24_rule(p))  // (('.' | '...'))*
    3467         [ +  + ]:      45790 :             &&
    3468                 :      45790 :             (b = dotted_name_rule(p))  // dotted_name
    3469         [ +  - ]:      44528 :             &&
    3470                 :      44528 :             (_keyword_1 = _PyPegen_expect_token(p, 531))  // token='import'
    3471         [ +  + ]:      44528 :             &&
    3472                 :      44528 :             (c = import_from_targets_rule(p))  // import_from_targets
    3473                 :            :         )
    3474                 :            :         {
    3475                 :            :             D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
    3476                 :      44494 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3477         [ -  + ]:      44494 :             if (_token == NULL) {
    3478                 :          0 :                 p->level--;
    3479                 :          0 :                 return NULL;
    3480                 :            :             }
    3481                 :      44494 :             int _end_lineno = _token->end_lineno;
    3482                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3483                 :      44494 :             int _end_col_offset = _token->end_col_offset;
    3484                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3485                 :      44494 :             _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
    3486   [ -  +  -  - ]:      44494 :             if (_res == NULL && PyErr_Occurred()) {
    3487                 :          0 :                 p->error_indicator = 1;
    3488                 :          0 :                 p->level--;
    3489                 :          0 :                 return NULL;
    3490                 :            :             }
    3491                 :      44494 :             goto done;
    3492                 :            :         }
    3493                 :       1312 :         p->mark = _mark;
    3494                 :            :         D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
    3495                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
    3496                 :            :     }
    3497                 :            :     { // 'from' (('.' | '...'))+ 'import' import_from_targets
    3498         [ +  + ]:       1312 :         if (p->error_indicator) {
    3499                 :         19 :             p->level--;
    3500                 :         19 :             return NULL;
    3501                 :            :         }
    3502                 :            :         D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
    3503                 :            :         Token * _keyword;
    3504                 :            :         Token * _keyword_1;
    3505                 :            :         asdl_seq * a;
    3506                 :            :         asdl_alias_seq* b;
    3507         [ +  + ]:       1293 :         if (
    3508                 :       1293 :             (_keyword = _PyPegen_expect_token(p, 572))  // token='from'
    3509         [ +  + ]:       1277 :             &&
    3510                 :       1277 :             (a = _loop1_25_rule(p))  // (('.' | '...'))+
    3511         [ +  - ]:       1258 :             &&
    3512                 :       1258 :             (_keyword_1 = _PyPegen_expect_token(p, 531))  // token='import'
    3513         [ +  - ]:       1258 :             &&
    3514                 :       1258 :             (b = import_from_targets_rule(p))  // import_from_targets
    3515                 :            :         )
    3516                 :            :         {
    3517                 :            :             D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
    3518                 :       1258 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3519         [ -  + ]:       1258 :             if (_token == NULL) {
    3520                 :          0 :                 p->level--;
    3521                 :          0 :                 return NULL;
    3522                 :            :             }
    3523                 :       1258 :             int _end_lineno = _token->end_lineno;
    3524                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3525                 :       1258 :             int _end_col_offset = _token->end_col_offset;
    3526                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3527                 :       1258 :             _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
    3528   [ -  +  -  - ]:       1258 :             if (_res == NULL && PyErr_Occurred()) {
    3529                 :          0 :                 p->error_indicator = 1;
    3530                 :          0 :                 p->level--;
    3531                 :          0 :                 return NULL;
    3532                 :            :             }
    3533                 :       1258 :             goto done;
    3534                 :            :         }
    3535                 :         35 :         p->mark = _mark;
    3536                 :            :         D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
    3537                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
    3538                 :            :     }
    3539                 :         35 :     _res = NULL;
    3540                 :      45787 :   done:
    3541                 :      45787 :     p->level--;
    3542                 :      45787 :     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                 :      45786 : import_from_targets_rule(Parser *p)
    3552                 :            : {
    3553         [ -  + ]:      45786 :     if (p->level++ == MAXSTACK) {
    3554                 :          0 :         p->error_indicator = 1;
    3555                 :            :         PyErr_NoMemory();
    3556                 :            :     }
    3557         [ -  + ]:      45786 :     if (p->error_indicator) {
    3558                 :          0 :         p->level--;
    3559                 :          0 :         return NULL;
    3560                 :            :     }
    3561                 :      45786 :     asdl_alias_seq* _res = NULL;
    3562                 :      45786 :     int _mark = p->mark;
    3563   [ +  +  -  + ]:      45786 :     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                 :      45786 :     int _start_lineno = p->tokens[_mark]->lineno;
    3569                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3570                 :      45786 :     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         [ -  + ]:      45786 :         if (p->error_indicator) {
    3574                 :          0 :             p->level--;
    3575                 :          0 :             return NULL;
    3576                 :            :         }
    3577                 :            :         D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
    3578                 :            :         Token * _literal;
    3579                 :            :         Token * _literal_1;
    3580                 :            :         void *_opt_var;
    3581                 :            :         UNUSED(_opt_var); // Silence compiler warnings
    3582                 :            :         asdl_alias_seq* a;
    3583         [ +  + ]:      45786 :         if (
    3584                 :      45786 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
    3585         [ +  + ]:       2196 :             &&
    3586                 :       2196 :             (a = import_from_as_names_rule(p))  // import_from_as_names
    3587                 :       2188 :             &&
    3588         [ +  + ]:       2188 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
    3589         [ +  + ]:       2182 :             &&
    3590                 :       2182 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
    3591                 :            :         )
    3592                 :            :         {
    3593                 :            :             D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
    3594                 :       2180 :             _res = a;
    3595   [ -  +  -  - ]:       2180 :             if (_res == NULL && PyErr_Occurred()) {
    3596                 :          0 :                 p->error_indicator = 1;
    3597                 :          0 :                 p->level--;
    3598                 :          0 :                 return NULL;
    3599                 :            :             }
    3600                 :       2180 :             goto done;
    3601                 :            :         }
    3602                 :      43606 :         p->mark = _mark;
    3603                 :            :         D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
    3604                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
    3605                 :            :     }
    3606                 :            :     { // import_from_as_names !','
    3607         [ +  + ]:      43606 :         if (p->error_indicator) {
    3608                 :         12 :             p->level--;
    3609                 :         12 :             return NULL;
    3610                 :            :         }
    3611                 :            :         D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
    3612                 :            :         asdl_alias_seq* import_from_as_names_var;
    3613         [ +  + ]:      43594 :         if (
    3614                 :      43594 :             (import_from_as_names_var = import_from_as_names_rule(p))  // import_from_as_names
    3615         [ +  + ]:      42493 :             &&
    3616                 :      42493 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12)  // token=','
    3617                 :            :         )
    3618                 :            :         {
    3619                 :            :             D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
    3620                 :      42481 :             _res = import_from_as_names_var;
    3621                 :      42481 :             goto done;
    3622                 :            :         }
    3623                 :       1113 :         p->mark = _mark;
    3624                 :            :         D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
    3625                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
    3626                 :            :     }
    3627                 :            :     { // '*'
    3628         [ +  + ]:       1113 :         if (p->error_indicator) {
    3629                 :          2 :             p->level--;
    3630                 :          2 :             return NULL;
    3631                 :            :         }
    3632                 :            :         D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
    3633                 :            :         Token * _literal;
    3634         [ +  + ]:       1111 :         if (
    3635                 :       1111 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
    3636                 :            :         )
    3637                 :            :         {
    3638                 :            :             D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
    3639                 :       1091 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3640         [ -  + ]:       1091 :             if (_token == NULL) {
    3641                 :          0 :                 p->level--;
    3642                 :          0 :                 return NULL;
    3643                 :            :             }
    3644                 :       1091 :             int _end_lineno = _token->end_lineno;
    3645                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3646                 :       1091 :             int _end_col_offset = _token->end_col_offset;
    3647                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3648                 :       1091 :             _res = ( asdl_alias_seq* ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
    3649   [ -  +  -  - ]:       1091 :             if (_res == NULL && PyErr_Occurred()) {
    3650                 :          0 :                 p->error_indicator = 1;
    3651                 :          0 :                 p->level--;
    3652                 :          0 :                 return NULL;
    3653                 :            :             }
    3654                 :       1091 :             goto done;
    3655                 :            :         }
    3656                 :         20 :         p->mark = _mark;
    3657                 :            :         D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
    3658                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
    3659                 :            :     }
    3660         [ +  + ]:         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                 :            :         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                 :            :             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                 :            :         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                 :      45772 :   done:
    3681                 :      45772 :     p->level--;
    3682                 :      45772 :     return _res;
    3683                 :            : }
    3684                 :            : 
    3685                 :            : // import_from_as_names: ','.import_from_as_name+
    3686                 :            : static asdl_alias_seq*
    3687                 :      45800 : import_from_as_names_rule(Parser *p)
    3688                 :            : {
    3689         [ -  + ]:      45800 :     if (p->level++ == MAXSTACK) {
    3690                 :          0 :         p->error_indicator = 1;
    3691                 :            :         PyErr_NoMemory();
    3692                 :            :     }
    3693         [ -  + ]:      45800 :     if (p->error_indicator) {
    3694                 :          0 :         p->level--;
    3695                 :          0 :         return NULL;
    3696                 :            :     }
    3697                 :      45800 :     asdl_alias_seq* _res = NULL;
    3698                 :      45800 :     int _mark = p->mark;
    3699                 :            :     { // ','.import_from_as_name+
    3700         [ -  + ]:      45800 :         if (p->error_indicator) {
    3701                 :          0 :             p->level--;
    3702                 :          0 :             return NULL;
    3703                 :            :         }
    3704                 :            :         D(fprintf(stderr, "%*c> import_from_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
    3705                 :            :         asdl_alias_seq* a;
    3706         [ +  + ]:      45800 :         if (
    3707                 :      45800 :             (a = (asdl_alias_seq*)_gather_26_rule(p))  // ','.import_from_as_name+
    3708                 :            :         )
    3709                 :            :         {
    3710                 :            :             D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
    3711                 :      44687 :             _res = a;
    3712   [ -  +  -  - ]:      44687 :             if (_res == NULL && PyErr_Occurred()) {
    3713                 :          0 :                 p->error_indicator = 1;
    3714                 :          0 :                 p->level--;
    3715                 :          0 :                 return NULL;
    3716                 :            :             }
    3717                 :      44687 :             goto done;
    3718                 :            :         }
    3719                 :       1113 :         p->mark = _mark;
    3720                 :            :         D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
    3721                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
    3722                 :            :     }
    3723                 :       1113 :     _res = NULL;
    3724                 :      45800 :   done:
    3725                 :      45800 :     p->level--;
    3726                 :      45800 :     return _res;
    3727                 :            : }
    3728                 :            : 
    3729                 :            : // import_from_as_name: NAME ['as' NAME]
    3730                 :            : static alias_ty
    3731                 :      79369 : import_from_as_name_rule(Parser *p)
    3732                 :            : {
    3733         [ -  + ]:      79369 :     if (p->level++ == MAXSTACK) {
    3734                 :          0 :         p->error_indicator = 1;
    3735                 :            :         PyErr_NoMemory();
    3736                 :            :     }
    3737         [ -  + ]:      79369 :     if (p->error_indicator) {
    3738                 :          0 :         p->level--;
    3739                 :          0 :         return NULL;
    3740                 :            :     }
    3741                 :      79369 :     alias_ty _res = NULL;
    3742                 :      79369 :     int _mark = p->mark;
    3743   [ +  +  +  + ]:      79369 :     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                 :      79363 :     int _start_lineno = p->tokens[_mark]->lineno;
    3749                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3750                 :      79363 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    3751                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    3752                 :            :     { // NAME ['as' NAME]
    3753         [ -  + ]:      79363 :         if (p->error_indicator) {
    3754                 :          0 :             p->level--;
    3755                 :          0 :             return NULL;
    3756                 :            :         }
    3757                 :            :         D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
    3758                 :            :         expr_ty a;
    3759                 :            :         void *b;
    3760         [ +  + ]:      79363 :         if (
    3761                 :      79363 :             (a = _PyPegen_name_token(p))  // NAME
    3762                 :      76884 :             &&
    3763         [ +  + ]:      76884 :             (b = _tmp_28_rule(p), !p->error_indicator)  // ['as' NAME]
    3764                 :            :         )
    3765                 :            :         {
    3766                 :            :             D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
    3767                 :      76876 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3768         [ -  + ]:      76876 :             if (_token == NULL) {
    3769                 :          0 :                 p->level--;
    3770                 :          0 :                 return NULL;
    3771                 :            :             }
    3772                 :      76876 :             int _end_lineno = _token->end_lineno;
    3773                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3774                 :      76876 :             int _end_col_offset = _token->end_col_offset;
    3775                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3776         [ +  + ]:      76876 :             _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
    3777   [ -  +  -  - ]:      76876 :             if (_res == NULL && PyErr_Occurred()) {
    3778                 :          0 :                 p->error_indicator = 1;
    3779                 :          0 :                 p->level--;
    3780                 :          0 :                 return NULL;
    3781                 :            :             }
    3782                 :      76876 :             goto done;
    3783                 :            :         }
    3784                 :       2487 :         p->mark = _mark;
    3785                 :            :         D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
    3786                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
    3787                 :            :     }
    3788                 :       2487 :     _res = NULL;
    3789                 :      79363 :   done:
    3790                 :      79363 :     p->level--;
    3791                 :      79363 :     return _res;
    3792                 :            : }
    3793                 :            : 
    3794                 :            : // dotted_as_names: ','.dotted_as_name+
    3795                 :            : static asdl_alias_seq*
    3796                 :      44837 : dotted_as_names_rule(Parser *p)
    3797                 :            : {
    3798         [ -  + ]:      44837 :     if (p->level++ == MAXSTACK) {
    3799                 :          0 :         p->error_indicator = 1;
    3800                 :            :         PyErr_NoMemory();
    3801                 :            :     }
    3802         [ -  + ]:      44837 :     if (p->error_indicator) {
    3803                 :          0 :         p->level--;
    3804                 :          0 :         return NULL;
    3805                 :            :     }
    3806                 :      44837 :     asdl_alias_seq* _res = NULL;
    3807                 :      44837 :     int _mark = p->mark;
    3808                 :            :     { // ','.dotted_as_name+
    3809         [ -  + ]:      44837 :         if (p->error_indicator) {
    3810                 :          0 :             p->level--;
    3811                 :          0 :             return NULL;
    3812                 :            :         }
    3813                 :            :         D(fprintf(stderr, "%*c> dotted_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
    3814                 :            :         asdl_alias_seq* a;
    3815         [ +  + ]:      44837 :         if (
    3816                 :      44837 :             (a = (asdl_alias_seq*)_gather_29_rule(p))  // ','.dotted_as_name+
    3817                 :            :         )
    3818                 :            :         {
    3819                 :            :             D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
    3820                 :      44819 :             _res = a;
    3821   [ -  +  -  - ]:      44819 :             if (_res == NULL && PyErr_Occurred()) {
    3822                 :          0 :                 p->error_indicator = 1;
    3823                 :          0 :                 p->level--;
    3824                 :          0 :                 return NULL;
    3825                 :            :             }
    3826                 :      44819 :             goto done;
    3827                 :            :         }
    3828                 :         18 :         p->mark = _mark;
    3829                 :            :         D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
    3830                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
    3831                 :            :     }
    3832                 :         18 :     _res = NULL;
    3833                 :      44837 :   done:
    3834                 :      44837 :     p->level--;
    3835                 :      44837 :     return _res;
    3836                 :            : }
    3837                 :            : 
    3838                 :            : // dotted_as_name: dotted_name ['as' NAME]
    3839                 :            : static alias_ty
    3840                 :      46094 : dotted_as_name_rule(Parser *p)
    3841                 :            : {
    3842         [ -  + ]:      46094 :     if (p->level++ == MAXSTACK) {
    3843                 :          0 :         p->error_indicator = 1;
    3844                 :            :         PyErr_NoMemory();
    3845                 :            :     }
    3846         [ -  + ]:      46094 :     if (p->error_indicator) {
    3847                 :          0 :         p->level--;
    3848                 :          0 :         return NULL;
    3849                 :            :     }
    3850                 :      46094 :     alias_ty _res = NULL;
    3851                 :      46094 :     int _mark = p->mark;
    3852   [ +  +  -  + ]:      46094 :     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                 :      46094 :     int _start_lineno = p->tokens[_mark]->lineno;
    3858                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    3859                 :      46094 :     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         [ -  + ]:      46094 :         if (p->error_indicator) {
    3863                 :          0 :             p->level--;
    3864                 :          0 :             return NULL;
    3865                 :            :         }
    3866                 :            :         D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
    3867                 :            :         expr_ty a;
    3868                 :            :         void *b;
    3869         [ +  + ]:      46094 :         if (
    3870                 :      46094 :             (a = dotted_name_rule(p))  // dotted_name
    3871                 :      46076 :             &&
    3872         [ +  - ]:      46076 :             (b = _tmp_31_rule(p), !p->error_indicator)  // ['as' NAME]
    3873                 :            :         )
    3874                 :            :         {
    3875                 :            :             D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
    3876                 :      46076 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    3877         [ -  + ]:      46076 :             if (_token == NULL) {
    3878                 :          0 :                 p->level--;
    3879                 :          0 :                 return NULL;
    3880                 :            :             }
    3881                 :      46076 :             int _end_lineno = _token->end_lineno;
    3882                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    3883                 :      46076 :             int _end_col_offset = _token->end_col_offset;
    3884                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    3885         [ +  + ]:      46076 :             _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
    3886   [ -  +  -  - ]:      46076 :             if (_res == NULL && PyErr_Occurred()) {
    3887                 :          0 :                 p->error_indicator = 1;
    3888                 :          0 :                 p->level--;
    3889                 :          0 :                 return NULL;
    3890                 :            :             }
    3891                 :      46076 :             goto done;
    3892                 :            :         }
    3893                 :         18 :         p->mark = _mark;
    3894                 :            :         D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
    3895                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
    3896                 :            :     }
    3897                 :         18 :     _res = NULL;
    3898                 :      46094 :   done:
    3899                 :      46094 :     p->level--;
    3900                 :      46094 :     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                 :     314399 : dotted_name_rule(Parser *p)
    3908                 :            : {
    3909         [ -  + ]:     314399 :     if (p->level++ == MAXSTACK) {
    3910                 :          0 :         p->error_indicator = 1;
    3911                 :            :         PyErr_NoMemory();
    3912                 :            :     }
    3913                 :     314399 :     expr_ty _res = NULL;
    3914         [ +  + ]:     314399 :     if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
    3915                 :     222515 :         p->level--;
    3916                 :     222515 :         return _res;
    3917                 :            :     }
    3918                 :      91884 :     int _mark = p->mark;
    3919                 :      91884 :     int _resmark = p->mark;
    3920                 :     130631 :     while (1) {
    3921                 :     222515 :         int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
    3922         [ -  + ]:     222515 :         if (tmpvar_0) {
    3923                 :          0 :             p->level--;
    3924                 :          0 :             return _res;
    3925                 :            :         }
    3926                 :     222515 :         p->mark = _mark;
    3927                 :     222515 :         void *_raw = dotted_name_raw(p);
    3928         [ +  + ]:     222515 :         if (p->error_indicator) {
    3929                 :          2 :             p->level--;
    3930                 :          2 :             return NULL;
    3931                 :            :         }
    3932   [ +  +  +  + ]:     222513 :         if (_raw == NULL || p->mark <= _resmark)
    3933                 :            :             break;
    3934                 :     130631 :         _resmark = p->mark;
    3935                 :     130631 :         _res = _raw;
    3936                 :            :     }
    3937                 :      91882 :     p->mark = _resmark;
    3938                 :      91882 :     p->level--;
    3939                 :      91882 :     return _res;
    3940                 :            : }
    3941                 :            : static expr_ty
    3942                 :     222515 : dotted_name_raw(Parser *p)
    3943                 :            : {
    3944         [ -  + ]:     222515 :     if (p->level++ == MAXSTACK) {
    3945                 :          0 :         p->error_indicator = 1;
    3946                 :            :         PyErr_NoMemory();
    3947                 :            :     }
    3948         [ -  + ]:     222515 :     if (p->error_indicator) {
    3949                 :          0 :         p->level--;
    3950                 :          0 :         return NULL;
    3951                 :            :     }
    3952                 :     222515 :     expr_ty _res = NULL;
    3953                 :     222515 :     int _mark = p->mark;
    3954                 :            :     { // dotted_name '.' NAME
    3955         [ -  + ]:     222515 :         if (p->error_indicator) {
    3956                 :          0 :             p->level--;
    3957                 :          0 :             return NULL;
    3958                 :            :         }
    3959                 :            :         D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
    3960                 :            :         Token * _literal;
    3961                 :            :         expr_ty a;
    3962                 :            :         expr_ty b;
    3963         [ +  + ]:     222515 :         if (
    3964                 :     222515 :             (a = dotted_name_rule(p))  // dotted_name
    3965         [ +  + ]:     130631 :             &&
    3966                 :     130631 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
    3967         [ +  - ]:      40025 :             &&
    3968                 :      40025 :             (b = _PyPegen_name_token(p))  // NAME
    3969                 :            :         )
    3970                 :            :         {
    3971                 :            :             D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
    3972                 :      40025 :             _res = _PyPegen_join_names_with_dot ( p , a , b );
    3973   [ -  +  -  - ]:      40025 :             if (_res == NULL && PyErr_Occurred()) {
    3974                 :          0 :                 p->error_indicator = 1;
    3975                 :          0 :                 p->level--;
    3976                 :          0 :                 return NULL;
    3977                 :            :             }
    3978                 :      40025 :             goto done;
    3979                 :            :         }
    3980                 :     182490 :         p->mark = _mark;
    3981                 :            :         D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
    3982                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
    3983                 :            :     }
    3984                 :            :     { // NAME
    3985         [ +  + ]:     182490 :         if (p->error_indicator) {
    3986                 :          2 :             p->level--;
    3987                 :          2 :             return NULL;
    3988                 :            :         }
    3989                 :            :         D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
    3990                 :            :         expr_ty name_var;
    3991         [ +  + ]:     182488 :         if (
    3992                 :     182488 :             (name_var = _PyPegen_name_token(p))  // NAME
    3993                 :            :         )
    3994                 :            :         {
    3995                 :            :             D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
    3996                 :     181210 :             _res = name_var;
    3997                 :     181210 :             goto done;
    3998                 :            :         }
    3999                 :       1278 :         p->mark = _mark;
    4000                 :            :         D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
    4001                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
    4002                 :            :     }
    4003                 :       1278 :     _res = NULL;
    4004                 :     222513 :   done:
    4005                 :     222513 :     p->level--;
    4006                 :     222513 :     return _res;
    4007                 :            : }
    4008                 :            : 
    4009                 :            : // block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
    4010                 :            : static asdl_stmt_seq*
    4011                 :    1730065 : block_rule(Parser *p)
    4012                 :            : {
    4013         [ -  + ]:    1730065 :     if (p->level++ == MAXSTACK) {
    4014                 :          0 :         p->error_indicator = 1;
    4015                 :            :         PyErr_NoMemory();
    4016                 :            :     }
    4017         [ -  + ]:    1730065 :     if (p->error_indicator) {
    4018                 :          0 :         p->level--;
    4019                 :          0 :         return NULL;
    4020                 :            :     }
    4021                 :    1730065 :     asdl_stmt_seq* _res = NULL;
    4022         [ +  + ]:    1730065 :     if (_PyPegen_is_memoized(p, block_type, &_res)) {
    4023                 :     529148 :         p->level--;
    4024                 :     529148 :         return _res;
    4025                 :            :     }
    4026                 :    1200917 :     int _mark = p->mark;
    4027                 :            :     { // NEWLINE INDENT statements DEDENT
    4028         [ -  + ]:    1200917 :         if (p->error_indicator) {
    4029                 :          0 :             p->level--;
    4030                 :          0 :             return NULL;
    4031                 :            :         }
    4032                 :            :         D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
    4033                 :            :         asdl_stmt_seq* a;
    4034                 :            :         Token * dedent_var;
    4035                 :            :         Token * indent_var;
    4036                 :            :         Token * newline_var;
    4037         [ +  + ]:    1200917 :         if (
    4038                 :    1200917 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
    4039         [ +  + ]:     989180 :             &&
    4040                 :     989180 :             (indent_var = _PyPegen_expect_token(p, INDENT))  // token='INDENT'
    4041         [ +  + ]:     989091 :             &&
    4042                 :     989091 :             (a = statements_rule(p))  // statements
    4043         [ +  + ]:     988966 :             &&
    4044                 :     988966 :             (dedent_var = _PyPegen_expect_token(p, DEDENT))  // token='DEDENT'
    4045                 :            :         )
    4046                 :            :         {
    4047                 :            :             D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
    4048                 :     988940 :             _res = a;
    4049   [ -  +  -  - ]:     988940 :             if (_res == NULL && PyErr_Occurred()) {
    4050                 :          0 :                 p->error_indicator = 1;
    4051                 :          0 :                 p->level--;
    4052                 :          0 :                 return NULL;
    4053                 :            :             }
    4054                 :     988940 :             goto done;
    4055                 :            :         }
    4056                 :     211977 :         p->mark = _mark;
    4057                 :            :         D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
    4058                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
    4059                 :            :     }
    4060                 :            :     { // simple_stmts
    4061         [ +  + ]:     211977 :         if (p->error_indicator) {
    4062                 :         29 :             p->level--;
    4063                 :         29 :             return NULL;
    4064                 :            :         }
    4065                 :            :         D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
    4066                 :            :         asdl_stmt_seq* simple_stmts_var;
    4067         [ +  + ]:     211948 :         if (
    4068                 :     211948 :             (simple_stmts_var = simple_stmts_rule(p))  // simple_stmts
    4069                 :            :         )
    4070                 :            :         {
    4071                 :            :             D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
    4072                 :     211597 :             _res = simple_stmts_var;
    4073                 :     211597 :             goto done;
    4074                 :            :         }
    4075                 :        351 :         p->mark = _mark;
    4076                 :            :         D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
    4077                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
    4078                 :            :     }
    4079         [ +  + ]:        351 :     if (p->call_invalid_rules) { // invalid_block
    4080         [ +  + ]:        143 :         if (p->error_indicator) {
    4081                 :          7 :             p->level--;
    4082                 :          7 :             return NULL;
    4083                 :            :         }
    4084                 :            :         D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
    4085                 :            :         void *invalid_block_var;
    4086         [ -  + ]:        136 :         if (
    4087                 :        136 :             (invalid_block_var = invalid_block_rule(p))  // invalid_block
    4088                 :            :         )
    4089                 :            :         {
    4090                 :            :             D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
    4091                 :          0 :             _res = invalid_block_var;
    4092                 :          0 :             goto done;
    4093                 :            :         }
    4094                 :        136 :         p->mark = _mark;
    4095                 :            :         D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
    4096                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
    4097                 :            :     }
    4098                 :        344 :     _res = NULL;
    4099                 :    1200881 :   done:
    4100                 :    1200881 :     _PyPegen_insert_memo(p, _mark, block_type, _res);
    4101                 :    1200881 :     p->level--;
    4102                 :    1200881 :     return _res;
    4103                 :            : }
    4104                 :            : 
    4105                 :            : // decorators: (('@' named_expression NEWLINE))+
    4106                 :            : static asdl_expr_seq*
    4107                 :     400849 : decorators_rule(Parser *p)
    4108                 :            : {
    4109         [ -  + ]:     400849 :     if (p->level++ == MAXSTACK) {
    4110                 :          0 :         p->error_indicator = 1;
    4111                 :            :         PyErr_NoMemory();
    4112                 :            :     }
    4113         [ -  + ]:     400849 :     if (p->error_indicator) {
    4114                 :          0 :         p->level--;
    4115                 :          0 :         return NULL;
    4116                 :            :     }
    4117                 :     400849 :     asdl_expr_seq* _res = NULL;
    4118                 :     400849 :     int _mark = p->mark;
    4119                 :            :     { // (('@' named_expression NEWLINE))+
    4120         [ -  + ]:     400849 :         if (p->error_indicator) {
    4121                 :          0 :             p->level--;
    4122                 :          0 :             return NULL;
    4123                 :            :         }
    4124                 :            :         D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
    4125                 :            :         asdl_expr_seq* a;
    4126         [ +  + ]:     400849 :         if (
    4127                 :     400849 :             (a = (asdl_expr_seq*)_loop1_32_rule(p))  // (('@' named_expression NEWLINE))+
    4128                 :            :         )
    4129                 :            :         {
    4130                 :            :             D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
    4131                 :      37344 :             _res = a;
    4132   [ -  +  -  - ]:      37344 :             if (_res == NULL && PyErr_Occurred()) {
    4133                 :          0 :                 p->error_indicator = 1;
    4134                 :          0 :                 p->level--;
    4135                 :          0 :                 return NULL;
    4136                 :            :             }
    4137                 :      37344 :             goto done;
    4138                 :            :         }
    4139                 :     363505 :         p->mark = _mark;
    4140                 :            :         D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
    4141                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
    4142                 :            :     }
    4143                 :     363505 :     _res = NULL;
    4144                 :     400849 :   done:
    4145                 :     400849 :     p->level--;
    4146                 :     400849 :     return _res;
    4147                 :            : }
    4148                 :            : 
    4149                 :            : // class_def: decorators class_def_raw | class_def_raw
    4150                 :            : static stmt_ty
    4151                 :      56490 : class_def_rule(Parser *p)
    4152                 :            : {
    4153         [ -  + ]:      56490 :     if (p->level++ == MAXSTACK) {
    4154                 :          0 :         p->error_indicator = 1;
    4155                 :            :         PyErr_NoMemory();
    4156                 :            :     }
    4157         [ -  + ]:      56490 :     if (p->error_indicator) {
    4158                 :          0 :         p->level--;
    4159                 :          0 :         return NULL;
    4160                 :            :     }
    4161                 :      56490 :     stmt_ty _res = NULL;
    4162                 :      56490 :     int _mark = p->mark;
    4163                 :            :     { // decorators class_def_raw
    4164         [ -  + ]:      56490 :         if (p->error_indicator) {
    4165                 :          0 :             p->level--;
    4166                 :          0 :             return NULL;
    4167                 :            :         }
    4168                 :            :         D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
    4169                 :            :         asdl_expr_seq* a;
    4170                 :            :         stmt_ty b;
    4171         [ +  + ]:      56490 :         if (
    4172                 :      56490 :             (a = decorators_rule(p))  // decorators
    4173         [ +  - ]:       3181 :             &&
    4174                 :       3181 :             (b = class_def_raw_rule(p))  // class_def_raw
    4175                 :            :         )
    4176                 :            :         {
    4177                 :            :             D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
    4178                 :       3181 :             _res = _PyPegen_class_def_decorators ( p , a , b );
    4179   [ -  +  -  - ]:       3181 :             if (_res == NULL && PyErr_Occurred()) {
    4180                 :          0 :                 p->error_indicator = 1;
    4181                 :          0 :                 p->level--;
    4182                 :          0 :                 return NULL;
    4183                 :            :             }
    4184                 :       3181 :             goto done;
    4185                 :            :         }
    4186                 :      53309 :         p->mark = _mark;
    4187                 :            :         D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
    4188                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
    4189                 :            :     }
    4190                 :            :     { // class_def_raw
    4191         [ -  + ]:      53309 :         if (p->error_indicator) {
    4192                 :          0 :             p->level--;
    4193                 :          0 :             return NULL;
    4194                 :            :         }
    4195                 :            :         D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
    4196                 :            :         stmt_ty class_def_raw_var;
    4197         [ +  + ]:      53309 :         if (
    4198                 :      53309 :             (class_def_raw_var = class_def_raw_rule(p))  // class_def_raw
    4199                 :            :         )
    4200                 :            :         {
    4201                 :            :             D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
    4202                 :      53268 :             _res = class_def_raw_var;
    4203                 :      53268 :             goto done;
    4204                 :            :         }
    4205                 :         41 :         p->mark = _mark;
    4206                 :            :         D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
    4207                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
    4208                 :            :     }
    4209                 :         41 :     _res = NULL;
    4210                 :      56490 :   done:
    4211                 :      56490 :     p->level--;
    4212                 :      56490 :     return _res;
    4213                 :            : }
    4214                 :            : 
    4215                 :            : // class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] ':' block
    4216                 :            : static stmt_ty
    4217                 :      56490 : class_def_raw_rule(Parser *p)
    4218                 :            : {
    4219         [ -  + ]:      56490 :     if (p->level++ == MAXSTACK) {
    4220                 :          0 :         p->error_indicator = 1;
    4221                 :            :         PyErr_NoMemory();
    4222                 :            :     }
    4223         [ -  + ]:      56490 :     if (p->error_indicator) {
    4224                 :          0 :         p->level--;
    4225                 :          0 :         return NULL;
    4226                 :            :     }
    4227                 :      56490 :     stmt_ty _res = NULL;
    4228                 :      56490 :     int _mark = p->mark;
    4229   [ -  +  -  - ]:      56490 :     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                 :      56490 :     int _start_lineno = p->tokens[_mark]->lineno;
    4235                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    4236                 :      56490 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    4237                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    4238         [ +  + ]:      56490 :     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                 :            :         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                 :            :             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                 :            :         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         [ +  + ]:      56490 :         if (p->error_indicator) {
    4259                 :          2 :             p->level--;
    4260                 :          2 :             return NULL;
    4261                 :            :         }
    4262                 :            :         D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
    4263                 :            :         Token * _keyword;
    4264                 :            :         Token * _literal;
    4265                 :            :         expr_ty a;
    4266                 :            :         void *b;
    4267                 :            :         asdl_stmt_seq* c;
    4268         [ +  + ]:      56488 :         if (
    4269                 :      56488 :             (_keyword = _PyPegen_expect_token(p, 646))  // token='class'
    4270         [ +  + ]:      56479 :             &&
    4271                 :      56479 :             (a = _PyPegen_name_token(p))  // NAME
    4272                 :      56469 :             &&
    4273         [ +  + ]:      56469 :             (b = _tmp_33_rule(p), !p->error_indicator)  // ['(' arguments? ')']
    4274         [ +  + ]:      56463 :             &&
    4275                 :      56463 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    4276         [ +  + ]:      56458 :             &&
    4277                 :      56458 :             (c = block_rule(p))  // block
    4278                 :            :         )
    4279                 :            :         {
    4280                 :            :             D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
    4281                 :      56449 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    4282         [ -  + ]:      56449 :             if (_token == NULL) {
    4283                 :          0 :                 p->level--;
    4284                 :          0 :                 return NULL;
    4285                 :            :             }
    4286                 :      56449 :             int _end_lineno = _token->end_lineno;
    4287                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    4288                 :      56449 :             int _end_col_offset = _token->end_col_offset;
    4289                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    4290   [ +  +  +  + ]:      56449 :             _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   [ -  +  -  - ]:      56449 :             if (_res == NULL && PyErr_Occurred()) {
    4292                 :          0 :                 p->error_indicator = 1;
    4293                 :          0 :                 p->level--;
    4294                 :          0 :                 return NULL;
    4295                 :            :             }
    4296                 :      56449 :             goto done;
    4297                 :            :         }
    4298                 :         39 :         p->mark = _mark;
    4299                 :            :         D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
    4300                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
    4301                 :            :     }
    4302                 :         39 :     _res = NULL;
    4303                 :      56488 :   done:
    4304                 :      56488 :     p->level--;
    4305                 :      56488 :     return _res;
    4306                 :            : }
    4307                 :            : 
    4308                 :            : // function_def: decorators function_def_raw | function_def_raw
    4309                 :            : static stmt_ty
    4310                 :     344359 : function_def_rule(Parser *p)
    4311                 :            : {
    4312         [ -  + ]:     344359 :     if (p->level++ == MAXSTACK) {
    4313                 :          0 :         p->error_indicator = 1;
    4314                 :            :         PyErr_NoMemory();
    4315                 :            :     }
    4316         [ -  + ]:     344359 :     if (p->error_indicator) {
    4317                 :          0 :         p->level--;
    4318                 :          0 :         return NULL;
    4319                 :            :     }
    4320                 :     344359 :     stmt_ty _res = NULL;
    4321                 :     344359 :     int _mark = p->mark;
    4322                 :            :     { // decorators function_def_raw
    4323         [ -  + ]:     344359 :         if (p->error_indicator) {
    4324                 :          0 :             p->level--;
    4325                 :          0 :             return NULL;
    4326                 :            :         }
    4327                 :            :         D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
    4328                 :            :         asdl_expr_seq* d;
    4329                 :            :         stmt_ty f;
    4330         [ +  + ]:     344359 :         if (
    4331                 :     344359 :             (d = decorators_rule(p))  // decorators
    4332         [ +  + ]:      34163 :             &&
    4333                 :      34163 :             (f = function_def_raw_rule(p))  // function_def_raw
    4334                 :            :         )
    4335                 :            :         {
    4336                 :            :             D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
    4337                 :      30982 :             _res = _PyPegen_function_def_decorators ( p , d , f );
    4338   [ -  +  -  - ]:      30982 :             if (_res == NULL && PyErr_Occurred()) {
    4339                 :          0 :                 p->error_indicator = 1;
    4340                 :          0 :                 p->level--;
    4341                 :          0 :                 return NULL;
    4342                 :            :             }
    4343                 :      30982 :             goto done;
    4344                 :            :         }
    4345                 :     313377 :         p->mark = _mark;
    4346                 :            :         D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
    4347                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
    4348                 :            :     }
    4349                 :            :     { // function_def_raw
    4350         [ +  + ]:     313377 :         if (p->error_indicator) {
    4351                 :         11 :             p->level--;
    4352                 :         11 :             return NULL;
    4353                 :            :         }
    4354                 :            :         D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
    4355                 :            :         stmt_ty function_def_raw_var;
    4356         [ +  + ]:     313366 :         if (
    4357                 :     313366 :             (function_def_raw_var = function_def_raw_rule(p))  // function_def_raw
    4358                 :            :         )
    4359                 :            :         {
    4360                 :            :             D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
    4361                 :     309177 :             _res = function_def_raw_var;
    4362                 :     309177 :             goto done;
    4363                 :            :         }
    4364                 :       4189 :         p->mark = _mark;
    4365                 :            :         D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
    4366                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
    4367                 :            :     }
    4368                 :       4189 :     _res = NULL;
    4369                 :     344348 :   done:
    4370                 :     344348 :     p->level--;
    4371                 :     344348 :     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                 :     347529 : function_def_raw_rule(Parser *p)
    4380                 :            : {
    4381         [ -  + ]:     347529 :     if (p->level++ == MAXSTACK) {
    4382                 :          0 :         p->error_indicator = 1;
    4383                 :            :         PyErr_NoMemory();
    4384                 :            :     }
    4385         [ -  + ]:     347529 :     if (p->error_indicator) {
    4386                 :          0 :         p->level--;
    4387                 :          0 :         return NULL;
    4388                 :            :     }
    4389                 :     347529 :     stmt_ty _res = NULL;
    4390                 :     347529 :     int _mark = p->mark;
    4391   [ -  +  -  - ]:     347529 :     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                 :     347529 :     int _start_lineno = p->tokens[_mark]->lineno;
    4397                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    4398                 :     347529 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    4399                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    4400         [ +  + ]:     347529 :     if (p->call_invalid_rules) { // invalid_def_raw
    4401         [ -  + ]:        217 :         if (p->error_indicator) {
    4402                 :          0 :             p->level--;
    4403                 :          0 :             return NULL;
    4404                 :            :         }
    4405                 :            :         D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
    4406                 :            :         void *invalid_def_raw_var;
    4407         [ -  + ]:        217 :         if (
    4408                 :        217 :             (invalid_def_raw_var = invalid_def_raw_rule(p))  // invalid_def_raw
    4409                 :            :         )
    4410                 :            :         {
    4411                 :            :             D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
    4412                 :          0 :             _res = invalid_def_raw_var;
    4413                 :          0 :             goto done;
    4414                 :            :         }
    4415                 :        217 :         p->mark = _mark;
    4416                 :            :         D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
    4417                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
    4418                 :            :     }
    4419                 :            :     { // 'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block
    4420         [ +  + ]:     347529 :         if (p->error_indicator) {
    4421                 :         72 :             p->level--;
    4422                 :         72 :             return NULL;
    4423                 :            :         }
    4424                 :            :         D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block"));
    4425                 :            :         Token * _keyword;
    4426                 :            :         Token * _literal;
    4427                 :            :         Token * _literal_1;
    4428                 :            :         Token * _literal_2;
    4429                 :            :         void *a;
    4430                 :            :         asdl_stmt_seq* b;
    4431                 :            :         expr_ty n;
    4432                 :            :         void *params;
    4433                 :            :         void *tc;
    4434         [ +  + ]:     347457 :         if (
    4435                 :     347457 :             (_keyword = _PyPegen_expect_token(p, 644))  // token='def'
    4436         [ +  + ]:     337020 :             &&
    4437                 :     337020 :             (n = _PyPegen_name_token(p))  // NAME
    4438         [ +  + ]:     337002 :             &&
    4439                 :     337002 :             (_literal = _PyPegen_expect_forced_token(p, 7, "("))  // forced_token='('
    4440                 :     336997 :             &&
    4441         [ +  + ]:     336997 :             (params = params_rule(p), !p->error_indicator)  // params?
    4442         [ +  + ]:     336984 :             &&
    4443                 :     336984 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
    4444                 :     336834 :             &&
    4445         [ +  - ]:     336834 :             (a = _tmp_34_rule(p), !p->error_indicator)  // ['->' expression]
    4446         [ +  + ]:     336834 :             &&
    4447                 :     336834 :             (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
    4448                 :     336833 :             &&
    4449         [ +  + ]:     336833 :             (tc = func_type_comment_rule(p), !p->error_indicator)  // func_type_comment?
    4450         [ +  + ]:     336824 :             &&
    4451                 :     336824 :             (b = block_rule(p))  // block
    4452                 :            :         )
    4453                 :            :         {
    4454                 :            :             D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block"));
    4455                 :     336747 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    4456         [ -  + ]:     336747 :             if (_token == NULL) {
    4457                 :          0 :                 p->level--;
    4458                 :          0 :                 return NULL;
    4459                 :            :             }
    4460                 :     336747 :             int _end_lineno = _token->end_lineno;
    4461                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    4462                 :     336747 :             int _end_col_offset = _token->end_col_offset;
    4463                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    4464         [ +  + ]:     336747 :             _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   [ -  +  -  - ]:     336747 :             if (_res == NULL && PyErr_Occurred()) {
    4466                 :          0 :                 p->error_indicator = 1;
    4467                 :          0 :                 p->level--;
    4468                 :          0 :                 return NULL;
    4469                 :            :             }
    4470                 :     336747 :             goto done;
    4471                 :            :         }
    4472                 :      10710 :         p->mark = _mark;
    4473                 :            :         D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
    4474                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block"));
    4475                 :            :     }
    4476                 :            :     { // ASYNC 'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block
    4477         [ +  + ]:      10710 :         if (p->error_indicator) {
    4478                 :         39 :             p->level--;
    4479                 :         39 :             return NULL;
    4480                 :            :         }
    4481                 :            :         D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block"));
    4482                 :            :         Token * _keyword;
    4483                 :            :         Token * _literal;
    4484                 :            :         Token * _literal_1;
    4485                 :            :         Token * _literal_2;
    4486                 :            :         void *a;
    4487                 :            :         Token * async_var;
    4488                 :            :         asdl_stmt_seq* b;
    4489                 :            :         expr_ty n;
    4490                 :            :         void *params;
    4491                 :            :         void *tc;
    4492         [ +  + ]:      10671 :         if (
    4493                 :      10671 :             (async_var = _PyPegen_expect_token(p, ASYNC))  // token='ASYNC'
    4494         [ +  + ]:       4066 :             &&
    4495                 :       4066 :             (_keyword = _PyPegen_expect_token(p, 644))  // token='def'
    4496         [ +  - ]:       3471 :             &&
    4497                 :       3471 :             (n = _PyPegen_name_token(p))  // NAME
    4498         [ +  + ]:       3471 :             &&
    4499                 :       3471 :             (_literal = _PyPegen_expect_forced_token(p, 7, "("))  // forced_token='('
    4500                 :       3470 :             &&
    4501         [ +  - ]:       3470 :             (params = params_rule(p), !p->error_indicator)  // params?
    4502         [ +  + ]:       3470 :             &&
    4503                 :       3470 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
    4504                 :       3447 :             &&
    4505         [ +  - ]:       3447 :             (a = _tmp_35_rule(p), !p->error_indicator)  // ['->' expression]
    4506         [ +  - ]:       3447 :             &&
    4507                 :       3447 :             (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
    4508                 :       3447 :             &&
    4509         [ +  - ]:       3447 :             (tc = func_type_comment_rule(p), !p->error_indicator)  // func_type_comment?
    4510         [ +  + ]:       3447 :             &&
    4511                 :       3447 :             (b = block_rule(p))  // block
    4512                 :            :         )
    4513                 :            :         {
    4514                 :            :             D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block"));
    4515                 :       3412 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    4516         [ -  + ]:       3412 :             if (_token == NULL) {
    4517                 :          0 :                 p->level--;
    4518                 :          0 :                 return NULL;
    4519                 :            :             }
    4520                 :       3412 :             int _end_lineno = _token->end_lineno;
    4521                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    4522                 :       3412 :             int _end_col_offset = _token->end_col_offset;
    4523                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    4524         [ +  + ]:       3412 :             _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   [ -  +  -  - ]:       3412 :             if (_res == NULL && PyErr_Occurred()) {
    4526                 :          0 :                 p->error_indicator = 1;
    4527                 :          0 :                 p->level--;
    4528                 :          0 :                 return NULL;
    4529                 :            :             }
    4530                 :       3412 :             goto done;
    4531                 :            :         }
    4532                 :       7259 :         p->mark = _mark;
    4533                 :            :         D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
    4534                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME &&'(' params? ')' ['->' expression] &&':' func_type_comment? block"));
    4535                 :            :     }
    4536                 :       7259 :     _res = NULL;
    4537                 :     347418 :   done:
    4538                 :     347418 :     p->level--;
    4539                 :     347418 :     return _res;
    4540                 :            : }
    4541                 :            : 
    4542                 :            : // params: invalid_parameters | parameters
    4543                 :            : static arguments_ty
    4544                 :     340654 : params_rule(Parser *p)
    4545                 :            : {
    4546         [ -  + ]:     340654 :     if (p->level++ == MAXSTACK) {
    4547                 :          0 :         p->error_indicator = 1;
    4548                 :            :         PyErr_NoMemory();
    4549                 :            :     }
    4550         [ -  + ]:     340654 :     if (p->error_indicator) {
    4551                 :          0 :         p->level--;
    4552                 :          0 :         return NULL;
    4553                 :            :     }
    4554                 :     340654 :     arguments_ty _res = NULL;
    4555                 :     340654 :     int _mark = p->mark;
    4556         [ +  + ]:     340654 :     if (p->call_invalid_rules) { // invalid_parameters
    4557         [ -  + ]:        302 :         if (p->error_indicator) {
    4558                 :          0 :             p->level--;
    4559                 :          0 :             return NULL;
    4560                 :            :         }
    4561                 :            :         D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
    4562                 :            :         void *invalid_parameters_var;
    4563         [ -  + ]:        302 :         if (
    4564                 :        302 :             (invalid_parameters_var = invalid_parameters_rule(p))  // invalid_parameters
    4565                 :            :         )
    4566                 :            :         {
    4567                 :            :             D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
    4568                 :          0 :             _res = invalid_parameters_var;
    4569                 :          0 :             goto done;
    4570                 :            :         }
    4571                 :        302 :         p->mark = _mark;
    4572                 :            :         D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
    4573                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
    4574                 :            :     }
    4575                 :            :     { // parameters
    4576         [ +  + ]:     340654 :         if (p->error_indicator) {
    4577                 :         50 :             p->level--;
    4578                 :         50 :             return NULL;
    4579                 :            :         }
    4580                 :            :         D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
    4581                 :            :         arguments_ty parameters_var;
    4582         [ +  + ]:     340604 :         if (
    4583                 :     340604 :             (parameters_var = parameters_rule(p))  // parameters
    4584                 :            :         )
    4585                 :            :         {
    4586                 :            :             D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
    4587                 :     322294 :             _res = parameters_var;
    4588                 :     322294 :             goto done;
    4589                 :            :         }
    4590                 :      18310 :         p->mark = _mark;
    4591                 :            :         D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
    4592                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
    4593                 :            :     }
    4594                 :      18310 :     _res = NULL;
    4595                 :     340604 :   done:
    4596                 :     340604 :     p->level--;
    4597                 :     340604 :     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                 :     340604 : parameters_rule(Parser *p)
    4608                 :            : {
    4609         [ -  + ]:     340604 :     if (p->level++ == MAXSTACK) {
    4610                 :          0 :         p->error_indicator = 1;
    4611                 :            :         PyErr_NoMemory();
    4612                 :            :     }
    4613         [ -  + ]:     340604 :     if (p->error_indicator) {
    4614                 :          0 :         p->level--;
    4615                 :          0 :         return NULL;
    4616                 :            :     }
    4617                 :     340604 :     arguments_ty _res = NULL;
    4618                 :     340604 :     int _mark = p->mark;
    4619                 :            :     { // slash_no_default param_no_default* param_with_default* star_etc?
    4620         [ -  + ]:     340604 :         if (p->error_indicator) {
    4621                 :          0 :             p->level--;
    4622                 :          0 :             return NULL;
    4623                 :            :         }
    4624                 :            :         D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
    4625                 :            :         asdl_arg_seq* a;
    4626                 :            :         asdl_arg_seq* b;
    4627                 :            :         asdl_seq * c;
    4628                 :            :         void *d;
    4629         [ +  + ]:     340604 :         if (
    4630                 :     340604 :             (a = slash_no_default_rule(p))  // slash_no_default
    4631         [ +  - ]:      17578 :             &&
    4632                 :      17578 :             (b = (asdl_arg_seq*)_loop0_36_rule(p))  // param_no_default*
    4633         [ +  - ]:      17578 :             &&
    4634                 :      17578 :             (c = _loop0_37_rule(p))  // param_with_default*
    4635                 :      17578 :             &&
    4636         [ +  + ]:      17578 :             (d = star_etc_rule(p), !p->error_indicator)  // star_etc?
    4637                 :            :         )
    4638                 :            :         {
    4639                 :            :             D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
    4640                 :      17576 :             _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
    4641   [ -  +  -  - ]:      17576 :             if (_res == NULL && PyErr_Occurred()) {
    4642                 :          0 :                 p->error_indicator = 1;
    4643                 :          0 :                 p->level--;
    4644                 :          0 :                 return NULL;
    4645                 :            :             }
    4646                 :      17576 :             goto done;
    4647                 :            :         }
    4648                 :     323028 :         p->mark = _mark;
    4649                 :            :         D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
    4650                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
    4651                 :            :     }
    4652                 :            :     { // slash_with_default param_with_default* star_etc?
    4653         [ +  + ]:     323028 :         if (p->error_indicator) {
    4654                 :         15 :             p->level--;
    4655                 :         15 :             return NULL;
    4656                 :            :         }
    4657                 :            :         D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
    4658                 :            :         SlashWithDefault* a;
    4659                 :            :         asdl_seq * b;
    4660                 :            :         void *c;
    4661         [ +  + ]:     323013 :         if (
    4662                 :     323013 :             (a = slash_with_default_rule(p))  // slash_with_default
    4663         [ +  - ]:        367 :             &&
    4664                 :        367 :             (b = _loop0_38_rule(p))  // param_with_default*
    4665                 :        367 :             &&
    4666         [ +  + ]:        367 :             (c = star_etc_rule(p), !p->error_indicator)  // star_etc?
    4667                 :            :         )
    4668                 :            :         {
    4669                 :            :             D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
    4670                 :        366 :             _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
    4671   [ -  +  -  - ]:        366 :             if (_res == NULL && PyErr_Occurred()) {
    4672                 :          0 :                 p->error_indicator = 1;
    4673                 :          0 :                 p->level--;
    4674                 :          0 :                 return NULL;
    4675                 :            :             }
    4676                 :        366 :             goto done;
    4677                 :            :         }
    4678                 :     322647 :         p->mark = _mark;
    4679                 :            :         D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
    4680                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
    4681                 :            :     }
    4682                 :            :     { // param_no_default+ param_with_default* star_etc?
    4683         [ +  + ]:     322647 :         if (p->error_indicator) {
    4684                 :          1 :             p->level--;
    4685                 :          1 :             return NULL;
    4686                 :            :         }
    4687                 :            :         D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
    4688                 :            :         asdl_arg_seq* a;
    4689                 :            :         asdl_seq * b;
    4690                 :            :         void *c;
    4691         [ +  + ]:     322646 :         if (
    4692                 :     322646 :             (a = (asdl_arg_seq*)_loop1_39_rule(p))  // param_no_default+
    4693         [ +  - ]:     297942 :             &&
    4694                 :     297942 :             (b = _loop0_40_rule(p))  // param_with_default*
    4695                 :     297942 :             &&
    4696         [ +  + ]:     297942 :             (c = star_etc_rule(p), !p->error_indicator)  // star_etc?
    4697                 :            :         )
    4698                 :            :         {
    4699                 :            :             D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
    4700                 :     297931 :             _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
    4701   [ -  +  -  - ]:     297931 :             if (_res == NULL && PyErr_Occurred()) {
    4702                 :          0 :                 p->error_indicator = 1;
    4703                 :          0 :                 p->level--;
    4704                 :          0 :                 return NULL;
    4705                 :            :             }
    4706                 :     297931 :             goto done;
    4707                 :            :         }
    4708                 :      24715 :         p->mark = _mark;
    4709                 :            :         D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
    4710                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
    4711                 :            :     }
    4712                 :            :     { // param_with_default+ star_etc?
    4713         [ +  + ]:      24715 :         if (p->error_indicator) {
    4714                 :         11 :             p->level--;
    4715                 :         11 :             return NULL;
    4716                 :            :         }
    4717                 :            :         D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
    4718                 :            :         asdl_seq * a;
    4719                 :            :         void *b;
    4720         [ +  + ]:      24704 :         if (
    4721                 :      24704 :             (a = _loop1_41_rule(p))  // param_with_default+
    4722                 :       3095 :             &&
    4723         [ +  - ]:       3095 :             (b = star_etc_rule(p), !p->error_indicator)  // star_etc?
    4724                 :            :         )
    4725                 :            :         {
    4726                 :            :             D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
    4727                 :       3095 :             _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
    4728   [ -  +  -  - ]:       3095 :             if (_res == NULL && PyErr_Occurred()) {
    4729                 :          0 :                 p->error_indicator = 1;
    4730                 :          0 :                 p->level--;
    4731                 :          0 :                 return NULL;
    4732                 :            :             }
    4733                 :       3095 :             goto done;
    4734                 :            :         }
    4735                 :      21609 :         p->mark = _mark;
    4736                 :            :         D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
    4737                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
    4738                 :            :     }
    4739                 :            :     { // star_etc
    4740         [ -  + ]:      21609 :         if (p->error_indicator) {
    4741                 :          0 :             p->level--;
    4742                 :          0 :             return NULL;
    4743                 :            :         }
    4744                 :            :         D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
    4745                 :            :         StarEtc* a;
    4746         [ +  + ]:      21609 :         if (
    4747                 :      21609 :             (a = star_etc_rule(p))  // star_etc
    4748                 :            :         )
    4749                 :            :         {
    4750                 :            :             D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
    4751                 :       3326 :             _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
    4752   [ -  +  -  - ]:       3326 :             if (_res == NULL && PyErr_Occurred()) {
    4753                 :          0 :                 p->error_indicator = 1;
    4754                 :          0 :                 p->level--;
    4755                 :          0 :                 return NULL;
    4756                 :            :             }
    4757                 :       3326 :             goto done;
    4758                 :            :         }
    4759                 :      18283 :         p->mark = _mark;
    4760                 :            :         D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
    4761                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
    4762                 :            :     }
    4763                 :      18283 :     _res = NULL;
    4764                 :     340577 :   done:
    4765                 :     340577 :     p->level--;
    4766                 :     340577 :     return _res;
    4767                 :            : }
    4768                 :            : 
    4769                 :            : // slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
    4770                 :            : static asdl_arg_seq*
    4771                 :     341144 : slash_no_default_rule(Parser *p)
    4772                 :            : {
    4773         [ -  + ]:     341144 :     if (p->level++ == MAXSTACK) {
    4774                 :          0 :         p->error_indicator = 1;
    4775                 :            :         PyErr_NoMemory();
    4776                 :            :     }
    4777         [ -  + ]:     341144 :     if (p->error_indicator) {
    4778                 :          0 :         p->level--;
    4779                 :          0 :         return NULL;
    4780                 :            :     }
    4781                 :     341144 :     asdl_arg_seq* _res = NULL;
    4782                 :     341144 :     int _mark = p->mark;
    4783                 :            :     { // param_no_default+ '/' ','
    4784         [ -  + ]:     341144 :         if (p->error_indicator) {
    4785                 :          0 :             p->level--;
    4786                 :          0 :             return NULL;
    4787                 :            :         }
    4788                 :            :         D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
    4789                 :            :         Token * _literal;
    4790                 :            :         Token * _literal_1;
    4791                 :            :         asdl_arg_seq* a;
    4792         [ +  + ]:     341144 :         if (
    4793                 :     341144 :             (a = (asdl_arg_seq*)_loop1_42_rule(p))  // param_no_default+
    4794         [ +  + ]:     315888 :             &&
    4795                 :     315888 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
    4796         [ +  + ]:      17593 :             &&
    4797                 :      17593 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
    4798                 :            :         )
    4799                 :            :         {
    4800                 :            :             D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
    4801                 :      17363 :             _res = a;
    4802   [ -  +  -  - ]:      17363 :             if (_res == NULL && PyErr_Occurred()) {
    4803                 :          0 :                 p->error_indicator = 1;
    4804                 :          0 :                 p->level--;
    4805                 :          0 :                 return NULL;
    4806                 :            :             }
    4807                 :      17363 :             goto done;
    4808                 :            :         }
    4809                 :     323781 :         p->mark = _mark;
    4810                 :            :         D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
    4811                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
    4812                 :            :     }
    4813                 :            :     { // param_no_default+ '/' &')'
    4814         [ +  + ]:     323781 :         if (p->error_indicator) {
    4815                 :         13 :             p->level--;
    4816                 :         13 :             return NULL;
    4817                 :            :         }
    4818                 :            :         D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
    4819                 :            :         Token * _literal;
    4820                 :            :         asdl_arg_seq* a;
    4821         [ +  + ]:     323768 :         if (
    4822                 :     323768 :             (a = (asdl_arg_seq*)_loop1_43_rule(p))  // param_no_default+
    4823         [ +  + ]:     298525 :             &&
    4824                 :     298525 :             (_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                 :            :             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                 :     323538 :         p->mark = _mark;
    4839                 :            :         D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
    4840                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
    4841                 :            :     }
    4842                 :     323538 :     _res = NULL;
    4843                 :     341131 :   done:
    4844                 :     341131 :     p->level--;
    4845                 :     341131 :     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                 :     323835 : slash_with_default_rule(Parser *p)
    4853                 :            : {
    4854         [ -  + ]:     323835 :     if (p->level++ == MAXSTACK) {
    4855                 :          0 :         p->error_indicator = 1;
    4856                 :            :         PyErr_NoMemory();
    4857                 :            :     }
    4858         [ -  + ]:     323835 :     if (p->error_indicator) {
    4859                 :          0 :         p->level--;
    4860                 :          0 :         return NULL;
    4861                 :            :     }
    4862                 :     323835 :     SlashWithDefault* _res = NULL;
    4863                 :     323835 :     int _mark = p->mark;
    4864                 :            :     { // param_no_default* param_with_default+ '/' ','
    4865         [ -  + ]:     323835 :         if (p->error_indicator) {
    4866                 :          0 :             p->level--;
    4867                 :          0 :             return NULL;
    4868                 :            :         }
    4869                 :            :         D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
    4870                 :            :         Token * _literal;
    4871                 :            :         Token * _literal_1;
    4872                 :            :         asdl_seq * a;
    4873                 :            :         asdl_seq * b;
    4874         [ +  - ]:     323835 :         if (
    4875                 :     323835 :             (a = _loop0_44_rule(p))  // param_no_default*
    4876         [ +  + ]:     323835 :             &&
    4877                 :     323835 :             (b = _loop1_45_rule(p))  // param_with_default+
    4878         [ +  + ]:      39661 :             &&
    4879                 :      39661 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
    4880         [ +  + ]:        380 :             &&
    4881                 :        380 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
    4882                 :            :         )
    4883                 :            :         {
    4884                 :            :             D(fprintf(stderr, "%*c+ slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
    4885                 :        352 :             _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq* ) a , b );
    4886   [ -  +  -  - ]:        352 :             if (_res == NULL && PyErr_Occurred()) {
    4887                 :          0 :                 p->error_indicator = 1;
    4888                 :          0 :                 p->level--;
    4889                 :          0 :                 return NULL;
    4890                 :            :             }
    4891                 :        352 :             goto done;
    4892                 :            :         }
    4893                 :     323483 :         p->mark = _mark;
    4894                 :            :         D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
    4895                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
    4896                 :            :     }
    4897                 :            :     { // param_no_default* param_with_default+ '/' &')'
    4898         [ +  + ]:     323483 :         if (p->error_indicator) {
    4899                 :          3 :             p->level--;
    4900                 :          3 :             return NULL;
    4901                 :            :         }
    4902                 :            :         D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
    4903                 :            :         Token * _literal;
    4904                 :            :         asdl_seq * a;
    4905                 :            :         asdl_seq * b;
    4906         [ +  - ]:     323480 :         if (
    4907                 :     323480 :             (a = _loop0_46_rule(p))  // param_no_default*
    4908         [ +  + ]:     323480 :             &&
    4909                 :     323480 :             (b = _loop1_47_rule(p))  // param_with_default+
    4910         [ +  + ]:      39309 :             &&
    4911                 :      39309 :             (_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                 :            :             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                 :     323456 :         p->mark = _mark;
    4926                 :            :         D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
    4927                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
    4928                 :            :     }
    4929                 :     323456 :     _res = NULL;
    4930                 :     323832 :   done:
    4931                 :     323832 :     p->level--;
    4932                 :     323832 :     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                 :     340591 : star_etc_rule(Parser *p)
    4943                 :            : {
    4944         [ -  + ]:     340591 :     if (p->level++ == MAXSTACK) {
    4945                 :          0 :         p->error_indicator = 1;
    4946                 :            :         PyErr_NoMemory();
    4947                 :            :     }
    4948         [ -  + ]:     340591 :     if (p->error_indicator) {
    4949                 :          0 :         p->level--;
    4950                 :          0 :         return NULL;
    4951                 :            :     }
    4952                 :     340591 :     StarEtc* _res = NULL;
    4953                 :     340591 :     int _mark = p->mark;
    4954         [ +  + ]:     340591 :     if (p->call_invalid_rules) { // invalid_star_etc
    4955         [ -  + ]:        252 :         if (p->error_indicator) {
    4956                 :          0 :             p->level--;
    4957                 :          0 :             return NULL;
    4958                 :            :         }
    4959                 :            :         D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
    4960                 :            :         void *invalid_star_etc_var;
    4961         [ -  + ]:        252 :         if (
    4962                 :        252 :             (invalid_star_etc_var = invalid_star_etc_rule(p))  // invalid_star_etc
    4963                 :            :         )
    4964                 :            :         {
    4965                 :            :             D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
    4966                 :          0 :             _res = invalid_star_etc_var;
    4967                 :          0 :             goto done;
    4968                 :            :         }
    4969                 :        252 :         p->mark = _mark;
    4970                 :            :         D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
    4971                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
    4972                 :            :     }
    4973                 :            :     { // '*' param_no_default param_maybe_default* kwds?
    4974         [ +  + ]:     340591 :         if (p->error_indicator) {
    4975                 :         10 :             p->level--;
    4976                 :         10 :             return NULL;
    4977                 :            :         }
    4978                 :            :         D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
    4979                 :            :         Token * _literal;
    4980                 :            :         arg_ty a;
    4981                 :            :         asdl_seq * b;
    4982                 :            :         void *c;
    4983         [ +  + ]:     340581 :         if (
    4984                 :     340581 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
    4985         [ +  + ]:      33151 :             &&
    4986                 :      33151 :             (a = param_no_default_rule(p))  // param_no_default
    4987         [ +  - ]:      27187 :             &&
    4988                 :      27187 :             (b = _loop0_48_rule(p))  // param_maybe_default*
    4989                 :      27187 :             &&
    4990         [ +  + ]:      27187 :             (c = kwds_rule(p), !p->error_indicator)  // kwds?
    4991                 :            :         )
    4992                 :            :         {
    4993                 :            :             D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
    4994                 :      27183 :             _res = _PyPegen_star_etc ( p , a , b , c );
    4995   [ -  +  -  - ]:      27183 :             if (_res == NULL && PyErr_Occurred()) {
    4996                 :          0 :                 p->error_indicator = 1;
    4997                 :          0 :                 p->level--;
    4998                 :          0 :                 return NULL;
    4999                 :            :             }
    5000                 :      27183 :             goto done;
    5001                 :            :         }
    5002                 :     313398 :         p->mark = _mark;
    5003                 :            :         D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
    5004                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
    5005                 :            :     }
    5006                 :            :     { // '*' param_no_default_star_annotation param_maybe_default* kwds?
    5007         [ +  + ]:     313398 :         if (p->error_indicator) {
    5008                 :          4 :             p->level--;
    5009                 :          4 :             return NULL;
    5010                 :            :         }
    5011                 :            :         D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default_star_annotation param_maybe_default* kwds?"));
    5012                 :            :         Token * _literal;
    5013                 :            :         arg_ty a;
    5014                 :            :         asdl_seq * b;
    5015                 :            :         void *c;
    5016         [ +  + ]:     313394 :         if (
    5017                 :     313394 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
    5018         [ +  + ]:       5964 :             &&
    5019                 :       5964 :             (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                 :            :             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                 :     313374 :         p->mark = _mark;
    5036                 :            :         D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
    5037                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default_star_annotation param_maybe_default* kwds?"));
    5038                 :            :     }
    5039                 :            :     { // '*' ',' param_maybe_default+ kwds?
    5040         [ -  + ]:     313374 :         if (p->error_indicator) {
    5041                 :          0 :             p->level--;
    5042                 :          0 :             return NULL;
    5043                 :            :         }
    5044                 :            :         D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
    5045                 :            :         Token * _literal;
    5046                 :            :         Token * _literal_1;
    5047                 :            :         asdl_seq * b;
    5048                 :            :         void *c;
    5049         [ +  + ]:     313374 :         if (
    5050                 :     313374 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
    5051         [ +  + ]:       5944 :             &&
    5052                 :       5944 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
    5053         [ +  + ]:       5934 :             &&
    5054                 :       5934 :             (b = _loop1_50_rule(p))  // param_maybe_default+
    5055                 :       5921 :             &&
    5056         [ +  - ]:       5921 :             (c = kwds_rule(p), !p->error_indicator)  // kwds?
    5057                 :            :         )
    5058                 :            :         {
    5059                 :            :             D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
    5060                 :       5921 :             _res = _PyPegen_star_etc ( p , NULL , b , c );
    5061   [ -  +  -  - ]:       5921 :             if (_res == NULL && PyErr_Occurred()) {
    5062                 :          0 :                 p->error_indicator = 1;
    5063                 :          0 :                 p->level--;
    5064                 :          0 :                 return NULL;
    5065                 :            :             }
    5066                 :       5921 :             goto done;
    5067                 :            :         }
    5068                 :     307453 :         p->mark = _mark;
    5069                 :            :         D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
    5070                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
    5071                 :            :     }
    5072                 :            :     { // kwds
    5073         [ -  + ]:     307453 :         if (p->error_indicator) {
    5074                 :          0 :             p->level--;
    5075                 :          0 :             return NULL;
    5076                 :            :         }
    5077                 :            :         D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
    5078                 :            :         arg_ty a;
    5079         [ +  + ]:     307453 :         if (
    5080                 :     307453 :             (a = kwds_rule(p))  // kwds
    5081                 :            :         )
    5082                 :            :         {
    5083                 :            :             D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
    5084                 :       3484 :             _res = _PyPegen_star_etc ( p , NULL , NULL , a );
    5085   [ -  +  -  - ]:       3484 :             if (_res == NULL && PyErr_Occurred()) {
    5086                 :          0 :                 p->error_indicator = 1;
    5087                 :          0 :                 p->level--;
    5088                 :          0 :                 return NULL;
    5089                 :            :             }
    5090                 :       3484 :             goto done;
    5091                 :            :         }
    5092                 :     303969 :         p->mark = _mark;
    5093                 :            :         D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
    5094                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
    5095                 :            :     }
    5096                 :     303969 :     _res = NULL;
    5097                 :     340577 :   done:
    5098                 :     340577 :     p->level--;
    5099                 :     340577 :     return _res;
    5100                 :            : }
    5101                 :            : 
    5102                 :            : // kwds: invalid_kwds | '**' param_no_default
    5103                 :            : static arg_ty
    5104                 :     340581 : kwds_rule(Parser *p)
    5105                 :            : {
    5106         [ -  + ]:     340581 :     if (p->level++ == MAXSTACK) {
    5107                 :          0 :         p->error_indicator = 1;
    5108                 :            :         PyErr_NoMemory();
    5109                 :            :     }
    5110         [ -  + ]:     340581 :     if (p->error_indicator) {
    5111                 :          0 :         p->level--;
    5112                 :          0 :         return NULL;
    5113                 :            :     }
    5114                 :     340581 :     arg_ty _res = NULL;
    5115                 :     340581 :     int _mark = p->mark;
    5116         [ +  + ]:     340581 :     if (p->call_invalid_rules) { // invalid_kwds
    5117         [ -  + ]:        242 :         if (p->error_indicator) {
    5118                 :          0 :             p->level--;
    5119                 :          0 :             return NULL;
    5120                 :            :         }
    5121                 :            :         D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwds"));
    5122                 :            :         void *invalid_kwds_var;
    5123         [ -  + ]:        242 :         if (
    5124                 :        242 :             (invalid_kwds_var = invalid_kwds_rule(p))  // invalid_kwds
    5125                 :            :         )
    5126                 :            :         {
    5127                 :            :             D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwds"));
    5128                 :          0 :             _res = invalid_kwds_var;
    5129                 :          0 :             goto done;
    5130                 :            :         }
    5131                 :        242 :         p->mark = _mark;
    5132                 :            :         D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
    5133                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwds"));
    5134                 :            :     }
    5135                 :            :     { // '**' param_no_default
    5136         [ +  + ]:     340581 :         if (p->error_indicator) {
    5137                 :          9 :             p->level--;
    5138                 :          9 :             return NULL;
    5139                 :            :         }
    5140                 :            :         D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
    5141                 :            :         Token * _literal;
    5142                 :            :         arg_ty a;
    5143         [ +  + ]:     340572 :         if (
    5144                 :     340572 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
    5145         [ +  + ]:      25539 :             &&
    5146                 :      25539 :             (a = param_no_default_rule(p))  // param_no_default
    5147                 :            :         )
    5148                 :            :         {
    5149                 :            :             D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
    5150                 :      25531 :             _res = a;
    5151   [ -  +  -  - ]:      25531 :             if (_res == NULL && PyErr_Occurred()) {
    5152                 :          0 :                 p->error_indicator = 1;
    5153                 :          0 :                 p->level--;
    5154                 :          0 :                 return NULL;
    5155                 :            :             }
    5156                 :      25531 :             goto done;
    5157                 :            :         }
    5158                 :     315041 :         p->mark = _mark;
    5159                 :            :         D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
    5160                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
    5161                 :            :     }
    5162                 :     315041 :     _res = NULL;
    5163                 :     340572 :   done:
    5164                 :     340572 :     p->level--;
    5165                 :     340572 :     return _res;
    5166                 :            : }
    5167                 :            : 
    5168                 :            : // param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
    5169                 :            : static arg_ty
    5170                 :    4050200 : param_no_default_rule(Parser *p)
    5171                 :            : {
    5172         [ -  + ]:    4050200 :     if (p->level++ == MAXSTACK) {
    5173                 :          0 :         p->error_indicator = 1;
    5174                 :            :         PyErr_NoMemory();
    5175                 :            :     }
    5176         [ -  + ]:    4050200 :     if (p->error_indicator) {
    5177                 :          0 :         p->level--;
    5178                 :          0 :         return NULL;
    5179                 :            :     }
    5180                 :    4050200 :     arg_ty _res = NULL;
    5181                 :    4050200 :     int _mark = p->mark;
    5182                 :            :     { // param ',' TYPE_COMMENT?
    5183         [ -  + ]:    4050200 :         if (p->error_indicator) {
    5184                 :          0 :             p->level--;
    5185                 :          0 :             return NULL;
    5186                 :            :         }
    5187                 :            :         D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
    5188                 :            :         Token * _literal;
    5189                 :            :         arg_ty a;
    5190                 :            :         void *tc;
    5191         [ +  + ]:    4050200 :         if (
    5192                 :    4050200 :             (a = param_rule(p))  // param
    5193         [ +  + ]:    2590116 :             &&
    5194                 :    2590116 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
    5195                 :    1117715 :             &&
    5196         [ +  + ]:    1117715 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    5197                 :            :         )
    5198                 :            :         {
    5199                 :            :             D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
    5200                 :    1117711 :             _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
    5201   [ -  +  -  - ]:    1117711 :             if (_res == NULL && PyErr_Occurred()) {
    5202                 :          0 :                 p->error_indicator = 1;
    5203                 :          0 :                 p->level--;
    5204                 :          0 :                 return NULL;
    5205                 :            :             }
    5206                 :    1117711 :             goto done;
    5207                 :            :         }
    5208                 :    2932489 :         p->mark = _mark;
    5209                 :            :         D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
    5210                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
    5211                 :            :     }
    5212                 :            :     { // param TYPE_COMMENT? &')'
    5213         [ +  + ]:    2932489 :         if (p->error_indicator) {
    5214                 :         18 :             p->level--;
    5215                 :         18 :             return NULL;
    5216                 :            :         }
    5217                 :            :         D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
    5218                 :            :         arg_ty a;
    5219                 :            :         void *tc;
    5220         [ +  + ]:    2932471 :         if (
    5221                 :    2932471 :             (a = param_rule(p))  // param
    5222                 :    1472401 :             &&
    5223         [ +  - ]:    1472401 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    5224         [ +  + ]:    1472401 :             &&
    5225                 :    1472401 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8)  // token=')'
    5226                 :            :         )
    5227                 :            :         {
    5228                 :            :             D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
    5229                 :    1273453 :             _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
    5230   [ -  +  -  - ]:    1273453 :             if (_res == NULL && PyErr_Occurred()) {
    5231                 :          0 :                 p->error_indicator = 1;
    5232                 :          0 :                 p->level--;
    5233                 :          0 :                 return NULL;
    5234                 :            :             }
    5235                 :    1273453 :             goto done;
    5236                 :            :         }
    5237                 :    1659018 :         p->mark = _mark;
    5238                 :            :         D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
    5239                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
    5240                 :            :     }
    5241                 :    1659018 :     _res = NULL;
    5242                 :    4050182 :   done:
    5243                 :    4050182 :     p->level--;
    5244                 :    4050182 :     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                 :       5964 : param_no_default_star_annotation_rule(Parser *p)
    5252                 :            : {
    5253         [ -  + ]:       5964 :     if (p->level++ == MAXSTACK) {
    5254                 :          0 :         p->error_indicator = 1;
    5255                 :            :         PyErr_NoMemory();
    5256                 :            :     }
    5257         [ -  + ]:       5964 :     if (p->error_indicator) {
    5258                 :          0 :         p->level--;
    5259                 :          0 :         return NULL;
    5260                 :            :     }
    5261                 :       5964 :     arg_ty _res = NULL;
    5262                 :       5964 :     int _mark = p->mark;
    5263                 :            :     { // param_star_annotation ',' TYPE_COMMENT?
    5264         [ -  + ]:       5964 :         if (p->error_indicator) {
    5265                 :          0 :             p->level--;
    5266                 :          0 :             return NULL;
    5267                 :            :         }
    5268                 :            :         D(fprintf(stderr, "%*c> param_no_default_star_annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_star_annotation ',' TYPE_COMMENT?"));
    5269                 :            :         Token * _literal;
    5270                 :            :         arg_ty a;
    5271                 :            :         void *tc;
    5272         [ +  + ]:       5964 :         if (
    5273                 :       5964 :             (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                 :            :             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                 :       5961 :         p->mark = _mark;
    5290                 :            :         D(fprintf(stderr, "%*c%s param_no_default_star_annotation[%d-%d]: %s failed!\n", p->level, ' ',
    5291                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_star_annotation ',' TYPE_COMMENT?"));
    5292                 :            :     }
    5293                 :            :     { // param_star_annotation TYPE_COMMENT? &')'
    5294         [ -  + ]:       5961 :         if (p->error_indicator) {
    5295                 :          0 :             p->level--;
    5296                 :          0 :             return NULL;
    5297                 :            :         }
    5298                 :            :         D(fprintf(stderr, "%*c> param_no_default_star_annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_star_annotation TYPE_COMMENT? &')'"));
    5299                 :            :         arg_ty a;
    5300                 :            :         void *tc;
    5301         [ +  + ]:       5961 :         if (
    5302                 :       5961 :             (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                 :            :             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                 :       5944 :         p->mark = _mark;
    5319                 :            :         D(fprintf(stderr, "%*c%s param_no_default_star_annotation[%d-%d]: %s failed!\n", p->level, ' ',
    5320                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_star_annotation TYPE_COMMENT? &')'"));
    5321                 :            :     }
    5322                 :       5944 :     _res = NULL;
    5323                 :       5964 :   done:
    5324                 :       5964 :     p->level--;
    5325                 :       5964 :     return _res;
    5326                 :            : }
    5327                 :            : 
    5328                 :            : // param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
    5329                 :            : static NameDefaultPair*
    5330                 :    1207831 : param_with_default_rule(Parser *p)
    5331                 :            : {
    5332         [ -  + ]:    1207831 :     if (p->level++ == MAXSTACK) {
    5333                 :          0 :         p->error_indicator = 1;
    5334                 :            :         PyErr_NoMemory();
    5335                 :            :     }
    5336         [ -  + ]:    1207831 :     if (p->error_indicator) {
    5337                 :          0 :         p->level--;
    5338                 :          0 :         return NULL;
    5339                 :            :     }
    5340                 :    1207831 :     NameDefaultPair* _res = NULL;
    5341                 :    1207831 :     int _mark = p->mark;
    5342                 :            :     { // param default ',' TYPE_COMMENT?
    5343         [ -  + ]:    1207831 :         if (p->error_indicator) {
    5344                 :          0 :             p->level--;
    5345                 :          0 :             return NULL;
    5346                 :            :         }
    5347                 :            :         D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
    5348                 :            :         Token * _literal;
    5349                 :            :         arg_ty a;
    5350                 :            :         expr_ty c;
    5351                 :            :         void *tc;
    5352         [ +  + ]:    1207831 :         if (
    5353                 :    1207831 :             (a = param_rule(p))  // param
    5354         [ +  + ]:     220440 :             &&
    5355                 :     220440 :             (c = default_rule(p))  // default
    5356         [ +  + ]:     219660 :             &&
    5357                 :     219660 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
    5358                 :     119554 :             &&
    5359         [ +  - ]:     119554 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    5360                 :            :         )
    5361                 :            :         {
    5362                 :            :             D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
    5363                 :     119554 :             _res = _PyPegen_name_default_pair ( p , a , c , tc );
    5364   [ -  +  -  - ]:     119554 :             if (_res == NULL && PyErr_Occurred()) {
    5365                 :          0 :                 p->error_indicator = 1;
    5366                 :          0 :                 p->level--;
    5367                 :          0 :                 return NULL;
    5368                 :            :             }
    5369                 :     119554 :             goto done;
    5370                 :            :         }
    5371                 :    1088277 :         p->mark = _mark;
    5372                 :            :         D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
    5373                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
    5374                 :            :     }
    5375                 :            :     { // param default TYPE_COMMENT? &')'
    5376         [ +  + ]:    1088277 :         if (p->error_indicator) {
    5377                 :          3 :             p->level--;
    5378                 :          3 :             return NULL;
    5379                 :            :         }
    5380                 :            :         D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
    5381                 :            :         arg_ty a;
    5382                 :            :         expr_ty c;
    5383                 :            :         void *tc;
    5384         [ +  + ]:    1088274 :         if (
    5385                 :    1088274 :             (a = param_rule(p))  // param
    5386         [ +  + ]:     100883 :             &&
    5387                 :     100883 :             (c = default_rule(p))  // default
    5388                 :     100106 :             &&
    5389         [ +  - ]:     100106 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    5390         [ +  + ]:     100106 :             &&
    5391                 :     100106 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8)  // token=')'
    5392                 :            :         )
    5393                 :            :         {
    5394                 :            :             D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
    5395                 :     100083 :             _res = _PyPegen_name_default_pair ( p , a , c , tc );
    5396   [ -  +  -  - ]:     100083 :             if (_res == NULL && PyErr_Occurred()) {
    5397                 :          0 :                 p->error_indicator = 1;
    5398                 :          0 :                 p->level--;
    5399                 :          0 :                 return NULL;
    5400                 :            :             }
    5401                 :     100083 :             goto done;
    5402                 :            :         }
    5403                 :     988191 :         p->mark = _mark;
    5404                 :            :         D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
    5405                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
    5406                 :            :     }
    5407                 :     988191 :     _res = NULL;
    5408                 :    1207828 :   done:
    5409                 :    1207828 :     p->level--;
    5410                 :    1207828 :     return _res;
    5411                 :            : }
    5412                 :            : 
    5413                 :            : // param_maybe_default:
    5414                 :            : //     | param default? ',' TYPE_COMMENT?
    5415                 :            : //     | param default? TYPE_COMMENT? &')'
    5416                 :            : static NameDefaultPair*
    5417                 :      52435 : param_maybe_default_rule(Parser *p)
    5418                 :            : {
    5419         [ -  + ]:      52435 :     if (p->level++ == MAXSTACK) {
    5420                 :          0 :         p->error_indicator = 1;
    5421                 :            :         PyErr_NoMemory();
    5422                 :            :     }
    5423         [ -  + ]:      52435 :     if (p->error_indicator) {
    5424                 :          0 :         p->level--;
    5425                 :          0 :         return NULL;
    5426                 :            :     }
    5427                 :      52435 :     NameDefaultPair* _res = NULL;
    5428                 :      52435 :     int _mark = p->mark;
    5429                 :            :     { // param default? ',' TYPE_COMMENT?
    5430         [ -  + ]:      52435 :         if (p->error_indicator) {
    5431                 :          0 :             p->level--;
    5432                 :          0 :             return NULL;
    5433                 :            :         }
    5434                 :            :         D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
    5435                 :            :         Token * _literal;
    5436                 :            :         arg_ty a;
    5437                 :            :         void *c;
    5438                 :            :         void *tc;
    5439         [ +  + ]:      52435 :         if (
    5440                 :      52435 :             (a = param_rule(p))  // param
    5441                 :      18838 :             &&
    5442         [ +  - ]:      18838 :             (c = default_rule(p), !p->error_indicator)  // default?
    5443         [ +  + ]:      18838 :             &&
    5444                 :      18838 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
    5445                 :      13937 :             &&
    5446         [ +  - ]:      13937 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    5447                 :            :         )
    5448                 :            :         {
    5449                 :            :             D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
    5450                 :      13937 :             _res = _PyPegen_name_default_pair ( p , a , c , tc );
    5451   [ -  +  -  - ]:      13937 :             if (_res == NULL && PyErr_Occurred()) {
    5452                 :          0 :                 p->error_indicator = 1;
    5453                 :          0 :                 p->level--;
    5454                 :          0 :                 return NULL;
    5455                 :            :             }
    5456                 :      13937 :             goto done;
    5457                 :            :         }
    5458                 :      38498 :         p->mark = _mark;
    5459                 :            :         D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
    5460                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
    5461                 :            :     }
    5462                 :            :     { // param default? TYPE_COMMENT? &')'
    5463         [ -  + ]:      38498 :         if (p->error_indicator) {
    5464                 :          0 :             p->level--;
    5465                 :          0 :             return NULL;
    5466                 :            :         }
    5467                 :            :         D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
    5468                 :            :         arg_ty a;
    5469                 :            :         void *c;
    5470                 :            :         void *tc;
    5471         [ +  + ]:      38498 :         if (
    5472                 :      38498 :             (a = param_rule(p))  // param
    5473                 :       4901 :             &&
    5474         [ +  - ]:       4901 :             (c = default_rule(p), !p->error_indicator)  // default?
    5475                 :       4901 :             &&
    5476         [ +  - ]:       4901 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    5477         [ +  + ]:       4901 :             &&
    5478                 :       4901 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8)  // token=')'
    5479                 :            :         )
    5480                 :            :         {
    5481                 :            :             D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
    5482                 :       4773 :             _res = _PyPegen_name_default_pair ( p , a , c , tc );
    5483   [ -  +  -  - ]:       4773 :             if (_res == NULL && PyErr_Occurred()) {
    5484                 :          0 :                 p->error_indicator = 1;
    5485                 :          0 :                 p->level--;
    5486                 :          0 :                 return NULL;
    5487                 :            :             }
    5488                 :       4773 :             goto done;
    5489                 :            :         }
    5490                 :      33725 :         p->mark = _mark;
    5491                 :            :         D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
    5492                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
    5493                 :            :     }
    5494                 :      33725 :     _res = NULL;
    5495                 :      52435 :   done:
    5496                 :      52435 :     p->level--;
    5497                 :      52435 :     return _res;
    5498                 :            : }
    5499                 :            : 
    5500                 :            : // param: NAME annotation?
    5501                 :            : static arg_ty
    5502                 :    9369786 : param_rule(Parser *p)
    5503                 :            : {
    5504         [ -  + ]:    9369786 :     if (p->level++ == MAXSTACK) {
    5505                 :          0 :         p->error_indicator = 1;
    5506                 :            :         PyErr_NoMemory();
    5507                 :            :     }
    5508         [ -  + ]:    9369786 :     if (p->error_indicator) {
    5509                 :          0 :         p->level--;
    5510                 :          0 :         return NULL;
    5511                 :            :     }
    5512                 :    9369786 :     arg_ty _res = NULL;
    5513                 :    9369786 :     int _mark = p->mark;
    5514   [ +  +  +  + ]:    9369786 :     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                 :    9369781 :     int _start_lineno = p->tokens[_mark]->lineno;
    5520                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    5521                 :    9369781 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    5522                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    5523                 :            :     { // NAME annotation?
    5524         [ -  + ]:    9369781 :         if (p->error_indicator) {
    5525                 :          0 :             p->level--;
    5526                 :          0 :             return NULL;
    5527                 :            :         }
    5528                 :            :         D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
    5529                 :            :         expr_ty a;
    5530                 :            :         void *b;
    5531         [ +  + ]:    9369781 :         if (
    5532                 :    9369781 :             (a = _PyPegen_name_token(p))  // NAME
    5533                 :    4407645 :             &&
    5534         [ +  + ]:    4407645 :             (b = annotation_rule(p), !p->error_indicator)  // annotation?
    5535                 :            :         )
    5536                 :            :         {
    5537                 :            :             D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
    5538                 :    4407636 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    5539         [ -  + ]:    4407636 :             if (_token == NULL) {
    5540                 :          0 :                 p->level--;
    5541                 :          0 :                 return NULL;
    5542                 :            :             }
    5543                 :    4407636 :             int _end_lineno = _token->end_lineno;
    5544                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    5545                 :    4407636 :             int _end_col_offset = _token->end_col_offset;
    5546                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    5547                 :    4407636 :             _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
    5548   [ -  +  -  - ]:    4407636 :             if (_res == NULL && PyErr_Occurred()) {
    5549                 :          0 :                 p->error_indicator = 1;
    5550                 :          0 :                 p->level--;
    5551                 :          0 :                 return NULL;
    5552                 :            :             }
    5553                 :    4407636 :             goto done;
    5554                 :            :         }
    5555                 :    4962145 :         p->mark = _mark;
    5556                 :            :         D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
    5557                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
    5558                 :            :     }
    5559                 :    4962145 :     _res = NULL;
    5560                 :    9369781 :   done:
    5561                 :    9369781 :     p->level--;
    5562                 :    9369781 :     return _res;
    5563                 :            : }
    5564                 :            : 
    5565                 :            : // param_star_annotation: NAME star_annotation
    5566                 :            : static arg_ty
    5567                 :      11925 : param_star_annotation_rule(Parser *p)
    5568                 :            : {
    5569         [ -  + ]:      11925 :     if (p->level++ == MAXSTACK) {
    5570                 :          0 :         p->error_indicator = 1;
    5571                 :            :         PyErr_NoMemory();
    5572                 :            :     }
    5573         [ -  + ]:      11925 :     if (p->error_indicator) {
    5574                 :          0 :         p->level--;
    5575                 :          0 :         return NULL;
    5576                 :            :     }
    5577                 :      11925 :     arg_ty _res = NULL;
    5578                 :      11925 :     int _mark = p->mark;
    5579   [ -  +  -  - ]:      11925 :     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                 :      11925 :     int _start_lineno = p->tokens[_mark]->lineno;
    5585                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    5586                 :      11925 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    5587                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    5588                 :            :     { // NAME star_annotation
    5589         [ -  + ]:      11925 :         if (p->error_indicator) {
    5590                 :          0 :             p->level--;
    5591                 :          0 :             return NULL;
    5592                 :            :         }
    5593                 :            :         D(fprintf(stderr, "%*c> param_star_annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME star_annotation"));
    5594                 :            :         expr_ty a;
    5595                 :            :         expr_ty b;
    5596         [ +  + ]:      11925 :         if (
    5597                 :      11925 :             (a = _PyPegen_name_token(p))  // NAME
    5598         [ +  + ]:         47 :             &&
    5599                 :         47 :             (b = star_annotation_rule(p))  // star_annotation
    5600                 :            :         )
    5601                 :            :         {
    5602                 :            :             D(fprintf(stderr, "%*c+ param_star_annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME star_annotation"));
    5603                 :         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                 :      11880 :         p->mark = _mark;
    5621                 :            :         D(fprintf(stderr, "%*c%s param_star_annotation[%d-%d]: %s failed!\n", p->level, ' ',
    5622                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME star_annotation"));
    5623                 :            :     }
    5624                 :      11880 :     _res = NULL;
    5625                 :      11925 :   done:
    5626                 :      11925 :     p->level--;
    5627                 :      11925 :     return _res;
    5628                 :            : }
    5629                 :            : 
    5630                 :            : // annotation: ':' expression
    5631                 :            : static expr_ty
    5632                 :    4407645 : annotation_rule(Parser *p)
    5633                 :            : {
    5634         [ -  + ]:    4407645 :     if (p->level++ == MAXSTACK) {
    5635                 :          0 :         p->error_indicator = 1;
    5636                 :            :         PyErr_NoMemory();
    5637                 :            :     }
    5638         [ -  + ]:    4407645 :     if (p->error_indicator) {
    5639                 :          0 :         p->level--;
    5640                 :          0 :         return NULL;
    5641                 :            :     }
    5642                 :    4407645 :     expr_ty _res = NULL;
    5643                 :    4407645 :     int _mark = p->mark;
    5644                 :            :     { // ':' expression
    5645         [ -  + ]:    4407645 :         if (p->error_indicator) {
    5646                 :          0 :             p->level--;
    5647                 :          0 :             return NULL;
    5648                 :            :         }
    5649                 :            :         D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
    5650                 :            :         Token * _literal;
    5651                 :            :         expr_ty a;
    5652         [ +  + ]:    4407645 :         if (
    5653                 :    4407645 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    5654         [ +  + ]:     340454 :             &&
    5655                 :     340454 :             (a = expression_rule(p))  // expression
    5656                 :            :         )
    5657                 :            :         {
    5658                 :            :             D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
    5659                 :     340117 :             _res = a;
    5660   [ -  +  -  - ]:     340117 :             if (_res == NULL && PyErr_Occurred()) {
    5661                 :          0 :                 p->error_indicator = 1;
    5662                 :          0 :                 p->level--;
    5663                 :          0 :                 return NULL;
    5664                 :            :             }
    5665                 :     340117 :             goto done;
    5666                 :            :         }
    5667                 :    4067528 :         p->mark = _mark;
    5668                 :            :         D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
    5669                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
    5670                 :            :     }
    5671                 :    4067528 :     _res = NULL;
    5672                 :    4407645 :   done:
    5673                 :    4407645 :     p->level--;
    5674                 :    4407645 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :     347091 : default_rule(Parser *p)
    5727                 :            : {
    5728         [ -  + ]:     347091 :     if (p->level++ == MAXSTACK) {
    5729                 :          0 :         p->error_indicator = 1;
    5730                 :            :         PyErr_NoMemory();
    5731                 :            :     }
    5732         [ -  + ]:     347091 :     if (p->error_indicator) {
    5733                 :          0 :         p->level--;
    5734                 :          0 :         return NULL;
    5735                 :            :     }
    5736                 :     347091 :     expr_ty _res = NULL;
    5737                 :     347091 :     int _mark = p->mark;
    5738                 :            :     { // '=' expression
    5739         [ -  + ]:     347091 :         if (p->error_indicator) {
    5740                 :          0 :             p->level--;
    5741                 :          0 :             return NULL;
    5742                 :            :         }
    5743                 :            :         D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
    5744                 :            :         Token * _literal;
    5745                 :            :         expr_ty a;
    5746         [ +  + ]:     347091 :         if (
    5747                 :     347091 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
    5748         [ +  + ]:     340699 :             &&
    5749                 :     340699 :             (a = expression_rule(p))  // expression
    5750                 :            :         )
    5751                 :            :         {
    5752                 :            :             D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
    5753                 :     340394 :             _res = a;
    5754   [ -  +  -  - ]:     340394 :             if (_res == NULL && PyErr_Occurred()) {
    5755                 :          0 :                 p->error_indicator = 1;
    5756                 :          0 :                 p->level--;
    5757                 :          0 :                 return NULL;
    5758                 :            :             }
    5759                 :     340394 :             goto done;
    5760                 :            :         }
    5761                 :       6697 :         p->mark = _mark;
    5762                 :            :         D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
    5763                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
    5764                 :            :     }
    5765         [ +  + ]:       6697 :     if (p->call_invalid_rules) { // invalid_default
    5766         [ -  + ]:       1775 :         if (p->error_indicator) {
    5767                 :          0 :             p->level--;
    5768                 :          0 :             return NULL;
    5769                 :            :         }
    5770                 :            :         D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_default"));
    5771                 :            :         void *invalid_default_var;
    5772         [ -  + ]:       1775 :         if (
    5773                 :       1775 :             (invalid_default_var = invalid_default_rule(p))  // invalid_default
    5774                 :            :         )
    5775                 :            :         {
    5776                 :            :             D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_default"));
    5777                 :          0 :             _res = invalid_default_var;
    5778                 :          0 :             goto done;
    5779                 :            :         }
    5780                 :       1775 :         p->mark = _mark;
    5781                 :            :         D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
    5782                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_default"));
    5783                 :            :     }
    5784                 :       6697 :     _res = NULL;
    5785                 :     347091 :   done:
    5786                 :     347091 :     p->level--;
    5787                 :     347091 :     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                 :     487179 : if_stmt_rule(Parser *p)
    5796                 :            : {
    5797         [ -  + ]:     487179 :     if (p->level++ == MAXSTACK) {
    5798                 :          0 :         p->error_indicator = 1;
    5799                 :            :         PyErr_NoMemory();
    5800                 :            :     }
    5801         [ -  + ]:     487179 :     if (p->error_indicator) {
    5802                 :          0 :         p->level--;
    5803                 :          0 :         return NULL;
    5804                 :            :     }
    5805                 :     487179 :     stmt_ty _res = NULL;
    5806                 :     487179 :     int _mark = p->mark;
    5807   [ -  +  -  - ]:     487179 :     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                 :     487179 :     int _start_lineno = p->tokens[_mark]->lineno;
    5813                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    5814                 :     487179 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    5815                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    5816         [ +  + ]:     487179 :     if (p->call_invalid_rules) { // invalid_if_stmt
    5817         [ -  + ]:         39 :         if (p->error_indicator) {
    5818                 :          0 :             p->level--;
    5819                 :          0 :             return NULL;
    5820                 :            :         }
    5821                 :            :         D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
    5822                 :            :         void *invalid_if_stmt_var;
    5823         [ -  + ]:         39 :         if (
    5824                 :         39 :             (invalid_if_stmt_var = invalid_if_stmt_rule(p))  // invalid_if_stmt
    5825                 :            :         )
    5826                 :            :         {
    5827                 :            :             D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
    5828                 :          0 :             _res = invalid_if_stmt_var;
    5829                 :          0 :             goto done;
    5830                 :            :         }
    5831                 :         39 :         p->mark = _mark;
    5832                 :            :         D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    5833                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
    5834                 :            :     }
    5835                 :            :     { // 'if' named_expression ':' block elif_stmt
    5836         [ +  + ]:     487179 :         if (p->error_indicator) {
    5837                 :          6 :             p->level--;
    5838                 :          6 :             return NULL;
    5839                 :            :         }
    5840                 :            :         D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
    5841                 :            :         Token * _keyword;
    5842                 :            :         Token * _literal;
    5843                 :            :         expr_ty a;
    5844                 :            :         asdl_stmt_seq* b;
    5845                 :            :         stmt_ty c;
    5846         [ +  - ]:     487173 :         if (
    5847                 :     487173 :             (_keyword = _PyPegen_expect_token(p, 634))  // token='if'
    5848         [ +  + ]:     487173 :             &&
    5849                 :     487173 :             (a = named_expression_rule(p))  // named_expression
    5850         [ +  + ]:     487167 :             &&
    5851                 :     487167 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    5852         [ +  + ]:     487164 :             &&
    5853                 :     487164 :             (b = block_rule(p))  // block
    5854         [ +  + ]:     487095 :             &&
    5855                 :     487095 :             (c = elif_stmt_rule(p))  // elif_stmt
    5856                 :            :         )
    5857                 :            :         {
    5858                 :            :             D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
    5859                 :      19892 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    5860         [ -  + ]:      19892 :             if (_token == NULL) {
    5861                 :          0 :                 p->level--;
    5862                 :          0 :                 return NULL;
    5863                 :            :             }
    5864                 :      19892 :             int _end_lineno = _token->end_lineno;
    5865                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    5866                 :      19892 :             int _end_col_offset = _token->end_col_offset;
    5867                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    5868                 :      19892 :             _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq* , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
    5869   [ -  +  -  - ]:      19892 :             if (_res == NULL && PyErr_Occurred()) {
    5870                 :          0 :                 p->error_indicator = 1;
    5871                 :          0 :                 p->level--;
    5872                 :          0 :                 return NULL;
    5873                 :            :             }
    5874                 :      19892 :             goto done;
    5875                 :            :         }
    5876                 :     467281 :         p->mark = _mark;
    5877                 :            :         D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    5878                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
    5879                 :            :     }
    5880                 :            :     { // 'if' named_expression ':' block else_block?
    5881         [ +  + ]:     467281 :         if (p->error_indicator) {
    5882                 :         24 :             p->level--;
    5883                 :         24 :             return NULL;
    5884                 :            :         }
    5885                 :            :         D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
    5886                 :            :         Token * _keyword;
    5887                 :            :         Token * _literal;
    5888                 :            :         expr_ty a;
    5889                 :            :         asdl_stmt_seq* b;
    5890                 :            :         void *c;
    5891         [ +  - ]:     467257 :         if (
    5892                 :     467257 :             (_keyword = _PyPegen_expect_token(p, 634))  // token='if'
    5893         [ +  + ]:     467257 :             &&
    5894                 :     467257 :             (a = named_expression_rule(p))  // named_expression
    5895         [ +  + ]:     467251 :             &&
    5896                 :     467251 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    5897         [ +  + ]:     467248 :             &&
    5898                 :     467248 :             (b = block_rule(p))  // block
    5899                 :     467196 :             &&
    5900         [ +  - ]:     467196 :             (c = else_block_rule(p), !p->error_indicator)  // else_block?
    5901                 :            :         )
    5902                 :            :         {
    5903                 :            :             D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
    5904                 :     467196 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    5905         [ -  + ]:     467196 :             if (_token == NULL) {
    5906                 :          0 :                 p->level--;
    5907                 :          0 :                 return NULL;
    5908                 :            :             }
    5909                 :     467196 :             int _end_lineno = _token->end_lineno;
    5910                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    5911                 :     467196 :             int _end_col_offset = _token->end_col_offset;
    5912                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    5913                 :     467196 :             _res = _PyAST_If ( a , b , c , EXTRA );
    5914   [ -  +  -  - ]:     467196 :             if (_res == NULL && PyErr_Occurred()) {
    5915                 :          0 :                 p->error_indicator = 1;
    5916                 :          0 :                 p->level--;
    5917                 :          0 :                 return NULL;
    5918                 :            :             }
    5919                 :     467196 :             goto done;
    5920                 :            :         }
    5921                 :         61 :         p->mark = _mark;
    5922                 :            :         D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    5923                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
    5924                 :            :     }
    5925                 :         61 :     _res = NULL;
    5926                 :     487149 :   done:
    5927                 :     487149 :     p->level--;
    5928                 :     487149 :     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                 :     521148 : elif_stmt_rule(Parser *p)
    5937                 :            : {
    5938         [ -  + ]:     521148 :     if (p->level++ == MAXSTACK) {
    5939                 :          0 :         p->error_indicator = 1;
    5940                 :            :         PyErr_NoMemory();
    5941                 :            :     }
    5942         [ -  + ]:     521148 :     if (p->error_indicator) {
    5943                 :          0 :         p->level--;
    5944                 :          0 :         return NULL;
    5945                 :            :     }
    5946                 :     521148 :     stmt_ty _res = NULL;
    5947                 :     521148 :     int _mark = p->mark;
    5948   [ +  +  -  + ]:     521148 :     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                 :     521148 :     int _start_lineno = p->tokens[_mark]->lineno;
    5954                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    5955                 :     521148 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    5956                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    5957         [ +  + ]:     521148 :     if (p->call_invalid_rules) { // invalid_elif_stmt
    5958         [ -  + ]:          8 :         if (p->error_indicator) {
    5959                 :          0 :             p->level--;
    5960                 :          0 :             return NULL;
    5961                 :            :         }
    5962                 :            :         D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
    5963                 :            :         void *invalid_elif_stmt_var;
    5964         [ -  + ]:          8 :         if (
    5965                 :          8 :             (invalid_elif_stmt_var = invalid_elif_stmt_rule(p))  // invalid_elif_stmt
    5966                 :            :         )
    5967                 :            :         {
    5968                 :            :             D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
    5969                 :          0 :             _res = invalid_elif_stmt_var;
    5970                 :          0 :             goto done;
    5971                 :            :         }
    5972                 :          8 :         p->mark = _mark;
    5973                 :            :         D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    5974                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
    5975                 :            :     }
    5976                 :            :     { // 'elif' named_expression ':' block elif_stmt
    5977         [ +  + ]:     521148 :         if (p->error_indicator) {
    5978                 :          2 :             p->level--;
    5979                 :          2 :             return NULL;
    5980                 :            :         }
    5981                 :            :         D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
    5982                 :            :         Token * _keyword;
    5983                 :            :         Token * _literal;
    5984                 :            :         expr_ty a;
    5985                 :            :         asdl_stmt_seq* b;
    5986                 :            :         stmt_ty c;
    5987         [ +  + ]:     521146 :         if (
    5988                 :     521146 :             (_keyword = _PyPegen_expect_token(p, 636))  // token='elif'
    5989         [ +  - ]:      34061 :             &&
    5990                 :      34061 :             (a = named_expression_rule(p))  // named_expression
    5991         [ +  + ]:      34061 :             &&
    5992                 :      34061 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    5993         [ +  + ]:      34060 :             &&
    5994                 :      34060 :             (b = block_rule(p))  // block
    5995         [ +  + ]:      34053 :             &&
    5996                 :      34053 :             (c = elif_stmt_rule(p))  // elif_stmt
    5997                 :            :         )
    5998                 :            :         {
    5999                 :            :             D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
    6000                 :      14158 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6001         [ -  + ]:      14158 :             if (_token == NULL) {
    6002                 :          0 :                 p->level--;
    6003                 :          0 :                 return NULL;
    6004                 :            :             }
    6005                 :      14158 :             int _end_lineno = _token->end_lineno;
    6006                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6007                 :      14158 :             int _end_col_offset = _token->end_col_offset;
    6008                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6009                 :      14158 :             _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq* , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
    6010   [ -  +  -  - ]:      14158 :             if (_res == NULL && PyErr_Occurred()) {
    6011                 :          0 :                 p->error_indicator = 1;
    6012                 :          0 :                 p->level--;
    6013                 :          0 :                 return NULL;
    6014                 :            :             }
    6015                 :      14158 :             goto done;
    6016                 :            :         }
    6017                 :     506988 :         p->mark = _mark;
    6018                 :            :         D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    6019                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
    6020                 :            :     }
    6021                 :            :     { // 'elif' named_expression ':' block else_block?
    6022         [ +  + ]:     506988 :         if (p->error_indicator) {
    6023                 :          2 :             p->level--;
    6024                 :          2 :             return NULL;
    6025                 :            :         }
    6026                 :            :         D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
    6027                 :            :         Token * _keyword;
    6028                 :            :         Token * _literal;
    6029                 :            :         expr_ty a;
    6030                 :            :         asdl_stmt_seq* b;
    6031                 :            :         void *c;
    6032         [ +  + ]:     506986 :         if (
    6033                 :     506986 :             (_keyword = _PyPegen_expect_token(p, 636))  // token='elif'
    6034         [ +  - ]:      19901 :             &&
    6035                 :      19901 :             (a = named_expression_rule(p))  // named_expression
    6036         [ +  + ]:      19901 :             &&
    6037                 :      19901 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    6038         [ +  + ]:      19900 :             &&
    6039                 :      19900 :             (b = block_rule(p))  // block
    6040                 :      19895 :             &&
    6041         [ +  + ]:      19895 :             (c = else_block_rule(p), !p->error_indicator)  // else_block?
    6042                 :            :         )
    6043                 :            :         {
    6044                 :            :             D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
    6045                 :      19892 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6046         [ -  + ]:      19892 :             if (_token == NULL) {
    6047                 :          0 :                 p->level--;
    6048                 :          0 :                 return NULL;
    6049                 :            :             }
    6050                 :      19892 :             int _end_lineno = _token->end_lineno;
    6051                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6052                 :      19892 :             int _end_col_offset = _token->end_col_offset;
    6053                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6054                 :      19892 :             _res = _PyAST_If ( a , b , c , EXTRA );
    6055   [ -  +  -  - ]:      19892 :             if (_res == NULL && PyErr_Occurred()) {
    6056                 :          0 :                 p->error_indicator = 1;
    6057                 :          0 :                 p->level--;
    6058                 :          0 :                 return NULL;
    6059                 :            :             }
    6060                 :      19892 :             goto done;
    6061                 :            :         }
    6062                 :     487094 :         p->mark = _mark;
    6063                 :            :         D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    6064                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
    6065                 :            :     }
    6066                 :     487094 :     _res = NULL;
    6067                 :     521144 :   done:
    6068                 :     521144 :     p->level--;
    6069                 :     521144 :     return _res;
    6070                 :            : }
    6071                 :            : 
    6072                 :            : // else_block: invalid_else_stmt | 'else' &&':' block
    6073                 :            : static asdl_stmt_seq*
    6074                 :     601515 : else_block_rule(Parser *p)
    6075                 :            : {
    6076         [ -  + ]:     601515 :     if (p->level++ == MAXSTACK) {
    6077                 :          0 :         p->error_indicator = 1;
    6078                 :            :         PyErr_NoMemory();
    6079                 :            :     }
    6080         [ -  + ]:     601515 :     if (p->error_indicator) {
    6081                 :          0 :         p->level--;
    6082                 :          0 :         return NULL;
    6083                 :            :     }
    6084                 :     601515 :     asdl_stmt_seq* _res = NULL;
    6085                 :     601515 :     int _mark = p->mark;
    6086         [ +  + ]:     601515 :     if (p->call_invalid_rules) { // invalid_else_stmt
    6087         [ -  + ]:          6 :         if (p->error_indicator) {
    6088                 :          0 :             p->level--;
    6089                 :          0 :             return NULL;
    6090                 :            :         }
    6091                 :            :         D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
    6092                 :            :         void *invalid_else_stmt_var;
    6093         [ -  + ]:          6 :         if (
    6094                 :          6 :             (invalid_else_stmt_var = invalid_else_stmt_rule(p))  // invalid_else_stmt
    6095                 :            :         )
    6096                 :            :         {
    6097                 :            :             D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
    6098                 :          0 :             _res = invalid_else_stmt_var;
    6099                 :          0 :             goto done;
    6100                 :            :         }
    6101                 :          6 :         p->mark = _mark;
    6102                 :            :         D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
    6103                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
    6104                 :            :     }
    6105                 :            :     { // 'else' &&':' block
    6106         [ +  + ]:     601515 :         if (p->error_indicator) {
    6107                 :          3 :             p->level--;
    6108                 :          3 :             return NULL;
    6109                 :            :         }
    6110                 :            :         D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
    6111                 :            :         Token * _keyword;
    6112                 :            :         Token * _literal;
    6113                 :            :         asdl_stmt_seq* b;
    6114         [ +  + ]:     601512 :         if (
    6115                 :     601512 :             (_keyword = _PyPegen_expect_token(p, 637))  // token='else'
    6116         [ +  + ]:      67780 :             &&
    6117                 :      67780 :             (_literal = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
    6118         [ +  + ]:      67779 :             &&
    6119                 :      67779 :             (b = block_rule(p))  // block
    6120                 :            :         )
    6121                 :            :         {
    6122                 :            :             D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
    6123                 :      67758 :             _res = b;
    6124   [ -  +  -  - ]:      67758 :             if (_res == NULL && PyErr_Occurred()) {
    6125                 :          0 :                 p->error_indicator = 1;
    6126                 :          0 :                 p->level--;
    6127                 :          0 :                 return NULL;
    6128                 :            :             }
    6129                 :      67758 :             goto done;
    6130                 :            :         }
    6131                 :     533754 :         p->mark = _mark;
    6132                 :            :         D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
    6133                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
    6134                 :            :     }
    6135                 :     533754 :     _res = NULL;
    6136                 :     601512 :   done:
    6137                 :     601512 :     p->level--;
    6138                 :     601512 :     return _res;
    6139                 :            : }
    6140                 :            : 
    6141                 :            : // while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
    6142                 :            : static stmt_ty
    6143                 :      11686 : while_stmt_rule(Parser *p)
    6144                 :            : {
    6145         [ -  + ]:      11686 :     if (p->level++ == MAXSTACK) {
    6146                 :          0 :         p->error_indicator = 1;
    6147                 :            :         PyErr_NoMemory();
    6148                 :            :     }
    6149         [ -  + ]:      11686 :     if (p->error_indicator) {
    6150                 :          0 :         p->level--;
    6151                 :          0 :         return NULL;
    6152                 :            :     }
    6153                 :      11686 :     stmt_ty _res = NULL;
    6154                 :      11686 :     int _mark = p->mark;
    6155   [ -  +  -  - ]:      11686 :     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                 :      11686 :     int _start_lineno = p->tokens[_mark]->lineno;
    6161                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    6162                 :      11686 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    6163                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    6164         [ +  + ]:      11686 :     if (p->call_invalid_rules) { // invalid_while_stmt
    6165         [ -  + ]:         23 :         if (p->error_indicator) {
    6166                 :          0 :             p->level--;
    6167                 :          0 :             return NULL;
    6168                 :            :         }
    6169                 :            :         D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
    6170                 :            :         void *invalid_while_stmt_var;
    6171         [ -  + ]:         23 :         if (
    6172                 :         23 :             (invalid_while_stmt_var = invalid_while_stmt_rule(p))  // invalid_while_stmt
    6173                 :            :         )
    6174                 :            :         {
    6175                 :            :             D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
    6176                 :          0 :             _res = invalid_while_stmt_var;
    6177                 :          0 :             goto done;
    6178                 :            :         }
    6179                 :         23 :         p->mark = _mark;
    6180                 :            :         D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    6181                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
    6182                 :            :     }
    6183                 :            :     { // 'while' named_expression ':' block else_block?
    6184         [ +  + ]:      11686 :         if (p->error_indicator) {
    6185                 :          4 :             p->level--;
    6186                 :          4 :             return NULL;
    6187                 :            :         }
    6188                 :            :         D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
    6189                 :            :         Token * _keyword;
    6190                 :            :         Token * _literal;
    6191                 :            :         expr_ty a;
    6192                 :            :         asdl_stmt_seq* b;
    6193                 :            :         void *c;
    6194         [ +  - ]:      11682 :         if (
    6195                 :      11682 :             (_keyword = _PyPegen_expect_token(p, 639))  // token='while'
    6196         [ +  + ]:      11682 :             &&
    6197                 :      11682 :             (a = named_expression_rule(p))  // named_expression
    6198         [ +  + ]:      11680 :             &&
    6199                 :      11680 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    6200         [ +  + ]:      11677 :             &&
    6201                 :      11677 :             (b = block_rule(p))  // block
    6202                 :      11638 :             &&
    6203         [ +  - ]:      11638 :             (c = else_block_rule(p), !p->error_indicator)  // else_block?
    6204                 :            :         )
    6205                 :            :         {
    6206                 :            :             D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
    6207                 :      11638 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6208         [ -  + ]:      11638 :             if (_token == NULL) {
    6209                 :          0 :                 p->level--;
    6210                 :          0 :                 return NULL;
    6211                 :            :             }
    6212                 :      11638 :             int _end_lineno = _token->end_lineno;
    6213                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6214                 :      11638 :             int _end_col_offset = _token->end_col_offset;
    6215                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6216                 :      11638 :             _res = _PyAST_While ( a , b , c , EXTRA );
    6217   [ -  +  -  - ]:      11638 :             if (_res == NULL && PyErr_Occurred()) {
    6218                 :          0 :                 p->error_indicator = 1;
    6219                 :          0 :                 p->level--;
    6220                 :          0 :                 return NULL;
    6221                 :            :             }
    6222                 :      11638 :             goto done;
    6223                 :            :         }
    6224                 :         44 :         p->mark = _mark;
    6225                 :            :         D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    6226                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
    6227                 :            :     }
    6228                 :         44 :     _res = NULL;
    6229                 :      11682 :   done:
    6230                 :      11682 :     p->level--;
    6231                 :      11682 :     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                 :      61364 : for_stmt_rule(Parser *p)
    6241                 :            : {
    6242         [ -  + ]:      61364 :     if (p->level++ == MAXSTACK) {
    6243                 :          0 :         p->error_indicator = 1;
    6244                 :            :         PyErr_NoMemory();
    6245                 :            :     }
    6246         [ -  + ]:      61364 :     if (p->error_indicator) {
    6247                 :          0 :         p->level--;
    6248                 :          0 :         return NULL;
    6249                 :            :     }
    6250                 :      61364 :     stmt_ty _res = NULL;
    6251                 :      61364 :     int _mark = p->mark;
    6252   [ -  +  -  - ]:      61364 :     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                 :      61364 :     int _start_lineno = p->tokens[_mark]->lineno;
    6258                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    6259                 :      61364 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    6260                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    6261         [ +  + ]:      61364 :     if (p->call_invalid_rules) { // invalid_for_stmt
    6262         [ -  + ]:         54 :         if (p->error_indicator) {
    6263                 :          0 :             p->level--;
    6264                 :          0 :             return NULL;
    6265                 :            :         }
    6266                 :            :         D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
    6267                 :            :         void *invalid_for_stmt_var;
    6268         [ -  + ]:         54 :         if (
    6269                 :         54 :             (invalid_for_stmt_var = invalid_for_stmt_rule(p))  // invalid_for_stmt
    6270                 :            :         )
    6271                 :            :         {
    6272                 :            :             D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
    6273                 :          0 :             _res = invalid_for_stmt_var;
    6274                 :          0 :             goto done;
    6275                 :            :         }
    6276                 :         54 :         p->mark = _mark;
    6277                 :            :         D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    6278                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
    6279                 :            :     }
    6280                 :            :     { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
    6281         [ +  + ]:      61364 :         if (p->error_indicator) {
    6282                 :          3 :             p->level--;
    6283                 :          3 :             return NULL;
    6284                 :            :         }
    6285                 :            :         D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
    6286                 :      61361 :         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         [ +  + ]:      61361 :         if (
    6296                 :      61361 :             (_keyword = _PyPegen_expect_token(p, 642))  // token='for'
    6297         [ +  + ]:      61086 :             &&
    6298                 :      61086 :             (t = star_targets_rule(p))  // star_targets
    6299         [ +  + ]:      61068 :             &&
    6300                 :      61068 :             (_keyword_1 = _PyPegen_expect_token(p, 643))  // token='in'
    6301                 :            :             &&
    6302                 :      61056 :             (_cut_var = 1)
    6303         [ +  - ]:      61056 :             &&
    6304                 :      61056 :             (ex = star_expressions_rule(p))  // star_expressions
    6305         [ +  + ]:      61056 :             &&
    6306                 :      61056 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    6307                 :      61053 :             &&
    6308         [ +  - ]:      61053 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    6309         [ +  + ]:      61053 :             &&
    6310                 :      61053 :             (b = block_rule(p))  // block
    6311                 :      61047 :             &&
    6312         [ +  + ]:      61047 :             (el = else_block_rule(p), !p->error_indicator)  // else_block?
    6313                 :            :         )
    6314                 :            :         {
    6315                 :            :             D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
    6316                 :      61046 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6317         [ -  + ]:      61046 :             if (_token == NULL) {
    6318                 :          0 :                 p->level--;
    6319                 :          0 :                 return NULL;
    6320                 :            :             }
    6321                 :      61046 :             int _end_lineno = _token->end_lineno;
    6322                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6323                 :      61046 :             int _end_col_offset = _token->end_col_offset;
    6324                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6325                 :      61046 :             _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
    6326   [ -  +  -  - ]:      61046 :             if (_res == NULL && PyErr_Occurred()) {
    6327                 :          0 :                 p->error_indicator = 1;
    6328                 :          0 :                 p->level--;
    6329                 :          0 :                 return NULL;
    6330                 :            :             }
    6331                 :      61046 :             goto done;
    6332                 :            :         }
    6333                 :        315 :         p->mark = _mark;
    6334                 :            :         D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    6335                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
    6336         [ +  + ]:        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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :      61349 :   done:
    6426                 :      61349 :     p->level--;
    6427                 :      61349 :     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                 :      39282 : with_stmt_rule(Parser *p)
    6439                 :            : {
    6440         [ -  + ]:      39282 :     if (p->level++ == MAXSTACK) {
    6441                 :          0 :         p->error_indicator = 1;
    6442                 :            :         PyErr_NoMemory();
    6443                 :            :     }
    6444         [ -  + ]:      39282 :     if (p->error_indicator) {
    6445                 :          0 :         p->level--;
    6446                 :          0 :         return NULL;
    6447                 :            :     }
    6448                 :      39282 :     stmt_ty _res = NULL;
    6449                 :      39282 :     int _mark = p->mark;
    6450   [ -  +  -  - ]:      39282 :     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                 :      39282 :     int _start_lineno = p->tokens[_mark]->lineno;
    6456                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    6457                 :      39282 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    6458                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    6459         [ +  + ]:      39282 :     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                 :            :         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                 :            :             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                 :            :         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         [ +  + ]:      39282 :         if (p->error_indicator) {
    6480                 :          7 :             p->level--;
    6481                 :          7 :             return NULL;
    6482                 :            :         }
    6483                 :            :         D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
    6484                 :            :         Token * _keyword;
    6485                 :            :         Token * _literal;
    6486                 :            :         Token * _literal_1;
    6487                 :            :         Token * _literal_2;
    6488                 :            :         void *_opt_var;
    6489                 :            :         UNUSED(_opt_var); // Silence compiler warnings
    6490                 :            :         asdl_withitem_seq* a;
    6491                 :            :         asdl_stmt_seq* b;
    6492         [ +  + ]:      39275 :         if (
    6493                 :      39275 :             (_keyword = _PyPegen_expect_token(p, 612))  // token='with'
    6494         [ +  + ]:      38628 :             &&
    6495                 :      38628 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
    6496         [ +  + ]:         72 :             &&
    6497                 :         72 :             (a = (asdl_withitem_seq*)_gather_51_rule(p))  // ','.with_item+
    6498                 :         71 :             &&
    6499         [ +  - ]:         71 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
    6500         [ +  - ]:         71 :             &&
    6501                 :         71 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
    6502         [ +  + ]:         71 :             &&
    6503                 :         71 :             (_literal_2 = _PyPegen_expect_token(p, 11))  // token=':'
    6504         [ +  + ]:         35 :             &&
    6505                 :         35 :             (b = block_rule(p))  // block
    6506                 :            :         )
    6507                 :            :         {
    6508                 :            :             D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
    6509                 :         34 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6510         [ -  + ]:         34 :             if (_token == NULL) {
    6511                 :          0 :                 p->level--;
    6512                 :          0 :                 return NULL;
    6513                 :            :             }
    6514                 :         34 :             int _end_lineno = _token->end_lineno;
    6515                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6516                 :         34 :             int _end_col_offset = _token->end_col_offset;
    6517                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6518                 :         34 :             _res = CHECK_VERSION ( stmt_ty , 9 , "Parenthesized context managers are" , _PyAST_With ( a , b , NULL , EXTRA ) );
    6519   [ +  +  +  - ]:         34 :             if (_res == NULL && PyErr_Occurred()) {
    6520                 :          1 :                 p->error_indicator = 1;
    6521                 :          1 :                 p->level--;
    6522                 :          1 :                 return NULL;
    6523                 :            :             }
    6524                 :         33 :             goto done;
    6525                 :            :         }
    6526                 :      39241 :         p->mark = _mark;
    6527                 :            :         D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    6528                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
    6529                 :            :     }
    6530                 :            :     { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
    6531         [ -  + ]:      39241 :         if (p->error_indicator) {
    6532                 :          0 :             p->level--;
    6533                 :          0 :             return NULL;
    6534                 :            :         }
    6535                 :            :         D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
    6536                 :            :         Token * _keyword;
    6537                 :            :         Token * _literal;
    6538                 :            :         asdl_withitem_seq* a;
    6539                 :            :         asdl_stmt_seq* b;
    6540                 :            :         void *tc;
    6541         [ +  + ]:      39241 :         if (
    6542                 :      39241 :             (_keyword = _PyPegen_expect_token(p, 612))  // token='with'
    6543         [ +  + ]:      38594 :             &&
    6544                 :      38594 :             (a = (asdl_withitem_seq*)_gather_53_rule(p))  // ','.with_item+
    6545         [ +  + ]:      38574 :             &&
    6546                 :      38574 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    6547                 :      38548 :             &&
    6548         [ +  - ]:      38548 :             (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
    6549         [ +  + ]:      38548 :             &&
    6550                 :      38548 :             (b = block_rule(p))  // block
    6551                 :            :         )
    6552                 :            :         {
    6553                 :            :             D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
    6554                 :      38542 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6555         [ -  + ]:      38542 :             if (_token == NULL) {
    6556                 :          0 :                 p->level--;
    6557                 :          0 :                 return NULL;
    6558                 :            :             }
    6559                 :      38542 :             int _end_lineno = _token->end_lineno;
    6560                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6561                 :      38542 :             int _end_col_offset = _token->end_col_offset;
    6562                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6563                 :      38542 :             _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
    6564   [ -  +  -  - ]:      38542 :             if (_res == NULL && PyErr_Occurred()) {
    6565                 :          0 :                 p->error_indicator = 1;
    6566                 :          0 :                 p->level--;
    6567                 :          0 :                 return NULL;
    6568                 :            :             }
    6569                 :      38542 :             goto done;
    6570                 :            :         }
    6571                 :        699 :         p->mark = _mark;
    6572                 :            :         D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    6573                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
    6574                 :            :     }
    6575                 :            :     { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
    6576         [ +  + ]:        699 :         if (p->error_indicator) {
    6577                 :         11 :             p->level--;
    6578                 :         11 :             return NULL;
    6579                 :            :         }
    6580                 :            :         D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
    6581                 :            :         Token * _keyword;
    6582                 :            :         Token * _literal;
    6583                 :            :         Token * _literal_1;
    6584                 :            :         Token * _literal_2;
    6585                 :            :         void *_opt_var;
    6586                 :            :         UNUSED(_opt_var); // Silence compiler warnings
    6587                 :            :         asdl_withitem_seq* a;
    6588                 :            :         Token * async_var;
    6589                 :            :         asdl_stmt_seq* b;
    6590         [ +  + ]:        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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :      39263 :   done:
    6699                 :      39263 :     p->level--;
    6700                 :      39263 :     return _res;
    6701                 :            : }
    6702                 :            : 
    6703                 :            : // with_item:
    6704                 :            : //     | expression 'as' star_target &(',' | ')' | ':')
    6705                 :            : //     | invalid_with_item
    6706                 :            : //     | expression
    6707                 :            : static withitem_ty
    6708                 :      39864 : with_item_rule(Parser *p)
    6709                 :            : {
    6710         [ -  + ]:      39864 :     if (p->level++ == MAXSTACK) {
    6711                 :          0 :         p->error_indicator = 1;
    6712                 :            :         PyErr_NoMemory();
    6713                 :            :     }
    6714         [ -  + ]:      39864 :     if (p->error_indicator) {
    6715                 :          0 :         p->level--;
    6716                 :          0 :         return NULL;
    6717                 :            :     }
    6718                 :      39864 :     withitem_ty _res = NULL;
    6719                 :      39864 :     int _mark = p->mark;
    6720                 :            :     { // expression 'as' star_target &(',' | ')' | ':')
    6721         [ -  + ]:      39864 :         if (p->error_indicator) {
    6722                 :          0 :             p->level--;
    6723                 :          0 :             return NULL;
    6724                 :            :         }
    6725                 :            :         D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
    6726                 :            :         Token * _keyword;
    6727                 :            :         expr_ty e;
    6728                 :            :         expr_ty t;
    6729         [ +  + ]:      39864 :         if (
    6730                 :      39864 :             (e = expression_rule(p))  // expression
    6731         [ +  + ]:      39843 :             &&
    6732                 :      39843 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
    6733         [ +  + ]:      16848 :             &&
    6734                 :      16848 :             (t = star_target_rule(p))  // star_target
    6735         [ +  + ]:      16830 :             &&
    6736                 :      16830 :             _PyPegen_lookahead(1, _tmp_59_rule, p)
    6737                 :            :         )
    6738                 :            :         {
    6739                 :            :             D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
    6740                 :      16820 :             _res = _PyAST_withitem ( e , t , p -> arena );
    6741   [ -  +  -  - ]:      16820 :             if (_res == NULL && PyErr_Occurred()) {
    6742                 :          0 :                 p->error_indicator = 1;
    6743                 :          0 :                 p->level--;
    6744                 :          0 :                 return NULL;
    6745                 :            :             }
    6746                 :      16820 :             goto done;
    6747                 :            :         }
    6748                 :      23044 :         p->mark = _mark;
    6749                 :            :         D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
    6750                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
    6751                 :            :     }
    6752         [ +  + ]:      23044 :     if (p->call_invalid_rules) { // invalid_with_item
    6753         [ -  + ]:         28 :         if (p->error_indicator) {
    6754                 :          0 :             p->level--;
    6755                 :          0 :             return NULL;
    6756                 :            :         }
    6757                 :            :         D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
    6758                 :            :         void *invalid_with_item_var;
    6759         [ -  + ]:         28 :         if (
    6760                 :         28 :             (invalid_with_item_var = invalid_with_item_rule(p))  // invalid_with_item
    6761                 :            :         )
    6762                 :            :         {
    6763                 :            :             D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
    6764                 :          0 :             _res = invalid_with_item_var;
    6765                 :          0 :             goto done;
    6766                 :            :         }
    6767                 :         28 :         p->mark = _mark;
    6768                 :            :         D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
    6769                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
    6770                 :            :     }
    6771                 :            :     { // expression
    6772         [ +  + ]:      23044 :         if (p->error_indicator) {
    6773                 :         11 :             p->level--;
    6774                 :         11 :             return NULL;
    6775                 :            :         }
    6776                 :            :         D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
    6777                 :            :         expr_ty e;
    6778         [ +  + ]:      23033 :         if (
    6779                 :      23033 :             (e = expression_rule(p))  // expression
    6780                 :            :         )
    6781                 :            :         {
    6782                 :            :             D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
    6783                 :      23012 :             _res = _PyAST_withitem ( e , NULL , p -> arena );
    6784   [ -  +  -  - ]:      23012 :             if (_res == NULL && PyErr_Occurred()) {
    6785                 :          0 :                 p->error_indicator = 1;
    6786                 :          0 :                 p->level--;
    6787                 :          0 :                 return NULL;
    6788                 :            :             }
    6789                 :      23012 :             goto done;
    6790                 :            :         }
    6791                 :         21 :         p->mark = _mark;
    6792                 :            :         D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
    6793                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
    6794                 :            :     }
    6795                 :         21 :     _res = NULL;
    6796                 :      39853 :   done:
    6797                 :      39853 :     p->level--;
    6798                 :      39853 :     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                 :      49059 : try_stmt_rule(Parser *p)
    6808                 :            : {
    6809         [ -  + ]:      49059 :     if (p->level++ == MAXSTACK) {
    6810                 :          0 :         p->error_indicator = 1;
    6811                 :            :         PyErr_NoMemory();
    6812                 :            :     }
    6813         [ -  + ]:      49059 :     if (p->error_indicator) {
    6814                 :          0 :         p->level--;
    6815                 :          0 :         return NULL;
    6816                 :            :     }
    6817                 :      49059 :     stmt_ty _res = NULL;
    6818                 :      49059 :     int _mark = p->mark;
    6819   [ -  +  -  - ]:      49059 :     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                 :      49059 :     int _start_lineno = p->tokens[_mark]->lineno;
    6825                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    6826                 :      49059 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    6827                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    6828         [ +  + ]:      49059 :     if (p->call_invalid_rules) { // invalid_try_stmt
    6829         [ -  + ]:         51 :         if (p->error_indicator) {
    6830                 :          0 :             p->level--;
    6831                 :          0 :             return NULL;
    6832                 :            :         }
    6833                 :            :         D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
    6834                 :            :         void *invalid_try_stmt_var;
    6835         [ -  + ]:         51 :         if (
    6836                 :         51 :             (invalid_try_stmt_var = invalid_try_stmt_rule(p))  // invalid_try_stmt
    6837                 :            :         )
    6838                 :            :         {
    6839                 :            :             D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
    6840                 :          0 :             _res = invalid_try_stmt_var;
    6841                 :          0 :             goto done;
    6842                 :            :         }
    6843                 :         51 :         p->mark = _mark;
    6844                 :            :         D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    6845                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
    6846                 :            :     }
    6847                 :            :     { // 'try' &&':' block finally_block
    6848         [ +  + ]:      49059 :         if (p->error_indicator) {
    6849                 :         29 :             p->level--;
    6850                 :         29 :             return NULL;
    6851                 :            :         }
    6852                 :            :         D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block finally_block"));
    6853                 :            :         Token * _keyword;
    6854                 :            :         Token * _literal;
    6855                 :            :         asdl_stmt_seq* b;
    6856                 :            :         asdl_stmt_seq* f;
    6857         [ +  - ]:      49030 :         if (
    6858                 :      49030 :             (_keyword = _PyPegen_expect_token(p, 618))  // token='try'
    6859         [ +  + ]:      49030 :             &&
    6860                 :      49030 :             (_literal = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
    6861         [ +  + ]:      49027 :             &&
    6862                 :      49027 :             (b = block_rule(p))  // block
    6863         [ +  + ]:      49005 :             &&
    6864                 :      49005 :             (f = finally_block_rule(p))  // finally_block
    6865                 :            :         )
    6866                 :            :         {
    6867                 :            :             D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' &&':' block finally_block"));
    6868                 :       7417 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6869         [ -  + ]:       7417 :             if (_token == NULL) {
    6870                 :          0 :                 p->level--;
    6871                 :          0 :                 return NULL;
    6872                 :            :             }
    6873                 :       7417 :             int _end_lineno = _token->end_lineno;
    6874                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6875                 :       7417 :             int _end_col_offset = _token->end_col_offset;
    6876                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6877                 :       7417 :             _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
    6878   [ -  +  -  - ]:       7417 :             if (_res == NULL && PyErr_Occurred()) {
    6879                 :          0 :                 p->error_indicator = 1;
    6880                 :          0 :                 p->level--;
    6881                 :          0 :                 return NULL;
    6882                 :            :             }
    6883                 :       7417 :             goto done;
    6884                 :            :         }
    6885                 :      41613 :         p->mark = _mark;
    6886                 :            :         D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    6887                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
    6888                 :            :     }
    6889                 :            :     { // 'try' &&':' block except_block+ else_block? finally_block?
    6890         [ +  + ]:      41613 :         if (p->error_indicator) {
    6891                 :          4 :             p->level--;
    6892                 :          4 :             return NULL;
    6893                 :            :         }
    6894                 :            :         D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
    6895                 :            :         Token * _keyword;
    6896                 :            :         Token * _literal;
    6897                 :            :         asdl_stmt_seq* b;
    6898                 :            :         void *el;
    6899                 :            :         asdl_excepthandler_seq* ex;
    6900                 :            :         void *f;
    6901         [ +  - ]:      41609 :         if (
    6902                 :      41609 :             (_keyword = _PyPegen_expect_token(p, 618))  // token='try'
    6903         [ +  - ]:      41609 :             &&
    6904                 :      41609 :             (_literal = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
    6905         [ +  + ]:      41609 :             &&
    6906                 :      41609 :             (b = block_rule(p))  // block
    6907         [ +  + ]:      41588 :             &&
    6908                 :      41588 :             (ex = (asdl_excepthandler_seq*)_loop1_60_rule(p))  // except_block+
    6909                 :      41291 :             &&
    6910         [ +  - ]:      41291 :             (el = else_block_rule(p), !p->error_indicator)  // else_block?
    6911                 :      41291 :             &&
    6912         [ +  + ]:      41291 :             (f = finally_block_rule(p), !p->error_indicator)  // finally_block?
    6913                 :            :         )
    6914                 :            :         {
    6915                 :            :             D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
    6916                 :      41290 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    6917         [ -  + ]:      41290 :             if (_token == NULL) {
    6918                 :          0 :                 p->level--;
    6919                 :          0 :                 return NULL;
    6920                 :            :             }
    6921                 :      41290 :             int _end_lineno = _token->end_lineno;
    6922                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    6923                 :      41290 :             int _end_col_offset = _token->end_col_offset;
    6924                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    6925                 :      41290 :             _res = _PyAST_Try ( b , ex , el , f , EXTRA );
    6926   [ -  +  -  - ]:      41290 :             if (_res == NULL && PyErr_Occurred()) {
    6927                 :          0 :                 p->error_indicator = 1;
    6928                 :          0 :                 p->level--;
    6929                 :          0 :                 return NULL;
    6930                 :            :             }
    6931                 :      41290 :             goto done;
    6932                 :            :         }
    6933                 :        319 :         p->mark = _mark;
    6934                 :            :         D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    6935                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
    6936                 :            :     }
    6937                 :            :     { // 'try' &&':' block except_star_block+ else_block? finally_block?
    6938         [ +  + ]:        319 :         if (p->error_indicator) {
    6939                 :          1 :             p->level--;
    6940                 :          1 :             return NULL;
    6941                 :            :         }
    6942                 :            :         D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' &&':' block except_star_block+ else_block? finally_block?"));
    6943                 :            :         Token * _keyword;
    6944                 :            :         Token * _literal;
    6945                 :            :         asdl_stmt_seq* b;
    6946                 :            :         void *el;
    6947                 :            :         asdl_excepthandler_seq* ex;
    6948                 :            :         void *f;
    6949         [ +  - ]:        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                 :            :             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                 :            :         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                 :      49025 :   done:
    6987                 :      49025 :     p->level--;
    6988                 :      49025 :     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                 :      85594 : except_block_rule(Parser *p)
    6998                 :            : {
    6999         [ -  + ]:      85594 :     if (p->level++ == MAXSTACK) {
    7000                 :          0 :         p->error_indicator = 1;
    7001                 :            :         PyErr_NoMemory();
    7002                 :            :     }
    7003         [ -  + ]:      85594 :     if (p->error_indicator) {
    7004                 :          0 :         p->level--;
    7005                 :          0 :         return NULL;
    7006                 :            :     }
    7007                 :      85594 :     excepthandler_ty _res = NULL;
    7008                 :      85594 :     int _mark = p->mark;
    7009   [ +  +  -  + ]:      85594 :     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                 :      85594 :     int _start_lineno = p->tokens[_mark]->lineno;
    7015                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    7016                 :      85594 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    7017                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    7018         [ +  + ]:      85594 :     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                 :            :         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                 :            :             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                 :            :         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         [ +  + ]:      85594 :         if (p->error_indicator) {
    7039                 :          2 :             p->level--;
    7040                 :          2 :             return NULL;
    7041                 :            :         }
    7042                 :            :         D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
    7043                 :            :         Token * _keyword;
    7044                 :            :         Token * _literal;
    7045                 :            :         asdl_stmt_seq* b;
    7046                 :            :         expr_ty e;
    7047                 :            :         void *t;
    7048         [ +  + ]:      85592 :         if (
    7049                 :      85592 :             (_keyword = _PyPegen_expect_token(p, 629))  // token='except'
    7050         [ +  + ]:      44266 :             &&
    7051                 :      44266 :             (e = expression_rule(p))  // expression
    7052                 :      41811 :             &&
    7053         [ +  - ]:      41811 :             (t = _tmp_62_rule(p), !p->error_indicator)  // ['as' NAME]
    7054         [ +  + ]:      41811 :             &&
    7055                 :      41811 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    7056         [ +  + ]:      41800 :             &&
    7057                 :      41800 :             (b = block_rule(p))  // block
    7058                 :            :         )
    7059                 :            :         {
    7060                 :            :             D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
    7061                 :      41799 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    7062         [ -  + ]:      41799 :             if (_token == NULL) {
    7063                 :          0 :                 p->level--;
    7064                 :          0 :                 return NULL;
    7065                 :            :             }
    7066                 :      41799 :             int _end_lineno = _token->end_lineno;
    7067                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    7068                 :      41799 :             int _end_col_offset = _token->end_col_offset;
    7069                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    7070         [ +  + ]:      41799 :             _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
    7071   [ -  +  -  - ]:      41799 :             if (_res == NULL && PyErr_Occurred()) {
    7072                 :          0 :                 p->error_indicator = 1;
    7073                 :          0 :                 p->level--;
    7074                 :          0 :                 return NULL;
    7075                 :            :             }
    7076                 :      41799 :             goto done;
    7077                 :            :         }
    7078                 :      43793 :         p->mark = _mark;
    7079                 :            :         D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
    7080                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
    7081                 :            :     }
    7082                 :            :     { // 'except' ':' block
    7083         [ -  + ]:      43793 :         if (p->error_indicator) {
    7084                 :          0 :             p->level--;
    7085                 :          0 :             return NULL;
    7086                 :            :         }
    7087                 :            :         D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
    7088                 :            :         Token * _keyword;
    7089                 :            :         Token * _literal;
    7090                 :            :         asdl_stmt_seq* b;
    7091         [ +  + ]:      43793 :         if (
    7092                 :      43793 :             (_keyword = _PyPegen_expect_token(p, 629))  // token='except'
    7093         [ +  + ]:       2467 :             &&
    7094                 :       2467 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    7095         [ +  + ]:       2160 :             &&
    7096                 :       2160 :             (b = block_rule(p))  // block
    7097                 :            :         )
    7098                 :            :         {
    7099                 :            :             D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
    7100                 :       2157 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    7101         [ -  + ]:       2157 :             if (_token == NULL) {
    7102                 :          0 :                 p->level--;
    7103                 :          0 :                 return NULL;
    7104                 :            :             }
    7105                 :       2157 :             int _end_lineno = _token->end_lineno;
    7106                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    7107                 :       2157 :             int _end_col_offset = _token->end_col_offset;
    7108                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    7109                 :       2157 :             _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
    7110   [ -  +  -  - ]:       2157 :             if (_res == NULL && PyErr_Occurred()) {
    7111                 :          0 :                 p->error_indicator = 1;
    7112                 :          0 :                 p->level--;
    7113                 :          0 :                 return NULL;
    7114                 :            :             }
    7115                 :       2157 :             goto done;
    7116                 :            :         }
    7117                 :      41636 :         p->mark = _mark;
    7118                 :            :         D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
    7119                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
    7120                 :            :     }
    7121         [ +  + ]:      41636 :     if (p->call_invalid_rules) { // invalid_except_stmt
    7122         [ -  + ]:         61 :         if (p->error_indicator) {
    7123                 :          0 :             p->level--;
    7124                 :          0 :             return NULL;
    7125                 :            :         }
    7126                 :            :         D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
    7127                 :            :         void *invalid_except_stmt_var;
    7128         [ -  + ]:         61 :         if (
    7129                 :         61 :             (invalid_except_stmt_var = invalid_except_stmt_rule(p))  // invalid_except_stmt
    7130                 :            :         )
    7131                 :            :         {
    7132                 :            :             D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
    7133                 :          0 :             _res = invalid_except_stmt_var;
    7134                 :          0 :             goto done;
    7135                 :            :         }
    7136                 :         61 :         p->mark = _mark;
    7137                 :            :         D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
    7138                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
    7139                 :            :     }
    7140                 :      41636 :     _res = NULL;
    7141                 :      85592 :   done:
    7142                 :      85592 :     p->level--;
    7143                 :      85592 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :      90552 : finally_block_rule(Parser *p)
    7267                 :            : {
    7268         [ -  + ]:      90552 :     if (p->level++ == MAXSTACK) {
    7269                 :          0 :         p->error_indicator = 1;
    7270                 :            :         PyErr_NoMemory();
    7271                 :            :     }
    7272         [ -  + ]:      90552 :     if (p->error_indicator) {
    7273                 :          0 :         p->level--;
    7274                 :          0 :         return NULL;
    7275                 :            :     }
    7276                 :      90552 :     asdl_stmt_seq* _res = NULL;
    7277                 :      90552 :     int _mark = p->mark;
    7278         [ +  + ]:      90552 :     if (p->call_invalid_rules) { // invalid_finally_stmt
    7279         [ -  + ]:         15 :         if (p->error_indicator) {
    7280                 :          0 :             p->level--;
    7281                 :          0 :             return NULL;
    7282                 :            :         }
    7283                 :            :         D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
    7284                 :            :         void *invalid_finally_stmt_var;
    7285         [ -  + ]:         15 :         if (
    7286                 :         15 :             (invalid_finally_stmt_var = invalid_finally_stmt_rule(p))  // invalid_finally_stmt
    7287                 :            :         )
    7288                 :            :         {
    7289                 :            :             D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
    7290                 :          0 :             _res = invalid_finally_stmt_var;
    7291                 :          0 :             goto done;
    7292                 :            :         }
    7293                 :         15 :         p->mark = _mark;
    7294                 :            :         D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
    7295                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
    7296                 :            :     }
    7297                 :            :     { // 'finally' &&':' block
    7298         [ +  + ]:      90552 :         if (p->error_indicator) {
    7299                 :          2 :             p->level--;
    7300                 :          2 :             return NULL;
    7301                 :            :         }
    7302                 :            :         D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
    7303                 :            :         Token * _keyword;
    7304                 :            :         Token * _literal;
    7305                 :            :         asdl_stmt_seq* a;
    7306         [ +  + ]:      90550 :         if (
    7307                 :      90550 :             (_keyword = _PyPegen_expect_token(p, 625))  // token='finally'
    7308         [ +  - ]:       8121 :             &&
    7309                 :       8121 :             (_literal = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
    7310         [ +  + ]:       8121 :             &&
    7311                 :       8121 :             (a = block_rule(p))  // block
    7312                 :            :         )
    7313                 :            :         {
    7314                 :            :             D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
    7315                 :       8097 :             _res = a;
    7316   [ -  +  -  - ]:       8097 :             if (_res == NULL && PyErr_Occurred()) {
    7317                 :          0 :                 p->error_indicator = 1;
    7318                 :          0 :                 p->level--;
    7319                 :          0 :                 return NULL;
    7320                 :            :             }
    7321                 :       8097 :             goto done;
    7322                 :            :         }
    7323                 :      82453 :         p->mark = _mark;
    7324                 :            :         D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
    7325                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
    7326                 :            :     }
    7327                 :      82453 :     _res = NULL;
    7328                 :      90550 :   done:
    7329                 :      90550 :     p->level--;
    7330                 :      90550 :     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                 :    2992338 : match_stmt_rule(Parser *p)
    7338                 :            : {
    7339         [ -  + ]:    2992338 :     if (p->level++ == MAXSTACK) {
    7340                 :          0 :         p->error_indicator = 1;
    7341                 :            :         PyErr_NoMemory();
    7342                 :            :     }
    7343         [ -  + ]:    2992338 :     if (p->error_indicator) {
    7344                 :          0 :         p->level--;
    7345                 :          0 :         return NULL;
    7346                 :            :     }
    7347                 :    2992338 :     stmt_ty _res = NULL;
    7348                 :    2992338 :     int _mark = p->mark;
    7349   [ -  +  -  - ]:    2992338 :     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                 :    2992338 :     int _start_lineno = p->tokens[_mark]->lineno;
    7355                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    7356                 :    2992338 :     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         [ -  + ]:    2992338 :         if (p->error_indicator) {
    7360                 :          0 :             p->level--;
    7361                 :          0 :             return NULL;
    7362                 :            :         }
    7363                 :            :         D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
    7364                 :            :         expr_ty _keyword;
    7365                 :            :         Token * _literal;
    7366                 :            :         asdl_match_case_seq* cases;
    7367                 :            :         Token * dedent_var;
    7368                 :            :         Token * indent_var;
    7369                 :            :         Token * newline_var;
    7370                 :            :         expr_ty subject;
    7371         [ +  + ]:    2992338 :         if (
    7372                 :    2992338 :             (_keyword = _PyPegen_expect_soft_keyword(p, "match"))  // soft_keyword='"match"'
    7373         [ +  + ]:       2362 :             &&
    7374                 :       2362 :             (subject = subject_expr_rule(p))  // subject_expr
    7375         [ +  + ]:       1276 :             &&
    7376                 :       1276 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    7377         [ +  - ]:       1271 :             &&
    7378                 :       1271 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
    7379         [ +  + ]:       1271 :             &&
    7380                 :       1271 :             (indent_var = _PyPegen_expect_token(p, INDENT))  // token='INDENT'
    7381         [ +  + ]:       1269 :             &&
    7382                 :       1269 :             (cases = (asdl_match_case_seq*)_loop1_64_rule(p))  // case_block+
    7383         [ +  + ]:       1224 :             &&
    7384                 :       1224 :             (dedent_var = _PyPegen_expect_token(p, DEDENT))  // token='DEDENT'
    7385                 :            :         )
    7386                 :            :         {
    7387                 :            :             D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
    7388                 :       1223 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    7389         [ -  + ]:       1223 :             if (_token == NULL) {
    7390                 :          0 :                 p->level--;
    7391                 :          0 :                 return NULL;
    7392                 :            :             }
    7393                 :       1223 :             int _end_lineno = _token->end_lineno;
    7394                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    7395                 :       1223 :             int _end_col_offset = _token->end_col_offset;
    7396                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    7397                 :       1223 :             _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
    7398   [ -  +  -  - ]:       1223 :             if (_res == NULL && PyErr_Occurred()) {
    7399                 :          0 :                 p->error_indicator = 1;
    7400                 :          0 :                 p->level--;
    7401                 :          0 :                 return NULL;
    7402                 :            :             }
    7403                 :       1223 :             goto done;
    7404                 :            :         }
    7405                 :    2991115 :         p->mark = _mark;
    7406                 :            :         D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    7407                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
    7408                 :            :     }
    7409         [ +  + ]:    2991115 :     if (p->call_invalid_rules) { // invalid_match_stmt
    7410         [ +  + ]:        840 :         if (p->error_indicator) {
    7411                 :         11 :             p->level--;
    7412                 :         11 :             return NULL;
    7413                 :            :         }
    7414                 :            :         D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
    7415                 :            :         void *invalid_match_stmt_var;
    7416         [ -  + ]:        829 :         if (
    7417                 :        829 :             (invalid_match_stmt_var = invalid_match_stmt_rule(p))  // invalid_match_stmt
    7418                 :            :         )
    7419                 :            :         {
    7420                 :            :             D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
    7421                 :          0 :             _res = invalid_match_stmt_var;
    7422                 :          0 :             goto done;
    7423                 :            :         }
    7424                 :        829 :         p->mark = _mark;
    7425                 :            :         D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
    7426                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
    7427                 :            :     }
    7428                 :    2991104 :     _res = NULL;
    7429                 :    2992327 :   done:
    7430                 :    2992327 :     p->level--;
    7431                 :    2992327 :     return _res;
    7432                 :            : }
    7433                 :            : 
    7434                 :            : // subject_expr: star_named_expression ',' star_named_expressions? | named_expression
    7435                 :            : static expr_ty
    7436                 :       2385 : subject_expr_rule(Parser *p)
    7437                 :            : {
    7438         [ -  + ]:       2385 :     if (p->level++ == MAXSTACK) {
    7439                 :          0 :         p->error_indicator = 1;
    7440                 :            :         PyErr_NoMemory();
    7441                 :            :     }
    7442         [ -  + ]:       2385 :     if (p->error_indicator) {
    7443                 :          0 :         p->level--;
    7444                 :          0 :         return NULL;
    7445                 :            :     }
    7446                 :       2385 :     expr_ty _res = NULL;
    7447                 :       2385 :     int _mark = p->mark;
    7448   [ +  +  -  + ]:       2385 :     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                 :       2385 :     int _start_lineno = p->tokens[_mark]->lineno;
    7454                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    7455                 :       2385 :     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         [ -  + ]:       2385 :         if (p->error_indicator) {
    7459                 :          0 :             p->level--;
    7460                 :          0 :             return NULL;
    7461                 :            :         }
    7462                 :            :         D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
    7463                 :            :         Token * _literal;
    7464                 :            :         expr_ty value;
    7465                 :            :         void *values;
    7466         [ +  + ]:       2385 :         if (
    7467                 :       2385 :             (value = star_named_expression_rule(p))  // star_named_expression
    7468         [ +  + ]:       1299 :             &&
    7469                 :       1299 :             (_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                 :            :             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                 :       2373 :         p->mark = _mark;
    7493                 :            :         D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
    7494                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
    7495                 :            :     }
    7496                 :            :     { // named_expression
    7497         [ -  + ]:       2373 :         if (p->error_indicator) {
    7498                 :          0 :             p->level--;
    7499                 :          0 :             return NULL;
    7500                 :            :         }
    7501                 :            :         D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
    7502                 :            :         expr_ty named_expression_var;
    7503         [ +  + ]:       2373 :         if (
    7504                 :       2373 :             (named_expression_var = named_expression_rule(p))  // named_expression
    7505                 :            :         )
    7506                 :            :         {
    7507                 :            :             D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
    7508                 :       1287 :             _res = named_expression_var;
    7509                 :       1287 :             goto done;
    7510                 :            :         }
    7511                 :       1086 :         p->mark = _mark;
    7512                 :            :         D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
    7513                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
    7514                 :            :     }
    7515                 :       1086 :     _res = NULL;
    7516                 :       2385 :   done:
    7517                 :       2385 :     p->level--;
    7518                 :       2385 :     return _res;
    7519                 :            : }
    7520                 :            : 
    7521                 :            : // case_block: invalid_case_block | "case" patterns guard? ':' block
    7522                 :            : static match_case_ty
    7523                 :       3053 : case_block_rule(Parser *p)
    7524                 :            : {
    7525         [ -  + ]:       3053 :     if (p->level++ == MAXSTACK) {
    7526                 :          0 :         p->error_indicator = 1;
    7527                 :            :         PyErr_NoMemory();
    7528                 :            :     }
    7529         [ -  + ]:       3053 :     if (p->error_indicator) {
    7530                 :          0 :         p->level--;
    7531                 :          0 :         return NULL;
    7532                 :            :     }
    7533                 :       3053 :     match_case_ty _res = NULL;
    7534                 :       3053 :     int _mark = p->mark;
    7535         [ +  + ]:       3053 :     if (p->call_invalid_rules) { // invalid_case_block
    7536         [ -  + ]:         21 :         if (p->error_indicator) {
    7537                 :          0 :             p->level--;
    7538                 :          0 :             return NULL;
    7539                 :            :         }
    7540                 :            :         D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
    7541                 :            :         void *invalid_case_block_var;
    7542         [ -  + ]:         21 :         if (
    7543                 :         21 :             (invalid_case_block_var = invalid_case_block_rule(p))  // invalid_case_block
    7544                 :            :         )
    7545                 :            :         {
    7546                 :            :             D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
    7547                 :          0 :             _res = invalid_case_block_var;
    7548                 :          0 :             goto done;
    7549                 :            :         }
    7550                 :         21 :         p->mark = _mark;
    7551                 :            :         D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
    7552                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
    7553                 :            :     }
    7554                 :            :     { // "case" patterns guard? ':' block
    7555         [ +  + ]:       3053 :         if (p->error_indicator) {
    7556                 :         11 :             p->level--;
    7557                 :         11 :             return NULL;
    7558                 :            :         }
    7559                 :            :         D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
    7560                 :            :         expr_ty _keyword;
    7561                 :            :         Token * _literal;
    7562                 :            :         asdl_stmt_seq* body;
    7563                 :            :         void *guard;
    7564                 :            :         pattern_ty pattern;
    7565         [ +  + ]:       3042 :         if (
    7566                 :       3042 :             (_keyword = _PyPegen_expect_soft_keyword(p, "case"))  // soft_keyword='"case"'
    7567         [ +  + ]:       1817 :             &&
    7568                 :       1817 :             (pattern = patterns_rule(p))  // patterns
    7569                 :       1793 :             &&
    7570         [ +  - ]:       1793 :             (guard = guard_rule(p), !p->error_indicator)  // guard?
    7571         [ +  + ]:       1793 :             &&
    7572                 :       1793 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
    7573         [ +  + ]:       1788 :             &&
    7574                 :       1788 :             (body = block_rule(p))  // block
    7575                 :            :         )
    7576                 :            :         {
    7577                 :            :             D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
    7578                 :       1784 :             _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
    7579   [ -  +  -  - ]:       1784 :             if (_res == NULL && PyErr_Occurred()) {
    7580                 :          0 :                 p->error_indicator = 1;
    7581                 :          0 :                 p->level--;
    7582                 :          0 :                 return NULL;
    7583                 :            :             }
    7584                 :       1784 :             goto done;
    7585                 :            :         }
    7586                 :       1258 :         p->mark = _mark;
    7587                 :            :         D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
    7588                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
    7589                 :            :     }
    7590                 :       1258 :     _res = NULL;
    7591                 :       3042 :   done:
    7592                 :       3042 :     p->level--;
    7593                 :       3042 :     return _res;
    7594                 :            : }
    7595                 :            : 
    7596                 :            : // guard: 'if' named_expression
    7597                 :            : static expr_ty
    7598                 :       1803 : guard_rule(Parser *p)
    7599                 :            : {
    7600         [ -  + ]:       1803 :     if (p->level++ == MAXSTACK) {
    7601                 :          0 :         p->error_indicator = 1;
    7602                 :            :         PyErr_NoMemory();
    7603                 :            :     }
    7604         [ -  + ]:       1803 :     if (p->error_indicator) {
    7605                 :          0 :         p->level--;
    7606                 :          0 :         return NULL;
    7607                 :            :     }
    7608                 :       1803 :     expr_ty _res = NULL;
    7609                 :       1803 :     int _mark = p->mark;
    7610                 :            :     { // 'if' named_expression
    7611         [ -  + ]:       1803 :         if (p->error_indicator) {
    7612                 :          0 :             p->level--;
    7613                 :          0 :             return NULL;
    7614                 :            :         }
    7615                 :            :         D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
    7616                 :            :         Token * _keyword;
    7617                 :            :         expr_ty guard;
    7618         [ +  + ]:       1803 :         if (
    7619                 :       1803 :             (_keyword = _PyPegen_expect_token(p, 634))  // token='if'
    7620         [ +  - ]:        207 :             &&
    7621                 :        207 :             (guard = named_expression_rule(p))  // named_expression
    7622                 :            :         )
    7623                 :            :         {
    7624                 :            :             D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
    7625                 :        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                 :       1596 :         p->mark = _mark;
    7634                 :            :         D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
    7635                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
    7636                 :            :     }
    7637                 :       1596 :     _res = NULL;
    7638                 :       1803 :   done:
    7639                 :       1803 :     p->level--;
    7640                 :       1803 :     return _res;
    7641                 :            : }
    7642                 :            : 
    7643                 :            : // patterns: open_sequence_pattern | pattern
    7644                 :            : static pattern_ty
    7645                 :       1848 : patterns_rule(Parser *p)
    7646                 :            : {
    7647         [ -  + ]:       1848 :     if (p->level++ == MAXSTACK) {
    7648                 :          0 :         p->error_indicator = 1;
    7649                 :            :         PyErr_NoMemory();
    7650                 :            :     }
    7651         [ -  + ]:       1848 :     if (p->error_indicator) {
    7652                 :          0 :         p->level--;
    7653                 :          0 :         return NULL;
    7654                 :            :     }
    7655                 :       1848 :     pattern_ty _res = NULL;
    7656                 :       1848 :     int _mark = p->mark;
    7657   [ +  +  -  + ]:       1848 :     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                 :       1848 :     int _start_lineno = p->tokens[_mark]->lineno;
    7663                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    7664                 :       1848 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    7665                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    7666                 :            :     { // open_sequence_pattern
    7667         [ -  + ]:       1848 :         if (p->error_indicator) {
    7668                 :          0 :             p->level--;
    7669                 :          0 :             return NULL;
    7670                 :            :         }
    7671                 :            :         D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
    7672                 :            :         asdl_pattern_seq* patterns;
    7673         [ +  + ]:       1848 :         if (
    7674                 :       1848 :             (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p))  // open_sequence_pattern
    7675                 :            :         )
    7676                 :            :         {
    7677                 :            :             D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
    7678                 :         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                 :       1774 :         p->mark = _mark;
    7696                 :            :         D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
    7697                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
    7698                 :            :     }
    7699                 :            :     { // pattern
    7700         [ +  + ]:       1774 :         if (p->error_indicator) {
    7701                 :         13 :             p->level--;
    7702                 :         13 :             return NULL;
    7703                 :            :         }
    7704                 :            :         D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
    7705                 :            :         pattern_ty pattern_var;
    7706         [ +  + ]:       1761 :         if (
    7707                 :       1761 :             (pattern_var = pattern_rule(p))  // pattern
    7708                 :            :         )
    7709                 :            :         {
    7710                 :            :             D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
    7711                 :       1729 :             _res = pattern_var;
    7712                 :       1729 :             goto done;
    7713                 :            :         }
    7714                 :         32 :         p->mark = _mark;
    7715                 :            :         D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
    7716                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
    7717                 :            :     }
    7718                 :         32 :     _res = NULL;
    7719                 :       1835 :   done:
    7720                 :       1835 :     p->level--;
    7721                 :       1835 :     return _res;
    7722                 :            : }
    7723                 :            : 
    7724                 :            : // pattern: as_pattern | or_pattern
    7725                 :            : static pattern_ty
    7726                 :       6773 : pattern_rule(Parser *p)
    7727                 :            : {
    7728         [ -  + ]:       6773 :     if (p->level++ == MAXSTACK) {
    7729                 :          0 :         p->error_indicator = 1;
    7730                 :            :         PyErr_NoMemory();
    7731                 :            :     }
    7732         [ -  + ]:       6773 :     if (p->error_indicator) {
    7733                 :          0 :         p->level--;
    7734                 :          0 :         return NULL;
    7735                 :            :     }
    7736                 :       6773 :     pattern_ty _res = NULL;
    7737                 :       6773 :     int _mark = p->mark;
    7738                 :            :     { // as_pattern
    7739         [ -  + ]:       6773 :         if (p->error_indicator) {
    7740                 :          0 :             p->level--;
    7741                 :          0 :             return NULL;
    7742                 :            :         }
    7743                 :            :         D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
    7744                 :            :         pattern_ty as_pattern_var;
    7745         [ +  + ]:       6773 :         if (
    7746                 :       6773 :             (as_pattern_var = as_pattern_rule(p))  // as_pattern
    7747                 :            :         )
    7748                 :            :         {
    7749                 :            :             D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
    7750                 :        228 :             _res = as_pattern_var;
    7751                 :        228 :             goto done;
    7752                 :            :         }
    7753                 :       6545 :         p->mark = _mark;
    7754                 :            :         D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
    7755                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
    7756                 :            :     }
    7757                 :            :     { // or_pattern
    7758         [ +  + ]:       6545 :         if (p->error_indicator) {
    7759                 :         13 :             p->level--;
    7760                 :         13 :             return NULL;
    7761                 :            :         }
    7762                 :            :         D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
    7763                 :            :         pattern_ty or_pattern_var;
    7764         [ +  + ]:       6532 :         if (
    7765                 :       6532 :             (or_pattern_var = or_pattern_rule(p))  // or_pattern
    7766                 :            :         )
    7767                 :            :         {
    7768                 :            :             D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
    7769                 :       6159 :             _res = or_pattern_var;
    7770                 :       6159 :             goto done;
    7771                 :            :         }
    7772                 :        373 :         p->mark = _mark;
    7773                 :            :         D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
    7774                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
    7775                 :            :     }
    7776                 :        373 :     _res = NULL;
    7777                 :       6760 :   done:
    7778                 :       6760 :     p->level--;
    7779                 :       6760 :     return _res;
    7780                 :            : }
    7781                 :            : 
    7782                 :            : // as_pattern: or_pattern 'as' pattern_capture_target | invalid_as_pattern
    7783                 :            : static pattern_ty
    7784                 :       6773 : as_pattern_rule(Parser *p)
    7785                 :            : {
    7786         [ -  + ]:       6773 :     if (p->level++ == MAXSTACK) {
    7787                 :          0 :         p->error_indicator = 1;
    7788                 :            :         PyErr_NoMemory();
    7789                 :            :     }
    7790         [ -  + ]:       6773 :     if (p->error_indicator) {
    7791                 :          0 :         p->level--;
    7792                 :          0 :         return NULL;
    7793                 :            :     }
    7794                 :       6773 :     pattern_ty _res = NULL;
    7795                 :       6773 :     int _mark = p->mark;
    7796   [ +  +  -  + ]:       6773 :     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                 :       6773 :     int _start_lineno = p->tokens[_mark]->lineno;
    7802                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    7803                 :       6773 :     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         [ -  + ]:       6773 :         if (p->error_indicator) {
    7807                 :          0 :             p->level--;
    7808                 :          0 :             return NULL;
    7809                 :            :         }
    7810                 :            :         D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
    7811                 :            :         Token * _keyword;
    7812                 :            :         pattern_ty pattern;
    7813                 :            :         expr_ty target;
    7814         [ +  + ]:       6773 :         if (
    7815                 :       6773 :             (pattern = or_pattern_rule(p))  // or_pattern
    7816         [ +  + ]:       6390 :             &&
    7817                 :       6390 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
    7818         [ +  + ]:        237 :             &&
    7819                 :        237 :             (target = pattern_capture_target_rule(p))  // pattern_capture_target
    7820                 :            :         )
    7821                 :            :         {
    7822                 :            :             D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
    7823                 :        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                 :       6545 :         p->mark = _mark;
    7841                 :            :         D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    7842                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
    7843                 :            :     }
    7844         [ +  + ]:       6545 :     if (p->call_invalid_rules) { // invalid_as_pattern
    7845         [ +  + ]:        111 :         if (p->error_indicator) {
    7846                 :          4 :             p->level--;
    7847                 :          4 :             return NULL;
    7848                 :            :         }
    7849                 :            :         D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
    7850                 :            :         void *invalid_as_pattern_var;
    7851         [ -  + ]:        107 :         if (
    7852                 :        107 :             (invalid_as_pattern_var = invalid_as_pattern_rule(p))  // invalid_as_pattern
    7853                 :            :         )
    7854                 :            :         {
    7855                 :            :             D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
    7856                 :          0 :             _res = invalid_as_pattern_var;
    7857                 :          0 :             goto done;
    7858                 :            :         }
    7859                 :        107 :         p->mark = _mark;
    7860                 :            :         D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    7861                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_as_pattern"));
    7862                 :            :     }
    7863                 :       6541 :     _res = NULL;
    7864                 :       6769 :   done:
    7865                 :       6769 :     p->level--;
    7866                 :       6769 :     return _res;
    7867                 :            : }
    7868                 :            : 
    7869                 :            : // or_pattern: '|'.closed_pattern+
    7870                 :            : static pattern_ty
    7871                 :      13517 : or_pattern_rule(Parser *p)
    7872                 :            : {
    7873         [ -  + ]:      13517 :     if (p->level++ == MAXSTACK) {
    7874                 :          0 :         p->error_indicator = 1;
    7875                 :            :         PyErr_NoMemory();
    7876                 :            :     }
    7877         [ -  + ]:      13517 :     if (p->error_indicator) {
    7878                 :          0 :         p->level--;
    7879                 :          0 :         return NULL;
    7880                 :            :     }
    7881                 :      13517 :     pattern_ty _res = NULL;
    7882                 :      13517 :     int _mark = p->mark;
    7883   [ -  +  -  - ]:      13517 :     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                 :      13517 :     int _start_lineno = p->tokens[_mark]->lineno;
    7889                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    7890                 :      13517 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    7891                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    7892                 :            :     { // '|'.closed_pattern+
    7893         [ -  + ]:      13517 :         if (p->error_indicator) {
    7894                 :          0 :             p->level--;
    7895                 :          0 :             return NULL;
    7896                 :            :         }
    7897                 :            :         D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
    7898                 :            :         asdl_pattern_seq* patterns;
    7899         [ +  + ]:      13517 :         if (
    7900                 :      13517 :             (patterns = (asdl_pattern_seq*)_gather_65_rule(p))  // '|'.closed_pattern+
    7901                 :            :         )
    7902                 :            :         {
    7903                 :            :             D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
    7904                 :      12645 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    7905         [ -  + ]:      12645 :             if (_token == NULL) {
    7906                 :          0 :                 p->level--;
    7907                 :          0 :                 return NULL;
    7908                 :            :             }
    7909                 :      12645 :             int _end_lineno = _token->end_lineno;
    7910                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    7911                 :      12645 :             int _end_col_offset = _token->end_col_offset;
    7912                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    7913   [ +  -  +  + ]:      12645 :             _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
    7914   [ -  +  -  - ]:      12645 :             if (_res == NULL && PyErr_Occurred()) {
    7915                 :          0 :                 p->error_indicator = 1;
    7916                 :          0 :                 p->level--;
    7917                 :          0 :                 return NULL;
    7918                 :            :             }
    7919                 :      12645 :             goto done;
    7920                 :            :         }
    7921                 :        872 :         p->mark = _mark;
    7922                 :            :         D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    7923                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
    7924                 :            :     }
    7925                 :        872 :     _res = NULL;
    7926                 :      13517 :   done:
    7927                 :      13517 :     p->level--;
    7928                 :      13517 :     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                 :      14745 : closed_pattern_rule(Parser *p)
    7942                 :            : {
    7943         [ -  + ]:      14745 :     if (p->level++ == MAXSTACK) {
    7944                 :          0 :         p->error_indicator = 1;
    7945                 :            :         PyErr_NoMemory();
    7946                 :            :     }
    7947         [ -  + ]:      14745 :     if (p->error_indicator) {
    7948                 :          0 :         p->level--;
    7949                 :          0 :         return NULL;
    7950                 :            :     }
    7951                 :      14745 :     pattern_ty _res = NULL;
    7952         [ +  + ]:      14745 :     if (_PyPegen_is_memoized(p, closed_pattern_type, &_res)) {
    7953                 :       9946 :         p->level--;
    7954                 :       9946 :         return _res;
    7955                 :            :     }
    7956                 :       4799 :     int _mark = p->mark;
    7957                 :            :     { // literal_pattern
    7958         [ -  + ]:       4799 :         if (p->error_indicator) {
    7959                 :          0 :             p->level--;
    7960                 :          0 :             return NULL;
    7961                 :            :         }
    7962                 :            :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
    7963                 :            :         pattern_ty literal_pattern_var;
    7964         [ +  + ]:       4799 :         if (
    7965                 :       4799 :             (literal_pattern_var = literal_pattern_rule(p))  // literal_pattern
    7966                 :            :         )
    7967                 :            :         {
    7968                 :            :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
    7969                 :       1552 :             _res = literal_pattern_var;
    7970                 :       1552 :             goto done;
    7971                 :            :         }
    7972                 :       3247 :         p->mark = _mark;
    7973                 :            :         D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    7974                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
    7975                 :            :     }
    7976                 :            :     { // capture_pattern
    7977         [ +  + ]:       3247 :         if (p->error_indicator) {
    7978                 :          3 :             p->level--;
    7979                 :          3 :             return NULL;
    7980                 :            :         }
    7981                 :            :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
    7982                 :            :         pattern_ty capture_pattern_var;
    7983         [ +  + ]:       3244 :         if (
    7984                 :       3244 :             (capture_pattern_var = capture_pattern_rule(p))  // capture_pattern
    7985                 :            :         )
    7986                 :            :         {
    7987                 :            :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
    7988                 :        996 :             _res = capture_pattern_var;
    7989                 :        996 :             goto done;
    7990                 :            :         }
    7991                 :       2248 :         p->mark = _mark;
    7992                 :            :         D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    7993                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
    7994                 :            :     }
    7995                 :            :     { // wildcard_pattern
    7996         [ -  + ]:       2248 :         if (p->error_indicator) {
    7997                 :          0 :             p->level--;
    7998                 :          0 :             return NULL;
    7999                 :            :         }
    8000                 :            :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
    8001                 :            :         pattern_ty wildcard_pattern_var;
    8002         [ +  + ]:       2248 :         if (
    8003                 :       2248 :             (wildcard_pattern_var = wildcard_pattern_rule(p))  // wildcard_pattern
    8004                 :            :         )
    8005                 :            :         {
    8006                 :            :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
    8007                 :        250 :             _res = wildcard_pattern_var;
    8008                 :        250 :             goto done;
    8009                 :            :         }
    8010                 :       1998 :         p->mark = _mark;
    8011                 :            :         D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    8012                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
    8013                 :            :     }
    8014                 :            :     { // value_pattern
    8015         [ -  + ]:       1998 :         if (p->error_indicator) {
    8016                 :          0 :             p->level--;
    8017                 :          0 :             return NULL;
    8018                 :            :         }
    8019                 :            :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
    8020                 :            :         pattern_ty value_pattern_var;
    8021         [ +  + ]:       1998 :         if (
    8022                 :       1998 :             (value_pattern_var = value_pattern_rule(p))  // value_pattern
    8023                 :            :         )
    8024                 :            :         {
    8025                 :            :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
    8026                 :         60 :             _res = value_pattern_var;
    8027                 :         60 :             goto done;
    8028                 :            :         }
    8029                 :       1938 :         p->mark = _mark;
    8030                 :            :         D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    8031                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
    8032                 :            :     }
    8033                 :            :     { // group_pattern
    8034         [ -  + ]:       1938 :         if (p->error_indicator) {
    8035                 :          0 :             p->level--;
    8036                 :          0 :             return NULL;
    8037                 :            :         }
    8038                 :            :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
    8039                 :            :         pattern_ty group_pattern_var;
    8040         [ +  + ]:       1938 :         if (
    8041                 :       1938 :             (group_pattern_var = group_pattern_rule(p))  // group_pattern
    8042                 :            :         )
    8043                 :            :         {
    8044                 :            :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
    8045                 :        257 :             _res = group_pattern_var;
    8046                 :        257 :             goto done;
    8047                 :            :         }
    8048                 :       1681 :         p->mark = _mark;
    8049                 :            :         D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    8050                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
    8051                 :            :     }
    8052                 :            :     { // sequence_pattern
    8053         [ -  + ]:       1681 :         if (p->error_indicator) {
    8054                 :          0 :             p->level--;
    8055                 :          0 :             return NULL;
    8056                 :            :         }
    8057                 :            :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
    8058                 :            :         pattern_ty sequence_pattern_var;
    8059         [ +  + ]:       1681 :         if (
    8060                 :       1681 :             (sequence_pattern_var = sequence_pattern_rule(p))  // sequence_pattern
    8061                 :            :         )
    8062                 :            :         {
    8063                 :            :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
    8064                 :        689 :             _res = sequence_pattern_var;
    8065                 :        689 :             goto done;
    8066                 :            :         }
    8067                 :        992 :         p->mark = _mark;
    8068                 :            :         D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    8069                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
    8070                 :            :     }
    8071                 :            :     { // mapping_pattern
    8072         [ -  + ]:        992 :         if (p->error_indicator) {
    8073                 :          0 :             p->level--;
    8074                 :          0 :             return NULL;
    8075                 :            :         }
    8076                 :            :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
    8077                 :            :         pattern_ty mapping_pattern_var;
    8078         [ +  + ]:        992 :         if (
    8079                 :        992 :             (mapping_pattern_var = mapping_pattern_rule(p))  // mapping_pattern
    8080                 :            :         )
    8081                 :            :         {
    8082                 :            :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
    8083                 :        429 :             _res = mapping_pattern_var;
    8084                 :        429 :             goto done;
    8085                 :            :         }
    8086                 :        563 :         p->mark = _mark;
    8087                 :            :         D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    8088                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
    8089                 :            :     }
    8090                 :            :     { // class_pattern
    8091         [ +  + ]:        563 :         if (p->error_indicator) {
    8092                 :          3 :             p->level--;
    8093                 :          3 :             return NULL;
    8094                 :            :         }
    8095                 :            :         D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
    8096                 :            :         pattern_ty class_pattern_var;
    8097         [ +  + ]:        560 :         if (
    8098                 :        560 :             (class_pattern_var = class_pattern_rule(p))  // class_pattern
    8099                 :            :         )
    8100                 :            :         {
    8101                 :            :             D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
    8102                 :        292 :             _res = class_pattern_var;
    8103                 :        292 :             goto done;
    8104                 :            :         }
    8105                 :        268 :         p->mark = _mark;
    8106                 :            :         D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    8107                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
    8108                 :            :     }
    8109                 :        268 :     _res = NULL;
    8110                 :       4793 :   done:
    8111                 :       4793 :     _PyPegen_insert_memo(p, _mark, closed_pattern_type, _res);
    8112                 :       4793 :     p->level--;
    8113                 :       4793 :     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                 :       4799 : literal_pattern_rule(Parser *p)
    8125                 :            : {
    8126         [ -  + ]:       4799 :     if (p->level++ == MAXSTACK) {
    8127                 :          0 :         p->error_indicator = 1;
    8128                 :            :         PyErr_NoMemory();
    8129                 :            :     }
    8130         [ -  + ]:       4799 :     if (p->error_indicator) {
    8131                 :          0 :         p->level--;
    8132                 :          0 :         return NULL;
    8133                 :            :     }
    8134                 :       4799 :     pattern_ty _res = NULL;
    8135                 :       4799 :     int _mark = p->mark;
    8136   [ -  +  -  - ]:       4799 :     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                 :       4799 :     int _start_lineno = p->tokens[_mark]->lineno;
    8142                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    8143                 :       4799 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    8144                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    8145                 :            :     { // signed_number !('+' | '-')
    8146         [ -  + ]:       4799 :         if (p->error_indicator) {
    8147                 :          0 :             p->level--;
    8148                 :          0 :             return NULL;
    8149                 :            :         }
    8150                 :            :         D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
    8151                 :            :         expr_ty value;
    8152         [ +  + ]:       4799 :         if (
    8153                 :       4799 :             (value = signed_number_rule(p))  // signed_number
    8154         [ +  + ]:       1353 :             &&
    8155                 :       1353 :             _PyPegen_lookahead(0, _tmp_67_rule, p)
    8156                 :            :         )
    8157                 :            :         {
    8158                 :            :             D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
    8159                 :       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                 :       3489 :         p->mark = _mark;
    8177                 :            :         D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    8178                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
    8179                 :            :     }
    8180                 :            :     { // complex_number
    8181         [ -  + ]:       3489 :         if (p->error_indicator) {
    8182                 :          0 :             p->level--;
    8183                 :          0 :             return NULL;
    8184                 :            :         }
    8185                 :            :         D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
    8186                 :            :         expr_ty value;
    8187         [ +  + ]:       3489 :         if (
    8188                 :       3489 :             (value = complex_number_rule(p))  // complex_number
    8189                 :            :         )
    8190                 :            :         {
    8191                 :            :             D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
    8192                 :         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                 :       3449 :         p->mark = _mark;
    8210                 :            :         D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    8211                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
    8212                 :            :     }
    8213                 :            :     { // strings
    8214         [ +  + ]:       3449 :         if (p->error_indicator) {
    8215                 :          3 :             p->level--;
    8216                 :          3 :             return NULL;
    8217                 :            :         }
    8218                 :            :         D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
    8219                 :            :         expr_ty value;
    8220         [ +  + ]:       3446 :         if (
    8221                 :       3446 :             (value = strings_rule(p))  // strings
    8222                 :            :         )
    8223                 :            :         {
    8224                 :            :             D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
    8225                 :        140 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8226         [ -  + ]:        140 :             if (_token == NULL) {
    8227                 :          0 :                 p->level--;
    8228                 :          0 :                 return NULL;
    8229                 :            :             }
    8230                 :        140 :             int _end_lineno = _token->end_lineno;
    8231                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8232                 :        140 :             int _end_col_offset = _token->end_col_offset;
    8233                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8234                 :        140 :             _res = _PyAST_MatchValue ( value , EXTRA );
    8235   [ -  +  -  - ]:        140 :             if (_res == NULL && PyErr_Occurred()) {
    8236                 :          0 :                 p->error_indicator = 1;
    8237                 :          0 :                 p->level--;
    8238                 :          0 :                 return NULL;
    8239                 :            :             }
    8240                 :        140 :             goto done;
    8241                 :            :         }
    8242                 :       3306 :         p->mark = _mark;
    8243                 :            :         D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    8244                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
    8245                 :            :     }
    8246                 :            :     { // 'None'
    8247         [ -  + ]:       3306 :         if (p->error_indicator) {
    8248                 :          0 :             p->level--;
    8249                 :          0 :             return NULL;
    8250                 :            :         }
    8251                 :            :         D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
    8252                 :            :         Token * _keyword;
    8253         [ +  + ]:       3306 :         if (
    8254                 :       3306 :             (_keyword = _PyPegen_expect_token(p, 601))  // token='None'
    8255                 :            :         )
    8256                 :            :         {
    8257                 :            :             D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
    8258                 :         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                 :       3274 :         p->mark = _mark;
    8276                 :            :         D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    8277                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
    8278                 :            :     }
    8279                 :            :     { // 'True'
    8280         [ -  + ]:       3274 :         if (p->error_indicator) {
    8281                 :          0 :             p->level--;
    8282                 :          0 :             return NULL;
    8283                 :            :         }
    8284                 :            :         D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
    8285                 :            :         Token * _keyword;
    8286         [ +  + ]:       3274 :         if (
    8287                 :       3274 :             (_keyword = _PyPegen_expect_token(p, 600))  // token='True'
    8288                 :            :         )
    8289                 :            :         {
    8290                 :            :             D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
    8291                 :         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                 :       3261 :         p->mark = _mark;
    8309                 :            :         D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    8310                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
    8311                 :            :     }
    8312                 :            :     { // 'False'
    8313         [ -  + ]:       3261 :         if (p->error_indicator) {
    8314                 :          0 :             p->level--;
    8315                 :          0 :             return NULL;
    8316                 :            :         }
    8317                 :            :         D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
    8318                 :            :         Token * _keyword;
    8319         [ +  + ]:       3261 :         if (
    8320                 :       3261 :             (_keyword = _PyPegen_expect_token(p, 602))  // token='False'
    8321                 :            :         )
    8322                 :            :         {
    8323                 :            :             D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
    8324                 :         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                 :       3244 :         p->mark = _mark;
    8342                 :            :         D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    8343                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
    8344                 :            :     }
    8345                 :       3244 :     _res = NULL;
    8346                 :       4796 :   done:
    8347                 :       4796 :     p->level--;
    8348                 :       4796 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :       3728 : complex_number_rule(Parser *p)
    8549                 :            : {
    8550         [ -  + ]:       3728 :     if (p->level++ == MAXSTACK) {
    8551                 :          0 :         p->error_indicator = 1;
    8552                 :            :         PyErr_NoMemory();
    8553                 :            :     }
    8554         [ -  + ]:       3728 :     if (p->error_indicator) {
    8555                 :          0 :         p->level--;
    8556                 :          0 :         return NULL;
    8557                 :            :     }
    8558                 :       3728 :     expr_ty _res = NULL;
    8559                 :       3728 :     int _mark = p->mark;
    8560   [ -  +  -  - ]:       3728 :     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                 :       3728 :     int _start_lineno = p->tokens[_mark]->lineno;
    8566                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    8567                 :       3728 :     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         [ -  + ]:       3728 :         if (p->error_indicator) {
    8571                 :          0 :             p->level--;
    8572                 :          0 :             return NULL;
    8573                 :            :         }
    8574                 :            :         D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_real_number '+' imaginary_number"));
    8575                 :            :         Token * _literal;
    8576                 :            :         expr_ty imag;
    8577                 :            :         expr_ty real;
    8578         [ +  + ]:       3728 :         if (
    8579                 :       3728 :             (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                 :            :             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                 :       3708 :         p->mark = _mark;
    8605                 :            :         D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
    8606                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '+' imaginary_number"));
    8607                 :            :     }
    8608                 :            :     { // signed_real_number '-' imaginary_number
    8609         [ +  + ]:       3708 :         if (p->error_indicator) {
    8610                 :          6 :             p->level--;
    8611                 :          6 :             return NULL;
    8612                 :            :         }
    8613                 :            :         D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_real_number '-' imaginary_number"));
    8614                 :            :         Token * _literal;
    8615                 :            :         expr_ty imag;
    8616                 :            :         expr_ty real;
    8617         [ +  + ]:       3702 :         if (
    8618                 :       3702 :             (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                 :            :             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                 :       3674 :         p->mark = _mark;
    8644                 :            :         D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
    8645                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '-' imaginary_number"));
    8646                 :            :     }
    8647                 :       3674 :     _res = NULL;
    8648                 :       3722 :   done:
    8649                 :       3722 :     p->level--;
    8650                 :       3722 :     return _res;
    8651                 :            : }
    8652                 :            : 
    8653                 :            : // signed_number: NUMBER | '-' NUMBER
    8654                 :            : static expr_ty
    8655                 :       5608 : signed_number_rule(Parser *p)
    8656                 :            : {
    8657         [ -  + ]:       5608 :     if (p->level++ == MAXSTACK) {
    8658                 :          0 :         p->error_indicator = 1;
    8659                 :            :         PyErr_NoMemory();
    8660                 :            :     }
    8661         [ -  + ]:       5608 :     if (p->error_indicator) {
    8662                 :          0 :         p->level--;
    8663                 :          0 :         return NULL;
    8664                 :            :     }
    8665                 :       5608 :     expr_ty _res = NULL;
    8666                 :       5608 :     int _mark = p->mark;
    8667   [ -  +  -  - ]:       5608 :     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                 :       5608 :     int _start_lineno = p->tokens[_mark]->lineno;
    8673                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    8674                 :       5608 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    8675                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    8676                 :            :     { // NUMBER
    8677         [ -  + ]:       5608 :         if (p->error_indicator) {
    8678                 :          0 :             p->level--;
    8679                 :          0 :             return NULL;
    8680                 :            :         }
    8681                 :            :         D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
    8682                 :            :         expr_ty number_var;
    8683         [ +  + ]:       5608 :         if (
    8684                 :       5608 :             (number_var = _PyPegen_number_token(p))  // NUMBER
    8685                 :            :         )
    8686                 :            :         {
    8687                 :            :             D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
    8688                 :       1856 :             _res = number_var;
    8689                 :       1856 :             goto done;
    8690                 :            :         }
    8691                 :       3752 :         p->mark = _mark;
    8692                 :            :         D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
    8693                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
    8694                 :            :     }
    8695                 :            :     { // '-' NUMBER
    8696         [ -  + ]:       3752 :         if (p->error_indicator) {
    8697                 :          0 :             p->level--;
    8698                 :          0 :             return NULL;
    8699                 :            :         }
    8700                 :            :         D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
    8701                 :            :         Token * _literal;
    8702                 :            :         expr_ty number;
    8703         [ +  + ]:       3752 :         if (
    8704                 :       3752 :             (_literal = _PyPegen_expect_token(p, 15))  // token='-'
    8705         [ +  - ]:         78 :             &&
    8706                 :         78 :             (number = _PyPegen_number_token(p))  // NUMBER
    8707                 :            :         )
    8708                 :            :         {
    8709                 :            :             D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
    8710                 :         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                 :       3674 :         p->mark = _mark;
    8728                 :            :         D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
    8729                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
    8730                 :            :     }
    8731                 :       3674 :     _res = NULL;
    8732                 :       5608 :   done:
    8733                 :       5608 :     p->level--;
    8734                 :       5608 :     return _res;
    8735                 :            : }
    8736                 :            : 
    8737                 :            : // signed_real_number: real_number | '-' real_number
    8738                 :            : static expr_ty
    8739                 :       7430 : signed_real_number_rule(Parser *p)
    8740                 :            : {
    8741         [ -  + ]:       7430 :     if (p->level++ == MAXSTACK) {
    8742                 :          0 :         p->error_indicator = 1;
    8743                 :            :         PyErr_NoMemory();
    8744                 :            :     }
    8745         [ -  + ]:       7430 :     if (p->error_indicator) {
    8746                 :          0 :         p->level--;
    8747                 :          0 :         return NULL;
    8748                 :            :     }
    8749                 :       7430 :     expr_ty _res = NULL;
    8750                 :       7430 :     int _mark = p->mark;
    8751   [ -  +  -  - ]:       7430 :     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                 :       7430 :     int _start_lineno = p->tokens[_mark]->lineno;
    8757                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    8758                 :       7430 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    8759                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    8760                 :            :     { // real_number
    8761         [ -  + ]:       7430 :         if (p->error_indicator) {
    8762                 :          0 :             p->level--;
    8763                 :          0 :             return NULL;
    8764                 :            :         }
    8765                 :            :         D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "real_number"));
    8766                 :            :         expr_ty real_number_var;
    8767         [ +  + ]:       7430 :         if (
    8768                 :       7430 :             (real_number_var = real_number_rule(p))  // real_number
    8769                 :            :         )
    8770                 :            :         {
    8771                 :            :             D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "real_number"));
    8772                 :         38 :             _res = real_number_var;
    8773                 :         38 :             goto done;
    8774                 :            :         }
    8775                 :       7392 :         p->mark = _mark;
    8776                 :            :         D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
    8777                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number"));
    8778                 :            :     }
    8779                 :            :     { // '-' real_number
    8780         [ +  + ]:       7392 :         if (p->error_indicator) {
    8781                 :          4 :             p->level--;
    8782                 :          4 :             return NULL;
    8783                 :            :         }
    8784                 :            :         D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
    8785                 :            :         Token * _literal;
    8786                 :            :         expr_ty real;
    8787         [ +  + ]:       7388 :         if (
    8788                 :       7388 :             (_literal = _PyPegen_expect_token(p, 15))  // token='-'
    8789         [ +  - ]:         40 :             &&
    8790                 :         40 :             (real = real_number_rule(p))  // real_number
    8791                 :            :         )
    8792                 :            :         {
    8793                 :            :             D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
    8794                 :         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                 :       7348 :         p->mark = _mark;
    8812                 :            :         D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
    8813                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number"));
    8814                 :            :     }
    8815                 :       7348 :     _res = NULL;
    8816                 :       7426 :   done:
    8817                 :       7426 :     p->level--;
    8818                 :       7426 :     return _res;
    8819                 :            : }
    8820                 :            : 
    8821                 :            : // real_number: NUMBER
    8822                 :            : static expr_ty
    8823                 :       7470 : real_number_rule(Parser *p)
    8824                 :            : {
    8825         [ -  + ]:       7470 :     if (p->level++ == MAXSTACK) {
    8826                 :          0 :         p->error_indicator = 1;
    8827                 :            :         PyErr_NoMemory();
    8828                 :            :     }
    8829         [ -  + ]:       7470 :     if (p->error_indicator) {
    8830                 :          0 :         p->level--;
    8831                 :          0 :         return NULL;
    8832                 :            :     }
    8833                 :       7470 :     expr_ty _res = NULL;
    8834                 :       7470 :     int _mark = p->mark;
    8835                 :            :     { // NUMBER
    8836         [ -  + ]:       7470 :         if (p->error_indicator) {
    8837                 :          0 :             p->level--;
    8838                 :          0 :             return NULL;
    8839                 :            :         }
    8840                 :            :         D(fprintf(stderr, "%*c> real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
    8841                 :            :         expr_ty real;
    8842         [ +  + ]:       7470 :         if (
    8843                 :       7470 :             (real = _PyPegen_number_token(p))  // NUMBER
    8844                 :            :         )
    8845                 :            :         {
    8846                 :            :             D(fprintf(stderr, "%*c+ real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
    8847                 :         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                 :       7388 :         p->mark = _mark;
    8856                 :            :         D(fprintf(stderr, "%*c%s real_number[%d-%d]: %s failed!\n", p->level, ' ',
    8857                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
    8858                 :            :     }
    8859                 :       7388 :     _res = NULL;
    8860                 :       7466 :   done:
    8861                 :       7466 :     p->level--;
    8862                 :       7466 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :       3244 : capture_pattern_rule(Parser *p)
    8912                 :            : {
    8913         [ -  + ]:       3244 :     if (p->level++ == MAXSTACK) {
    8914                 :          0 :         p->error_indicator = 1;
    8915                 :            :         PyErr_NoMemory();
    8916                 :            :     }
    8917         [ -  + ]:       3244 :     if (p->error_indicator) {
    8918                 :          0 :         p->level--;
    8919                 :          0 :         return NULL;
    8920                 :            :     }
    8921                 :       3244 :     pattern_ty _res = NULL;
    8922                 :       3244 :     int _mark = p->mark;
    8923   [ -  +  -  - ]:       3244 :     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                 :       3244 :     int _start_lineno = p->tokens[_mark]->lineno;
    8929                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    8930                 :       3244 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    8931                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    8932                 :            :     { // pattern_capture_target
    8933         [ -  + ]:       3244 :         if (p->error_indicator) {
    8934                 :          0 :             p->level--;
    8935                 :          0 :             return NULL;
    8936                 :            :         }
    8937                 :            :         D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
    8938                 :            :         expr_ty target;
    8939         [ +  + ]:       3244 :         if (
    8940                 :       3244 :             (target = pattern_capture_target_rule(p))  // pattern_capture_target
    8941                 :            :         )
    8942                 :            :         {
    8943                 :            :             D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
    8944                 :        996 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    8945         [ -  + ]:        996 :             if (_token == NULL) {
    8946                 :          0 :                 p->level--;
    8947                 :          0 :                 return NULL;
    8948                 :            :             }
    8949                 :        996 :             int _end_lineno = _token->end_lineno;
    8950                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    8951                 :        996 :             int _end_col_offset = _token->end_col_offset;
    8952                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    8953                 :        996 :             _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA );
    8954   [ -  +  -  - ]:        996 :             if (_res == NULL && PyErr_Occurred()) {
    8955                 :          0 :                 p->error_indicator = 1;
    8956                 :          0 :                 p->level--;
    8957                 :          0 :                 return NULL;
    8958                 :            :             }
    8959                 :        996 :             goto done;
    8960                 :            :         }
    8961                 :       2248 :         p->mark = _mark;
    8962                 :            :         D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    8963                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern_capture_target"));
    8964                 :            :     }
    8965                 :       2248 :     _res = NULL;
    8966                 :       3244 :   done:
    8967                 :       3244 :     p->level--;
    8968                 :       3244 :     return _res;
    8969                 :            : }
    8970                 :            : 
    8971                 :            : // pattern_capture_target: !"_" NAME !('.' | '(' | '=')
    8972                 :            : static expr_ty
    8973                 :       3700 : pattern_capture_target_rule(Parser *p)
    8974                 :            : {
    8975         [ -  + ]:       3700 :     if (p->level++ == MAXSTACK) {
    8976                 :          0 :         p->error_indicator = 1;
    8977                 :            :         PyErr_NoMemory();
    8978                 :            :     }
    8979         [ -  + ]:       3700 :     if (p->error_indicator) {
    8980                 :          0 :         p->level--;
    8981                 :          0 :         return NULL;
    8982                 :            :     }
    8983                 :       3700 :     expr_ty _res = NULL;
    8984                 :       3700 :     int _mark = p->mark;
    8985                 :            :     { // !"_" NAME !('.' | '(' | '=')
    8986         [ -  + ]:       3700 :         if (p->error_indicator) {
    8987                 :          0 :             p->level--;
    8988                 :          0 :             return NULL;
    8989                 :            :         }
    8990                 :            :         D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
    8991                 :            :         expr_ty name;
    8992         [ +  + ]:       3700 :         if (
    8993                 :       3700 :             _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
    8994         [ +  + ]:       3384 :             &&
    8995                 :       3384 :             (name = _PyPegen_name_token(p))  // NAME
    8996         [ +  + ]:       1820 :             &&
    8997                 :       1820 :             _PyPegen_lookahead(0, _tmp_69_rule, p)
    8998                 :            :         )
    8999                 :            :         {
    9000                 :            :             D(fprintf(stderr, "%*c+ pattern_capture_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
    9001                 :       1383 :             _res = _PyPegen_set_expr_context ( p , name , Store );
    9002   [ -  +  -  - ]:       1383 :             if (_res == NULL && PyErr_Occurred()) {
    9003                 :          0 :                 p->error_indicator = 1;
    9004                 :          0 :                 p->level--;
    9005                 :          0 :                 return NULL;
    9006                 :            :             }
    9007                 :       1383 :             goto done;
    9008                 :            :         }
    9009                 :       2317 :         p->mark = _mark;
    9010                 :            :         D(fprintf(stderr, "%*c%s pattern_capture_target[%d-%d]: %s failed!\n", p->level, ' ',
    9011                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
    9012                 :            :     }
    9013                 :       2317 :     _res = NULL;
    9014                 :       3700 :   done:
    9015                 :       3700 :     p->level--;
    9016                 :       3700 :     return _res;
    9017                 :            : }
    9018                 :            : 
    9019                 :            : // wildcard_pattern: "_"
    9020                 :            : static pattern_ty
    9021                 :       2304 : wildcard_pattern_rule(Parser *p)
    9022                 :            : {
    9023         [ -  + ]:       2304 :     if (p->level++ == MAXSTACK) {
    9024                 :          0 :         p->error_indicator = 1;
    9025                 :            :         PyErr_NoMemory();
    9026                 :            :     }
    9027         [ -  + ]:       2304 :     if (p->error_indicator) {
    9028                 :          0 :         p->level--;
    9029                 :          0 :         return NULL;
    9030                 :            :     }
    9031                 :       2304 :     pattern_ty _res = NULL;
    9032                 :       2304 :     int _mark = p->mark;
    9033   [ -  +  -  - ]:       2304 :     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                 :       2304 :     int _start_lineno = p->tokens[_mark]->lineno;
    9039                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    9040                 :       2304 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    9041                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    9042                 :            :     { // "_"
    9043         [ -  + ]:       2304 :         if (p->error_indicator) {
    9044                 :          0 :             p->level--;
    9045                 :          0 :             return NULL;
    9046                 :            :         }
    9047                 :            :         D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
    9048                 :            :         expr_ty _keyword;
    9049         [ +  + ]:       2304 :         if (
    9050                 :       2304 :             (_keyword = _PyPegen_expect_soft_keyword(p, "_"))  // soft_keyword='"_"'
    9051                 :            :         )
    9052                 :            :         {
    9053                 :            :             D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
    9054                 :        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                 :       1998 :         p->mark = _mark;
    9072                 :            :         D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9073                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
    9074                 :            :     }
    9075                 :       1998 :     _res = NULL;
    9076                 :       2304 :   done:
    9077                 :       2304 :     p->level--;
    9078                 :       2304 :     return _res;
    9079                 :            : }
    9080                 :            : 
    9081                 :            : // value_pattern: attr !('.' | '(' | '=')
    9082                 :            : static pattern_ty
    9083                 :       1998 : value_pattern_rule(Parser *p)
    9084                 :            : {
    9085         [ -  + ]:       1998 :     if (p->level++ == MAXSTACK) {
    9086                 :          0 :         p->error_indicator = 1;
    9087                 :            :         PyErr_NoMemory();
    9088                 :            :     }
    9089         [ -  + ]:       1998 :     if (p->error_indicator) {
    9090                 :          0 :         p->level--;
    9091                 :          0 :         return NULL;
    9092                 :            :     }
    9093                 :       1998 :     pattern_ty _res = NULL;
    9094                 :       1998 :     int _mark = p->mark;
    9095   [ -  +  -  - ]:       1998 :     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                 :       1998 :     int _start_lineno = p->tokens[_mark]->lineno;
    9101                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    9102                 :       1998 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    9103                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    9104                 :            :     { // attr !('.' | '(' | '=')
    9105         [ -  + ]:       1998 :         if (p->error_indicator) {
    9106                 :          0 :             p->level--;
    9107                 :          0 :             return NULL;
    9108                 :            :         }
    9109                 :            :         D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
    9110                 :            :         expr_ty attr;
    9111         [ +  + ]:       1998 :         if (
    9112                 :       1998 :             (attr = attr_rule(p))  // attr
    9113         [ +  + ]:        111 :             &&
    9114                 :        111 :             _PyPegen_lookahead(0, _tmp_70_rule, p)
    9115                 :            :         )
    9116                 :            :         {
    9117                 :            :             D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
    9118                 :         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                 :       1938 :         p->mark = _mark;
    9136                 :            :         D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9137                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
    9138                 :            :     }
    9139                 :       1938 :     _res = NULL;
    9140                 :       1998 :   done:
    9141                 :       1998 :     p->level--;
    9142                 :       1998 :     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                 :       5978 : attr_rule(Parser *p)
    9150                 :            : {
    9151         [ -  + ]:       5978 :     if (p->level++ == MAXSTACK) {
    9152                 :          0 :         p->error_indicator = 1;
    9153                 :            :         PyErr_NoMemory();
    9154                 :            :     }
    9155                 :       5978 :     expr_ty _res = NULL;
    9156         [ +  + ]:       5978 :     if (_PyPegen_is_memoized(p, attr_type, &_res)) {
    9157                 :       3944 :         p->level--;
    9158                 :       3944 :         return _res;
    9159                 :            :     }
    9160                 :       2034 :     int _mark = p->mark;
    9161                 :       2034 :     int _resmark = p->mark;
    9162                 :        151 :     while (1) {
    9163                 :       2185 :         int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
    9164         [ -  + ]:       2185 :         if (tmpvar_1) {
    9165                 :          0 :             p->level--;
    9166                 :          0 :             return _res;
    9167                 :            :         }
    9168                 :       2185 :         p->mark = _mark;
    9169                 :       2185 :         void *_raw = attr_raw(p);
    9170         [ -  + ]:       2185 :         if (p->error_indicator) {
    9171                 :          0 :             p->level--;
    9172                 :          0 :             return NULL;
    9173                 :            :         }
    9174   [ +  +  +  - ]:       2185 :         if (_raw == NULL || p->mark <= _resmark)
    9175                 :            :             break;
    9176                 :        151 :         _resmark = p->mark;
    9177                 :        151 :         _res = _raw;
    9178                 :            :     }
    9179                 :       2034 :     p->mark = _resmark;
    9180                 :       2034 :     p->level--;
    9181                 :       2034 :     return _res;
    9182                 :            : }
    9183                 :            : static expr_ty
    9184                 :       2185 : attr_raw(Parser *p)
    9185                 :            : {
    9186         [ -  + ]:       2185 :     if (p->level++ == MAXSTACK) {
    9187                 :          0 :         p->error_indicator = 1;
    9188                 :            :         PyErr_NoMemory();
    9189                 :            :     }
    9190         [ -  + ]:       2185 :     if (p->error_indicator) {
    9191                 :          0 :         p->level--;
    9192                 :          0 :         return NULL;
    9193                 :            :     }
    9194                 :       2185 :     expr_ty _res = NULL;
    9195                 :       2185 :     int _mark = p->mark;
    9196   [ -  +  -  - ]:       2185 :     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                 :       2185 :     int _start_lineno = p->tokens[_mark]->lineno;
    9202                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    9203                 :       2185 :     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         [ -  + ]:       2185 :         if (p->error_indicator) {
    9207                 :          0 :             p->level--;
    9208                 :          0 :             return NULL;
    9209                 :            :         }
    9210                 :            :         D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
    9211                 :            :         Token * _literal;
    9212                 :            :         expr_ty attr;
    9213                 :            :         expr_ty value;
    9214         [ +  + ]:       2185 :         if (
    9215                 :       2185 :             (value = name_or_attr_rule(p))  // name_or_attr
    9216         [ +  + ]:        592 :             &&
    9217                 :        592 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
    9218         [ +  - ]:        151 :             &&
    9219                 :        151 :             (attr = _PyPegen_name_token(p))  // NAME
    9220                 :            :         )
    9221                 :            :         {
    9222                 :            :             D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
    9223                 :        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                 :       2034 :         p->mark = _mark;
    9241                 :            :         D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
    9242                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
    9243                 :            :     }
    9244                 :       2034 :     _res = NULL;
    9245                 :       2185 :   done:
    9246                 :       2185 :     p->level--;
    9247                 :       2185 :     return _res;
    9248                 :            : }
    9249                 :            : 
    9250                 :            : // Left-recursive
    9251                 :            : // name_or_attr: attr | NAME
    9252                 :            : static expr_ty
    9253                 :       3928 : name_or_attr_rule(Parser *p)
    9254                 :            : {
    9255         [ -  + ]:       3928 :     if (p->level++ == MAXSTACK) {
    9256                 :          0 :         p->error_indicator = 1;
    9257                 :            :         PyErr_NoMemory();
    9258                 :            :     }
    9259         [ -  + ]:       3928 :     if (p->error_indicator) {
    9260                 :          0 :         p->level--;
    9261                 :          0 :         return NULL;
    9262                 :            :     }
    9263                 :       3928 :     expr_ty _res = NULL;
    9264                 :       3928 :     int _mark = p->mark;
    9265                 :            :     { // attr
    9266         [ -  + ]:       3928 :         if (p->error_indicator) {
    9267                 :          0 :             p->level--;
    9268                 :          0 :             return NULL;
    9269                 :            :         }
    9270                 :            :         D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
    9271                 :            :         expr_ty attr_var;
    9272         [ +  + ]:       3928 :         if (
    9273                 :       3928 :             (attr_var = attr_rule(p))  // attr
    9274                 :            :         )
    9275                 :            :         {
    9276                 :            :             D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
    9277                 :        219 :             _res = attr_var;
    9278                 :        219 :             goto done;
    9279                 :            :         }
    9280                 :       3709 :         p->mark = _mark;
    9281                 :            :         D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
    9282                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
    9283                 :            :     }
    9284                 :            :     { // NAME
    9285         [ -  + ]:       3709 :         if (p->error_indicator) {
    9286                 :          0 :             p->level--;
    9287                 :          0 :             return NULL;
    9288                 :            :         }
    9289                 :            :         D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
    9290                 :            :         expr_ty name_var;
    9291         [ +  + ]:       3709 :         if (
    9292                 :       3709 :             (name_var = _PyPegen_name_token(p))  // NAME
    9293                 :            :         )
    9294                 :            :         {
    9295                 :            :             D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
    9296                 :       1375 :             _res = name_var;
    9297                 :       1375 :             goto done;
    9298                 :            :         }
    9299                 :       2334 :         p->mark = _mark;
    9300                 :            :         D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
    9301                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
    9302                 :            :     }
    9303                 :       2334 :     _res = NULL;
    9304                 :       3928 :   done:
    9305                 :       3928 :     p->level--;
    9306                 :       3928 :     return _res;
    9307                 :            : }
    9308                 :            : 
    9309                 :            : // group_pattern: '(' pattern ')'
    9310                 :            : static pattern_ty
    9311                 :       1938 : group_pattern_rule(Parser *p)
    9312                 :            : {
    9313         [ -  + ]:       1938 :     if (p->level++ == MAXSTACK) {
    9314                 :          0 :         p->error_indicator = 1;
    9315                 :            :         PyErr_NoMemory();
    9316                 :            :     }
    9317         [ -  + ]:       1938 :     if (p->error_indicator) {
    9318                 :          0 :         p->level--;
    9319                 :          0 :         return NULL;
    9320                 :            :     }
    9321                 :       1938 :     pattern_ty _res = NULL;
    9322                 :       1938 :     int _mark = p->mark;
    9323                 :            :     { // '(' pattern ')'
    9324         [ -  + ]:       1938 :         if (p->error_indicator) {
    9325                 :          0 :             p->level--;
    9326                 :          0 :             return NULL;
    9327                 :            :         }
    9328                 :            :         D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
    9329                 :            :         Token * _literal;
    9330                 :            :         Token * _literal_1;
    9331                 :            :         pattern_ty pattern;
    9332         [ +  + ]:       1938 :         if (
    9333                 :       1938 :             (_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                 :            :             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                 :       1681 :         p->mark = _mark;
    9350                 :            :         D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9351                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
    9352                 :            :     }
    9353                 :       1681 :     _res = NULL;
    9354                 :       1938 :   done:
    9355                 :       1938 :     p->level--;
    9356                 :       1938 :     return _res;
    9357                 :            : }
    9358                 :            : 
    9359                 :            : // sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
    9360                 :            : static pattern_ty
    9361                 :       1681 : sequence_pattern_rule(Parser *p)
    9362                 :            : {
    9363         [ -  + ]:       1681 :     if (p->level++ == MAXSTACK) {
    9364                 :          0 :         p->error_indicator = 1;
    9365                 :            :         PyErr_NoMemory();
    9366                 :            :     }
    9367         [ -  + ]:       1681 :     if (p->error_indicator) {
    9368                 :          0 :         p->level--;
    9369                 :          0 :         return NULL;
    9370                 :            :     }
    9371                 :       1681 :     pattern_ty _res = NULL;
    9372                 :       1681 :     int _mark = p->mark;
    9373   [ -  +  -  - ]:       1681 :     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                 :       1681 :     int _start_lineno = p->tokens[_mark]->lineno;
    9379                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    9380                 :       1681 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    9381                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    9382                 :            :     { // '[' maybe_sequence_pattern? ']'
    9383         [ -  + ]:       1681 :         if (p->error_indicator) {
    9384                 :          0 :             p->level--;
    9385                 :          0 :             return NULL;
    9386                 :            :         }
    9387                 :            :         D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
    9388                 :            :         Token * _literal;
    9389                 :            :         Token * _literal_1;
    9390                 :            :         void *patterns;
    9391         [ +  + ]:       1681 :         if (
    9392                 :       1681 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
    9393                 :        604 :             &&
    9394         [ +  - ]:        604 :             (patterns = maybe_sequence_pattern_rule(p), !p->error_indicator)  // maybe_sequence_pattern?
    9395         [ +  - ]:        604 :             &&
    9396                 :        604 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
    9397                 :            :         )
    9398                 :            :         {
    9399                 :            :             D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
    9400                 :        604 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    9401         [ -  + ]:        604 :             if (_token == NULL) {
    9402                 :          0 :                 p->level--;
    9403                 :          0 :                 return NULL;
    9404                 :            :             }
    9405                 :        604 :             int _end_lineno = _token->end_lineno;
    9406                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    9407                 :        604 :             int _end_col_offset = _token->end_col_offset;
    9408                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    9409                 :        604 :             _res = _PyAST_MatchSequence ( patterns , EXTRA );
    9410   [ -  +  -  - ]:        604 :             if (_res == NULL && PyErr_Occurred()) {
    9411                 :          0 :                 p->error_indicator = 1;
    9412                 :          0 :                 p->level--;
    9413                 :          0 :                 return NULL;
    9414                 :            :             }
    9415                 :        604 :             goto done;
    9416                 :            :         }
    9417                 :       1077 :         p->mark = _mark;
    9418                 :            :         D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9419                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
    9420                 :            :     }
    9421                 :            :     { // '(' open_sequence_pattern? ')'
    9422         [ -  + ]:       1077 :         if (p->error_indicator) {
    9423                 :          0 :             p->level--;
    9424                 :          0 :             return NULL;
    9425                 :            :         }
    9426                 :            :         D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
    9427                 :            :         Token * _literal;
    9428                 :            :         Token * _literal_1;
    9429                 :            :         void *patterns;
    9430         [ +  + ]:       1077 :         if (
    9431                 :       1077 :             (_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                 :            :             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                 :        992 :         p->mark = _mark;
    9457                 :            :         D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9458                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
    9459                 :            :     }
    9460                 :        992 :     _res = NULL;
    9461                 :       1681 :   done:
    9462                 :       1681 :     p->level--;
    9463                 :       1681 :     return _res;
    9464                 :            : }
    9465                 :            : 
    9466                 :            : // open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
    9467                 :            : static asdl_seq*
    9468                 :       1933 : open_sequence_pattern_rule(Parser *p)
    9469                 :            : {
    9470         [ -  + ]:       1933 :     if (p->level++ == MAXSTACK) {
    9471                 :          0 :         p->error_indicator = 1;
    9472                 :            :         PyErr_NoMemory();
    9473                 :            :     }
    9474         [ -  + ]:       1933 :     if (p->error_indicator) {
    9475                 :          0 :         p->level--;
    9476                 :          0 :         return NULL;
    9477                 :            :     }
    9478                 :       1933 :     asdl_seq* _res = NULL;
    9479                 :       1933 :     int _mark = p->mark;
    9480                 :            :     { // maybe_star_pattern ',' maybe_sequence_pattern?
    9481         [ -  + ]:       1933 :         if (p->error_indicator) {
    9482                 :          0 :             p->level--;
    9483                 :          0 :             return NULL;
    9484                 :            :         }
    9485                 :            :         D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
    9486                 :            :         Token * _literal;
    9487                 :            :         pattern_ty pattern;
    9488                 :            :         void *patterns;
    9489         [ +  + ]:       1933 :         if (
    9490                 :       1933 :             (pattern = maybe_star_pattern_rule(p))  // maybe_star_pattern
    9491         [ +  + ]:       1878 :             &&
    9492                 :       1878 :             (_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                 :            :             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                 :       1784 :         p->mark = _mark;
    9507                 :            :         D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9508                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
    9509                 :            :     }
    9510                 :       1784 :     _res = NULL;
    9511                 :       1933 :   done:
    9512                 :       1933 :     p->level--;
    9513                 :       1933 :     return _res;
    9514                 :            : }
    9515                 :            : 
    9516                 :            : // maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
    9517                 :            : static asdl_seq*
    9518                 :        753 : maybe_sequence_pattern_rule(Parser *p)
    9519                 :            : {
    9520         [ -  + ]:        753 :     if (p->level++ == MAXSTACK) {
    9521                 :          0 :         p->error_indicator = 1;
    9522                 :            :         PyErr_NoMemory();
    9523                 :            :     }
    9524         [ -  + ]:        753 :     if (p->error_indicator) {
    9525                 :          0 :         p->level--;
    9526                 :          0 :         return NULL;
    9527                 :            :     }
    9528                 :        753 :     asdl_seq* _res = NULL;
    9529                 :        753 :     int _mark = p->mark;
    9530                 :            :     { // ','.maybe_star_pattern+ ','?
    9531         [ -  + ]:        753 :         if (p->error_indicator) {
    9532                 :          0 :             p->level--;
    9533                 :          0 :             return NULL;
    9534                 :            :         }
    9535                 :            :         D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
    9536                 :            :         void *_opt_var;
    9537                 :            :         UNUSED(_opt_var); // Silence compiler warnings
    9538                 :            :         asdl_seq * patterns;
    9539         [ +  + ]:        753 :         if (
    9540                 :        753 :             (patterns = _gather_71_rule(p))  // ','.maybe_star_pattern+
    9541                 :        627 :             &&
    9542         [ +  - ]:        627 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
    9543                 :            :         )
    9544                 :            :         {
    9545                 :            :             D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
    9546                 :        627 :             _res = patterns;
    9547   [ -  +  -  - ]:        627 :             if (_res == NULL && PyErr_Occurred()) {
    9548                 :          0 :                 p->error_indicator = 1;
    9549                 :          0 :                 p->level--;
    9550                 :          0 :                 return NULL;
    9551                 :            :             }
    9552                 :        627 :             goto done;
    9553                 :            :         }
    9554                 :        126 :         p->mark = _mark;
    9555                 :            :         D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9556                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
    9557                 :            :     }
    9558                 :        126 :     _res = NULL;
    9559                 :        753 :   done:
    9560                 :        753 :     p->level--;
    9561                 :        753 :     return _res;
    9562                 :            : }
    9563                 :            : 
    9564                 :            : // maybe_star_pattern: star_pattern | pattern
    9565                 :            : static pattern_ty
    9566                 :       3457 : maybe_star_pattern_rule(Parser *p)
    9567                 :            : {
    9568         [ -  + ]:       3457 :     if (p->level++ == MAXSTACK) {
    9569                 :          0 :         p->error_indicator = 1;
    9570                 :            :         PyErr_NoMemory();
    9571                 :            :     }
    9572         [ -  + ]:       3457 :     if (p->error_indicator) {
    9573                 :          0 :         p->level--;
    9574                 :          0 :         return NULL;
    9575                 :            :     }
    9576                 :       3457 :     pattern_ty _res = NULL;
    9577                 :       3457 :     int _mark = p->mark;
    9578                 :            :     { // star_pattern
    9579         [ -  + ]:       3457 :         if (p->error_indicator) {
    9580                 :          0 :             p->level--;
    9581                 :          0 :             return NULL;
    9582                 :            :         }
    9583                 :            :         D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_pattern"));
    9584                 :            :         pattern_ty star_pattern_var;
    9585         [ +  + ]:       3457 :         if (
    9586                 :       3457 :             (star_pattern_var = star_pattern_rule(p))  // star_pattern
    9587                 :            :         )
    9588                 :            :         {
    9589                 :            :             D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
    9590                 :        175 :             _res = star_pattern_var;
    9591                 :        175 :             goto done;
    9592                 :            :         }
    9593                 :       3282 :         p->mark = _mark;
    9594                 :            :         D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9595                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
    9596                 :            :     }
    9597                 :            :     { // pattern
    9598         [ -  + ]:       3282 :         if (p->error_indicator) {
    9599                 :          0 :             p->level--;
    9600                 :          0 :             return NULL;
    9601                 :            :         }
    9602                 :            :         D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
    9603                 :            :         pattern_ty pattern_var;
    9604         [ +  + ]:       3282 :         if (
    9605                 :       3282 :             (pattern_var = pattern_rule(p))  // pattern
    9606                 :            :         )
    9607                 :            :         {
    9608                 :            :             D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
    9609                 :       3074 :             _res = pattern_var;
    9610                 :       3074 :             goto done;
    9611                 :            :         }
    9612                 :        208 :         p->mark = _mark;
    9613                 :            :         D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9614                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
    9615                 :            :     }
    9616                 :        208 :     _res = NULL;
    9617                 :       3457 :   done:
    9618                 :       3457 :     p->level--;
    9619                 :       3457 :     return _res;
    9620                 :            : }
    9621                 :            : 
    9622                 :            : // star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
    9623                 :            : static pattern_ty
    9624                 :       3457 : star_pattern_rule(Parser *p)
    9625                 :            : {
    9626         [ -  + ]:       3457 :     if (p->level++ == MAXSTACK) {
    9627                 :          0 :         p->error_indicator = 1;
    9628                 :            :         PyErr_NoMemory();
    9629                 :            :     }
    9630         [ -  + ]:       3457 :     if (p->error_indicator) {
    9631                 :          0 :         p->level--;
    9632                 :          0 :         return NULL;
    9633                 :            :     }
    9634                 :       3457 :     pattern_ty _res = NULL;
    9635         [ +  + ]:       3457 :     if (_PyPegen_is_memoized(p, star_pattern_type, &_res)) {
    9636                 :         20 :         p->level--;
    9637                 :         20 :         return _res;
    9638                 :            :     }
    9639                 :       3437 :     int _mark = p->mark;
    9640   [ -  +  -  - ]:       3437 :     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                 :       3437 :     int _start_lineno = p->tokens[_mark]->lineno;
    9646                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    9647                 :       3437 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    9648                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    9649                 :            :     { // '*' pattern_capture_target
    9650         [ -  + ]:       3437 :         if (p->error_indicator) {
    9651                 :          0 :             p->level--;
    9652                 :          0 :             return NULL;
    9653                 :            :         }
    9654                 :            :         D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' pattern_capture_target"));
    9655                 :            :         Token * _literal;
    9656                 :            :         expr_ty target;
    9657         [ +  + ]:       3437 :         if (
    9658                 :       3437 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
    9659         [ +  + ]:        175 :             &&
    9660                 :        175 :             (target = pattern_capture_target_rule(p))  // pattern_capture_target
    9661                 :            :         )
    9662                 :            :         {
    9663                 :            :             D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' pattern_capture_target"));
    9664                 :        119 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
    9665         [ -  + ]:        119 :             if (_token == NULL) {
    9666                 :          0 :                 p->level--;
    9667                 :          0 :                 return NULL;
    9668                 :            :             }
    9669                 :        119 :             int _end_lineno = _token->end_lineno;
    9670                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
    9671                 :        119 :             int _end_col_offset = _token->end_col_offset;
    9672                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
    9673                 :        119 :             _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
    9674   [ -  +  -  - ]:        119 :             if (_res == NULL && PyErr_Occurred()) {
    9675                 :          0 :                 p->error_indicator = 1;
    9676                 :          0 :                 p->level--;
    9677                 :          0 :                 return NULL;
    9678                 :            :             }
    9679                 :        119 :             goto done;
    9680                 :            :         }
    9681                 :       3318 :         p->mark = _mark;
    9682                 :            :         D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9683                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target"));
    9684                 :            :     }
    9685                 :            :     { // '*' wildcard_pattern
    9686         [ -  + ]:       3318 :         if (p->error_indicator) {
    9687                 :          0 :             p->level--;
    9688                 :          0 :             return NULL;
    9689                 :            :         }
    9690                 :            :         D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
    9691                 :            :         Token * _literal;
    9692                 :            :         pattern_ty wildcard_pattern_var;
    9693         [ +  + ]:       3318 :         if (
    9694                 :       3318 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
    9695         [ +  - ]:         56 :             &&
    9696                 :         56 :             (wildcard_pattern_var = wildcard_pattern_rule(p))  // wildcard_pattern
    9697                 :            :         )
    9698                 :            :         {
    9699                 :            :             D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
    9700                 :         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                 :       3262 :         p->mark = _mark;
    9718                 :            :         D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9719                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern"));
    9720                 :            :     }
    9721                 :       3262 :     _res = NULL;
    9722                 :       3437 :   done:
    9723                 :       3437 :     _PyPegen_insert_memo(p, _mark, star_pattern_type, _res);
    9724                 :       3437 :     p->level--;
    9725                 :       3437 :     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                 :        992 : mapping_pattern_rule(Parser *p)
    9735                 :            : {
    9736         [ -  + ]:        992 :     if (p->level++ == MAXSTACK) {
    9737                 :          0 :         p->error_indicator = 1;
    9738                 :            :         PyErr_NoMemory();
    9739                 :            :     }
    9740         [ -  + ]:        992 :     if (p->error_indicator) {
    9741                 :          0 :         p->level--;
    9742                 :          0 :         return NULL;
    9743                 :            :     }
    9744                 :        992 :     pattern_ty _res = NULL;
    9745                 :        992 :     int _mark = p->mark;
    9746   [ -  +  -  - ]:        992 :     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                 :        992 :     int _start_lineno = p->tokens[_mark]->lineno;
    9752                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
    9753                 :        992 :     int _start_col_offset = p->tokens[_mark]->col_offset;
    9754                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
    9755                 :            :     { // '{' '}'
    9756         [ -  + ]:        992 :         if (p->error_indicator) {
    9757                 :          0 :             p->level--;
    9758                 :          0 :             return NULL;
    9759                 :            :         }
    9760                 :            :         D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
    9761                 :            :         Token * _literal;
    9762                 :            :         Token * _literal_1;
    9763         [ +  + ]:        992 :         if (
    9764                 :        992 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
    9765         [ +  + ]:        444 :             &&
    9766                 :        444 :             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
    9767                 :            :         )
    9768                 :            :         {
    9769                 :            :             D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
    9770                 :         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                 :        894 :         p->mark = _mark;
    9788                 :            :         D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9789                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
    9790                 :            :     }
    9791                 :            :     { // '{' double_star_pattern ','? '}'
    9792         [ -  + ]:        894 :         if (p->error_indicator) {
    9793                 :          0 :             p->level--;
    9794                 :          0 :             return NULL;
    9795                 :            :         }
    9796                 :            :         D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
    9797                 :            :         Token * _literal;
    9798                 :            :         Token * _literal_1;
    9799                 :            :         void *_opt_var;
    9800                 :            :         UNUSED(_opt_var); // Silence compiler warnings
    9801                 :            :         expr_ty rest;
    9802         [ +  + ]:        894 :         if (
    9803                 :        894 :             (_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                 :            :             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                 :        882 :         p->mark = _mark;
    9831                 :            :         D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9832                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'"));
    9833                 :            :     }
    9834                 :            :     { // '{' items_pattern ',' double_star_pattern ','? '}'
    9835         [ -  + ]:        882 :         if (p->error_indicator) {
    9836                 :          0 :             p->level--;
    9837                 :          0 :             return NULL;
    9838                 :            :         }
    9839                 :            :         D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
    9840                 :            :         Token * _literal;
    9841                 :            :         Token * _literal_1;
    9842                 :            :         Token * _literal_2;
    9843                 :            :         void *_opt_var;
    9844                 :            :         UNUSED(_opt_var); // Silence compiler warnings
    9845                 :            :         asdl_seq* items;
    9846                 :            :         expr_ty rest;
    9847         [ +  + ]:        882 :         if (
    9848                 :        882 :             (_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                 :            :             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                 :        862 :         p->mark = _mark;
    9880                 :            :         D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9881                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
    9882                 :            :     }
    9883                 :            :     { // '{' items_pattern ','? '}'
    9884         [ +  + ]:        862 :         if (p->error_indicator) {
    9885                 :          3 :             p->level--;
    9886                 :          3 :             return NULL;
    9887                 :            :         }
    9888                 :            :         D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
    9889                 :            :         Token * _literal;
    9890                 :            :         Token * _literal_1;
    9891                 :            :         void *_opt_var;
    9892                 :            :         UNUSED(_opt_var); // Silence compiler warnings
    9893                 :            :         asdl_seq* items;
    9894         [ +  + ]:        859 :         if (
    9895                 :        859 :             (_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                 :            :             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                 :        560 :         p->mark = _mark;
    9923                 :            :         D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
    9924                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'"));
    9925                 :            :     }
    9926                 :        560 :     _res = NULL;
    9927                 :        989 :   done:
    9928                 :        989 :     p->level--;
    9929                 :        989 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :        560 : class_pattern_rule(Parser *p)
   10076                 :            : {
   10077         [ -  + ]:        560 :     if (p->level++ == MAXSTACK) {
   10078                 :          0 :         p->error_indicator = 1;
   10079                 :            :         PyErr_NoMemory();
   10080                 :            :     }
   10081         [ -  + ]:        560 :     if (p->error_indicator) {
   10082                 :          0 :         p->level--;
   10083                 :          0 :         return NULL;
   10084                 :            :     }
   10085                 :        560 :     pattern_ty _res = NULL;
   10086                 :        560 :     int _mark = p->mark;
   10087   [ -  +  -  - ]:        560 :     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                 :        560 :     int _start_lineno = p->tokens[_mark]->lineno;
   10093                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   10094                 :        560 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   10095                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   10096                 :            :     { // name_or_attr '(' ')'
   10097         [ -  + ]:        560 :         if (p->error_indicator) {
   10098                 :          0 :             p->level--;
   10099                 :          0 :             return NULL;
   10100                 :            :         }
   10101                 :            :         D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
   10102                 :            :         Token * _literal;
   10103                 :            :         Token * _literal_1;
   10104                 :            :         expr_ty cls;
   10105         [ +  + ]:        560 :         if (
   10106                 :        560 :             (cls = name_or_attr_rule(p))  // name_or_attr
   10107         [ +  + ]:        377 :             &&
   10108                 :        377 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   10109         [ +  + ]:        300 :             &&
   10110                 :        300 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   10111                 :            :         )
   10112                 :            :         {
   10113                 :            :             D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
   10114                 :         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                 :        520 :         p->mark = _mark;
   10132                 :            :         D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
   10133                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
   10134                 :            :     }
   10135                 :            :     { // name_or_attr '(' positional_patterns ','? ')'
   10136         [ -  + ]:        520 :         if (p->error_indicator) {
   10137                 :          0 :             p->level--;
   10138                 :          0 :             return NULL;
   10139                 :            :         }
   10140                 :            :         D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
   10141                 :            :         Token * _literal;
   10142                 :            :         Token * _literal_1;
   10143                 :            :         void *_opt_var;
   10144                 :            :         UNUSED(_opt_var); // Silence compiler warnings
   10145                 :            :         expr_ty cls;
   10146                 :            :         asdl_pattern_seq* patterns;
   10147         [ +  + ]:        520 :         if (
   10148                 :        520 :             (cls = name_or_attr_rule(p))  // name_or_attr
   10149         [ +  + ]:        337 :             &&
   10150                 :        337 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   10151         [ +  + ]:        260 :             &&
   10152                 :        260 :             (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                 :            :             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                 :        335 :         p->mark = _mark;
   10178                 :            :         D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
   10179                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
   10180                 :            :     }
   10181                 :            :     { // name_or_attr '(' keyword_patterns ','? ')'
   10182         [ -  + ]:        335 :         if (p->error_indicator) {
   10183                 :          0 :             p->level--;
   10184                 :          0 :             return NULL;
   10185                 :            :         }
   10186                 :            :         D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
   10187                 :            :         Token * _literal;
   10188                 :            :         Token * _literal_1;
   10189                 :            :         void *_opt_var;
   10190                 :            :         UNUSED(_opt_var); // Silence compiler warnings
   10191                 :            :         expr_ty cls;
   10192                 :            :         asdl_seq* keywords;
   10193         [ +  + ]:        335 :         if (
   10194                 :        335 :             (cls = name_or_attr_rule(p))  // name_or_attr
   10195         [ +  + ]:        152 :             &&
   10196                 :        152 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   10197         [ +  + ]:         75 :             &&
   10198                 :         75 :             (keywords = keyword_patterns_rule(p))  // keyword_patterns
   10199                 :         32 :             &&
   10200         [ +  - ]:         32 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   10201         [ +  + ]:         32 :             &&
   10202                 :         32 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   10203                 :            :         )
   10204                 :            :         {
   10205                 :            :             D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
   10206                 :         26 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10207         [ -  + ]:         26 :             if (_token == NULL) {
   10208                 :          0 :                 p->level--;
   10209                 :          0 :                 return NULL;
   10210                 :            :             }
   10211                 :         26 :             int _end_lineno = _token->end_lineno;
   10212                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10213                 :         26 :             int _end_col_offset = _token->end_col_offset;
   10214                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10215                 :         26 :             _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   [ -  +  -  - ]:         26 :             if (_res == NULL && PyErr_Occurred()) {
   10217                 :          0 :                 p->error_indicator = 1;
   10218                 :          0 :                 p->level--;
   10219                 :          0 :                 return NULL;
   10220                 :            :             }
   10221                 :         26 :             goto done;
   10222                 :            :         }
   10223                 :        309 :         p->mark = _mark;
   10224                 :            :         D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
   10225                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
   10226                 :            :     }
   10227                 :            :     { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
   10228         [ -  + ]:        309 :         if (p->error_indicator) {
   10229                 :          0 :             p->level--;
   10230                 :          0 :             return NULL;
   10231                 :            :         }
   10232                 :            :         D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
   10233                 :            :         Token * _literal;
   10234                 :            :         Token * _literal_1;
   10235                 :            :         Token * _literal_2;
   10236                 :            :         void *_opt_var;
   10237                 :            :         UNUSED(_opt_var); // Silence compiler warnings
   10238                 :            :         expr_ty cls;
   10239                 :            :         asdl_seq* keywords;
   10240                 :            :         asdl_pattern_seq* patterns;
   10241         [ +  + ]:        309 :         if (
   10242                 :        309 :             (cls = name_or_attr_rule(p))  // name_or_attr
   10243         [ +  + ]:        126 :             &&
   10244                 :        126 :             (_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                 :            :             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                 :        268 :         p->mark = _mark;
   10276                 :            :         D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
   10277                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
   10278                 :            :     }
   10279         [ +  + ]:        268 :     if (p->call_invalid_rules) { // invalid_class_pattern
   10280         [ -  + ]:         19 :         if (p->error_indicator) {
   10281                 :          0 :             p->level--;
   10282                 :          0 :             return NULL;
   10283                 :            :         }
   10284                 :            :         D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
   10285                 :            :         void *invalid_class_pattern_var;
   10286         [ -  + ]:         19 :         if (
   10287                 :         19 :             (invalid_class_pattern_var = invalid_class_pattern_rule(p))  // invalid_class_pattern
   10288                 :            :         )
   10289                 :            :         {
   10290                 :            :             D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
   10291                 :          0 :             _res = invalid_class_pattern_var;
   10292                 :          0 :             goto done;
   10293                 :            :         }
   10294                 :         19 :         p->mark = _mark;
   10295                 :            :         D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
   10296                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_pattern"));
   10297                 :            :     }
   10298                 :        268 :     _res = NULL;
   10299                 :        560 :   done:
   10300                 :        560 :     p->level--;
   10301                 :        560 :     return _res;
   10302                 :            : }
   10303                 :            : 
   10304                 :            : // positional_patterns: ','.pattern+
   10305                 :            : static asdl_pattern_seq*
   10306                 :        317 : positional_patterns_rule(Parser *p)
   10307                 :            : {
   10308         [ -  + ]:        317 :     if (p->level++ == MAXSTACK) {
   10309                 :          0 :         p->error_indicator = 1;
   10310                 :            :         PyErr_NoMemory();
   10311                 :            :     }
   10312         [ -  + ]:        317 :     if (p->error_indicator) {
   10313                 :          0 :         p->level--;
   10314                 :          0 :         return NULL;
   10315                 :            :     }
   10316                 :        317 :     asdl_pattern_seq* _res = NULL;
   10317                 :        317 :     int _mark = p->mark;
   10318                 :            :     { // ','.pattern+
   10319         [ -  + ]:        317 :         if (p->error_indicator) {
   10320                 :          0 :             p->level--;
   10321                 :          0 :             return NULL;
   10322                 :            :         }
   10323                 :            :         D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
   10324                 :            :         asdl_pattern_seq* args;
   10325         [ +  + ]:        317 :         if (
   10326                 :        317 :             (args = (asdl_pattern_seq*)_gather_76_rule(p))  // ','.pattern+
   10327                 :            :         )
   10328                 :            :         {
   10329                 :            :             D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
   10330                 :        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                 :         41 :         p->mark = _mark;
   10339                 :            :         D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
   10340                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
   10341                 :            :     }
   10342                 :         41 :     _res = NULL;
   10343                 :        317 :   done:
   10344                 :        317 :     p->level--;
   10345                 :        317 :     return _res;
   10346                 :            : }
   10347                 :            : 
   10348                 :            : // keyword_patterns: ','.keyword_pattern+
   10349                 :            : static asdl_seq*
   10350                 :        122 : keyword_patterns_rule(Parser *p)
   10351                 :            : {
   10352         [ -  + ]:        122 :     if (p->level++ == MAXSTACK) {
   10353                 :          0 :         p->error_indicator = 1;
   10354                 :            :         PyErr_NoMemory();
   10355                 :            :     }
   10356         [ -  + ]:        122 :     if (p->error_indicator) {
   10357                 :          0 :         p->level--;
   10358                 :          0 :         return NULL;
   10359                 :            :     }
   10360                 :        122 :     asdl_seq* _res = NULL;
   10361                 :        122 :     int _mark = p->mark;
   10362                 :            :     { // ','.keyword_pattern+
   10363         [ -  + ]:        122 :         if (p->error_indicator) {
   10364                 :          0 :             p->level--;
   10365                 :          0 :             return NULL;
   10366                 :            :         }
   10367                 :            :         D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
   10368                 :            :         asdl_seq * _gather_78_var;
   10369         [ +  + ]:        122 :         if (
   10370                 :        122 :             (_gather_78_var = _gather_78_rule(p))  // ','.keyword_pattern+
   10371                 :            :         )
   10372                 :            :         {
   10373                 :            :             D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
   10374                 :         79 :             _res = _gather_78_var;
   10375                 :         79 :             goto done;
   10376                 :            :         }
   10377                 :         43 :         p->mark = _mark;
   10378                 :            :         D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
   10379                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
   10380                 :            :     }
   10381                 :         43 :     _res = NULL;
   10382                 :        122 :   done:
   10383                 :        122 :     p->level--;
   10384                 :        122 :     return _res;
   10385                 :            : }
   10386                 :            : 
   10387                 :            : // keyword_pattern: NAME '=' pattern
   10388                 :            : static KeyPatternPair*
   10389                 :        178 : keyword_pattern_rule(Parser *p)
   10390                 :            : {
   10391         [ -  + ]:        178 :     if (p->level++ == MAXSTACK) {
   10392                 :          0 :         p->error_indicator = 1;
   10393                 :            :         PyErr_NoMemory();
   10394                 :            :     }
   10395         [ -  + ]:        178 :     if (p->error_indicator) {
   10396                 :          0 :         p->level--;
   10397                 :          0 :         return NULL;
   10398                 :            :     }
   10399                 :        178 :     KeyPatternPair* _res = NULL;
   10400                 :        178 :     int _mark = p->mark;
   10401                 :            :     { // NAME '=' pattern
   10402         [ -  + ]:        178 :         if (p->error_indicator) {
   10403                 :          0 :             p->level--;
   10404                 :          0 :             return NULL;
   10405                 :            :         }
   10406                 :            :         D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
   10407                 :            :         Token * _literal;
   10408                 :            :         expr_ty arg;
   10409                 :            :         pattern_ty value;
   10410         [ +  + ]:        178 :         if (
   10411                 :        178 :             (arg = _PyPegen_name_token(p))  // NAME
   10412         [ +  + ]:        174 :             &&
   10413                 :        174 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   10414         [ +  - ]:        123 :             &&
   10415                 :        123 :             (value = pattern_rule(p))  // pattern
   10416                 :            :         )
   10417                 :            :         {
   10418                 :            :             D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
   10419                 :        123 :             _res = _PyPegen_key_pattern_pair ( p , arg , value );
   10420   [ -  +  -  - ]:        123 :             if (_res == NULL && PyErr_Occurred()) {
   10421                 :          0 :                 p->error_indicator = 1;
   10422                 :          0 :                 p->level--;
   10423                 :          0 :                 return NULL;
   10424                 :            :             }
   10425                 :        123 :             goto done;
   10426                 :            :         }
   10427                 :         55 :         p->mark = _mark;
   10428                 :            :         D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
   10429                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
   10430                 :            :     }
   10431                 :         55 :     _res = NULL;
   10432                 :        178 :   done:
   10433                 :        178 :     p->level--;
   10434                 :        178 :     return _res;
   10435                 :            : }
   10436                 :            : 
   10437                 :            : // expressions: expression ((',' expression))+ ','? | expression ',' | expression
   10438                 :            : static expr_ty
   10439                 :      72975 : expressions_rule(Parser *p)
   10440                 :            : {
   10441         [ -  + ]:      72975 :     if (p->level++ == MAXSTACK) {
   10442                 :          0 :         p->error_indicator = 1;
   10443                 :            :         PyErr_NoMemory();
   10444                 :            :     }
   10445         [ -  + ]:      72975 :     if (p->error_indicator) {
   10446                 :          0 :         p->level--;
   10447                 :          0 :         return NULL;
   10448                 :            :     }
   10449                 :      72975 :     expr_ty _res = NULL;
   10450                 :      72975 :     int _mark = p->mark;
   10451   [ +  +  +  + ]:      72975 :     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                 :      72889 :     int _start_lineno = p->tokens[_mark]->lineno;
   10457                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   10458                 :      72889 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   10459                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   10460                 :            :     { // expression ((',' expression))+ ','?
   10461         [ -  + ]:      72889 :         if (p->error_indicator) {
   10462                 :          0 :             p->level--;
   10463                 :          0 :             return NULL;
   10464                 :            :         }
   10465                 :            :         D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
   10466                 :            :         void *_opt_var;
   10467                 :            :         UNUSED(_opt_var); // Silence compiler warnings
   10468                 :            :         expr_ty a;
   10469                 :            :         asdl_seq * b;
   10470         [ +  + ]:      72889 :         if (
   10471                 :      72889 :             (a = expression_rule(p))  // expression
   10472         [ +  + ]:      72089 :             &&
   10473                 :      72089 :             (b = _loop1_80_rule(p))  // ((',' expression))+
   10474                 :        213 :             &&
   10475         [ +  - ]:        213 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   10476                 :            :         )
   10477                 :            :         {
   10478                 :            :             D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
   10479                 :        213 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10480         [ -  + ]:        213 :             if (_token == NULL) {
   10481                 :          0 :                 p->level--;
   10482                 :          0 :                 return NULL;
   10483                 :            :             }
   10484                 :        213 :             int _end_lineno = _token->end_lineno;
   10485                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10486                 :        213 :             int _end_col_offset = _token->end_col_offset;
   10487                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10488                 :        213 :             _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
   10489   [ -  +  -  - ]:        213 :             if (_res == NULL && PyErr_Occurred()) {
   10490                 :          0 :                 p->error_indicator = 1;
   10491                 :          0 :                 p->level--;
   10492                 :          0 :                 return NULL;
   10493                 :            :             }
   10494                 :        213 :             goto done;
   10495                 :            :         }
   10496                 :      72676 :         p->mark = _mark;
   10497                 :            :         D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
   10498                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
   10499                 :            :     }
   10500                 :            :     { // expression ','
   10501         [ +  + ]:      72676 :         if (p->error_indicator) {
   10502                 :        769 :             p->level--;
   10503                 :        769 :             return NULL;
   10504                 :            :         }
   10505                 :            :         D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
   10506                 :            :         Token * _literal;
   10507                 :            :         expr_ty a;
   10508         [ +  + ]:      71907 :         if (
   10509                 :      71907 :             (a = expression_rule(p))  // expression
   10510         [ -  + ]:      71876 :             &&
   10511                 :      71876 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   10512                 :            :         )
   10513                 :            :         {
   10514                 :            :             D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
   10515                 :          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                 :      71907 :         p->mark = _mark;
   10533                 :            :         D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
   10534                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
   10535                 :            :     }
   10536                 :            :     { // expression
   10537         [ -  + ]:      71907 :         if (p->error_indicator) {
   10538                 :          0 :             p->level--;
   10539                 :          0 :             return NULL;
   10540                 :            :         }
   10541                 :            :         D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
   10542                 :            :         expr_ty expression_var;
   10543         [ +  + ]:      71907 :         if (
   10544                 :      71907 :             (expression_var = expression_rule(p))  // expression
   10545                 :            :         )
   10546                 :            :         {
   10547                 :            :             D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
   10548                 :      71876 :             _res = expression_var;
   10549                 :      71876 :             goto done;
   10550                 :            :         }
   10551                 :         31 :         p->mark = _mark;
   10552                 :            :         D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
   10553                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
   10554                 :            :     }
   10555                 :         31 :     _res = NULL;
   10556                 :      72120 :   done:
   10557                 :      72120 :     p->level--;
   10558                 :      72120 :     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                 :   22780670 : expression_rule(Parser *p)
   10569                 :            : {
   10570         [ -  + ]:   22780670 :     if (p->level++ == MAXSTACK) {
   10571                 :          0 :         p->error_indicator = 1;
   10572                 :            :         PyErr_NoMemory();
   10573                 :            :     }
   10574         [ -  + ]:   22780670 :     if (p->error_indicator) {
   10575                 :          0 :         p->level--;
   10576                 :          0 :         return NULL;
   10577                 :            :     }
   10578                 :   22780670 :     expr_ty _res = NULL;
   10579         [ +  + ]:   22780670 :     if (_PyPegen_is_memoized(p, expression_type, &_res)) {
   10580                 :   10811003 :         p->level--;
   10581                 :   10811003 :         return _res;
   10582                 :            :     }
   10583                 :   11969667 :     int _mark = p->mark;
   10584   [ -  +  -  - ]:   11969667 :     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                 :   11969667 :     int _start_lineno = p->tokens[_mark]->lineno;
   10590                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   10591                 :   11969667 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   10592                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   10593         [ +  + ]:   11969667 :     if (p->call_invalid_rules) { // invalid_expression
   10594         [ -  + ]:       2706 :         if (p->error_indicator) {
   10595                 :          0 :             p->level--;
   10596                 :          0 :             return NULL;
   10597                 :            :         }
   10598                 :            :         D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
   10599                 :            :         void *invalid_expression_var;
   10600         [ -  + ]:       2706 :         if (
   10601                 :       2706 :             (invalid_expression_var = invalid_expression_rule(p))  // invalid_expression
   10602                 :            :         )
   10603                 :            :         {
   10604                 :            :             D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
   10605                 :          0 :             _res = invalid_expression_var;
   10606                 :          0 :             goto done;
   10607                 :            :         }
   10608                 :       2706 :         p->mark = _mark;
   10609                 :            :         D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
   10610                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
   10611                 :            :     }
   10612         [ +  + ]:   11969667 :     if (p->call_invalid_rules) { // invalid_legacy_expression
   10613         [ +  + ]:       2706 :         if (p->error_indicator) {
   10614                 :         32 :             p->level--;
   10615                 :         32 :             return NULL;
   10616                 :            :         }
   10617                 :            :         D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
   10618                 :            :         void *invalid_legacy_expression_var;
   10619         [ -  + ]:       2674 :         if (
   10620                 :       2674 :             (invalid_legacy_expression_var = invalid_legacy_expression_rule(p))  // invalid_legacy_expression
   10621                 :            :         )
   10622                 :            :         {
   10623                 :            :             D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
   10624                 :          0 :             _res = invalid_legacy_expression_var;
   10625                 :          0 :             goto done;
   10626                 :            :         }
   10627                 :       2674 :         p->mark = _mark;
   10628                 :            :         D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
   10629                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression"));
   10630                 :            :     }
   10631                 :            :     { // disjunction 'if' disjunction 'else' expression
   10632         [ +  + ]:   11969635 :         if (p->error_indicator) {
   10633                 :         27 :             p->level--;
   10634                 :         27 :             return NULL;
   10635                 :            :         }
   10636                 :            :         D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
   10637                 :            :         Token * _keyword;
   10638                 :            :         Token * _keyword_1;
   10639                 :            :         expr_ty a;
   10640                 :            :         expr_ty b;
   10641                 :            :         expr_ty c;
   10642         [ +  + ]:   11969608 :         if (
   10643                 :   11969608 :             (a = disjunction_rule(p))  // disjunction
   10644         [ +  + ]:    9678156 :             &&
   10645                 :    9678156 :             (_keyword = _PyPegen_expect_token(p, 634))  // token='if'
   10646         [ +  + ]:      11094 :             &&
   10647                 :      11094 :             (b = disjunction_rule(p))  // disjunction
   10648         [ +  + ]:      11084 :             &&
   10649                 :      11084 :             (_keyword_1 = _PyPegen_expect_token(p, 637))  // token='else'
   10650         [ +  - ]:      11078 :             &&
   10651                 :      11078 :             (c = expression_rule(p))  // expression
   10652                 :            :         )
   10653                 :            :         {
   10654                 :            :             D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
   10655                 :      11078 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10656         [ -  + ]:      11078 :             if (_token == NULL) {
   10657                 :          0 :                 p->level--;
   10658                 :          0 :                 return NULL;
   10659                 :            :             }
   10660                 :      11078 :             int _end_lineno = _token->end_lineno;
   10661                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10662                 :      11078 :             int _end_col_offset = _token->end_col_offset;
   10663                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10664                 :      11078 :             _res = _PyAST_IfExp ( b , a , c , EXTRA );
   10665   [ -  +  -  - ]:      11078 :             if (_res == NULL && PyErr_Occurred()) {
   10666                 :          0 :                 p->error_indicator = 1;
   10667                 :          0 :                 p->level--;
   10668                 :          0 :                 return NULL;
   10669                 :            :             }
   10670                 :      11078 :             goto done;
   10671                 :            :         }
   10672                 :   11958530 :         p->mark = _mark;
   10673                 :            :         D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
   10674                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
   10675                 :            :     }
   10676                 :            :     { // disjunction
   10677         [ +  + ]:   11958530 :         if (p->error_indicator) {
   10678                 :        839 :             p->level--;
   10679                 :        839 :             return NULL;
   10680                 :            :         }
   10681                 :            :         D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
   10682                 :            :         expr_ty disjunction_var;
   10683         [ +  + ]:   11957691 :         if (
   10684                 :   11957691 :             (disjunction_var = disjunction_rule(p))  // disjunction
   10685                 :            :         )
   10686                 :            :         {
   10687                 :            :             D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
   10688                 :    9667068 :             _res = disjunction_var;
   10689                 :    9667068 :             goto done;
   10690                 :            :         }
   10691                 :    2290623 :         p->mark = _mark;
   10692                 :            :         D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
   10693                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
   10694                 :            :     }
   10695                 :            :     { // lambdef
   10696         [ -  + ]:    2290623 :         if (p->error_indicator) {
   10697                 :          0 :             p->level--;
   10698                 :          0 :             return NULL;
   10699                 :            :         }
   10700                 :            :         D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
   10701                 :            :         expr_ty lambdef_var;
   10702         [ +  + ]:    2290623 :         if (
   10703                 :    2290623 :             (lambdef_var = lambdef_rule(p))  // lambdef
   10704                 :            :         )
   10705                 :            :         {
   10706                 :            :             D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
   10707                 :      37206 :             _res = lambdef_var;
   10708                 :      37206 :             goto done;
   10709                 :            :         }
   10710                 :    2253417 :         p->mark = _mark;
   10711                 :            :         D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
   10712                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
   10713                 :            :     }
   10714                 :    2253417 :     _res = NULL;
   10715                 :   11968769 :   done:
   10716                 :   11968769 :     _PyPegen_insert_memo(p, _mark, expression_type, _res);
   10717                 :   11968769 :     p->level--;
   10718                 :   11968769 :     return _res;
   10719                 :            : }
   10720                 :            : 
   10721                 :            : // yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
   10722                 :            : static expr_ty
   10723                 :    1146091 : yield_expr_rule(Parser *p)
   10724                 :            : {
   10725         [ -  + ]:    1146091 :     if (p->level++ == MAXSTACK) {
   10726                 :          0 :         p->error_indicator = 1;
   10727                 :            :         PyErr_NoMemory();
   10728                 :            :     }
   10729         [ -  + ]:    1146091 :     if (p->error_indicator) {
   10730                 :          0 :         p->level--;
   10731                 :          0 :         return NULL;
   10732                 :            :     }
   10733                 :    1146091 :     expr_ty _res = NULL;
   10734                 :    1146091 :     int _mark = p->mark;
   10735   [ +  +  -  + ]:    1146091 :     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                 :    1146091 :     int _start_lineno = p->tokens[_mark]->lineno;
   10741                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   10742                 :    1146091 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   10743                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   10744                 :            :     { // 'yield' 'from' expression
   10745         [ -  + ]:    1146091 :         if (p->error_indicator) {
   10746                 :          0 :             p->level--;
   10747                 :          0 :             return NULL;
   10748                 :            :         }
   10749                 :            :         D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
   10750                 :            :         Token * _keyword;
   10751                 :            :         Token * _keyword_1;
   10752                 :            :         expr_ty a;
   10753         [ +  + ]:    1146091 :         if (
   10754                 :    1146091 :             (_keyword = _PyPegen_expect_token(p, 573))  // token='yield'
   10755         [ +  + ]:      15869 :             &&
   10756                 :      15869 :             (_keyword_1 = _PyPegen_expect_token(p, 572))  // token='from'
   10757         [ +  + ]:       2244 :             &&
   10758                 :       2244 :             (a = expression_rule(p))  // expression
   10759                 :            :         )
   10760                 :            :         {
   10761                 :            :             D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
   10762                 :       2241 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10763         [ -  + ]:       2241 :             if (_token == NULL) {
   10764                 :          0 :                 p->level--;
   10765                 :          0 :                 return NULL;
   10766                 :            :             }
   10767                 :       2241 :             int _end_lineno = _token->end_lineno;
   10768                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10769                 :       2241 :             int _end_col_offset = _token->end_col_offset;
   10770                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10771                 :       2241 :             _res = _PyAST_YieldFrom ( a , EXTRA );
   10772   [ -  +  -  - ]:       2241 :             if (_res == NULL && PyErr_Occurred()) {
   10773                 :          0 :                 p->error_indicator = 1;
   10774                 :          0 :                 p->level--;
   10775                 :          0 :                 return NULL;
   10776                 :            :             }
   10777                 :       2241 :             goto done;
   10778                 :            :         }
   10779                 :    1143850 :         p->mark = _mark;
   10780                 :            :         D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
   10781                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
   10782                 :            :     }
   10783                 :            :     { // 'yield' star_expressions?
   10784         [ -  + ]:    1143850 :         if (p->error_indicator) {
   10785                 :          0 :             p->level--;
   10786                 :          0 :             return NULL;
   10787                 :            :         }
   10788                 :            :         D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
   10789                 :            :         Token * _keyword;
   10790                 :            :         void *a;
   10791         [ +  + ]:    1143850 :         if (
   10792                 :    1143850 :             (_keyword = _PyPegen_expect_token(p, 573))  // token='yield'
   10793                 :      13628 :             &&
   10794         [ +  - ]:      13628 :             (a = star_expressions_rule(p), !p->error_indicator)  // star_expressions?
   10795                 :            :         )
   10796                 :            :         {
   10797                 :            :             D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
   10798                 :      13628 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10799         [ -  + ]:      13628 :             if (_token == NULL) {
   10800                 :          0 :                 p->level--;
   10801                 :          0 :                 return NULL;
   10802                 :            :             }
   10803                 :      13628 :             int _end_lineno = _token->end_lineno;
   10804                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10805                 :      13628 :             int _end_col_offset = _token->end_col_offset;
   10806                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10807                 :      13628 :             _res = _PyAST_Yield ( a , EXTRA );
   10808   [ -  +  -  - ]:      13628 :             if (_res == NULL && PyErr_Occurred()) {
   10809                 :          0 :                 p->error_indicator = 1;
   10810                 :          0 :                 p->level--;
   10811                 :          0 :                 return NULL;
   10812                 :            :             }
   10813                 :      13628 :             goto done;
   10814                 :            :         }
   10815                 :    1130222 :         p->mark = _mark;
   10816                 :            :         D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
   10817                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
   10818                 :            :     }
   10819                 :    1130222 :     _res = NULL;
   10820                 :    1146091 :   done:
   10821                 :    1146091 :     p->level--;
   10822                 :    1146091 :     return _res;
   10823                 :            : }
   10824                 :            : 
   10825                 :            : // star_expressions:
   10826                 :            : //     | star_expression ((',' star_expression))+ ','?
   10827                 :            : //     | star_expression ','
   10828                 :            : //     | star_expression
   10829                 :            : static expr_ty
   10830                 :    3618724 : star_expressions_rule(Parser *p)
   10831                 :            : {
   10832         [ -  + ]:    3618724 :     if (p->level++ == MAXSTACK) {
   10833                 :          0 :         p->error_indicator = 1;
   10834                 :            :         PyErr_NoMemory();
   10835                 :            :     }
   10836         [ -  + ]:    3618724 :     if (p->error_indicator) {
   10837                 :          0 :         p->level--;
   10838                 :          0 :         return NULL;
   10839                 :            :     }
   10840                 :    3618724 :     expr_ty _res = NULL;
   10841                 :    3618724 :     int _mark = p->mark;
   10842   [ +  +  -  + ]:    3618724 :     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                 :    3618724 :     int _start_lineno = p->tokens[_mark]->lineno;
   10848                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   10849                 :    3618724 :     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         [ -  + ]:    3618724 :         if (p->error_indicator) {
   10853                 :          0 :             p->level--;
   10854                 :          0 :             return NULL;
   10855                 :            :         }
   10856                 :            :         D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
   10857                 :            :         void *_opt_var;
   10858                 :            :         UNUSED(_opt_var); // Silence compiler warnings
   10859                 :            :         expr_ty a;
   10860                 :            :         asdl_seq * b;
   10861         [ +  + ]:    3618724 :         if (
   10862                 :    3618724 :             (a = star_expression_rule(p))  // star_expression
   10863         [ +  + ]:    2094896 :             &&
   10864                 :    2094896 :             (b = _loop1_81_rule(p))  // ((',' star_expression))+
   10865                 :      19530 :             &&
   10866         [ +  - ]:      19530 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   10867                 :            :         )
   10868                 :            :         {
   10869                 :            :             D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
   10870                 :      19530 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10871         [ -  + ]:      19530 :             if (_token == NULL) {
   10872                 :          0 :                 p->level--;
   10873                 :          0 :                 return NULL;
   10874                 :            :             }
   10875                 :      19530 :             int _end_lineno = _token->end_lineno;
   10876                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10877                 :      19530 :             int _end_col_offset = _token->end_col_offset;
   10878                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10879                 :      19530 :             _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
   10880   [ -  +  -  - ]:      19530 :             if (_res == NULL && PyErr_Occurred()) {
   10881                 :          0 :                 p->error_indicator = 1;
   10882                 :          0 :                 p->level--;
   10883                 :          0 :                 return NULL;
   10884                 :            :             }
   10885                 :      19530 :             goto done;
   10886                 :            :         }
   10887                 :    3599194 :         p->mark = _mark;
   10888                 :            :         D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
   10889                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
   10890                 :            :     }
   10891                 :            :     { // star_expression ','
   10892         [ +  + ]:    3599194 :         if (p->error_indicator) {
   10893                 :         28 :             p->level--;
   10894                 :         28 :             return NULL;
   10895                 :            :         }
   10896                 :            :         D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
   10897                 :            :         Token * _literal;
   10898                 :            :         expr_ty a;
   10899         [ +  + ]:    3599166 :         if (
   10900                 :    3599166 :             (a = star_expression_rule(p))  // star_expression
   10901         [ +  + ]:    2075364 :             &&
   10902                 :    2075364 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   10903                 :            :         )
   10904                 :            :         {
   10905                 :            :             D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
   10906                 :        221 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   10907         [ -  + ]:        221 :             if (_token == NULL) {
   10908                 :          0 :                 p->level--;
   10909                 :          0 :                 return NULL;
   10910                 :            :             }
   10911                 :        221 :             int _end_lineno = _token->end_lineno;
   10912                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   10913                 :        221 :             int _end_col_offset = _token->end_col_offset;
   10914                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   10915                 :        221 :             _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
   10916   [ -  +  -  - ]:        221 :             if (_res == NULL && PyErr_Occurred()) {
   10917                 :          0 :                 p->error_indicator = 1;
   10918                 :          0 :                 p->level--;
   10919                 :          0 :                 return NULL;
   10920                 :            :             }
   10921                 :        221 :             goto done;
   10922                 :            :         }
   10923                 :    3598945 :         p->mark = _mark;
   10924                 :            :         D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
   10925                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
   10926                 :            :     }
   10927                 :            :     { // star_expression
   10928         [ -  + ]:    3598945 :         if (p->error_indicator) {
   10929                 :          0 :             p->level--;
   10930                 :          0 :             return NULL;
   10931                 :            :         }
   10932                 :            :         D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
   10933                 :            :         expr_ty star_expression_var;
   10934         [ +  + ]:    3598945 :         if (
   10935                 :    3598945 :             (star_expression_var = star_expression_rule(p))  // star_expression
   10936                 :            :         )
   10937                 :            :         {
   10938                 :            :             D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
   10939                 :    2075143 :             _res = star_expression_var;
   10940                 :    2075143 :             goto done;
   10941                 :            :         }
   10942                 :    1523802 :         p->mark = _mark;
   10943                 :            :         D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
   10944                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
   10945                 :            :     }
   10946                 :    1523802 :     _res = NULL;
   10947                 :    3618696 :   done:
   10948                 :    3618696 :     p->level--;
   10949                 :    3618696 :     return _res;
   10950                 :            : }
   10951                 :            : 
   10952                 :            : // star_expression: '*' bitwise_or | expression
   10953                 :            : static expr_ty
   10954                 :   10845112 : star_expression_rule(Parser *p)
   10955                 :            : {
   10956         [ -  + ]:   10845112 :     if (p->level++ == MAXSTACK) {
   10957                 :          0 :         p->error_indicator = 1;
   10958                 :            :         PyErr_NoMemory();
   10959                 :            :     }
   10960         [ -  + ]:   10845112 :     if (p->error_indicator) {
   10961                 :          0 :         p->level--;
   10962                 :          0 :         return NULL;
   10963                 :            :     }
   10964                 :   10845112 :     expr_ty _res = NULL;
   10965         [ +  + ]:   10845112 :     if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
   10966                 :    7199889 :         p->level--;
   10967                 :    7199889 :         return _res;
   10968                 :            :     }
   10969                 :    3645223 :     int _mark = p->mark;
   10970   [ -  +  -  - ]:    3645223 :     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                 :    3645223 :     int _start_lineno = p->tokens[_mark]->lineno;
   10976                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   10977                 :    3645223 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   10978                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   10979                 :            :     { // '*' bitwise_or
   10980         [ -  + ]:    3645223 :         if (p->error_indicator) {
   10981                 :          0 :             p->level--;
   10982                 :          0 :             return NULL;
   10983                 :            :         }
   10984                 :            :         D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
   10985                 :            :         Token * _literal;
   10986                 :            :         expr_ty a;
   10987         [ +  + ]:    3645223 :         if (
   10988                 :    3645223 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   10989         [ +  - ]:         52 :             &&
   10990                 :         52 :             (a = bitwise_or_rule(p))  // bitwise_or
   10991                 :            :         )
   10992                 :            :         {
   10993                 :            :             D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
   10994                 :         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                 :    3645171 :         p->mark = _mark;
   11012                 :            :         D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
   11013                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
   11014                 :            :     }
   11015                 :            :     { // expression
   11016         [ -  + ]:    3645171 :         if (p->error_indicator) {
   11017                 :          0 :             p->level--;
   11018                 :          0 :             return NULL;
   11019                 :            :         }
   11020                 :            :         D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
   11021                 :            :         expr_ty expression_var;
   11022         [ +  + ]:    3645171 :         if (
   11023                 :    3645171 :             (expression_var = expression_rule(p))  // expression
   11024                 :            :         )
   11025                 :            :         {
   11026                 :            :             D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
   11027                 :    2122424 :             _res = expression_var;
   11028                 :    2122424 :             goto done;
   11029                 :            :         }
   11030                 :    1522747 :         p->mark = _mark;
   11031                 :            :         D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
   11032                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
   11033                 :            :     }
   11034                 :    1522747 :     _res = NULL;
   11035                 :    3645223 :   done:
   11036                 :    3645223 :     _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
   11037                 :    3645223 :     p->level--;
   11038                 :    3645223 :     return _res;
   11039                 :            : }
   11040                 :            : 
   11041                 :            : // star_named_expressions: ','.star_named_expression+ ','?
   11042                 :            : static asdl_expr_seq*
   11043                 :     823470 : star_named_expressions_rule(Parser *p)
   11044                 :            : {
   11045         [ -  + ]:     823470 :     if (p->level++ == MAXSTACK) {
   11046                 :          0 :         p->error_indicator = 1;
   11047                 :            :         PyErr_NoMemory();
   11048                 :            :     }
   11049         [ -  + ]:     823470 :     if (p->error_indicator) {
   11050                 :          0 :         p->level--;
   11051                 :          0 :         return NULL;
   11052                 :            :     }
   11053                 :     823470 :     asdl_expr_seq* _res = NULL;
   11054                 :     823470 :     int _mark = p->mark;
   11055                 :            :     { // ','.star_named_expression+ ','?
   11056         [ -  + ]:     823470 :         if (p->error_indicator) {
   11057                 :          0 :             p->level--;
   11058                 :          0 :             return NULL;
   11059                 :            :         }
   11060                 :            :         D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
   11061                 :            :         void *_opt_var;
   11062                 :            :         UNUSED(_opt_var); // Silence compiler warnings
   11063                 :            :         asdl_expr_seq* a;
   11064         [ +  + ]:     823470 :         if (
   11065                 :     823470 :             (a = (asdl_expr_seq*)_gather_82_rule(p))  // ','.star_named_expression+
   11066                 :     648263 :             &&
   11067         [ +  + ]:     648263 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   11068                 :            :         )
   11069                 :            :         {
   11070                 :            :             D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
   11071                 :     648236 :             _res = a;
   11072   [ -  +  -  - ]:     648236 :             if (_res == NULL && PyErr_Occurred()) {
   11073                 :          0 :                 p->error_indicator = 1;
   11074                 :          0 :                 p->level--;
   11075                 :          0 :                 return NULL;
   11076                 :            :             }
   11077                 :     648236 :             goto done;
   11078                 :            :         }
   11079                 :     175234 :         p->mark = _mark;
   11080                 :            :         D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
   11081                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
   11082                 :            :     }
   11083                 :     175234 :     _res = NULL;
   11084                 :     823470 :   done:
   11085                 :     823470 :     p->level--;
   11086                 :     823470 :     return _res;
   11087                 :            : }
   11088                 :            : 
   11089                 :            : // star_named_expression: '*' bitwise_or | named_expression
   11090                 :            : static expr_ty
   11091                 :    4663594 : star_named_expression_rule(Parser *p)
   11092                 :            : {
   11093         [ -  + ]:    4663594 :     if (p->level++ == MAXSTACK) {
   11094                 :          0 :         p->error_indicator = 1;
   11095                 :            :         PyErr_NoMemory();
   11096                 :            :     }
   11097         [ -  + ]:    4663594 :     if (p->error_indicator) {
   11098                 :          0 :         p->level--;
   11099                 :          0 :         return NULL;
   11100                 :            :     }
   11101                 :    4663594 :     expr_ty _res = NULL;
   11102                 :    4663594 :     int _mark = p->mark;
   11103   [ +  +  +  + ]:    4663594 :     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                 :    4663550 :     int _start_lineno = p->tokens[_mark]->lineno;
   11109                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   11110                 :    4663550 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   11111                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   11112                 :            :     { // '*' bitwise_or
   11113         [ -  + ]:    4663550 :         if (p->error_indicator) {
   11114                 :          0 :             p->level--;
   11115                 :          0 :             return NULL;
   11116                 :            :         }
   11117                 :            :         D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
   11118                 :            :         Token * _literal;
   11119                 :            :         expr_ty a;
   11120         [ +  + ]:    4663550 :         if (
   11121                 :    4663550 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   11122         [ +  + ]:       2658 :             &&
   11123                 :       2658 :             (a = bitwise_or_rule(p))  // bitwise_or
   11124                 :            :         )
   11125                 :            :         {
   11126                 :            :             D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
   11127                 :       2633 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   11128         [ -  + ]:       2633 :             if (_token == NULL) {
   11129                 :          0 :                 p->level--;
   11130                 :          0 :                 return NULL;
   11131                 :            :             }
   11132                 :       2633 :             int _end_lineno = _token->end_lineno;
   11133                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   11134                 :       2633 :             int _end_col_offset = _token->end_col_offset;
   11135                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   11136                 :       2633 :             _res = _PyAST_Starred ( a , Load , EXTRA );
   11137   [ -  +  -  - ]:       2633 :             if (_res == NULL && PyErr_Occurred()) {
   11138                 :          0 :                 p->error_indicator = 1;
   11139                 :          0 :                 p->level--;
   11140                 :          0 :                 return NULL;
   11141                 :            :             }
   11142                 :       2633 :             goto done;
   11143                 :            :         }
   11144                 :    4660917 :         p->mark = _mark;
   11145                 :            :         D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
   11146                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
   11147                 :            :     }
   11148                 :            :     { // named_expression
   11149         [ -  + ]:    4660917 :         if (p->error_indicator) {
   11150                 :          0 :             p->level--;
   11151                 :          0 :             return NULL;
   11152                 :            :         }
   11153                 :            :         D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
   11154                 :            :         expr_ty named_expression_var;
   11155         [ +  + ]:    4660917 :         if (
   11156                 :    4660917 :             (named_expression_var = named_expression_rule(p))  // named_expression
   11157                 :            :         )
   11158                 :            :         {
   11159                 :            :             D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
   11160                 :    4438141 :             _res = named_expression_var;
   11161                 :    4438141 :             goto done;
   11162                 :            :         }
   11163                 :     222776 :         p->mark = _mark;
   11164                 :            :         D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
   11165                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
   11166                 :            :     }
   11167                 :     222776 :     _res = NULL;
   11168                 :    4663550 :   done:
   11169                 :    4663550 :     p->level--;
   11170                 :    4663550 :     return _res;
   11171                 :            : }
   11172                 :            : 
   11173                 :            : // assignment_expression: NAME ':=' ~ expression
   11174                 :            : static expr_ty
   11175                 :   12858422 : assignment_expression_rule(Parser *p)
   11176                 :            : {
   11177         [ -  + ]:   12858422 :     if (p->level++ == MAXSTACK) {
   11178                 :          0 :         p->error_indicator = 1;
   11179                 :            :         PyErr_NoMemory();
   11180                 :            :     }
   11181         [ -  + ]:   12858422 :     if (p->error_indicator) {
   11182                 :          0 :         p->level--;
   11183                 :          0 :         return NULL;
   11184                 :            :     }
   11185                 :   12858422 :     expr_ty _res = NULL;
   11186                 :   12858422 :     int _mark = p->mark;
   11187   [ +  +  +  + ]:   12858422 :     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                 :   12858407 :     int _start_lineno = p->tokens[_mark]->lineno;
   11193                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   11194                 :   12858407 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   11195                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   11196                 :            :     { // NAME ':=' ~ expression
   11197         [ -  + ]:   12858407 :         if (p->error_indicator) {
   11198                 :          0 :             p->level--;
   11199                 :          0 :             return NULL;
   11200                 :            :         }
   11201                 :            :         D(fprintf(stderr, "%*c> assignment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
   11202                 :   12858407 :         int _cut_var = 0;
   11203                 :            :         Token * _literal;
   11204                 :            :         expr_ty a;
   11205                 :            :         expr_ty b;
   11206         [ +  + ]:   12858407 :         if (
   11207                 :   12858407 :             (a = _PyPegen_name_token(p))  // NAME
   11208         [ +  + ]:    5401052 :             &&
   11209                 :    5401052 :             (_literal = _PyPegen_expect_token(p, 53))  // token=':='
   11210                 :            :             &&
   11211                 :       3510 :             (_cut_var = 1)
   11212         [ +  - ]:       3510 :             &&
   11213                 :       3510 :             (b = expression_rule(p))  // expression
   11214                 :            :         )
   11215                 :            :         {
   11216                 :            :             D(fprintf(stderr, "%*c+ assignment_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
   11217                 :       3510 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   11218         [ -  + ]:       3510 :             if (_token == NULL) {
   11219                 :          0 :                 p->level--;
   11220                 :          0 :                 return NULL;
   11221                 :            :             }
   11222                 :       3510 :             int _end_lineno = _token->end_lineno;
   11223                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   11224                 :       3510 :             int _end_col_offset = _token->end_col_offset;
   11225                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   11226                 :       3510 :             _res = CHECK_VERSION ( expr_ty , 8 , "Assignment expressions are" , _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA ) );
   11227   [ +  +  +  - ]:       3510 :             if (_res == NULL && PyErr_Occurred()) {
   11228                 :          1 :                 p->error_indicator = 1;
   11229                 :          1 :                 p->level--;
   11230                 :          1 :                 return NULL;
   11231                 :            :             }
   11232                 :       3509 :             goto done;
   11233                 :            :         }
   11234                 :   12854897 :         p->mark = _mark;
   11235                 :            :         D(fprintf(stderr, "%*c%s assignment_expression[%d-%d]: %s failed!\n", p->level, ' ',
   11236                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
   11237         [ -  + ]:   12854897 :         if (_cut_var) {
   11238                 :          0 :             p->level--;
   11239                 :          0 :             return NULL;
   11240                 :            :         }
   11241                 :            :     }
   11242                 :   12854897 :     _res = NULL;
   11243                 :   12858406 :   done:
   11244                 :   12858406 :     p->level--;
   11245                 :   12858406 :     return _res;
   11246                 :            : }
   11247                 :            : 
   11248                 :            : // named_expression: assignment_expression | invalid_named_expression | expression !':='
   11249                 :            : static expr_ty
   11250                 :    7026903 : named_expression_rule(Parser *p)
   11251                 :            : {
   11252         [ -  + ]:    7026903 :     if (p->level++ == MAXSTACK) {
   11253                 :          0 :         p->error_indicator = 1;
   11254                 :            :         PyErr_NoMemory();
   11255                 :            :     }
   11256         [ -  + ]:    7026903 :     if (p->error_indicator) {
   11257                 :          0 :         p->level--;
   11258                 :          0 :         return NULL;
   11259                 :            :     }
   11260                 :    7026903 :     expr_ty _res = NULL;
   11261                 :    7026903 :     int _mark = p->mark;
   11262                 :            :     { // assignment_expression
   11263         [ -  + ]:    7026903 :         if (p->error_indicator) {
   11264                 :          0 :             p->level--;
   11265                 :          0 :             return NULL;
   11266                 :            :         }
   11267                 :            :         D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
   11268                 :            :         expr_ty assignment_expression_var;
   11269         [ +  + ]:    7026903 :         if (
   11270                 :    7026903 :             (assignment_expression_var = assignment_expression_rule(p))  // assignment_expression
   11271                 :            :         )
   11272                 :            :         {
   11273                 :            :             D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
   11274                 :       3418 :             _res = assignment_expression_var;
   11275                 :       3418 :             goto done;
   11276                 :            :         }
   11277                 :    7023485 :         p->mark = _mark;
   11278                 :            :         D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
   11279                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
   11280                 :            :     }
   11281         [ +  + ]:    7023485 :     if (p->call_invalid_rules) { // invalid_named_expression
   11282         [ -  + ]:       2435 :         if (p->error_indicator) {
   11283                 :          0 :             p->level--;
   11284                 :          0 :             return NULL;
   11285                 :            :         }
   11286                 :            :         D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
   11287                 :            :         void *invalid_named_expression_var;
   11288         [ -  + ]:       2435 :         if (
   11289                 :       2435 :             (invalid_named_expression_var = invalid_named_expression_rule(p))  // invalid_named_expression
   11290                 :            :         )
   11291                 :            :         {
   11292                 :            :             D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
   11293                 :          0 :             _res = invalid_named_expression_var;
   11294                 :          0 :             goto done;
   11295                 :            :         }
   11296                 :       2435 :         p->mark = _mark;
   11297                 :            :         D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
   11298                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
   11299                 :            :     }
   11300                 :            :     { // expression !':='
   11301         [ +  + ]:    7023485 :         if (p->error_indicator) {
   11302                 :        132 :             p->level--;
   11303                 :        132 :             return NULL;
   11304                 :            :         }
   11305                 :            :         D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
   11306                 :            :         expr_ty expression_var;
   11307         [ +  + ]:    7023353 :         if (
   11308                 :    7023353 :             (expression_var = expression_rule(p))  // expression
   11309         [ +  + ]:    6796479 :             &&
   11310                 :    6796479 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53)  // token=':='
   11311                 :            :         )
   11312                 :            :         {
   11313                 :            :             D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
   11314                 :    6796467 :             _res = expression_var;
   11315                 :    6796467 :             goto done;
   11316                 :            :         }
   11317                 :     226886 :         p->mark = _mark;
   11318                 :            :         D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
   11319                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
   11320                 :            :     }
   11321                 :     226886 :     _res = NULL;
   11322                 :    7026771 :   done:
   11323                 :    7026771 :     p->level--;
   11324                 :    7026771 :     return _res;
   11325                 :            : }
   11326                 :            : 
   11327                 :            : // disjunction: conjunction (('or' conjunction))+ | conjunction
   11328                 :            : static expr_ty
   11329                 :   24010047 : disjunction_rule(Parser *p)
   11330                 :            : {
   11331         [ -  + ]:   24010047 :     if (p->level++ == MAXSTACK) {
   11332                 :          0 :         p->error_indicator = 1;
   11333                 :            :         PyErr_NoMemory();
   11334                 :            :     }
   11335         [ -  + ]:   24010047 :     if (p->error_indicator) {
   11336                 :          0 :         p->level--;
   11337                 :          0 :         return NULL;
   11338                 :            :     }
   11339                 :   24010047 :     expr_ty _res = NULL;
   11340         [ +  + ]:   24010047 :     if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
   11341                 :   12000545 :         p->level--;
   11342                 :   12000545 :         return _res;
   11343                 :            :     }
   11344                 :   12009502 :     int _mark = p->mark;
   11345   [ -  +  -  - ]:   12009502 :     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                 :   12009502 :     int _start_lineno = p->tokens[_mark]->lineno;
   11351                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   11352                 :   12009502 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   11353                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   11354                 :            :     { // conjunction (('or' conjunction))+
   11355         [ -  + ]:   12009502 :         if (p->error_indicator) {
   11356                 :          0 :             p->level--;
   11357                 :          0 :             return NULL;
   11358                 :            :         }
   11359                 :            :         D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
   11360                 :            :         expr_ty a;
   11361                 :            :         asdl_seq * b;
   11362         [ +  + ]:   12009502 :         if (
   11363                 :   12009502 :             (a = conjunction_rule(p))  // conjunction
   11364         [ +  + ]:    9717377 :             &&
   11365                 :    9717377 :             (b = _loop1_84_rule(p))  // (('or' conjunction))+
   11366                 :            :         )
   11367                 :            :         {
   11368                 :            :             D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
   11369                 :      26126 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   11370         [ -  + ]:      26126 :             if (_token == NULL) {
   11371                 :          0 :                 p->level--;
   11372                 :          0 :                 return NULL;
   11373                 :            :             }
   11374                 :      26126 :             int _end_lineno = _token->end_lineno;
   11375                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   11376                 :      26126 :             int _end_col_offset = _token->end_col_offset;
   11377                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   11378                 :      26126 :             _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
   11379   [ -  +  -  - ]:      26126 :             if (_res == NULL && PyErr_Occurred()) {
   11380                 :          0 :                 p->error_indicator = 1;
   11381                 :          0 :                 p->level--;
   11382                 :          0 :                 return NULL;
   11383                 :            :             }
   11384                 :      26126 :             goto done;
   11385                 :            :         }
   11386                 :   11983376 :         p->mark = _mark;
   11387                 :            :         D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
   11388                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
   11389                 :            :     }
   11390                 :            :     { // conjunction
   11391         [ +  + ]:   11983376 :         if (p->error_indicator) {
   11392                 :        851 :             p->level--;
   11393                 :        851 :             return NULL;
   11394                 :            :         }
   11395                 :            :         D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
   11396                 :            :         expr_ty conjunction_var;
   11397         [ +  + ]:   11982525 :         if (
   11398                 :   11982525 :             (conjunction_var = conjunction_rule(p))  // conjunction
   11399                 :            :         )
   11400                 :            :         {
   11401                 :            :             D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
   11402                 :    9691251 :             _res = conjunction_var;
   11403                 :    9691251 :             goto done;
   11404                 :            :         }
   11405                 :    2291274 :         p->mark = _mark;
   11406                 :            :         D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
   11407                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
   11408                 :            :     }
   11409                 :    2291274 :     _res = NULL;
   11410                 :   12008651 :   done:
   11411                 :   12008651 :     _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
   11412                 :   12008651 :     p->level--;
   11413                 :   12008651 :     return _res;
   11414                 :            : }
   11415                 :            : 
   11416                 :            : // conjunction: inversion (('and' inversion))+ | inversion
   11417                 :            : static expr_ty
   11418                 :   24020892 : conjunction_rule(Parser *p)
   11419                 :            : {
   11420         [ -  + ]:   24020892 :     if (p->level++ == MAXSTACK) {
   11421                 :          0 :         p->error_indicator = 1;
   11422                 :            :         PyErr_NoMemory();
   11423                 :            :     }
   11424         [ -  + ]:   24020892 :     if (p->error_indicator) {
   11425                 :          0 :         p->level--;
   11426                 :          0 :         return NULL;
   11427                 :            :     }
   11428                 :   24020892 :     expr_ty _res = NULL;
   11429         [ +  + ]:   24020892 :     if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
   11430                 :   11982525 :         p->level--;
   11431                 :   11982525 :         return _res;
   11432                 :            :     }
   11433                 :   12038367 :     int _mark = p->mark;
   11434   [ -  +  -  - ]:   12038367 :     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                 :   12038367 :     int _start_lineno = p->tokens[_mark]->lineno;
   11440                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   11441                 :   12038367 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   11442                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   11443                 :            :     { // inversion (('and' inversion))+
   11444         [ -  + ]:   12038367 :         if (p->error_indicator) {
   11445                 :          0 :             p->level--;
   11446                 :          0 :             return NULL;
   11447                 :            :         }
   11448                 :            :         D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
   11449                 :            :         expr_ty a;
   11450                 :            :         asdl_seq * b;
   11451         [ +  + ]:   12038367 :         if (
   11452                 :   12038367 :             (a = inversion_rule(p))  // inversion
   11453         [ +  + ]:    9746242 :             &&
   11454                 :    9746242 :             (b = _loop1_85_rule(p))  // (('and' inversion))+
   11455                 :            :         )
   11456                 :            :         {
   11457                 :            :             D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
   11458                 :      39064 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   11459         [ -  + ]:      39064 :             if (_token == NULL) {
   11460                 :          0 :                 p->level--;
   11461                 :          0 :                 return NULL;
   11462                 :            :             }
   11463                 :      39064 :             int _end_lineno = _token->end_lineno;
   11464                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   11465                 :      39064 :             int _end_col_offset = _token->end_col_offset;
   11466                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   11467                 :      39064 :             _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
   11468   [ -  +  -  - ]:      39064 :             if (_res == NULL && PyErr_Occurred()) {
   11469                 :          0 :                 p->error_indicator = 1;
   11470                 :          0 :                 p->level--;
   11471                 :          0 :                 return NULL;
   11472                 :            :             }
   11473                 :      39064 :             goto done;
   11474                 :            :         }
   11475                 :   11999303 :         p->mark = _mark;
   11476                 :            :         D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
   11477                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
   11478                 :            :     }
   11479                 :            :     { // inversion
   11480         [ +  + ]:   11999303 :         if (p->error_indicator) {
   11481                 :        851 :             p->level--;
   11482                 :        851 :             return NULL;
   11483                 :            :         }
   11484                 :            :         D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
   11485                 :            :         expr_ty inversion_var;
   11486         [ +  + ]:   11998452 :         if (
   11487                 :   11998452 :             (inversion_var = inversion_rule(p))  // inversion
   11488                 :            :         )
   11489                 :            :         {
   11490                 :            :             D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
   11491                 :    9707178 :             _res = inversion_var;
   11492                 :    9707178 :             goto done;
   11493                 :            :         }
   11494                 :    2291274 :         p->mark = _mark;
   11495                 :            :         D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
   11496                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
   11497                 :            :     }
   11498                 :    2291274 :     _res = NULL;
   11499                 :   12037516 :   done:
   11500                 :   12037516 :     _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
   11501                 :   12037516 :     p->level--;
   11502                 :   12037516 :     return _res;
   11503                 :            : }
   11504                 :            : 
   11505                 :            : // inversion: 'not' inversion | comparison
   11506                 :            : static expr_ty
   11507                 :   24139599 : inversion_rule(Parser *p)
   11508                 :            : {
   11509         [ -  + ]:   24139599 :     if (p->level++ == MAXSTACK) {
   11510                 :          0 :         p->error_indicator = 1;
   11511                 :            :         PyErr_NoMemory();
   11512                 :            :     }
   11513         [ -  + ]:   24139599 :     if (p->error_indicator) {
   11514                 :          0 :         p->level--;
   11515                 :          0 :         return NULL;
   11516                 :            :     }
   11517                 :   24139599 :     expr_ty _res = NULL;
   11518         [ +  + ]:   24139599 :     if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
   11519                 :   11998452 :         p->level--;
   11520                 :   11998452 :         return _res;
   11521                 :            :     }
   11522                 :   12141147 :     int _mark = p->mark;
   11523   [ -  +  -  - ]:   12141147 :     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                 :   12141147 :     int _start_lineno = p->tokens[_mark]->lineno;
   11529                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   11530                 :   12141147 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   11531                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   11532                 :            :     { // 'not' inversion
   11533         [ -  + ]:   12141147 :         if (p->error_indicator) {
   11534                 :          0 :             p->level--;
   11535                 :          0 :             return NULL;
   11536                 :            :         }
   11537                 :            :         D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
   11538                 :            :         Token * _keyword;
   11539                 :            :         expr_ty a;
   11540         [ +  + ]:   12141147 :         if (
   11541                 :   12141147 :             (_keyword = _PyPegen_expect_token(p, 581))  // token='not'
   11542         [ +  + ]:      56887 :             &&
   11543                 :      56887 :             (a = inversion_rule(p))  // inversion
   11544                 :            :         )
   11545                 :            :         {
   11546                 :            :             D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
   11547                 :      56885 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   11548         [ -  + ]:      56885 :             if (_token == NULL) {
   11549                 :          0 :                 p->level--;
   11550                 :          0 :                 return NULL;
   11551                 :            :             }
   11552                 :      56885 :             int _end_lineno = _token->end_lineno;
   11553                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   11554                 :      56885 :             int _end_col_offset = _token->end_col_offset;
   11555                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   11556                 :      56885 :             _res = _PyAST_UnaryOp ( Not , a , EXTRA );
   11557   [ -  +  -  - ]:      56885 :             if (_res == NULL && PyErr_Occurred()) {
   11558                 :          0 :                 p->error_indicator = 1;
   11559                 :          0 :                 p->level--;
   11560                 :          0 :                 return NULL;
   11561                 :            :             }
   11562                 :      56885 :             goto done;
   11563                 :            :         }
   11564                 :   12084262 :         p->mark = _mark;
   11565                 :            :         D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
   11566                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
   11567                 :            :     }
   11568                 :            :     { // comparison
   11569         [ -  + ]:   12084262 :         if (p->error_indicator) {
   11570                 :          0 :             p->level--;
   11571                 :          0 :             return NULL;
   11572                 :            :         }
   11573                 :            :         D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
   11574                 :            :         expr_ty comparison_var;
   11575         [ +  + ]:   12084262 :         if (
   11576                 :   12084262 :             (comparison_var = comparison_rule(p))  // comparison
   11577                 :            :         )
   11578                 :            :         {
   11579                 :            :             D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
   11580                 :    9792135 :             _res = comparison_var;
   11581                 :    9792135 :             goto done;
   11582                 :            :         }
   11583                 :    2292127 :         p->mark = _mark;
   11584                 :            :         D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
   11585                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
   11586                 :            :     }
   11587                 :    2292127 :     _res = NULL;
   11588                 :   12141147 :   done:
   11589                 :   12141147 :     _PyPegen_insert_memo(p, _mark, inversion_type, _res);
   11590                 :   12141147 :     p->level--;
   11591                 :   12141147 :     return _res;
   11592                 :            : }
   11593                 :            : 
   11594                 :            : // comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
   11595                 :            : static expr_ty
   11596                 :   12084262 : comparison_rule(Parser *p)
   11597                 :            : {
   11598         [ -  + ]:   12084262 :     if (p->level++ == MAXSTACK) {
   11599                 :          0 :         p->error_indicator = 1;
   11600                 :            :         PyErr_NoMemory();
   11601                 :            :     }
   11602         [ -  + ]:   12084262 :     if (p->error_indicator) {
   11603                 :          0 :         p->level--;
   11604                 :          0 :         return NULL;
   11605                 :            :     }
   11606                 :   12084262 :     expr_ty _res = NULL;
   11607                 :   12084262 :     int _mark = p->mark;
   11608   [ -  +  -  - ]:   12084262 :     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                 :   12084262 :     int _start_lineno = p->tokens[_mark]->lineno;
   11614                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   11615                 :   12084262 :     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         [ -  + ]:   12084262 :         if (p->error_indicator) {
   11619                 :          0 :             p->level--;
   11620                 :          0 :             return NULL;
   11621                 :            :         }
   11622                 :            :         D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
   11623                 :            :         expr_ty a;
   11624                 :            :         asdl_seq * b;
   11625         [ +  + ]:   12084262 :         if (
   11626                 :   12084262 :             (a = bitwise_or_rule(p))  // bitwise_or
   11627         [ +  + ]:    9792136 :             &&
   11628                 :    9792136 :             (b = _loop1_86_rule(p))  // compare_op_bitwise_or_pair+
   11629                 :            :         )
   11630                 :            :         {
   11631                 :            :             D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
   11632                 :     241766 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   11633         [ -  + ]:     241766 :             if (_token == NULL) {
   11634                 :          0 :                 p->level--;
   11635                 :          0 :                 return NULL;
   11636                 :            :             }
   11637                 :     241766 :             int _end_lineno = _token->end_lineno;
   11638                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   11639                 :     241766 :             int _end_col_offset = _token->end_col_offset;
   11640                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   11641                 :     241766 :             _res = _PyAST_Compare ( a , CHECK ( asdl_int_seq* , _PyPegen_get_cmpops ( p , b ) ) , CHECK ( asdl_expr_seq* , _PyPegen_get_exprs ( p , b ) ) , EXTRA );
   11642   [ -  +  -  - ]:     241766 :             if (_res == NULL && PyErr_Occurred()) {
   11643                 :          0 :                 p->error_indicator = 1;
   11644                 :          0 :                 p->level--;
   11645                 :          0 :                 return NULL;
   11646                 :            :             }
   11647                 :     241766 :             goto done;
   11648                 :            :         }
   11649                 :   11842496 :         p->mark = _mark;
   11650                 :            :         D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
   11651                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
   11652                 :            :     }
   11653                 :            :     { // bitwise_or
   11654         [ +  + ]:   11842496 :         if (p->error_indicator) {
   11655                 :        851 :             p->level--;
   11656                 :        851 :             return NULL;
   11657                 :            :         }
   11658                 :            :         D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
   11659                 :            :         expr_ty bitwise_or_var;
   11660         [ +  + ]:   11841645 :         if (
   11661                 :   11841645 :             (bitwise_or_var = bitwise_or_rule(p))  // bitwise_or
   11662                 :            :         )
   11663                 :            :         {
   11664                 :            :             D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
   11665                 :    9550369 :             _res = bitwise_or_var;
   11666                 :    9550369 :             goto done;
   11667                 :            :         }
   11668                 :    2291276 :         p->mark = _mark;
   11669                 :            :         D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
   11670                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
   11671                 :            :     }
   11672                 :    2291276 :     _res = NULL;
   11673                 :   12083411 :   done:
   11674                 :   12083411 :     p->level--;
   11675                 :   12083411 :     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                 :   10037237 : compare_op_bitwise_or_pair_rule(Parser *p)
   11691                 :            : {
   11692         [ -  + ]:   10037237 :     if (p->level++ == MAXSTACK) {
   11693                 :          0 :         p->error_indicator = 1;
   11694                 :            :         PyErr_NoMemory();
   11695                 :            :     }
   11696         [ -  + ]:   10037237 :     if (p->error_indicator) {
   11697                 :          0 :         p->level--;
   11698                 :          0 :         return NULL;
   11699                 :            :     }
   11700                 :   10037237 :     CmpopExprPair* _res = NULL;
   11701                 :   10037237 :     int _mark = p->mark;
   11702                 :            :     { // eq_bitwise_or
   11703         [ -  + ]:   10037237 :         if (p->error_indicator) {
   11704                 :          0 :             p->level--;
   11705                 :          0 :             return NULL;
   11706                 :            :         }
   11707                 :            :         D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
   11708                 :            :         CmpopExprPair* eq_bitwise_or_var;
   11709         [ +  + ]:   10037237 :         if (
   11710                 :   10037237 :             (eq_bitwise_or_var = eq_bitwise_or_rule(p))  // eq_bitwise_or
   11711                 :            :         )
   11712                 :            :         {
   11713                 :            :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
   11714                 :      71201 :             _res = eq_bitwise_or_var;
   11715                 :      71201 :             goto done;
   11716                 :            :         }
   11717                 :    9966036 :         p->mark = _mark;
   11718                 :            :         D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
   11719                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
   11720                 :            :     }
   11721                 :            :     { // noteq_bitwise_or
   11722         [ -  + ]:    9966036 :         if (p->error_indicator) {
   11723                 :          0 :             p->level--;
   11724                 :          0 :             return NULL;
   11725                 :            :         }
   11726                 :            :         D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
   11727                 :            :         CmpopExprPair* noteq_bitwise_or_var;
   11728         [ +  + ]:    9966036 :         if (
   11729                 :    9966036 :             (noteq_bitwise_or_var = noteq_bitwise_or_rule(p))  // noteq_bitwise_or
   11730                 :            :         )
   11731                 :            :         {
   11732                 :            :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
   11733                 :      17554 :             _res = noteq_bitwise_or_var;
   11734                 :      17554 :             goto done;
   11735                 :            :         }
   11736                 :    9948482 :         p->mark = _mark;
   11737                 :            :         D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
   11738                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
   11739                 :            :     }
   11740                 :            :     { // lte_bitwise_or
   11741         [ +  + ]:    9948482 :         if (p->error_indicator) {
   11742                 :          1 :             p->level--;
   11743                 :          1 :             return NULL;
   11744                 :            :         }
   11745                 :            :         D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
   11746                 :            :         CmpopExprPair* lte_bitwise_or_var;
   11747         [ +  + ]:    9948481 :         if (
   11748                 :    9948481 :             (lte_bitwise_or_var = lte_bitwise_or_rule(p))  // lte_bitwise_or
   11749                 :            :         )
   11750                 :            :         {
   11751                 :            :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
   11752                 :       8889 :             _res = lte_bitwise_or_var;
   11753                 :       8889 :             goto done;
   11754                 :            :         }
   11755                 :    9939592 :         p->mark = _mark;
   11756                 :            :         D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
   11757                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
   11758                 :            :     }
   11759                 :            :     { // lt_bitwise_or
   11760         [ -  + ]:    9939592 :         if (p->error_indicator) {
   11761                 :          0 :             p->level--;
   11762                 :          0 :             return NULL;
   11763                 :            :         }
   11764                 :            :         D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
   11765                 :            :         CmpopExprPair* lt_bitwise_or_var;
   11766         [ +  + ]:    9939592 :         if (
   11767                 :    9939592 :             (lt_bitwise_or_var = lt_bitwise_or_rule(p))  // lt_bitwise_or
   11768                 :            :         )
   11769                 :            :         {
   11770                 :            :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
   11771                 :      15081 :             _res = lt_bitwise_or_var;
   11772                 :      15081 :             goto done;
   11773                 :            :         }
   11774                 :    9924511 :         p->mark = _mark;
   11775                 :            :         D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
   11776                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
   11777                 :            :     }
   11778                 :            :     { // gte_bitwise_or
   11779         [ -  + ]:    9924511 :         if (p->error_indicator) {
   11780                 :          0 :             p->level--;
   11781                 :          0 :             return NULL;
   11782                 :            :         }
   11783                 :            :         D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
   11784                 :            :         CmpopExprPair* gte_bitwise_or_var;
   11785         [ +  + ]:    9924511 :         if (
   11786                 :    9924511 :             (gte_bitwise_or_var = gte_bitwise_or_rule(p))  // gte_bitwise_or
   11787                 :            :         )
   11788                 :            :         {
   11789                 :            :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
   11790                 :       8204 :             _res = gte_bitwise_or_var;
   11791                 :       8204 :             goto done;
   11792                 :            :         }
   11793                 :    9916307 :         p->mark = _mark;
   11794                 :            :         D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
   11795                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
   11796                 :            :     }
   11797                 :            :     { // gt_bitwise_or
   11798         [ -  + ]:    9916307 :         if (p->error_indicator) {
   11799                 :          0 :             p->level--;
   11800                 :          0 :             return NULL;
   11801                 :            :         }
   11802                 :            :         D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
   11803                 :            :         CmpopExprPair* gt_bitwise_or_var;
   11804         [ +  + ]:    9916307 :         if (
   11805                 :    9916307 :             (gt_bitwise_or_var = gt_bitwise_or_rule(p))  // gt_bitwise_or
   11806                 :            :         )
   11807                 :            :         {
   11808                 :            :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
   11809                 :      13402 :             _res = gt_bitwise_or_var;
   11810                 :      13402 :             goto done;
   11811                 :            :         }
   11812                 :    9902905 :         p->mark = _mark;
   11813                 :            :         D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
   11814                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
   11815                 :            :     }
   11816                 :            :     { // notin_bitwise_or
   11817         [ -  + ]:    9902905 :         if (p->error_indicator) {
   11818                 :          0 :             p->level--;
   11819                 :          0 :             return NULL;
   11820                 :            :         }
   11821                 :            :         D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
   11822                 :            :         CmpopExprPair* notin_bitwise_or_var;
   11823         [ +  + ]:    9902905 :         if (
   11824                 :    9902905 :             (notin_bitwise_or_var = notin_bitwise_or_rule(p))  // notin_bitwise_or
   11825                 :            :         )
   11826                 :            :         {
   11827                 :            :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
   11828                 :      10798 :             _res = notin_bitwise_or_var;
   11829                 :      10798 :             goto done;
   11830                 :            :         }
   11831                 :    9892107 :         p->mark = _mark;
   11832                 :            :         D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
   11833                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
   11834                 :            :     }
   11835                 :            :     { // in_bitwise_or
   11836         [ -  + ]:    9892107 :         if (p->error_indicator) {
   11837                 :          0 :             p->level--;
   11838                 :          0 :             return NULL;
   11839                 :            :         }
   11840                 :            :         D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
   11841                 :            :         CmpopExprPair* in_bitwise_or_var;
   11842         [ +  + ]:    9892107 :         if (
   11843                 :    9892107 :             (in_bitwise_or_var = in_bitwise_or_rule(p))  // in_bitwise_or
   11844                 :            :         )
   11845                 :            :         {
   11846                 :            :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
   11847                 :      32047 :             _res = in_bitwise_or_var;
   11848                 :      32047 :             goto done;
   11849                 :            :         }
   11850                 :    9860060 :         p->mark = _mark;
   11851                 :            :         D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
   11852                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
   11853                 :            :     }
   11854                 :            :     { // isnot_bitwise_or
   11855         [ -  + ]:    9860060 :         if (p->error_indicator) {
   11856                 :          0 :             p->level--;
   11857                 :          0 :             return NULL;
   11858                 :            :         }
   11859                 :            :         D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
   11860                 :            :         CmpopExprPair* isnot_bitwise_or_var;
   11861         [ +  + ]:    9860060 :         if (
   11862                 :    9860060 :             (isnot_bitwise_or_var = isnot_bitwise_or_rule(p))  // isnot_bitwise_or
   11863                 :            :         )
   11864                 :            :         {
   11865                 :            :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
   11866                 :      28341 :             _res = isnot_bitwise_or_var;
   11867                 :      28341 :             goto done;
   11868                 :            :         }
   11869                 :    9831719 :         p->mark = _mark;
   11870                 :            :         D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
   11871                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
   11872                 :            :     }
   11873                 :            :     { // is_bitwise_or
   11874         [ -  + ]:    9831719 :         if (p->error_indicator) {
   11875                 :          0 :             p->level--;
   11876                 :          0 :             return NULL;
   11877                 :            :         }
   11878                 :            :         D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
   11879                 :            :         CmpopExprPair* is_bitwise_or_var;
   11880         [ +  + ]:    9831719 :         if (
   11881                 :    9831719 :             (is_bitwise_or_var = is_bitwise_or_rule(p))  // is_bitwise_or
   11882                 :            :         )
   11883                 :            :         {
   11884                 :            :             D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
   11885                 :      39584 :             _res = is_bitwise_or_var;
   11886                 :      39584 :             goto done;
   11887                 :            :         }
   11888                 :    9792135 :         p->mark = _mark;
   11889                 :            :         D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
   11890                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
   11891                 :            :     }
   11892                 :    9792135 :     _res = NULL;
   11893                 :   10037236 :   done:
   11894                 :   10037236 :     p->level--;
   11895                 :   10037236 :     return _res;
   11896                 :            : }
   11897                 :            : 
   11898                 :            : // eq_bitwise_or: '==' bitwise_or
   11899                 :            : static CmpopExprPair*
   11900                 :   10037237 : eq_bitwise_or_rule(Parser *p)
   11901                 :            : {
   11902         [ -  + ]:   10037237 :     if (p->level++ == MAXSTACK) {
   11903                 :          0 :         p->error_indicator = 1;
   11904                 :            :         PyErr_NoMemory();
   11905                 :            :     }
   11906         [ -  + ]:   10037237 :     if (p->error_indicator) {
   11907                 :          0 :         p->level--;
   11908                 :          0 :         return NULL;
   11909                 :            :     }
   11910                 :   10037237 :     CmpopExprPair* _res = NULL;
   11911                 :   10037237 :     int _mark = p->mark;
   11912                 :            :     { // '==' bitwise_or
   11913         [ -  + ]:   10037237 :         if (p->error_indicator) {
   11914                 :          0 :             p->level--;
   11915                 :          0 :             return NULL;
   11916                 :            :         }
   11917                 :            :         D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
   11918                 :            :         Token * _literal;
   11919                 :            :         expr_ty a;
   11920         [ +  + ]:   10037237 :         if (
   11921                 :   10037237 :             (_literal = _PyPegen_expect_token(p, 27))  // token='=='
   11922         [ +  - ]:      71201 :             &&
   11923                 :      71201 :             (a = bitwise_or_rule(p))  // bitwise_or
   11924                 :            :         )
   11925                 :            :         {
   11926                 :            :             D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
   11927                 :      71201 :             _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
   11928   [ -  +  -  - ]:      71201 :             if (_res == NULL && PyErr_Occurred()) {
   11929                 :          0 :                 p->error_indicator = 1;
   11930                 :          0 :                 p->level--;
   11931                 :          0 :                 return NULL;
   11932                 :            :             }
   11933                 :      71201 :             goto done;
   11934                 :            :         }
   11935                 :    9966036 :         p->mark = _mark;
   11936                 :            :         D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
   11937                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
   11938                 :            :     }
   11939                 :    9966036 :     _res = NULL;
   11940                 :   10037237 :   done:
   11941                 :   10037237 :     p->level--;
   11942                 :   10037237 :     return _res;
   11943                 :            : }
   11944                 :            : 
   11945                 :            : // noteq_bitwise_or: ('!=') bitwise_or
   11946                 :            : static CmpopExprPair*
   11947                 :    9966036 : noteq_bitwise_or_rule(Parser *p)
   11948                 :            : {
   11949         [ -  + ]:    9966036 :     if (p->level++ == MAXSTACK) {
   11950                 :          0 :         p->error_indicator = 1;
   11951                 :            :         PyErr_NoMemory();
   11952                 :            :     }
   11953         [ -  + ]:    9966036 :     if (p->error_indicator) {
   11954                 :          0 :         p->level--;
   11955                 :          0 :         return NULL;
   11956                 :            :     }
   11957                 :    9966036 :     CmpopExprPair* _res = NULL;
   11958                 :    9966036 :     int _mark = p->mark;
   11959                 :            :     { // ('!=') bitwise_or
   11960         [ -  + ]:    9966036 :         if (p->error_indicator) {
   11961                 :          0 :             p->level--;
   11962                 :          0 :             return NULL;
   11963                 :            :         }
   11964                 :            :         D(fprintf(stderr, "%*c> noteq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
   11965                 :            :         void *_tmp_87_var;
   11966                 :            :         expr_ty a;
   11967         [ +  + ]:    9966036 :         if (
   11968                 :    9966036 :             (_tmp_87_var = _tmp_87_rule(p))  // '!='
   11969         [ +  - ]:      17554 :             &&
   11970                 :      17554 :             (a = bitwise_or_rule(p))  // bitwise_or
   11971                 :            :         )
   11972                 :            :         {
   11973                 :            :             D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
   11974                 :      17554 :             _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
   11975   [ -  +  -  - ]:      17554 :             if (_res == NULL && PyErr_Occurred()) {
   11976                 :          0 :                 p->error_indicator = 1;
   11977                 :          0 :                 p->level--;
   11978                 :          0 :                 return NULL;
   11979                 :            :             }
   11980                 :      17554 :             goto done;
   11981                 :            :         }
   11982                 :    9948482 :         p->mark = _mark;
   11983                 :            :         D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
   11984                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
   11985                 :            :     }
   11986                 :    9948482 :     _res = NULL;
   11987                 :    9966036 :   done:
   11988                 :    9966036 :     p->level--;
   11989                 :    9966036 :     return _res;
   11990                 :            : }
   11991                 :            : 
   11992                 :            : // lte_bitwise_or: '<=' bitwise_or
   11993                 :            : static CmpopExprPair*
   11994                 :    9948481 : lte_bitwise_or_rule(Parser *p)
   11995                 :            : {
   11996         [ -  + ]:    9948481 :     if (p->level++ == MAXSTACK) {
   11997                 :          0 :         p->error_indicator = 1;
   11998                 :            :         PyErr_NoMemory();
   11999                 :            :     }
   12000         [ -  + ]:    9948481 :     if (p->error_indicator) {
   12001                 :          0 :         p->level--;
   12002                 :          0 :         return NULL;
   12003                 :            :     }
   12004                 :    9948481 :     CmpopExprPair* _res = NULL;
   12005                 :    9948481 :     int _mark = p->mark;
   12006                 :            :     { // '<=' bitwise_or
   12007         [ -  + ]:    9948481 :         if (p->error_indicator) {
   12008                 :          0 :             p->level--;
   12009                 :          0 :             return NULL;
   12010                 :            :         }
   12011                 :            :         D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
   12012                 :            :         Token * _literal;
   12013                 :            :         expr_ty a;
   12014         [ +  + ]:    9948481 :         if (
   12015                 :    9948481 :             (_literal = _PyPegen_expect_token(p, 29))  // token='<='
   12016         [ +  - ]:       8889 :             &&
   12017                 :       8889 :             (a = bitwise_or_rule(p))  // bitwise_or
   12018                 :            :         )
   12019                 :            :         {
   12020                 :            :             D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
   12021                 :       8889 :             _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
   12022   [ -  +  -  - ]:       8889 :             if (_res == NULL && PyErr_Occurred()) {
   12023                 :          0 :                 p->error_indicator = 1;
   12024                 :          0 :                 p->level--;
   12025                 :          0 :                 return NULL;
   12026                 :            :             }
   12027                 :       8889 :             goto done;
   12028                 :            :         }
   12029                 :    9939592 :         p->mark = _mark;
   12030                 :            :         D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
   12031                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
   12032                 :            :     }
   12033                 :    9939592 :     _res = NULL;
   12034                 :    9948481 :   done:
   12035                 :    9948481 :     p->level--;
   12036                 :    9948481 :     return _res;
   12037                 :            : }
   12038                 :            : 
   12039                 :            : // lt_bitwise_or: '<' bitwise_or
   12040                 :            : static CmpopExprPair*
   12041                 :    9939592 : lt_bitwise_or_rule(Parser *p)
   12042                 :            : {
   12043         [ -  + ]:    9939592 :     if (p->level++ == MAXSTACK) {
   12044                 :          0 :         p->error_indicator = 1;
   12045                 :            :         PyErr_NoMemory();
   12046                 :            :     }
   12047         [ -  + ]:    9939592 :     if (p->error_indicator) {
   12048                 :          0 :         p->level--;
   12049                 :          0 :         return NULL;
   12050                 :            :     }
   12051                 :    9939592 :     CmpopExprPair* _res = NULL;
   12052                 :    9939592 :     int _mark = p->mark;
   12053                 :            :     { // '<' bitwise_or
   12054         [ -  + ]:    9939592 :         if (p->error_indicator) {
   12055                 :          0 :             p->level--;
   12056                 :          0 :             return NULL;
   12057                 :            :         }
   12058                 :            :         D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
   12059                 :            :         Token * _literal;
   12060                 :            :         expr_ty a;
   12061         [ +  + ]:    9939592 :         if (
   12062                 :    9939592 :             (_literal = _PyPegen_expect_token(p, 20))  // token='<'
   12063         [ +  - ]:      15081 :             &&
   12064                 :      15081 :             (a = bitwise_or_rule(p))  // bitwise_or
   12065                 :            :         )
   12066                 :            :         {
   12067                 :            :             D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
   12068                 :      15081 :             _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
   12069   [ -  +  -  - ]:      15081 :             if (_res == NULL && PyErr_Occurred()) {
   12070                 :          0 :                 p->error_indicator = 1;
   12071                 :          0 :                 p->level--;
   12072                 :          0 :                 return NULL;
   12073                 :            :             }
   12074                 :      15081 :             goto done;
   12075                 :            :         }
   12076                 :    9924511 :         p->mark = _mark;
   12077                 :            :         D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
   12078                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
   12079                 :            :     }
   12080                 :    9924511 :     _res = NULL;
   12081                 :    9939592 :   done:
   12082                 :    9939592 :     p->level--;
   12083                 :    9939592 :     return _res;
   12084                 :            : }
   12085                 :            : 
   12086                 :            : // gte_bitwise_or: '>=' bitwise_or
   12087                 :            : static CmpopExprPair*
   12088                 :    9924511 : gte_bitwise_or_rule(Parser *p)
   12089                 :            : {
   12090         [ -  + ]:    9924511 :     if (p->level++ == MAXSTACK) {
   12091                 :          0 :         p->error_indicator = 1;
   12092                 :            :         PyErr_NoMemory();
   12093                 :            :     }
   12094         [ -  + ]:    9924511 :     if (p->error_indicator) {
   12095                 :          0 :         p->level--;
   12096                 :          0 :         return NULL;
   12097                 :            :     }
   12098                 :    9924511 :     CmpopExprPair* _res = NULL;
   12099                 :    9924511 :     int _mark = p->mark;
   12100                 :            :     { // '>=' bitwise_or
   12101         [ -  + ]:    9924511 :         if (p->error_indicator) {
   12102                 :          0 :             p->level--;
   12103                 :          0 :             return NULL;
   12104                 :            :         }
   12105                 :            :         D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
   12106                 :            :         Token * _literal;
   12107                 :            :         expr_ty a;
   12108         [ +  + ]:    9924511 :         if (
   12109                 :    9924511 :             (_literal = _PyPegen_expect_token(p, 30))  // token='>='
   12110         [ +  - ]:       8204 :             &&
   12111                 :       8204 :             (a = bitwise_or_rule(p))  // bitwise_or
   12112                 :            :         )
   12113                 :            :         {
   12114                 :            :             D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
   12115                 :       8204 :             _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
   12116   [ -  +  -  - ]:       8204 :             if (_res == NULL && PyErr_Occurred()) {
   12117                 :          0 :                 p->error_indicator = 1;
   12118                 :          0 :                 p->level--;
   12119                 :          0 :                 return NULL;
   12120                 :            :             }
   12121                 :       8204 :             goto done;
   12122                 :            :         }
   12123                 :    9916307 :         p->mark = _mark;
   12124                 :            :         D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
   12125                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
   12126                 :            :     }
   12127                 :    9916307 :     _res = NULL;
   12128                 :    9924511 :   done:
   12129                 :    9924511 :     p->level--;
   12130                 :    9924511 :     return _res;
   12131                 :            : }
   12132                 :            : 
   12133                 :            : // gt_bitwise_or: '>' bitwise_or
   12134                 :            : static CmpopExprPair*
   12135                 :    9916307 : gt_bitwise_or_rule(Parser *p)
   12136                 :            : {
   12137         [ -  + ]:    9916307 :     if (p->level++ == MAXSTACK) {
   12138                 :          0 :         p->error_indicator = 1;
   12139                 :            :         PyErr_NoMemory();
   12140                 :            :     }
   12141         [ -  + ]:    9916307 :     if (p->error_indicator) {
   12142                 :          0 :         p->level--;
   12143                 :          0 :         return NULL;
   12144                 :            :     }
   12145                 :    9916307 :     CmpopExprPair* _res = NULL;
   12146                 :    9916307 :     int _mark = p->mark;
   12147                 :            :     { // '>' bitwise_or
   12148         [ -  + ]:    9916307 :         if (p->error_indicator) {
   12149                 :          0 :             p->level--;
   12150                 :          0 :             return NULL;
   12151                 :            :         }
   12152                 :            :         D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
   12153                 :            :         Token * _literal;
   12154                 :            :         expr_ty a;
   12155         [ +  + ]:    9916307 :         if (
   12156                 :    9916307 :             (_literal = _PyPegen_expect_token(p, 21))  // token='>'
   12157         [ +  - ]:      13402 :             &&
   12158                 :      13402 :             (a = bitwise_or_rule(p))  // bitwise_or
   12159                 :            :         )
   12160                 :            :         {
   12161                 :            :             D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
   12162                 :      13402 :             _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
   12163   [ -  +  -  - ]:      13402 :             if (_res == NULL && PyErr_Occurred()) {
   12164                 :          0 :                 p->error_indicator = 1;
   12165                 :          0 :                 p->level--;
   12166                 :          0 :                 return NULL;
   12167                 :            :             }
   12168                 :      13402 :             goto done;
   12169                 :            :         }
   12170                 :    9902905 :         p->mark = _mark;
   12171                 :            :         D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
   12172                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
   12173                 :            :     }
   12174                 :    9902905 :     _res = NULL;
   12175                 :    9916307 :   done:
   12176                 :    9916307 :     p->level--;
   12177                 :    9916307 :     return _res;
   12178                 :            : }
   12179                 :            : 
   12180                 :            : // notin_bitwise_or: 'not' 'in' bitwise_or
   12181                 :            : static CmpopExprPair*
   12182                 :    9902905 : notin_bitwise_or_rule(Parser *p)
   12183                 :            : {
   12184         [ -  + ]:    9902905 :     if (p->level++ == MAXSTACK) {
   12185                 :          0 :         p->error_indicator = 1;
   12186                 :            :         PyErr_NoMemory();
   12187                 :            :     }
   12188         [ -  + ]:    9902905 :     if (p->error_indicator) {
   12189                 :          0 :         p->level--;
   12190                 :          0 :         return NULL;
   12191                 :            :     }
   12192                 :    9902905 :     CmpopExprPair* _res = NULL;
   12193                 :    9902905 :     int _mark = p->mark;
   12194                 :            :     { // 'not' 'in' bitwise_or
   12195         [ -  + ]:    9902905 :         if (p->error_indicator) {
   12196                 :          0 :             p->level--;
   12197                 :          0 :             return NULL;
   12198                 :            :         }
   12199                 :            :         D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
   12200                 :            :         Token * _keyword;
   12201                 :            :         Token * _keyword_1;
   12202                 :            :         expr_ty a;
   12203         [ +  + ]:    9902905 :         if (
   12204                 :    9902905 :             (_keyword = _PyPegen_expect_token(p, 581))  // token='not'
   12205         [ +  - ]:      10798 :             &&
   12206                 :      10798 :             (_keyword_1 = _PyPegen_expect_token(p, 643))  // token='in'
   12207         [ +  - ]:      10798 :             &&
   12208                 :      10798 :             (a = bitwise_or_rule(p))  // bitwise_or
   12209                 :            :         )
   12210                 :            :         {
   12211                 :            :             D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
   12212                 :      10798 :             _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
   12213   [ -  +  -  - ]:      10798 :             if (_res == NULL && PyErr_Occurred()) {
   12214                 :          0 :                 p->error_indicator = 1;
   12215                 :          0 :                 p->level--;
   12216                 :          0 :                 return NULL;
   12217                 :            :             }
   12218                 :      10798 :             goto done;
   12219                 :            :         }
   12220                 :    9892107 :         p->mark = _mark;
   12221                 :            :         D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
   12222                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
   12223                 :            :     }
   12224                 :    9892107 :     _res = NULL;
   12225                 :    9902905 :   done:
   12226                 :    9902905 :     p->level--;
   12227                 :    9902905 :     return _res;
   12228                 :            : }
   12229                 :            : 
   12230                 :            : // in_bitwise_or: 'in' bitwise_or
   12231                 :            : static CmpopExprPair*
   12232                 :    9892107 : in_bitwise_or_rule(Parser *p)
   12233                 :            : {
   12234         [ -  + ]:    9892107 :     if (p->level++ == MAXSTACK) {
   12235                 :          0 :         p->error_indicator = 1;
   12236                 :            :         PyErr_NoMemory();
   12237                 :            :     }
   12238         [ -  + ]:    9892107 :     if (p->error_indicator) {
   12239                 :          0 :         p->level--;
   12240                 :          0 :         return NULL;
   12241                 :            :     }
   12242                 :    9892107 :     CmpopExprPair* _res = NULL;
   12243                 :    9892107 :     int _mark = p->mark;
   12244                 :            :     { // 'in' bitwise_or
   12245         [ -  + ]:    9892107 :         if (p->error_indicator) {
   12246                 :          0 :             p->level--;
   12247                 :          0 :             return NULL;
   12248                 :            :         }
   12249                 :            :         D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
   12250                 :            :         Token * _keyword;
   12251                 :            :         expr_ty a;
   12252         [ +  + ]:    9892107 :         if (
   12253                 :    9892107 :             (_keyword = _PyPegen_expect_token(p, 643))  // token='in'
   12254         [ +  - ]:      32047 :             &&
   12255                 :      32047 :             (a = bitwise_or_rule(p))  // bitwise_or
   12256                 :            :         )
   12257                 :            :         {
   12258                 :            :             D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
   12259                 :      32047 :             _res = _PyPegen_cmpop_expr_pair ( p , In , a );
   12260   [ -  +  -  - ]:      32047 :             if (_res == NULL && PyErr_Occurred()) {
   12261                 :          0 :                 p->error_indicator = 1;
   12262                 :          0 :                 p->level--;
   12263                 :          0 :                 return NULL;
   12264                 :            :             }
   12265                 :      32047 :             goto done;
   12266                 :            :         }
   12267                 :    9860060 :         p->mark = _mark;
   12268                 :            :         D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
   12269                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
   12270                 :            :     }
   12271                 :    9860060 :     _res = NULL;
   12272                 :    9892107 :   done:
   12273                 :    9892107 :     p->level--;
   12274                 :    9892107 :     return _res;
   12275                 :            : }
   12276                 :            : 
   12277                 :            : // isnot_bitwise_or: 'is' 'not' bitwise_or
   12278                 :            : static CmpopExprPair*
   12279                 :    9860060 : isnot_bitwise_or_rule(Parser *p)
   12280                 :            : {
   12281         [ -  + ]:    9860060 :     if (p->level++ == MAXSTACK) {
   12282                 :          0 :         p->error_indicator = 1;
   12283                 :            :         PyErr_NoMemory();
   12284                 :            :     }
   12285         [ -  + ]:    9860060 :     if (p->error_indicator) {
   12286                 :          0 :         p->level--;
   12287                 :          0 :         return NULL;
   12288                 :            :     }
   12289                 :    9860060 :     CmpopExprPair* _res = NULL;
   12290                 :    9860060 :     int _mark = p->mark;
   12291                 :            :     { // 'is' 'not' bitwise_or
   12292         [ -  + ]:    9860060 :         if (p->error_indicator) {
   12293                 :          0 :             p->level--;
   12294                 :          0 :             return NULL;
   12295                 :            :         }
   12296                 :            :         D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
   12297                 :            :         Token * _keyword;
   12298                 :            :         Token * _keyword_1;
   12299                 :            :         expr_ty a;
   12300         [ +  + ]:    9860060 :         if (
   12301                 :    9860060 :             (_keyword = _PyPegen_expect_token(p, 582))  // token='is'
   12302         [ +  + ]:      67925 :             &&
   12303                 :      67925 :             (_keyword_1 = _PyPegen_expect_token(p, 581))  // token='not'
   12304         [ +  - ]:      28341 :             &&
   12305                 :      28341 :             (a = bitwise_or_rule(p))  // bitwise_or
   12306                 :            :         )
   12307                 :            :         {
   12308                 :            :             D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
   12309                 :      28341 :             _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
   12310   [ -  +  -  - ]:      28341 :             if (_res == NULL && PyErr_Occurred()) {
   12311                 :          0 :                 p->error_indicator = 1;
   12312                 :          0 :                 p->level--;
   12313                 :          0 :                 return NULL;
   12314                 :            :             }
   12315                 :      28341 :             goto done;
   12316                 :            :         }
   12317                 :    9831719 :         p->mark = _mark;
   12318                 :            :         D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
   12319                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
   12320                 :            :     }
   12321                 :    9831719 :     _res = NULL;
   12322                 :    9860060 :   done:
   12323                 :    9860060 :     p->level--;
   12324                 :    9860060 :     return _res;
   12325                 :            : }
   12326                 :            : 
   12327                 :            : // is_bitwise_or: 'is' bitwise_or
   12328                 :            : static CmpopExprPair*
   12329                 :    9831719 : is_bitwise_or_rule(Parser *p)
   12330                 :            : {
   12331         [ -  + ]:    9831719 :     if (p->level++ == MAXSTACK) {
   12332                 :          0 :         p->error_indicator = 1;
   12333                 :            :         PyErr_NoMemory();
   12334                 :            :     }
   12335         [ -  + ]:    9831719 :     if (p->error_indicator) {
   12336                 :          0 :         p->level--;
   12337                 :          0 :         return NULL;
   12338                 :            :     }
   12339                 :    9831719 :     CmpopExprPair* _res = NULL;
   12340                 :    9831719 :     int _mark = p->mark;
   12341                 :            :     { // 'is' bitwise_or
   12342         [ -  + ]:    9831719 :         if (p->error_indicator) {
   12343                 :          0 :             p->level--;
   12344                 :          0 :             return NULL;
   12345                 :            :         }
   12346                 :            :         D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
   12347                 :            :         Token * _keyword;
   12348                 :            :         expr_ty a;
   12349         [ +  + ]:    9831719 :         if (
   12350                 :    9831719 :             (_keyword = _PyPegen_expect_token(p, 582))  // token='is'
   12351         [ +  - ]:      39584 :             &&
   12352                 :      39584 :             (a = bitwise_or_rule(p))  // bitwise_or
   12353                 :            :         )
   12354                 :            :         {
   12355                 :            :             D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
   12356                 :      39584 :             _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
   12357   [ -  +  -  - ]:      39584 :             if (_res == NULL && PyErr_Occurred()) {
   12358                 :          0 :                 p->error_indicator = 1;
   12359                 :          0 :                 p->level--;
   12360                 :          0 :                 return NULL;
   12361                 :            :             }
   12362                 :      39584 :             goto done;
   12363                 :            :         }
   12364                 :    9792135 :         p->mark = _mark;
   12365                 :            :         D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
   12366                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
   12367                 :            :     }
   12368                 :    9792135 :     _res = NULL;
   12369                 :    9831719 :   done:
   12370                 :    9831719 :     p->level--;
   12371                 :    9831719 :     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                 :   46557699 : bitwise_or_rule(Parser *p)
   12379                 :            : {
   12380         [ -  + ]:   46557699 :     if (p->level++ == MAXSTACK) {
   12381                 :          0 :         p->error_indicator = 1;
   12382                 :            :         PyErr_NoMemory();
   12383                 :            :     }
   12384                 :   46557699 :     expr_ty _res = NULL;
   12385         [ +  + ]:   46557699 :     if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
   12386                 :   34225786 :         p->level--;
   12387                 :   34225786 :         return _res;
   12388                 :            :     }
   12389                 :   12331913 :     int _mark = p->mark;
   12390                 :   12331913 :     int _resmark = p->mark;
   12391                 :   10047751 :     while (1) {
   12392                 :   22379664 :         int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
   12393         [ -  + ]:   22379664 :         if (tmpvar_2) {
   12394                 :          0 :             p->level--;
   12395                 :          0 :             return _res;
   12396                 :            :         }
   12397                 :   22379664 :         p->mark = _mark;
   12398                 :   22379664 :         void *_raw = bitwise_or_raw(p);
   12399         [ +  + ]:   22379664 :         if (p->error_indicator) {
   12400                 :        850 :             p->level--;
   12401                 :        850 :             return NULL;
   12402                 :            :         }
   12403   [ +  +  +  + ]:   22378814 :         if (_raw == NULL || p->mark <= _resmark)
   12404                 :            :             break;
   12405                 :   10047751 :         _resmark = p->mark;
   12406                 :   10047751 :         _res = _raw;
   12407                 :            :     }
   12408                 :   12331063 :     p->mark = _resmark;
   12409                 :   12331063 :     p->level--;
   12410                 :   12331063 :     return _res;
   12411                 :            : }
   12412                 :            : static expr_ty
   12413                 :   22379664 : bitwise_or_raw(Parser *p)
   12414                 :            : {
   12415         [ -  + ]:   22379664 :     if (p->level++ == MAXSTACK) {
   12416                 :          0 :         p->error_indicator = 1;
   12417                 :            :         PyErr_NoMemory();
   12418                 :            :     }
   12419         [ -  + ]:   22379664 :     if (p->error_indicator) {
   12420                 :          0 :         p->level--;
   12421                 :          0 :         return NULL;
   12422                 :            :     }
   12423                 :   22379664 :     expr_ty _res = NULL;
   12424                 :   22379664 :     int _mark = p->mark;
   12425   [ -  +  -  - ]:   22379664 :     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                 :   22379664 :     int _start_lineno = p->tokens[_mark]->lineno;
   12431                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   12432                 :   22379664 :     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         [ -  + ]:   22379664 :         if (p->error_indicator) {
   12436                 :          0 :             p->level--;
   12437                 :          0 :             return NULL;
   12438                 :            :         }
   12439                 :            :         D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
   12440                 :            :         Token * _literal;
   12441                 :            :         expr_ty a;
   12442                 :            :         expr_ty b;
   12443         [ +  + ]:   22379664 :         if (
   12444                 :   22379664 :             (a = bitwise_or_rule(p))  // bitwise_or
   12445         [ +  + ]:   10047751 :             &&
   12446                 :   10047751 :             (_literal = _PyPegen_expect_token(p, 18))  // token='|'
   12447         [ +  + ]:       7968 :             &&
   12448                 :       7968 :             (b = bitwise_xor_rule(p))  // bitwise_xor
   12449                 :            :         )
   12450                 :            :         {
   12451                 :            :             D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
   12452                 :       7964 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   12453         [ -  + ]:       7964 :             if (_token == NULL) {
   12454                 :          0 :                 p->level--;
   12455                 :          0 :                 return NULL;
   12456                 :            :             }
   12457                 :       7964 :             int _end_lineno = _token->end_lineno;
   12458                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   12459                 :       7964 :             int _end_col_offset = _token->end_col_offset;
   12460                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   12461                 :       7964 :             _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
   12462   [ -  +  -  - ]:       7964 :             if (_res == NULL && PyErr_Occurred()) {
   12463                 :          0 :                 p->error_indicator = 1;
   12464                 :          0 :                 p->level--;
   12465                 :          0 :                 return NULL;
   12466                 :            :             }
   12467                 :       7964 :             goto done;
   12468                 :            :         }
   12469                 :   22371700 :         p->mark = _mark;
   12470                 :            :         D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
   12471                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
   12472                 :            :     }
   12473                 :            :     { // bitwise_xor
   12474         [ -  + ]:   22371700 :         if (p->error_indicator) {
   12475                 :          0 :             p->level--;
   12476                 :          0 :             return NULL;
   12477                 :            :         }
   12478                 :            :         D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
   12479                 :            :         expr_ty bitwise_xor_var;
   12480         [ +  + ]:   22371700 :         if (
   12481                 :   22371700 :             (bitwise_xor_var = bitwise_xor_rule(p))  // bitwise_xor
   12482                 :            :         )
   12483                 :            :         {
   12484                 :            :             D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
   12485                 :   20079574 :             _res = bitwise_xor_var;
   12486                 :   20079574 :             goto done;
   12487                 :            :         }
   12488                 :    2292126 :         p->mark = _mark;
   12489                 :            :         D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
   12490                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
   12491                 :            :     }
   12492                 :    2292126 :     _res = NULL;
   12493                 :   22379664 :   done:
   12494                 :   22379664 :     p->level--;
   12495                 :   22379664 :     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                 :   44768314 : bitwise_xor_rule(Parser *p)
   12503                 :            : {
   12504         [ -  + ]:   44768314 :     if (p->level++ == MAXSTACK) {
   12505                 :          0 :         p->error_indicator = 1;
   12506                 :            :         PyErr_NoMemory();
   12507                 :            :     }
   12508                 :   44768314 :     expr_ty _res = NULL;
   12509         [ +  + ]:   44768314 :     if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
   12510                 :   32428433 :         p->level--;
   12511                 :   32428433 :         return _res;
   12512                 :            :     }
   12513                 :   12339881 :     int _mark = p->mark;
   12514                 :   12339881 :     int _resmark = p->mark;
   12515                 :   10048765 :     while (1) {
   12516                 :   22388646 :         int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
   12517         [ -  + ]:   22388646 :         if (tmpvar_3) {
   12518                 :          0 :             p->level--;
   12519                 :          0 :             return _res;
   12520                 :            :         }
   12521                 :   22388646 :         p->mark = _mark;
   12522                 :   22388646 :         void *_raw = bitwise_xor_raw(p);
   12523         [ +  + ]:   22388646 :         if (p->error_indicator) {
   12524                 :        850 :             p->level--;
   12525                 :        850 :             return NULL;
   12526                 :            :         }
   12527   [ +  +  +  + ]:   22387796 :         if (_raw == NULL || p->mark <= _resmark)
   12528                 :            :             break;
   12529                 :   10048765 :         _resmark = p->mark;
   12530                 :   10048765 :         _res = _raw;
   12531                 :            :     }
   12532                 :   12339031 :     p->mark = _resmark;
   12533                 :   12339031 :     p->level--;
   12534                 :   12339031 :     return _res;
   12535                 :            : }
   12536                 :            : static expr_ty
   12537                 :   22388646 : bitwise_xor_raw(Parser *p)
   12538                 :            : {
   12539         [ -  + ]:   22388646 :     if (p->level++ == MAXSTACK) {
   12540                 :          0 :         p->error_indicator = 1;
   12541                 :            :         PyErr_NoMemory();
   12542                 :            :     }
   12543         [ -  + ]:   22388646 :     if (p->error_indicator) {
   12544                 :          0 :         p->level--;
   12545                 :          0 :         return NULL;
   12546                 :            :     }
   12547                 :   22388646 :     expr_ty _res = NULL;
   12548                 :   22388646 :     int _mark = p->mark;
   12549   [ -  +  -  - ]:   22388646 :     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                 :   22388646 :     int _start_lineno = p->tokens[_mark]->lineno;
   12555                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   12556                 :   22388646 :     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         [ -  + ]:   22388646 :         if (p->error_indicator) {
   12560                 :          0 :             p->level--;
   12561                 :          0 :             return NULL;
   12562                 :            :         }
   12563                 :            :         D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
   12564                 :            :         Token * _literal;
   12565                 :            :         expr_ty a;
   12566                 :            :         expr_ty b;
   12567         [ +  + ]:   22388646 :         if (
   12568                 :   22388646 :             (a = bitwise_xor_rule(p))  // bitwise_xor
   12569         [ +  + ]:   10048765 :             &&
   12570                 :   10048765 :             (_literal = _PyPegen_expect_token(p, 32))  // token='^'
   12571         [ +  - ]:       1014 :             &&
   12572                 :       1014 :             (b = bitwise_and_rule(p))  // bitwise_and
   12573                 :            :         )
   12574                 :            :         {
   12575                 :            :             D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
   12576                 :       1014 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   12577         [ -  + ]:       1014 :             if (_token == NULL) {
   12578                 :          0 :                 p->level--;
   12579                 :          0 :                 return NULL;
   12580                 :            :             }
   12581                 :       1014 :             int _end_lineno = _token->end_lineno;
   12582                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   12583                 :       1014 :             int _end_col_offset = _token->end_col_offset;
   12584                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   12585                 :       1014 :             _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
   12586   [ -  +  -  - ]:       1014 :             if (_res == NULL && PyErr_Occurred()) {
   12587                 :          0 :                 p->error_indicator = 1;
   12588                 :          0 :                 p->level--;
   12589                 :          0 :                 return NULL;
   12590                 :            :             }
   12591                 :       1014 :             goto done;
   12592                 :            :         }
   12593                 :   22387632 :         p->mark = _mark;
   12594                 :            :         D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
   12595                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
   12596                 :            :     }
   12597                 :            :     { // bitwise_and
   12598         [ -  + ]:   22387632 :         if (p->error_indicator) {
   12599                 :          0 :             p->level--;
   12600                 :          0 :             return NULL;
   12601                 :            :         }
   12602                 :            :         D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
   12603                 :            :         expr_ty bitwise_and_var;
   12604         [ +  + ]:   22387632 :         if (
   12605                 :   22387632 :             (bitwise_and_var = bitwise_and_rule(p))  // bitwise_and
   12606                 :            :         )
   12607                 :            :         {
   12608                 :            :             D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
   12609                 :   20095502 :             _res = bitwise_and_var;
   12610                 :   20095502 :             goto done;
   12611                 :            :         }
   12612                 :    2292130 :         p->mark = _mark;
   12613                 :            :         D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
   12614                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
   12615                 :            :     }
   12616                 :    2292130 :     _res = NULL;
   12617                 :   22388646 :   done:
   12618                 :   22388646 :     p->level--;
   12619                 :   22388646 :     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                 :   44784691 : bitwise_and_rule(Parser *p)
   12627                 :            : {
   12628         [ -  + ]:   44784691 :     if (p->level++ == MAXSTACK) {
   12629                 :          0 :         p->error_indicator = 1;
   12630                 :            :         PyErr_NoMemory();
   12631                 :            :     }
   12632                 :   44784691 :     expr_ty _res = NULL;
   12633         [ +  + ]:   44784691 :     if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
   12634                 :   32443796 :         p->level--;
   12635                 :   32443796 :         return _res;
   12636                 :            :     }
   12637                 :   12340895 :     int _mark = p->mark;
   12638                 :   12340895 :     int _resmark = p->mark;
   12639                 :   10055150 :     while (1) {
   12640                 :   22396045 :         int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
   12641         [ -  + ]:   22396045 :         if (tmpvar_4) {
   12642                 :          0 :             p->level--;
   12643                 :          0 :             return _res;
   12644                 :            :         }
   12645                 :   22396045 :         p->mark = _mark;
   12646                 :   22396045 :         void *_raw = bitwise_and_raw(p);
   12647         [ +  + ]:   22396045 :         if (p->error_indicator) {
   12648                 :        850 :             p->level--;
   12649                 :        850 :             return NULL;
   12650                 :            :         }
   12651   [ +  +  +  + ]:   22395195 :         if (_raw == NULL || p->mark <= _resmark)
   12652                 :            :             break;
   12653                 :   10055150 :         _resmark = p->mark;
   12654                 :   10055150 :         _res = _raw;
   12655                 :            :     }
   12656                 :   12340045 :     p->mark = _resmark;
   12657                 :   12340045 :     p->level--;
   12658                 :   12340045 :     return _res;
   12659                 :            : }
   12660                 :            : static expr_ty
   12661                 :   22396045 : bitwise_and_raw(Parser *p)
   12662                 :            : {
   12663         [ -  + ]:   22396045 :     if (p->level++ == MAXSTACK) {
   12664                 :          0 :         p->error_indicator = 1;
   12665                 :            :         PyErr_NoMemory();
   12666                 :            :     }
   12667         [ -  + ]:   22396045 :     if (p->error_indicator) {
   12668                 :          0 :         p->level--;
   12669                 :          0 :         return NULL;
   12670                 :            :     }
   12671                 :   22396045 :     expr_ty _res = NULL;
   12672                 :   22396045 :     int _mark = p->mark;
   12673   [ -  +  -  - ]:   22396045 :     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                 :   22396045 :     int _start_lineno = p->tokens[_mark]->lineno;
   12679                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   12680                 :   22396045 :     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         [ -  + ]:   22396045 :         if (p->error_indicator) {
   12684                 :          0 :             p->level--;
   12685                 :          0 :             return NULL;
   12686                 :            :         }
   12687                 :            :         D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
   12688                 :            :         Token * _literal;
   12689                 :            :         expr_ty a;
   12690                 :            :         expr_ty b;
   12691         [ +  + ]:   22396045 :         if (
   12692                 :   22396045 :             (a = bitwise_and_rule(p))  // bitwise_and
   12693         [ +  + ]:   10055150 :             &&
   12694                 :   10055150 :             (_literal = _PyPegen_expect_token(p, 19))  // token='&'
   12695         [ +  - ]:       6385 :             &&
   12696                 :       6385 :             (b = shift_expr_rule(p))  // shift_expr
   12697                 :            :         )
   12698                 :            :         {
   12699                 :            :             D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
   12700                 :       6385 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   12701         [ -  + ]:       6385 :             if (_token == NULL) {
   12702                 :          0 :                 p->level--;
   12703                 :          0 :                 return NULL;
   12704                 :            :             }
   12705                 :       6385 :             int _end_lineno = _token->end_lineno;
   12706                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   12707                 :       6385 :             int _end_col_offset = _token->end_col_offset;
   12708                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   12709                 :       6385 :             _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
   12710   [ -  +  -  - ]:       6385 :             if (_res == NULL && PyErr_Occurred()) {
   12711                 :          0 :                 p->error_indicator = 1;
   12712                 :          0 :                 p->level--;
   12713                 :          0 :                 return NULL;
   12714                 :            :             }
   12715                 :       6385 :             goto done;
   12716                 :            :         }
   12717                 :   22389660 :         p->mark = _mark;
   12718                 :            :         D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
   12719                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
   12720                 :            :     }
   12721                 :            :     { // shift_expr
   12722         [ -  + ]:   22389660 :         if (p->error_indicator) {
   12723                 :          0 :             p->level--;
   12724                 :          0 :             return NULL;
   12725                 :            :         }
   12726                 :            :         D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
   12727                 :            :         expr_ty shift_expr_var;
   12728         [ +  + ]:   22389660 :         if (
   12729                 :   22389660 :             (shift_expr_var = shift_expr_rule(p))  // shift_expr
   12730                 :            :         )
   12731                 :            :         {
   12732                 :            :             D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
   12733                 :   20097530 :             _res = shift_expr_var;
   12734                 :   20097530 :             goto done;
   12735                 :            :         }
   12736                 :    2292130 :         p->mark = _mark;
   12737                 :            :         D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
   12738                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
   12739                 :            :     }
   12740                 :    2292130 :     _res = NULL;
   12741                 :   22396045 :   done:
   12742                 :   22396045 :     p->level--;
   12743                 :   22396045 :     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                 :   67207102 : shift_expr_rule(Parser *p)
   12751                 :            : {
   12752         [ -  + ]:   67207102 :     if (p->level++ == MAXSTACK) {
   12753                 :          0 :         p->error_indicator = 1;
   12754                 :            :         PyErr_NoMemory();
   12755                 :            :     }
   12756                 :   67207102 :     expr_ty _res = NULL;
   12757         [ +  + ]:   67207102 :     if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
   12758                 :   54859822 :         p->level--;
   12759                 :   54859822 :         return _res;
   12760                 :            :     }
   12761                 :   12347280 :     int _mark = p->mark;
   12762                 :   12347280 :     int _resmark = p->mark;
   12763                 :   10060012 :     while (1) {
   12764                 :   22407292 :         int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
   12765         [ -  + ]:   22407292 :         if (tmpvar_5) {
   12766                 :          0 :             p->level--;
   12767                 :          0 :             return _res;
   12768                 :            :         }
   12769                 :   22407292 :         p->mark = _mark;
   12770                 :   22407292 :         void *_raw = shift_expr_raw(p);
   12771         [ +  + ]:   22407292 :         if (p->error_indicator) {
   12772                 :        850 :             p->level--;
   12773                 :        850 :             return NULL;
   12774                 :            :         }
   12775   [ +  +  +  + ]:   22406442 :         if (_raw == NULL || p->mark <= _resmark)
   12776                 :            :             break;
   12777                 :   10060012 :         _resmark = p->mark;
   12778                 :   10060012 :         _res = _raw;
   12779                 :            :     }
   12780                 :   12346430 :     p->mark = _resmark;
   12781                 :   12346430 :     p->level--;
   12782                 :   12346430 :     return _res;
   12783                 :            : }
   12784                 :            : static expr_ty
   12785                 :   22407292 : shift_expr_raw(Parser *p)
   12786                 :            : {
   12787         [ -  + ]:   22407292 :     if (p->level++ == MAXSTACK) {
   12788                 :          0 :         p->error_indicator = 1;
   12789                 :            :         PyErr_NoMemory();
   12790                 :            :     }
   12791         [ -  + ]:   22407292 :     if (p->error_indicator) {
   12792                 :          0 :         p->level--;
   12793                 :          0 :         return NULL;
   12794                 :            :     }
   12795                 :   22407292 :     expr_ty _res = NULL;
   12796                 :   22407292 :     int _mark = p->mark;
   12797   [ -  +  -  - ]:   22407292 :     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                 :   22407292 :     int _start_lineno = p->tokens[_mark]->lineno;
   12803                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   12804                 :   22407292 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   12805                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   12806                 :            :     { // shift_expr '<<' sum
   12807         [ -  + ]:   22407292 :         if (p->error_indicator) {
   12808                 :          0 :             p->level--;
   12809                 :          0 :             return NULL;
   12810                 :            :         }
   12811                 :            :         D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
   12812                 :            :         Token * _literal;
   12813                 :            :         expr_ty a;
   12814                 :            :         expr_ty b;
   12815         [ +  + ]:   22407292 :         if (
   12816                 :   22407292 :             (a = shift_expr_rule(p))  // shift_expr
   12817         [ +  + ]:   10060012 :             &&
   12818                 :   10060012 :             (_literal = _PyPegen_expect_token(p, 33))  // token='<<'
   12819         [ +  - ]:       3527 :             &&
   12820                 :       3527 :             (b = sum_rule(p))  // sum
   12821                 :            :         )
   12822                 :            :         {
   12823                 :            :             D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
   12824                 :       3527 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   12825         [ -  + ]:       3527 :             if (_token == NULL) {
   12826                 :          0 :                 p->level--;
   12827                 :          0 :                 return NULL;
   12828                 :            :             }
   12829                 :       3527 :             int _end_lineno = _token->end_lineno;
   12830                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   12831                 :       3527 :             int _end_col_offset = _token->end_col_offset;
   12832                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   12833                 :       3527 :             _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
   12834   [ -  +  -  - ]:       3527 :             if (_res == NULL && PyErr_Occurred()) {
   12835                 :          0 :                 p->error_indicator = 1;
   12836                 :          0 :                 p->level--;
   12837                 :          0 :                 return NULL;
   12838                 :            :             }
   12839                 :       3527 :             goto done;
   12840                 :            :         }
   12841                 :   22403765 :         p->mark = _mark;
   12842                 :            :         D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
   12843                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
   12844                 :            :     }
   12845                 :            :     { // shift_expr '>>' sum
   12846         [ -  + ]:   22403765 :         if (p->error_indicator) {
   12847                 :          0 :             p->level--;
   12848                 :          0 :             return NULL;
   12849                 :            :         }
   12850                 :            :         D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
   12851                 :            :         Token * _literal;
   12852                 :            :         expr_ty a;
   12853                 :            :         expr_ty b;
   12854         [ +  + ]:   22403765 :         if (
   12855                 :   22403765 :             (a = shift_expr_rule(p))  // shift_expr
   12856         [ +  + ]:   10056485 :             &&
   12857                 :   10056485 :             (_literal = _PyPegen_expect_token(p, 34))  // token='>>'
   12858         [ +  - ]:       1335 :             &&
   12859                 :       1335 :             (b = sum_rule(p))  // sum
   12860                 :            :         )
   12861                 :            :         {
   12862                 :            :             D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
   12863                 :       1335 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   12864         [ -  + ]:       1335 :             if (_token == NULL) {
   12865                 :          0 :                 p->level--;
   12866                 :          0 :                 return NULL;
   12867                 :            :             }
   12868                 :       1335 :             int _end_lineno = _token->end_lineno;
   12869                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   12870                 :       1335 :             int _end_col_offset = _token->end_col_offset;
   12871                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   12872                 :       1335 :             _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
   12873   [ -  +  -  - ]:       1335 :             if (_res == NULL && PyErr_Occurred()) {
   12874                 :          0 :                 p->error_indicator = 1;
   12875                 :          0 :                 p->level--;
   12876                 :          0 :                 return NULL;
   12877                 :            :             }
   12878                 :       1335 :             goto done;
   12879                 :            :         }
   12880                 :   22402430 :         p->mark = _mark;
   12881                 :            :         D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
   12882                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
   12883                 :            :     }
   12884                 :            :     { // sum
   12885         [ -  + ]:   22402430 :         if (p->error_indicator) {
   12886                 :          0 :             p->level--;
   12887                 :          0 :             return NULL;
   12888                 :            :         }
   12889                 :            :         D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
   12890                 :            :         expr_ty sum_var;
   12891         [ +  + ]:   22402430 :         if (
   12892                 :   22402430 :             (sum_var = sum_rule(p))  // sum
   12893                 :            :         )
   12894                 :            :         {
   12895                 :            :             D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
   12896                 :   20110300 :             _res = sum_var;
   12897                 :   20110300 :             goto done;
   12898                 :            :         }
   12899                 :    2292130 :         p->mark = _mark;
   12900                 :            :         D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
   12901                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
   12902                 :            :     }
   12903                 :    2292130 :     _res = NULL;
   12904                 :   22407292 :   done:
   12905                 :   22407292 :     p->level--;
   12906                 :   22407292 :     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                 :   67423508 : sum_rule(Parser *p)
   12914                 :            : {
   12915         [ -  + ]:   67423508 :     if (p->level++ == MAXSTACK) {
   12916                 :          0 :         p->error_indicator = 1;
   12917                 :            :         PyErr_NoMemory();
   12918                 :            :     }
   12919                 :   67423508 :     expr_ty _res = NULL;
   12920         [ +  + ]:   67423508 :     if (_PyPegen_is_memoized(p, sum_type, &_res)) {
   12921                 :   55071366 :         p->level--;
   12922                 :   55071366 :         return _res;
   12923                 :            :     }
   12924                 :   12352142 :     int _mark = p->mark;
   12925                 :   12352142 :     int _resmark = p->mark;
   12926                 :   10203014 :     while (1) {
   12927                 :   22555156 :         int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
   12928         [ -  + ]:   22555156 :         if (tmpvar_6) {
   12929                 :          0 :             p->level--;
   12930                 :          0 :             return _res;
   12931                 :            :         }
   12932                 :   22555156 :         p->mark = _mark;
   12933                 :   22555156 :         void *_raw = sum_raw(p);
   12934         [ +  + ]:   22555156 :         if (p->error_indicator) {
   12935                 :        850 :             p->level--;
   12936                 :        850 :             return NULL;
   12937                 :            :         }
   12938   [ +  +  +  + ]:   22554306 :         if (_raw == NULL || p->mark <= _resmark)
   12939                 :            :             break;
   12940                 :   10203014 :         _resmark = p->mark;
   12941                 :   10203014 :         _res = _raw;
   12942                 :            :     }
   12943                 :   12351292 :     p->mark = _resmark;
   12944                 :   12351292 :     p->level--;
   12945                 :   12351292 :     return _res;
   12946                 :            : }
   12947                 :            : static expr_ty
   12948                 :   22555156 : sum_raw(Parser *p)
   12949                 :            : {
   12950         [ -  + ]:   22555156 :     if (p->level++ == MAXSTACK) {
   12951                 :          0 :         p->error_indicator = 1;
   12952                 :            :         PyErr_NoMemory();
   12953                 :            :     }
   12954         [ -  + ]:   22555156 :     if (p->error_indicator) {
   12955                 :          0 :         p->level--;
   12956                 :          0 :         return NULL;
   12957                 :            :     }
   12958                 :   22555156 :     expr_ty _res = NULL;
   12959                 :   22555156 :     int _mark = p->mark;
   12960   [ -  +  -  - ]:   22555156 :     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                 :   22555156 :     int _start_lineno = p->tokens[_mark]->lineno;
   12966                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   12967                 :   22555156 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   12968                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   12969                 :            :     { // sum '+' term
   12970         [ -  + ]:   22555156 :         if (p->error_indicator) {
   12971                 :          0 :             p->level--;
   12972                 :          0 :             return NULL;
   12973                 :            :         }
   12974                 :            :         D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
   12975                 :            :         Token * _literal;
   12976                 :            :         expr_ty a;
   12977                 :            :         expr_ty b;
   12978         [ +  + ]:   22555156 :         if (
   12979                 :   22555156 :             (a = sum_rule(p))  // sum
   12980         [ +  + ]:   10203014 :             &&
   12981                 :   10203014 :             (_literal = _PyPegen_expect_token(p, 14))  // token='+'
   12982         [ +  + ]:      94128 :             &&
   12983                 :      94128 :             (b = term_rule(p))  // term
   12984                 :            :         )
   12985                 :            :         {
   12986                 :            :             D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
   12987                 :      94080 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   12988         [ -  + ]:      94080 :             if (_token == NULL) {
   12989                 :          0 :                 p->level--;
   12990                 :          0 :                 return NULL;
   12991                 :            :             }
   12992                 :      94080 :             int _end_lineno = _token->end_lineno;
   12993                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   12994                 :      94080 :             int _end_col_offset = _token->end_col_offset;
   12995                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   12996                 :      94080 :             _res = _PyAST_BinOp ( a , Add , b , EXTRA );
   12997   [ -  +  -  - ]:      94080 :             if (_res == NULL && PyErr_Occurred()) {
   12998                 :          0 :                 p->error_indicator = 1;
   12999                 :          0 :                 p->level--;
   13000                 :          0 :                 return NULL;
   13001                 :            :             }
   13002                 :      94080 :             goto done;
   13003                 :            :         }
   13004                 :   22461076 :         p->mark = _mark;
   13005                 :            :         D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
   13006                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
   13007                 :            :     }
   13008                 :            :     { // sum '-' term
   13009         [ +  + ]:   22461076 :         if (p->error_indicator) {
   13010                 :         16 :             p->level--;
   13011                 :         16 :             return NULL;
   13012                 :            :         }
   13013                 :            :         D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
   13014                 :            :         Token * _literal;
   13015                 :            :         expr_ty a;
   13016                 :            :         expr_ty b;
   13017         [ +  + ]:   22461060 :         if (
   13018                 :   22461060 :             (a = sum_rule(p))  // sum
   13019         [ +  + ]:   10108918 :             &&
   13020                 :   10108918 :             (_literal = _PyPegen_expect_token(p, 15))  // token='-'
   13021         [ +  + ]:      48906 :             &&
   13022                 :      48906 :             (b = term_rule(p))  // term
   13023                 :            :         )
   13024                 :            :         {
   13025                 :            :             D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
   13026                 :      48905 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13027         [ -  + ]:      48905 :             if (_token == NULL) {
   13028                 :          0 :                 p->level--;
   13029                 :          0 :                 return NULL;
   13030                 :            :             }
   13031                 :      48905 :             int _end_lineno = _token->end_lineno;
   13032                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13033                 :      48905 :             int _end_col_offset = _token->end_col_offset;
   13034                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13035                 :      48905 :             _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
   13036   [ -  +  -  - ]:      48905 :             if (_res == NULL && PyErr_Occurred()) {
   13037                 :          0 :                 p->error_indicator = 1;
   13038                 :          0 :                 p->level--;
   13039                 :          0 :                 return NULL;
   13040                 :            :             }
   13041                 :      48905 :             goto done;
   13042                 :            :         }
   13043                 :   22412155 :         p->mark = _mark;
   13044                 :            :         D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
   13045                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
   13046                 :            :     }
   13047                 :            :     { // term
   13048         [ +  + ]:   22412155 :         if (p->error_indicator) {
   13049                 :          1 :             p->level--;
   13050                 :          1 :             return NULL;
   13051                 :            :         }
   13052                 :            :         D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
   13053                 :            :         expr_ty term_var;
   13054         [ +  + ]:   22412154 :         if (
   13055                 :   22412154 :             (term_var = term_rule(p))  // term
   13056                 :            :         )
   13057                 :            :         {
   13058                 :            :             D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
   13059                 :   20120041 :             _res = term_var;
   13060                 :   20120041 :             goto done;
   13061                 :            :         }
   13062                 :    2292113 :         p->mark = _mark;
   13063                 :            :         D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
   13064                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
   13065                 :            :     }
   13066                 :    2292113 :     _res = NULL;
   13067                 :   22555139 :   done:
   13068                 :   22555139 :     p->level--;
   13069                 :   22555139 :     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                 :  136663092 : term_rule(Parser *p)
   13083                 :            : {
   13084         [ -  + ]:  136663092 :     if (p->level++ == MAXSTACK) {
   13085                 :          0 :         p->error_indicator = 1;
   13086                 :            :         PyErr_NoMemory();
   13087                 :            :     }
   13088                 :  136663092 :     expr_ty _res = NULL;
   13089         [ +  + ]:  136663092 :     if (_PyPegen_is_memoized(p, term_type, &_res)) {
   13090                 :  124167927 :         p->level--;
   13091                 :  124167927 :         return _res;
   13092                 :            :     }
   13093                 :   12495165 :     int _mark = p->mark;
   13094                 :   12495165 :     int _resmark = p->mark;
   13095                 :   10609899 :     while (1) {
   13096                 :   23105064 :         int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
   13097         [ -  + ]:   23105064 :         if (tmpvar_7) {
   13098                 :          0 :             p->level--;
   13099                 :          0 :             return _res;
   13100                 :            :         }
   13101                 :   23105064 :         p->mark = _mark;
   13102                 :   23105064 :         void *_raw = term_raw(p);
   13103         [ +  + ]:   23105064 :         if (p->error_indicator) {
   13104                 :        840 :             p->level--;
   13105                 :        840 :             return NULL;
   13106                 :            :         }
   13107   [ +  +  +  + ]:   23104224 :         if (_raw == NULL || p->mark <= _resmark)
   13108                 :            :             break;
   13109                 :   10609899 :         _resmark = p->mark;
   13110                 :   10609899 :         _res = _raw;
   13111                 :            :     }
   13112                 :   12494325 :     p->mark = _resmark;
   13113                 :   12494325 :     p->level--;
   13114                 :   12494325 :     return _res;
   13115                 :            : }
   13116                 :            : static expr_ty
   13117                 :   23105064 : term_raw(Parser *p)
   13118                 :            : {
   13119         [ -  + ]:   23105064 :     if (p->level++ == MAXSTACK) {
   13120                 :          0 :         p->error_indicator = 1;
   13121                 :            :         PyErr_NoMemory();
   13122                 :            :     }
   13123         [ -  + ]:   23105064 :     if (p->error_indicator) {
   13124                 :          0 :         p->level--;
   13125                 :          0 :         return NULL;
   13126                 :            :     }
   13127                 :   23105064 :     expr_ty _res = NULL;
   13128                 :   23105064 :     int _mark = p->mark;
   13129   [ -  +  -  - ]:   23105064 :     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                 :   23105064 :     int _start_lineno = p->tokens[_mark]->lineno;
   13135                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   13136                 :   23105064 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   13137                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   13138                 :            :     { // term '*' factor
   13139         [ -  + ]:   23105064 :         if (p->error_indicator) {
   13140                 :          0 :             p->level--;
   13141                 :          0 :             return NULL;
   13142                 :            :         }
   13143                 :            :         D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
   13144                 :            :         Token * _literal;
   13145                 :            :         expr_ty a;
   13146                 :            :         expr_ty b;
   13147         [ +  + ]:   23105064 :         if (
   13148                 :   23105064 :             (a = term_rule(p))  // term
   13149         [ +  + ]:   10609899 :             &&
   13150                 :   10609899 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   13151         [ +  - ]:     330923 :             &&
   13152                 :     330923 :             (b = factor_rule(p))  // factor
   13153                 :            :         )
   13154                 :            :         {
   13155                 :            :             D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
   13156                 :     330923 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13157         [ -  + ]:     330923 :             if (_token == NULL) {
   13158                 :          0 :                 p->level--;
   13159                 :          0 :                 return NULL;
   13160                 :            :             }
   13161                 :     330923 :             int _end_lineno = _token->end_lineno;
   13162                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13163                 :     330923 :             int _end_col_offset = _token->end_col_offset;
   13164                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13165                 :     330923 :             _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
   13166   [ -  +  -  - ]:     330923 :             if (_res == NULL && PyErr_Occurred()) {
   13167                 :          0 :                 p->error_indicator = 1;
   13168                 :          0 :                 p->level--;
   13169                 :          0 :                 return NULL;
   13170                 :            :             }
   13171                 :     330923 :             goto done;
   13172                 :            :         }
   13173                 :   22774141 :         p->mark = _mark;
   13174                 :            :         D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
   13175                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
   13176                 :            :     }
   13177                 :            :     { // term '/' factor
   13178         [ -  + ]:   22774141 :         if (p->error_indicator) {
   13179                 :          0 :             p->level--;
   13180                 :          0 :             return NULL;
   13181                 :            :         }
   13182                 :            :         D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
   13183                 :            :         Token * _literal;
   13184                 :            :         expr_ty a;
   13185                 :            :         expr_ty b;
   13186         [ +  + ]:   22774141 :         if (
   13187                 :   22774141 :             (a = term_rule(p))  // term
   13188         [ +  + ]:   10278976 :             &&
   13189                 :   10278976 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
   13190         [ +  + ]:       7193 :             &&
   13191                 :       7193 :             (b = factor_rule(p))  // factor
   13192                 :            :         )
   13193                 :            :         {
   13194                 :            :             D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
   13195                 :       7187 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13196         [ -  + ]:       7187 :             if (_token == NULL) {
   13197                 :          0 :                 p->level--;
   13198                 :          0 :                 return NULL;
   13199                 :            :             }
   13200                 :       7187 :             int _end_lineno = _token->end_lineno;
   13201                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13202                 :       7187 :             int _end_col_offset = _token->end_col_offset;
   13203                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13204                 :       7187 :             _res = _PyAST_BinOp ( a , Div , b , EXTRA );
   13205   [ -  +  -  - ]:       7187 :             if (_res == NULL && PyErr_Occurred()) {
   13206                 :          0 :                 p->error_indicator = 1;
   13207                 :          0 :                 p->level--;
   13208                 :          0 :                 return NULL;
   13209                 :            :             }
   13210                 :       7187 :             goto done;
   13211                 :            :         }
   13212                 :   22766954 :         p->mark = _mark;
   13213                 :            :         D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
   13214                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
   13215                 :            :     }
   13216                 :            :     { // term '//' factor
   13217         [ -  + ]:   22766954 :         if (p->error_indicator) {
   13218                 :          0 :             p->level--;
   13219                 :          0 :             return NULL;
   13220                 :            :         }
   13221                 :            :         D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
   13222                 :            :         Token * _literal;
   13223                 :            :         expr_ty a;
   13224                 :            :         expr_ty b;
   13225         [ +  + ]:   22766954 :         if (
   13226                 :   22766954 :             (a = term_rule(p))  // term
   13227         [ +  + ]:   10271789 :             &&
   13228                 :   10271789 :             (_literal = _PyPegen_expect_token(p, 47))  // token='//'
   13229         [ +  - ]:       3459 :             &&
   13230                 :       3459 :             (b = factor_rule(p))  // factor
   13231                 :            :         )
   13232                 :            :         {
   13233                 :            :             D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
   13234                 :       3459 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13235         [ -  + ]:       3459 :             if (_token == NULL) {
   13236                 :          0 :                 p->level--;
   13237                 :          0 :                 return NULL;
   13238                 :            :             }
   13239                 :       3459 :             int _end_lineno = _token->end_lineno;
   13240                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13241                 :       3459 :             int _end_col_offset = _token->end_col_offset;
   13242                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13243                 :       3459 :             _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
   13244   [ -  +  -  - ]:       3459 :             if (_res == NULL && PyErr_Occurred()) {
   13245                 :          0 :                 p->error_indicator = 1;
   13246                 :          0 :                 p->level--;
   13247                 :          0 :                 return NULL;
   13248                 :            :             }
   13249                 :       3459 :             goto done;
   13250                 :            :         }
   13251                 :   22763495 :         p->mark = _mark;
   13252                 :            :         D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
   13253                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
   13254                 :            :     }
   13255                 :            :     { // term '%' factor
   13256         [ -  + ]:   22763495 :         if (p->error_indicator) {
   13257                 :          0 :             p->level--;
   13258                 :          0 :             return NULL;
   13259                 :            :         }
   13260                 :            :         D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
   13261                 :            :         Token * _literal;
   13262                 :            :         expr_ty a;
   13263                 :            :         expr_ty b;
   13264         [ +  + ]:   22763495 :         if (
   13265                 :   22763495 :             (a = term_rule(p))  // term
   13266         [ +  + ]:   10268330 :             &&
   13267                 :   10268330 :             (_literal = _PyPegen_expect_token(p, 24))  // token='%'
   13268         [ +  - ]:      65245 :             &&
   13269                 :      65245 :             (b = factor_rule(p))  // factor
   13270                 :            :         )
   13271                 :            :         {
   13272                 :            :             D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
   13273                 :      65245 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13274         [ -  + ]:      65245 :             if (_token == NULL) {
   13275                 :          0 :                 p->level--;
   13276                 :          0 :                 return NULL;
   13277                 :            :             }
   13278                 :      65245 :             int _end_lineno = _token->end_lineno;
   13279                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13280                 :      65245 :             int _end_col_offset = _token->end_col_offset;
   13281                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13282                 :      65245 :             _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
   13283   [ -  +  -  - ]:      65245 :             if (_res == NULL && PyErr_Occurred()) {
   13284                 :          0 :                 p->error_indicator = 1;
   13285                 :          0 :                 p->level--;
   13286                 :          0 :                 return NULL;
   13287                 :            :             }
   13288                 :      65245 :             goto done;
   13289                 :            :         }
   13290                 :   22698250 :         p->mark = _mark;
   13291                 :            :         D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
   13292                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
   13293                 :            :     }
   13294                 :            :     { // term '@' factor
   13295         [ -  + ]:   22698250 :         if (p->error_indicator) {
   13296                 :          0 :             p->level--;
   13297                 :          0 :             return NULL;
   13298                 :            :         }
   13299                 :            :         D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
   13300                 :            :         Token * _literal;
   13301                 :            :         expr_ty a;
   13302                 :            :         expr_ty b;
   13303         [ +  + ]:   22698250 :         if (
   13304                 :   22698250 :             (a = term_rule(p))  // term
   13305         [ +  + ]:   10203085 :             &&
   13306                 :   10203085 :             (_literal = _PyPegen_expect_token(p, 49))  // token='@'
   13307         [ +  + ]:         77 :             &&
   13308                 :         77 :             (b = factor_rule(p))  // factor
   13309                 :            :         )
   13310                 :            :         {
   13311                 :            :             D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
   13312                 :         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                 :   22698178 :         p->mark = _mark;
   13330                 :            :         D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
   13331                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
   13332                 :            :     }
   13333                 :            :     { // factor
   13334         [ -  + ]:   22698178 :         if (p->error_indicator) {
   13335                 :          0 :             p->level--;
   13336                 :          0 :             return NULL;
   13337                 :            :         }
   13338                 :            :         D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
   13339                 :            :         expr_ty factor_var;
   13340         [ +  + ]:   22698178 :         if (
   13341                 :   22698178 :             (factor_var = factor_rule(p))  // factor
   13342                 :            :         )
   13343                 :            :         {
   13344                 :            :             D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
   13345                 :   20406027 :             _res = factor_var;
   13346                 :   20406027 :             goto done;
   13347                 :            :         }
   13348                 :    2292151 :         p->mark = _mark;
   13349                 :            :         D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
   13350                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
   13351                 :            :     }
   13352                 :    2292151 :     _res = NULL;
   13353                 :   23105063 :   done:
   13354                 :   23105063 :     p->level--;
   13355                 :   23105063 :     return _res;
   13356                 :            : }
   13357                 :            : 
   13358                 :            : // factor: '+' factor | '-' factor | '~' factor | power
   13359                 :            : static expr_ty
   13360                 :   23174052 : factor_rule(Parser *p)
   13361                 :            : {
   13362         [ +  + ]:   23174052 :     if (p->level++ == MAXSTACK) {
   13363                 :          3 :         p->error_indicator = 1;
   13364                 :            :         PyErr_NoMemory();
   13365                 :            :     }
   13366         [ +  + ]:   23174052 :     if (p->error_indicator) {
   13367                 :          3 :         p->level--;
   13368                 :          3 :         return NULL;
   13369                 :            :     }
   13370                 :   23174049 :     expr_ty _res = NULL;
   13371         [ +  + ]:   23174049 :     if (_PyPegen_is_memoized(p, factor_type, &_res)) {
   13372                 :   10203045 :         p->level--;
   13373                 :   10203045 :         return _res;
   13374                 :            :     }
   13375                 :   12971004 :     int _mark = p->mark;
   13376   [ -  +  -  - ]:   12971004 :     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                 :   12971004 :     int _start_lineno = p->tokens[_mark]->lineno;
   13382                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   13383                 :   12971004 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   13384                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   13385                 :            :     { // '+' factor
   13386         [ -  + ]:   12971004 :         if (p->error_indicator) {
   13387                 :          0 :             p->level--;
   13388                 :          0 :             return NULL;
   13389                 :            :         }
   13390                 :            :         D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
   13391                 :            :         Token * _literal;
   13392                 :            :         expr_ty a;
   13393         [ +  + ]:   12971004 :         if (
   13394                 :   12971004 :             (_literal = _PyPegen_expect_token(p, 14))  // token='+'
   13395         [ +  + ]:        887 :             &&
   13396                 :        887 :             (a = factor_rule(p))  // factor
   13397                 :            :         )
   13398                 :            :         {
   13399                 :            :             D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
   13400                 :        863 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13401         [ -  + ]:        863 :             if (_token == NULL) {
   13402                 :          0 :                 p->level--;
   13403                 :          0 :                 return NULL;
   13404                 :            :             }
   13405                 :        863 :             int _end_lineno = _token->end_lineno;
   13406                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13407                 :        863 :             int _end_col_offset = _token->end_col_offset;
   13408                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13409                 :        863 :             _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
   13410   [ -  +  -  - ]:        863 :             if (_res == NULL && PyErr_Occurred()) {
   13411                 :          0 :                 p->error_indicator = 1;
   13412                 :          0 :                 p->level--;
   13413                 :          0 :                 return NULL;
   13414                 :            :             }
   13415                 :        863 :             goto done;
   13416                 :            :         }
   13417                 :   12970141 :         p->mark = _mark;
   13418                 :            :         D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
   13419                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
   13420                 :            :     }
   13421                 :            :     { // '-' factor
   13422         [ -  + ]:   12970141 :         if (p->error_indicator) {
   13423                 :          0 :             p->level--;
   13424                 :          0 :             return NULL;
   13425                 :            :         }
   13426                 :            :         D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
   13427                 :            :         Token * _literal;
   13428                 :            :         expr_ty a;
   13429         [ +  + ]:   12970141 :         if (
   13430                 :   12970141 :             (_literal = _PyPegen_expect_token(p, 15))  // token='-'
   13431         [ +  + ]:      61551 :             &&
   13432                 :      61551 :             (a = factor_rule(p))  // factor
   13433                 :            :         )
   13434                 :            :         {
   13435                 :            :             D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
   13436                 :      43618 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13437         [ -  + ]:      43618 :             if (_token == NULL) {
   13438                 :          0 :                 p->level--;
   13439                 :          0 :                 return NULL;
   13440                 :            :             }
   13441                 :      43618 :             int _end_lineno = _token->end_lineno;
   13442                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13443                 :      43618 :             int _end_col_offset = _token->end_col_offset;
   13444                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13445                 :      43618 :             _res = _PyAST_UnaryOp ( USub , a , EXTRA );
   13446   [ -  +  -  - ]:      43618 :             if (_res == NULL && PyErr_Occurred()) {
   13447                 :          0 :                 p->error_indicator = 1;
   13448                 :          0 :                 p->level--;
   13449                 :          0 :                 return NULL;
   13450                 :            :             }
   13451                 :      43618 :             goto done;
   13452                 :            :         }
   13453                 :   12926523 :         p->mark = _mark;
   13454                 :            :         D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
   13455                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
   13456                 :            :     }
   13457                 :            :     { // '~' factor
   13458         [ +  + ]:   12926523 :         if (p->error_indicator) {
   13459                 :      17933 :             p->level--;
   13460                 :      17933 :             return NULL;
   13461                 :            :         }
   13462                 :            :         D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
   13463                 :            :         Token * _literal;
   13464                 :            :         expr_ty a;
   13465         [ +  + ]:   12908590 :         if (
   13466                 :   12908590 :             (_literal = _PyPegen_expect_token(p, 31))  // token='~'
   13467         [ +  - ]:       1064 :             &&
   13468                 :       1064 :             (a = factor_rule(p))  // factor
   13469                 :            :         )
   13470                 :            :         {
   13471                 :            :             D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
   13472                 :       1064 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13473         [ -  + ]:       1064 :             if (_token == NULL) {
   13474                 :          0 :                 p->level--;
   13475                 :          0 :                 return NULL;
   13476                 :            :             }
   13477                 :       1064 :             int _end_lineno = _token->end_lineno;
   13478                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13479                 :       1064 :             int _end_col_offset = _token->end_col_offset;
   13480                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13481                 :       1064 :             _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
   13482   [ -  +  -  - ]:       1064 :             if (_res == NULL && PyErr_Occurred()) {
   13483                 :          0 :                 p->error_indicator = 1;
   13484                 :          0 :                 p->level--;
   13485                 :          0 :                 return NULL;
   13486                 :            :             }
   13487                 :       1064 :             goto done;
   13488                 :            :         }
   13489                 :   12907526 :         p->mark = _mark;
   13490                 :            :         D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
   13491                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
   13492                 :            :     }
   13493                 :            :     { // power
   13494         [ -  + ]:   12907526 :         if (p->error_indicator) {
   13495                 :          0 :             p->level--;
   13496                 :          0 :             return NULL;
   13497                 :            :         }
   13498                 :            :         D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
   13499                 :            :         expr_ty power_var;
   13500         [ +  + ]:   12907526 :         if (
   13501                 :   12907526 :             (power_var = power_rule(p))  // power
   13502                 :            :         )
   13503                 :            :         {
   13504                 :            :             D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
   13505                 :   10615352 :             _res = power_var;
   13506                 :   10615352 :             goto done;
   13507                 :            :         }
   13508                 :    2292174 :         p->mark = _mark;
   13509                 :            :         D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
   13510                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
   13511                 :            :     }
   13512                 :    2292174 :     _res = NULL;
   13513                 :   12953071 :   done:
   13514                 :   12953071 :     _PyPegen_insert_memo(p, _mark, factor_type, _res);
   13515                 :   12953071 :     p->level--;
   13516                 :   12953071 :     return _res;
   13517                 :            : }
   13518                 :            : 
   13519                 :            : // power: await_primary '**' factor | await_primary
   13520                 :            : static expr_ty
   13521                 :   12907526 : power_rule(Parser *p)
   13522                 :            : {
   13523         [ -  + ]:   12907526 :     if (p->level++ == MAXSTACK) {
   13524                 :          0 :         p->error_indicator = 1;
   13525                 :            :         PyErr_NoMemory();
   13526                 :            :     }
   13527         [ -  + ]:   12907526 :     if (p->error_indicator) {
   13528                 :          0 :         p->level--;
   13529                 :          0 :         return NULL;
   13530                 :            :     }
   13531                 :   12907526 :     expr_ty _res = NULL;
   13532                 :   12907526 :     int _mark = p->mark;
   13533   [ -  +  -  - ]:   12907526 :     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                 :   12907526 :     int _start_lineno = p->tokens[_mark]->lineno;
   13539                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   13540                 :   12907526 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   13541                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   13542                 :            :     { // await_primary '**' factor
   13543         [ -  + ]:   12907526 :         if (p->error_indicator) {
   13544                 :          0 :             p->level--;
   13545                 :          0 :             return NULL;
   13546                 :            :         }
   13547                 :            :         D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
   13548                 :            :         Token * _literal;
   13549                 :            :         expr_ty a;
   13550                 :            :         expr_ty b;
   13551         [ +  + ]:   12907526 :         if (
   13552                 :   12907526 :             (a = await_primary_rule(p))  // await_primary
   13553         [ +  + ]:   10615354 :             &&
   13554                 :   10615354 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   13555         [ +  + ]:       5475 :             &&
   13556                 :       5475 :             (b = factor_rule(p))  // factor
   13557                 :            :         )
   13558                 :            :         {
   13559                 :            :             D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
   13560                 :       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                 :   12902056 :         p->mark = _mark;
   13578                 :            :         D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
   13579                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
   13580                 :            :     }
   13581                 :            :     { // await_primary
   13582         [ +  + ]:   12902056 :         if (p->error_indicator) {
   13583                 :        836 :             p->level--;
   13584                 :        836 :             return NULL;
   13585                 :            :         }
   13586                 :            :         D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
   13587                 :            :         expr_ty await_primary_var;
   13588         [ +  + ]:   12901220 :         if (
   13589                 :   12901220 :             (await_primary_var = await_primary_rule(p))  // await_primary
   13590                 :            :         )
   13591                 :            :         {
   13592                 :            :             D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
   13593                 :   10609882 :             _res = await_primary_var;
   13594                 :   10609882 :             goto done;
   13595                 :            :         }
   13596                 :    2291338 :         p->mark = _mark;
   13597                 :            :         D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
   13598                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
   13599                 :            :     }
   13600                 :    2291338 :     _res = NULL;
   13601                 :   12906690 :   done:
   13602                 :   12906690 :     p->level--;
   13603                 :   12906690 :     return _res;
   13604                 :            : }
   13605                 :            : 
   13606                 :            : // await_primary: AWAIT primary | primary
   13607                 :            : static expr_ty
   13608                 :   25808746 : await_primary_rule(Parser *p)
   13609                 :            : {
   13610         [ -  + ]:   25808746 :     if (p->level++ == MAXSTACK) {
   13611                 :          0 :         p->error_indicator = 1;
   13612                 :            :         PyErr_NoMemory();
   13613                 :            :     }
   13614         [ -  + ]:   25808746 :     if (p->error_indicator) {
   13615                 :          0 :         p->level--;
   13616                 :          0 :         return NULL;
   13617                 :            :     }
   13618                 :   25808746 :     expr_ty _res = NULL;
   13619         [ +  + ]:   25808746 :     if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
   13620                 :   12901220 :         p->level--;
   13621                 :   12901220 :         return _res;
   13622                 :            :     }
   13623                 :   12907526 :     int _mark = p->mark;
   13624   [ -  +  -  - ]:   12907526 :     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                 :   12907526 :     int _start_lineno = p->tokens[_mark]->lineno;
   13630                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   13631                 :   12907526 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   13632                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   13633                 :            :     { // AWAIT primary
   13634         [ -  + ]:   12907526 :         if (p->error_indicator) {
   13635                 :          0 :             p->level--;
   13636                 :          0 :             return NULL;
   13637                 :            :         }
   13638                 :            :         D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
   13639                 :            :         expr_ty a;
   13640                 :            :         Token * await_var;
   13641         [ +  + ]:   12907526 :         if (
   13642                 :   12907526 :             (await_var = _PyPegen_expect_token(p, AWAIT))  // token='AWAIT'
   13643         [ +  + ]:       2404 :             &&
   13644                 :       2404 :             (a = primary_rule(p))  // primary
   13645                 :            :         )
   13646                 :            :         {
   13647                 :            :             D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
   13648                 :       2372 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13649         [ -  + ]:       2372 :             if (_token == NULL) {
   13650                 :          0 :                 p->level--;
   13651                 :          0 :                 return NULL;
   13652                 :            :             }
   13653                 :       2372 :             int _end_lineno = _token->end_lineno;
   13654                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13655                 :       2372 :             int _end_col_offset = _token->end_col_offset;
   13656                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13657                 :       2372 :             _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
   13658   [ +  +  +  - ]:       2372 :             if (_res == NULL && PyErr_Occurred()) {
   13659                 :          1 :                 p->error_indicator = 1;
   13660                 :          1 :                 p->level--;
   13661                 :          1 :                 return NULL;
   13662                 :            :             }
   13663                 :       2371 :             goto done;
   13664                 :            :         }
   13665                 :   12905154 :         p->mark = _mark;
   13666                 :            :         D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
   13667                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
   13668                 :            :     }
   13669                 :            :     { // primary
   13670         [ -  + ]:   12905154 :         if (p->error_indicator) {
   13671                 :          0 :             p->level--;
   13672                 :          0 :             return NULL;
   13673                 :            :         }
   13674                 :            :         D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
   13675                 :            :         expr_ty primary_var;
   13676         [ +  + ]:   12905154 :         if (
   13677                 :   12905154 :             (primary_var = primary_rule(p))  // primary
   13678                 :            :         )
   13679                 :            :         {
   13680                 :            :             D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
   13681                 :   10612983 :             _res = primary_var;
   13682                 :   10612983 :             goto done;
   13683                 :            :         }
   13684                 :    2292171 :         p->mark = _mark;
   13685                 :            :         D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
   13686                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
   13687                 :            :     }
   13688                 :    2292171 :     _res = NULL;
   13689                 :   12907525 :   done:
   13690                 :   12907525 :     _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
   13691                 :   12907525 :     p->level--;
   13692                 :   12907525 :     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                 :  116564733 : primary_rule(Parser *p)
   13705                 :            : {
   13706         [ -  + ]:  116564733 :     if (p->level++ == MAXSTACK) {
   13707                 :          0 :         p->error_indicator = 1;
   13708                 :            :         PyErr_NoMemory();
   13709                 :            :     }
   13710                 :  116564733 :     expr_ty _res = NULL;
   13711         [ +  + ]:  116564733 :     if (_PyPegen_is_memoized(p, primary_type, &_res)) {
   13712                 :  103657175 :         p->level--;
   13713                 :  103657175 :         return _res;
   13714                 :            :     }
   13715                 :   12907558 :     int _mark = p->mark;
   13716                 :   12907558 :     int _resmark = p->mark;
   13717                 :   14948712 :     while (1) {
   13718                 :   27856270 :         int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
   13719         [ -  + ]:   27856270 :         if (tmpvar_8) {
   13720                 :          0 :             p->level--;
   13721                 :          0 :             return _res;
   13722                 :            :         }
   13723                 :   27856270 :         p->mark = _mark;
   13724                 :   27856270 :         void *_raw = primary_raw(p);
   13725         [ +  + ]:   27856270 :         if (p->error_indicator) {
   13726                 :        833 :             p->level--;
   13727                 :        833 :             return NULL;
   13728                 :            :         }
   13729   [ +  +  +  + ]:   27855437 :         if (_raw == NULL || p->mark <= _resmark)
   13730                 :            :             break;
   13731                 :   14948712 :         _resmark = p->mark;
   13732                 :   14948712 :         _res = _raw;
   13733                 :            :     }
   13734                 :   12906725 :     p->mark = _resmark;
   13735                 :   12906725 :     p->level--;
   13736                 :   12906725 :     return _res;
   13737                 :            : }
   13738                 :            : static expr_ty
   13739                 :   27856270 : primary_raw(Parser *p)
   13740                 :            : {
   13741         [ -  + ]:   27856270 :     if (p->level++ == MAXSTACK) {
   13742                 :          0 :         p->error_indicator = 1;
   13743                 :            :         PyErr_NoMemory();
   13744                 :            :     }
   13745         [ -  + ]:   27856270 :     if (p->error_indicator) {
   13746                 :          0 :         p->level--;
   13747                 :          0 :         return NULL;
   13748                 :            :     }
   13749                 :   27856270 :     expr_ty _res = NULL;
   13750                 :   27856270 :     int _mark = p->mark;
   13751   [ -  +  -  - ]:   27856270 :     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                 :   27856270 :     int _start_lineno = p->tokens[_mark]->lineno;
   13757                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   13758                 :   27856270 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   13759                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   13760                 :            :     { // primary '.' NAME
   13761         [ -  + ]:   27856270 :         if (p->error_indicator) {
   13762                 :          0 :             p->level--;
   13763                 :          0 :             return NULL;
   13764                 :            :         }
   13765                 :            :         D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
   13766                 :            :         Token * _literal;
   13767                 :            :         expr_ty a;
   13768                 :            :         expr_ty b;
   13769         [ +  + ]:   27856270 :         if (
   13770                 :   27856270 :             (a = primary_rule(p))  // primary
   13771         [ +  + ]:   14948712 :             &&
   13772                 :   14948712 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   13773         [ +  + ]:    1957469 :             &&
   13774                 :    1957469 :             (b = _PyPegen_name_token(p))  // NAME
   13775                 :            :         )
   13776                 :            :         {
   13777                 :            :             D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
   13778                 :    1957443 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13779         [ -  + ]:    1957443 :             if (_token == NULL) {
   13780                 :          0 :                 p->level--;
   13781                 :          0 :                 return NULL;
   13782                 :            :             }
   13783                 :    1957443 :             int _end_lineno = _token->end_lineno;
   13784                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13785                 :    1957443 :             int _end_col_offset = _token->end_col_offset;
   13786                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13787                 :    1957443 :             _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
   13788   [ -  +  -  - ]:    1957443 :             if (_res == NULL && PyErr_Occurred()) {
   13789                 :          0 :                 p->error_indicator = 1;
   13790                 :          0 :                 p->level--;
   13791                 :          0 :                 return NULL;
   13792                 :            :             }
   13793                 :    1957443 :             goto done;
   13794                 :            :         }
   13795                 :   25898827 :         p->mark = _mark;
   13796                 :            :         D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
   13797                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
   13798                 :            :     }
   13799                 :            :     { // primary genexp
   13800         [ +  + ]:   25898827 :         if (p->error_indicator) {
   13801                 :         23 :             p->level--;
   13802                 :         23 :             return NULL;
   13803                 :            :         }
   13804                 :            :         D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
   13805                 :            :         expr_ty a;
   13806                 :            :         expr_ty b;
   13807         [ +  + ]:   25898804 :         if (
   13808                 :   25898804 :             (a = primary_rule(p))  // primary
   13809         [ +  + ]:   12991246 :             &&
   13810                 :   12991246 :             (b = genexp_rule(p))  // genexp
   13811                 :            :         )
   13812                 :            :         {
   13813                 :            :             D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
   13814                 :       6777 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13815         [ -  + ]:       6777 :             if (_token == NULL) {
   13816                 :          0 :                 p->level--;
   13817                 :          0 :                 return NULL;
   13818                 :            :             }
   13819                 :       6777 :             int _end_lineno = _token->end_lineno;
   13820                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13821                 :       6777 :             int _end_col_offset = _token->end_col_offset;
   13822                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13823                 :       6777 :             _res = _PyAST_Call ( a , CHECK ( asdl_expr_seq* , ( asdl_expr_seq* ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
   13824   [ -  +  -  - ]:       6777 :             if (_res == NULL && PyErr_Occurred()) {
   13825                 :          0 :                 p->error_indicator = 1;
   13826                 :          0 :                 p->level--;
   13827                 :          0 :                 return NULL;
   13828                 :            :             }
   13829                 :       6777 :             goto done;
   13830                 :            :         }
   13831                 :   25892027 :         p->mark = _mark;
   13832                 :            :         D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
   13833                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
   13834                 :            :     }
   13835                 :            :     { // primary '(' arguments? ')'
   13836         [ +  + ]:   25892027 :         if (p->error_indicator) {
   13837                 :          4 :             p->level--;
   13838                 :          4 :             return NULL;
   13839                 :            :         }
   13840                 :            :         D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
   13841                 :            :         Token * _literal;
   13842                 :            :         Token * _literal_1;
   13843                 :            :         expr_ty a;
   13844                 :            :         void *b;
   13845         [ +  + ]:   25892023 :         if (
   13846                 :   25892023 :             (a = primary_rule(p))  // primary
   13847         [ +  + ]:   12984465 :             &&
   13848                 :   12984465 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   13849                 :    1882029 :             &&
   13850         [ +  + ]:    1882029 :             (b = arguments_rule(p), !p->error_indicator)  // arguments?
   13851         [ +  + ]:    1882015 :             &&
   13852                 :    1882015 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   13853                 :            :         )
   13854                 :            :         {
   13855                 :            :             D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
   13856                 :    1881931 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13857         [ -  + ]:    1881931 :             if (_token == NULL) {
   13858                 :          0 :                 p->level--;
   13859                 :          0 :                 return NULL;
   13860                 :            :             }
   13861                 :    1881931 :             int _end_lineno = _token->end_lineno;
   13862                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13863                 :    1881931 :             int _end_col_offset = _token->end_col_offset;
   13864                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13865   [ +  +  +  + ]:    1881931 :             _res = _PyAST_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
   13866   [ -  +  -  - ]:    1881931 :             if (_res == NULL && PyErr_Occurred()) {
   13867                 :          0 :                 p->error_indicator = 1;
   13868                 :          0 :                 p->level--;
   13869                 :          0 :                 return NULL;
   13870                 :            :             }
   13871                 :    1881931 :             goto done;
   13872                 :            :         }
   13873                 :   24010092 :         p->mark = _mark;
   13874                 :            :         D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
   13875                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
   13876                 :            :     }
   13877                 :            :     { // primary '[' slices ']'
   13878         [ +  + ]:   24010092 :         if (p->error_indicator) {
   13879                 :         14 :             p->level--;
   13880                 :         14 :             return NULL;
   13881                 :            :         }
   13882                 :            :         D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
   13883                 :            :         Token * _literal;
   13884                 :            :         Token * _literal_1;
   13885                 :            :         expr_ty a;
   13886                 :            :         expr_ty b;
   13887         [ +  + ]:   24010078 :         if (
   13888                 :   24010078 :             (a = primary_rule(p))  // primary
   13889         [ +  + ]:   11102520 :             &&
   13890                 :   11102520 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   13891         [ +  + ]:     487202 :             &&
   13892                 :     487202 :             (b = slices_rule(p))  // slices
   13893         [ +  + ]:     487182 :             &&
   13894                 :     487182 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   13895                 :            :         )
   13896                 :            :         {
   13897                 :            :             D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
   13898                 :     487164 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   13899         [ -  + ]:     487164 :             if (_token == NULL) {
   13900                 :          0 :                 p->level--;
   13901                 :          0 :                 return NULL;
   13902                 :            :             }
   13903                 :     487164 :             int _end_lineno = _token->end_lineno;
   13904                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   13905                 :     487164 :             int _end_col_offset = _token->end_col_offset;
   13906                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   13907                 :     487164 :             _res = _PyAST_Subscript ( a , b , Load , EXTRA );
   13908   [ -  +  -  - ]:     487164 :             if (_res == NULL && PyErr_Occurred()) {
   13909                 :          0 :                 p->error_indicator = 1;
   13910                 :          0 :                 p->level--;
   13911                 :          0 :                 return NULL;
   13912                 :            :             }
   13913                 :     487164 :             goto done;
   13914                 :            :         }
   13915                 :   23522914 :         p->mark = _mark;
   13916                 :            :         D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
   13917                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
   13918                 :            :     }
   13919                 :            :     { // atom
   13920         [ +  + ]:   23522914 :         if (p->error_indicator) {
   13921                 :          1 :             p->level--;
   13922                 :          1 :             return NULL;
   13923                 :            :         }
   13924                 :            :         D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
   13925                 :            :         expr_ty atom_var;
   13926         [ +  + ]:   23522913 :         if (
   13927                 :   23522913 :             (atom_var = atom_rule(p))  // atom
   13928                 :            :         )
   13929                 :            :         {
   13930                 :            :             D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
   13931                 :   21230752 :             _res = atom_var;
   13932                 :   21230752 :             goto done;
   13933                 :            :         }
   13934                 :    2292161 :         p->mark = _mark;
   13935                 :            :         D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
   13936                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
   13937                 :            :     }
   13938                 :    2292161 :     _res = NULL;
   13939                 :   27856228 :   done:
   13940                 :   27856228 :     p->level--;
   13941                 :   27856228 :     return _res;
   13942                 :            : }
   13943                 :            : 
   13944                 :            : // slices: slice !',' | ','.(slice | starred_expression)+ ','?
   13945                 :            : static expr_ty
   13946                 :     999522 : slices_rule(Parser *p)
   13947                 :            : {
   13948         [ -  + ]:     999522 :     if (p->level++ == MAXSTACK) {
   13949                 :          0 :         p->error_indicator = 1;
   13950                 :            :         PyErr_NoMemory();
   13951                 :            :     }
   13952         [ -  + ]:     999522 :     if (p->error_indicator) {
   13953                 :          0 :         p->level--;
   13954                 :          0 :         return NULL;
   13955                 :            :     }
   13956                 :     999522 :     expr_ty _res = NULL;
   13957                 :     999522 :     int _mark = p->mark;
   13958   [ +  +  +  + ]:     999522 :     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                 :     999520 :     int _start_lineno = p->tokens[_mark]->lineno;
   13964                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   13965                 :     999520 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   13966                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   13967                 :            :     { // slice !','
   13968         [ -  + ]:     999520 :         if (p->error_indicator) {
   13969                 :          0 :             p->level--;
   13970                 :          0 :             return NULL;
   13971                 :            :         }
   13972                 :            :         D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
   13973                 :            :         expr_ty a;
   13974         [ +  + ]:     999520 :         if (
   13975                 :     999520 :             (a = slice_rule(p))  // slice
   13976         [ +  + ]:     998594 :             &&
   13977                 :     998594 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12)  // token=','
   13978                 :            :         )
   13979                 :            :         {
   13980                 :            :             D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
   13981                 :     977743 :             _res = a;
   13982   [ -  +  -  - ]:     977743 :             if (_res == NULL && PyErr_Occurred()) {
   13983                 :          0 :                 p->error_indicator = 1;
   13984                 :          0 :                 p->level--;
   13985                 :          0 :                 return NULL;
   13986                 :            :             }
   13987                 :     977743 :             goto done;
   13988                 :            :         }
   13989                 :      21777 :         p->mark = _mark;
   13990                 :            :         D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
   13991                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
   13992                 :            :     }
   13993                 :            :     { // ','.(slice | starred_expression)+ ','?
   13994         [ +  + ]:      21777 :         if (p->error_indicator) {
   13995                 :         13 :             p->level--;
   13996                 :         13 :             return NULL;
   13997                 :            :         }
   13998                 :            :         D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(slice | starred_expression)+ ','?"));
   13999                 :            :         void *_opt_var;
   14000                 :            :         UNUSED(_opt_var); // Silence compiler warnings
   14001                 :            :         asdl_expr_seq* a;
   14002         [ +  + ]:      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                 :            :             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                 :            :         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                 :     999507 :   done:
   14032                 :     999507 :     p->level--;
   14033                 :     999507 :     return _res;
   14034                 :            : }
   14035                 :            : 
   14036                 :            : // slice: expression? ':' expression? [':' expression?] | named_expression
   14037                 :            : static expr_ty
   14038                 :    1047534 : slice_rule(Parser *p)
   14039                 :            : {
   14040         [ -  + ]:    1047534 :     if (p->level++ == MAXSTACK) {
   14041                 :          0 :         p->error_indicator = 1;
   14042                 :            :         PyErr_NoMemory();
   14043                 :            :     }
   14044         [ -  + ]:    1047534 :     if (p->error_indicator) {
   14045                 :          0 :         p->level--;
   14046                 :          0 :         return NULL;
   14047                 :            :     }
   14048                 :    1047534 :     expr_ty _res = NULL;
   14049                 :    1047534 :     int _mark = p->mark;
   14050   [ +  +  +  + ]:    1047534 :     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                 :    1047532 :     int _start_lineno = p->tokens[_mark]->lineno;
   14056                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   14057                 :    1047532 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   14058                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   14059                 :            :     { // expression? ':' expression? [':' expression?]
   14060         [ -  + ]:    1047532 :         if (p->error_indicator) {
   14061                 :          0 :             p->level--;
   14062                 :          0 :             return NULL;
   14063                 :            :         }
   14064                 :            :         D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
   14065                 :            :         Token * _literal;
   14066                 :            :         void *a;
   14067                 :            :         void *b;
   14068                 :            :         void *c;
   14069                 :    1047532 :         if (
   14070         [ +  + ]:    1047532 :             (a = expression_rule(p), !p->error_indicator)  // expression?
   14071         [ +  + ]:    1047528 :             &&
   14072                 :    1047528 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   14073                 :      68536 :             &&
   14074         [ +  + ]:      68536 :             (b = expression_rule(p), !p->error_indicator)  // expression?
   14075                 :      68531 :             &&
   14076         [ +  + ]:      68531 :             (c = _tmp_90_rule(p), !p->error_indicator)  // [':' expression?]
   14077                 :            :         )
   14078                 :            :         {
   14079                 :            :             D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
   14080                 :      68527 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   14081         [ -  + ]:      68527 :             if (_token == NULL) {
   14082                 :          0 :                 p->level--;
   14083                 :          0 :                 return NULL;
   14084                 :            :             }
   14085                 :      68527 :             int _end_lineno = _token->end_lineno;
   14086                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   14087                 :      68527 :             int _end_col_offset = _token->end_col_offset;
   14088                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   14089                 :      68527 :             _res = _PyAST_Slice ( a , b , c , EXTRA );
   14090   [ -  +  -  - ]:      68527 :             if (_res == NULL && PyErr_Occurred()) {
   14091                 :          0 :                 p->error_indicator = 1;
   14092                 :          0 :                 p->level--;
   14093                 :          0 :                 return NULL;
   14094                 :            :             }
   14095                 :      68527 :             goto done;
   14096                 :            :         }
   14097                 :     979005 :         p->mark = _mark;
   14098                 :            :         D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
   14099                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
   14100                 :            :     }
   14101                 :            :     { // named_expression
   14102         [ +  + ]:     979005 :         if (p->error_indicator) {
   14103                 :         13 :             p->level--;
   14104                 :         13 :             return NULL;
   14105                 :            :         }
   14106                 :            :         D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
   14107                 :            :         expr_ty a;
   14108         [ +  + ]:     978992 :         if (
   14109                 :     978992 :             (a = named_expression_rule(p))  // named_expression
   14110                 :            :         )
   14111                 :            :         {
   14112                 :            :             D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
   14113                 :     976011 :             _res = a;
   14114   [ -  +  -  - ]:     976011 :             if (_res == NULL && PyErr_Occurred()) {
   14115                 :          0 :                 p->error_indicator = 1;
   14116                 :          0 :                 p->level--;
   14117                 :          0 :                 return NULL;
   14118                 :            :             }
   14119                 :     976011 :             goto done;
   14120                 :            :         }
   14121                 :       2981 :         p->mark = _mark;
   14122                 :            :         D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
   14123                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
   14124                 :            :     }
   14125                 :       2981 :     _res = NULL;
   14126                 :    1047519 :   done:
   14127                 :    1047519 :     p->level--;
   14128                 :    1047519 :     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                 :   28987665 : atom_rule(Parser *p)
   14144                 :            : {
   14145         [ -  + ]:   28987665 :     if (p->level++ == MAXSTACK) {
   14146                 :          0 :         p->error_indicator = 1;
   14147                 :            :         PyErr_NoMemory();
   14148                 :            :     }
   14149         [ -  + ]:   28987665 :     if (p->error_indicator) {
   14150                 :          0 :         p->level--;
   14151                 :          0 :         return NULL;
   14152                 :            :     }
   14153                 :   28987665 :     expr_ty _res = NULL;
   14154                 :   28987665 :     int _mark = p->mark;
   14155   [ -  +  -  - ]:   28987665 :     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                 :   28987665 :     int _start_lineno = p->tokens[_mark]->lineno;
   14161                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   14162                 :   28987665 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   14163                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   14164                 :            :     { // NAME
   14165         [ -  + ]:   28987665 :         if (p->error_indicator) {
   14166                 :          0 :             p->level--;
   14167                 :          0 :             return NULL;
   14168                 :            :         }
   14169                 :            :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
   14170                 :            :         expr_ty name_var;
   14171         [ +  + ]:   28987665 :         if (
   14172                 :   28987665 :             (name_var = _PyPegen_name_token(p))  // NAME
   14173                 :            :         )
   14174                 :            :         {
   14175                 :            :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
   14176                 :   14016908 :             _res = name_var;
   14177                 :   14016908 :             goto done;
   14178                 :            :         }
   14179                 :   14970757 :         p->mark = _mark;
   14180                 :            :         D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
   14181                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
   14182                 :            :     }
   14183                 :            :     { // 'True'
   14184         [ -  + ]:   14970757 :         if (p->error_indicator) {
   14185                 :          0 :             p->level--;
   14186                 :          0 :             return NULL;
   14187                 :            :         }
   14188                 :            :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
   14189                 :            :         Token * _keyword;
   14190         [ +  + ]:   14970757 :         if (
   14191                 :   14970757 :             (_keyword = _PyPegen_expect_token(p, 600))  // token='True'
   14192                 :            :         )
   14193                 :            :         {
   14194                 :            :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
   14195                 :     120247 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   14196         [ -  + ]:     120247 :             if (_token == NULL) {
   14197                 :          0 :                 p->level--;
   14198                 :          0 :                 return NULL;
   14199                 :            :             }
   14200                 :     120247 :             int _end_lineno = _token->end_lineno;
   14201                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   14202                 :     120247 :             int _end_col_offset = _token->end_col_offset;
   14203                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   14204                 :     120247 :             _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
   14205   [ -  +  -  - ]:     120247 :             if (_res == NULL && PyErr_Occurred()) {
   14206                 :          0 :                 p->error_indicator = 1;
   14207                 :          0 :                 p->level--;
   14208                 :          0 :                 return NULL;
   14209                 :            :             }
   14210                 :     120247 :             goto done;
   14211                 :            :         }
   14212                 :   14850510 :         p->mark = _mark;
   14213                 :            :         D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
   14214                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
   14215                 :            :     }
   14216                 :            :     { // 'False'
   14217         [ -  + ]:   14850510 :         if (p->error_indicator) {
   14218                 :          0 :             p->level--;
   14219                 :          0 :             return NULL;
   14220                 :            :         }
   14221                 :            :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
   14222                 :            :         Token * _keyword;
   14223         [ +  + ]:   14850510 :         if (
   14224                 :   14850510 :             (_keyword = _PyPegen_expect_token(p, 602))  // token='False'
   14225                 :            :         )
   14226                 :            :         {
   14227                 :            :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
   14228                 :     114867 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   14229         [ -  + ]:     114867 :             if (_token == NULL) {
   14230                 :          0 :                 p->level--;
   14231                 :          0 :                 return NULL;
   14232                 :            :             }
   14233                 :     114867 :             int _end_lineno = _token->end_lineno;
   14234                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   14235                 :     114867 :             int _end_col_offset = _token->end_col_offset;
   14236                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   14237                 :     114867 :             _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
   14238   [ -  +  -  - ]:     114867 :             if (_res == NULL && PyErr_Occurred()) {
   14239                 :          0 :                 p->error_indicator = 1;
   14240                 :          0 :                 p->level--;
   14241                 :          0 :                 return NULL;
   14242                 :            :             }
   14243                 :     114867 :             goto done;
   14244                 :            :         }
   14245                 :   14735643 :         p->mark = _mark;
   14246                 :            :         D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
   14247                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
   14248                 :            :     }
   14249                 :            :     { // 'None'
   14250         [ -  + ]:   14735643 :         if (p->error_indicator) {
   14251                 :          0 :             p->level--;
   14252                 :          0 :             return NULL;
   14253                 :            :         }
   14254                 :            :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
   14255                 :            :         Token * _keyword;
   14256         [ +  + ]:   14735643 :         if (
   14257                 :   14735643 :             (_keyword = _PyPegen_expect_token(p, 601))  // token='None'
   14258                 :            :         )
   14259                 :            :         {
   14260                 :            :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
   14261                 :     375615 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   14262         [ -  + ]:     375615 :             if (_token == NULL) {
   14263                 :          0 :                 p->level--;
   14264                 :          0 :                 return NULL;
   14265                 :            :             }
   14266                 :     375615 :             int _end_lineno = _token->end_lineno;
   14267                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   14268                 :     375615 :             int _end_col_offset = _token->end_col_offset;
   14269                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   14270                 :     375615 :             _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
   14271   [ -  +  -  - ]:     375615 :             if (_res == NULL && PyErr_Occurred()) {
   14272                 :          0 :                 p->error_indicator = 1;
   14273                 :          0 :                 p->level--;
   14274                 :          0 :                 return NULL;
   14275                 :            :             }
   14276                 :     375615 :             goto done;
   14277                 :            :         }
   14278                 :   14360028 :         p->mark = _mark;
   14279                 :            :         D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
   14280                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
   14281                 :            :     }
   14282                 :            :     { // &STRING strings
   14283         [ -  + ]:   14360028 :         if (p->error_indicator) {
   14284                 :          0 :             p->level--;
   14285                 :          0 :             return NULL;
   14286                 :            :         }
   14287                 :            :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
   14288                 :            :         expr_ty strings_var;
   14289         [ +  + ]:   14360028 :         if (
   14290                 :   14360028 :             _PyPegen_lookahead(1, _PyPegen_string_token, p)
   14291         [ +  + ]:    3407740 :             &&
   14292                 :    3407740 :             (strings_var = strings_rule(p))  // strings
   14293                 :            :         )
   14294                 :            :         {
   14295                 :            :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
   14296                 :    3406971 :             _res = strings_var;
   14297                 :    3406971 :             goto done;
   14298                 :            :         }
   14299                 :   10953057 :         p->mark = _mark;
   14300                 :            :         D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
   14301                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
   14302                 :            :     }
   14303                 :            :     { // NUMBER
   14304         [ +  + ]:   10953057 :         if (p->error_indicator) {
   14305                 :        769 :             p->level--;
   14306                 :        769 :             return NULL;
   14307                 :            :         }
   14308                 :            :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
   14309                 :            :         expr_ty number_var;
   14310         [ +  + ]:   10952288 :         if (
   14311                 :   10952288 :             (number_var = _PyPegen_number_token(p))  // NUMBER
   14312                 :            :         )
   14313                 :            :         {
   14314                 :            :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
   14315                 :    5871630 :             _res = number_var;
   14316                 :    5871630 :             goto done;
   14317                 :            :         }
   14318                 :    5080658 :         p->mark = _mark;
   14319                 :            :         D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
   14320                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
   14321                 :            :     }
   14322                 :            :     { // &'(' (tuple | group | genexp)
   14323         [ +  + ]:    5080658 :         if (p->error_indicator) {
   14324                 :          2 :             p->level--;
   14325                 :          2 :             return NULL;
   14326                 :            :         }
   14327                 :            :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
   14328                 :            :         void *_tmp_91_var;
   14329         [ +  + ]:    5080656 :         if (
   14330                 :    5080656 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7)  // token='('
   14331         [ +  + ]:     863699 :             &&
   14332                 :     863699 :             (_tmp_91_var = _tmp_91_rule(p))  // tuple | group | genexp
   14333                 :            :         )
   14334                 :            :         {
   14335                 :            :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
   14336                 :     863518 :             _res = _tmp_91_var;
   14337                 :     863518 :             goto done;
   14338                 :            :         }
   14339                 :    4217138 :         p->mark = _mark;
   14340                 :            :         D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
   14341                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
   14342                 :            :     }
   14343                 :            :     { // &'[' (list | listcomp)
   14344         [ +  + ]:    4217138 :         if (p->error_indicator) {
   14345                 :         68 :             p->level--;
   14346                 :         68 :             return NULL;
   14347                 :            :         }
   14348                 :            :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
   14349                 :            :         void *_tmp_92_var;
   14350         [ +  + ]:    4217070 :         if (
   14351                 :    4217070 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9)  // token='['
   14352         [ +  + ]:     261397 :             &&
   14353                 :     261397 :             (_tmp_92_var = _tmp_92_rule(p))  // list | listcomp
   14354                 :            :         )
   14355                 :            :         {
   14356                 :            :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
   14357                 :     261274 :             _res = _tmp_92_var;
   14358                 :     261274 :             goto done;
   14359                 :            :         }
   14360                 :    3955796 :         p->mark = _mark;
   14361                 :            :         D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
   14362                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
   14363                 :            :     }
   14364                 :            :     { // &'{' (dict | set | dictcomp | setcomp)
   14365         [ +  + ]:    3955796 :         if (p->error_indicator) {
   14366                 :         53 :             p->level--;
   14367                 :         53 :             return NULL;
   14368                 :            :         }
   14369                 :            :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
   14370                 :            :         void *_tmp_93_var;
   14371         [ +  + ]:    3955743 :         if (
   14372                 :    3955743 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25)  // token='{'
   14373         [ +  + ]:     112968 :             &&
   14374                 :     112968 :             (_tmp_93_var = _tmp_93_rule(p))  // dict | set | dictcomp | setcomp
   14375                 :            :         )
   14376                 :            :         {
   14377                 :            :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
   14378                 :     112872 :             _res = _tmp_93_var;
   14379                 :     112872 :             goto done;
   14380                 :            :         }
   14381                 :    3842871 :         p->mark = _mark;
   14382                 :            :         D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
   14383                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
   14384                 :            :     }
   14385                 :            :     { // '...'
   14386         [ +  + ]:    3842871 :         if (p->error_indicator) {
   14387                 :         39 :             p->level--;
   14388                 :         39 :             return NULL;
   14389                 :            :         }
   14390                 :            :         D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
   14391                 :            :         Token * _literal;
   14392         [ +  + ]:    3842832 :         if (
   14393                 :    3842832 :             (_literal = _PyPegen_expect_token(p, 52))  // token='...'
   14394                 :            :         )
   14395                 :            :         {
   14396                 :            :             D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
   14397                 :      11973 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   14398         [ -  + ]:      11973 :             if (_token == NULL) {
   14399                 :          0 :                 p->level--;
   14400                 :          0 :                 return NULL;
   14401                 :            :             }
   14402                 :      11973 :             int _end_lineno = _token->end_lineno;
   14403                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   14404                 :      11973 :             int _end_col_offset = _token->end_col_offset;
   14405                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   14406                 :      11973 :             _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
   14407   [ -  +  -  - ]:      11973 :             if (_res == NULL && PyErr_Occurred()) {
   14408                 :          0 :                 p->error_indicator = 1;
   14409                 :          0 :                 p->level--;
   14410                 :          0 :                 return NULL;
   14411                 :            :             }
   14412                 :      11973 :             goto done;
   14413                 :            :         }
   14414                 :    3830859 :         p->mark = _mark;
   14415                 :            :         D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
   14416                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
   14417                 :            :     }
   14418                 :    3830859 :     _res = NULL;
   14419                 :   28986734 :   done:
   14420                 :   28986734 :     p->level--;
   14421                 :   28986734 :     return _res;
   14422                 :            : }
   14423                 :            : 
   14424                 :            : // group: '(' (yield_expr | named_expression) ')' | invalid_group
   14425                 :            : static expr_ty
   14426                 :     293747 : group_rule(Parser *p)
   14427                 :            : {
   14428         [ -  + ]:     293747 :     if (p->level++ == MAXSTACK) {
   14429                 :          0 :         p->error_indicator = 1;
   14430                 :            :         PyErr_NoMemory();
   14431                 :            :     }
   14432         [ -  + ]:     293747 :     if (p->error_indicator) {
   14433                 :          0 :         p->level--;
   14434                 :          0 :         return NULL;
   14435                 :            :     }
   14436                 :     293747 :     expr_ty _res = NULL;
   14437                 :     293747 :     int _mark = p->mark;
   14438                 :            :     { // '(' (yield_expr | named_expression) ')'
   14439         [ -  + ]:     293747 :         if (p->error_indicator) {
   14440                 :          0 :             p->level--;
   14441                 :          0 :             return NULL;
   14442                 :            :         }
   14443                 :            :         D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
   14444                 :            :         Token * _literal;
   14445                 :            :         Token * _literal_1;
   14446                 :            :         void *a;
   14447         [ +  - ]:     293747 :         if (
   14448                 :     293747 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   14449         [ +  + ]:     293747 :             &&
   14450                 :     293747 :             (a = _tmp_94_rule(p))  // yield_expr | named_expression
   14451         [ +  + ]:     293687 :             &&
   14452                 :     293687 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   14453                 :            :         )
   14454                 :            :         {
   14455                 :            :             D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
   14456                 :     288226 :             _res = a;
   14457   [ -  +  -  - ]:     288226 :             if (_res == NULL && PyErr_Occurred()) {
   14458                 :          0 :                 p->error_indicator = 1;
   14459                 :          0 :                 p->level--;
   14460                 :          0 :                 return NULL;
   14461                 :            :             }
   14462                 :     288226 :             goto done;
   14463                 :            :         }
   14464                 :       5521 :         p->mark = _mark;
   14465                 :            :         D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
   14466                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
   14467                 :            :     }
   14468         [ +  + ]:       5521 :     if (p->call_invalid_rules) { // invalid_group
   14469         [ -  + ]:         50 :         if (p->error_indicator) {
   14470                 :          0 :             p->level--;
   14471                 :          0 :             return NULL;
   14472                 :            :         }
   14473                 :            :         D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
   14474                 :            :         void *invalid_group_var;
   14475         [ -  + ]:         50 :         if (
   14476                 :         50 :             (invalid_group_var = invalid_group_rule(p))  // invalid_group
   14477                 :            :         )
   14478                 :            :         {
   14479                 :            :             D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
   14480                 :          0 :             _res = invalid_group_var;
   14481                 :          0 :             goto done;
   14482                 :            :         }
   14483                 :         50 :         p->mark = _mark;
   14484                 :            :         D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
   14485                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
   14486                 :            :     }
   14487                 :       5521 :     _res = NULL;
   14488                 :     293747 :   done:
   14489                 :     293747 :     p->level--;
   14490                 :     293747 :     return _res;
   14491                 :            : }
   14492                 :            : 
   14493                 :            : // lambdef: 'lambda' lambda_params? ':' expression
   14494                 :            : static expr_ty
   14495                 :    2291729 : lambdef_rule(Parser *p)
   14496                 :            : {
   14497         [ -  + ]:    2291729 :     if (p->level++ == MAXSTACK) {
   14498                 :          0 :         p->error_indicator = 1;
   14499                 :            :         PyErr_NoMemory();
   14500                 :            :     }
   14501         [ -  + ]:    2291729 :     if (p->error_indicator) {
   14502                 :          0 :         p->level--;
   14503                 :          0 :         return NULL;
   14504                 :            :     }
   14505                 :    2291729 :     expr_ty _res = NULL;
   14506                 :    2291729 :     int _mark = p->mark;
   14507   [ -  +  -  - ]:    2291729 :     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                 :    2291729 :     int _start_lineno = p->tokens[_mark]->lineno;
   14513                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   14514                 :    2291729 :     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         [ -  + ]:    2291729 :         if (p->error_indicator) {
   14518                 :          0 :             p->level--;
   14519                 :          0 :             return NULL;
   14520                 :            :         }
   14521                 :            :         D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
   14522                 :            :         Token * _keyword;
   14523                 :            :         Token * _literal;
   14524                 :            :         void *a;
   14525                 :            :         expr_ty b;
   14526         [ +  + ]:    2291729 :         if (
   14527                 :    2291729 :             (_keyword = _PyPegen_expect_token(p, 586))  // token='lambda'
   14528                 :      37303 :             &&
   14529         [ +  + ]:      37303 :             (a = lambda_params_rule(p), !p->error_indicator)  // lambda_params?
   14530         [ +  + ]:      37263 :             &&
   14531                 :      37263 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   14532         [ +  + ]:      37213 :             &&
   14533                 :      37213 :             (b = expression_rule(p))  // expression
   14534                 :            :         )
   14535                 :            :         {
   14536                 :            :             D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
   14537                 :      37206 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   14538         [ -  + ]:      37206 :             if (_token == NULL) {
   14539                 :          0 :                 p->level--;
   14540                 :          0 :                 return NULL;
   14541                 :            :             }
   14542                 :      37206 :             int _end_lineno = _token->end_lineno;
   14543                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   14544                 :      37206 :             int _end_col_offset = _token->end_col_offset;
   14545                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   14546         [ +  + ]:      37206 :             _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
   14547   [ -  +  -  - ]:      37206 :             if (_res == NULL && PyErr_Occurred()) {
   14548                 :          0 :                 p->error_indicator = 1;
   14549                 :          0 :                 p->level--;
   14550                 :          0 :                 return NULL;
   14551                 :            :             }
   14552                 :      37206 :             goto done;
   14553                 :            :         }
   14554                 :    2254523 :         p->mark = _mark;
   14555                 :            :         D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
   14556                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
   14557                 :            :     }
   14558                 :    2254523 :     _res = NULL;
   14559                 :    2291729 :   done:
   14560                 :    2291729 :     p->level--;
   14561                 :    2291729 :     return _res;
   14562                 :            : }
   14563                 :            : 
   14564                 :            : // lambda_params: invalid_lambda_parameters | lambda_parameters
   14565                 :            : static arguments_ty
   14566                 :      37303 : lambda_params_rule(Parser *p)
   14567                 :            : {
   14568         [ -  + ]:      37303 :     if (p->level++ == MAXSTACK) {
   14569                 :          0 :         p->error_indicator = 1;
   14570                 :            :         PyErr_NoMemory();
   14571                 :            :     }
   14572         [ -  + ]:      37303 :     if (p->error_indicator) {
   14573                 :          0 :         p->level--;
   14574                 :          0 :         return NULL;
   14575                 :            :     }
   14576                 :      37303 :     arguments_ty _res = NULL;
   14577                 :      37303 :     int _mark = p->mark;
   14578         [ +  + ]:      37303 :     if (p->call_invalid_rules) { // invalid_lambda_parameters
   14579         [ -  + ]:         52 :         if (p->error_indicator) {
   14580                 :          0 :             p->level--;
   14581                 :          0 :             return NULL;
   14582                 :            :         }
   14583                 :            :         D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
   14584                 :            :         void *invalid_lambda_parameters_var;
   14585         [ -  + ]:         52 :         if (
   14586                 :         52 :             (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p))  // invalid_lambda_parameters
   14587                 :            :         )
   14588                 :            :         {
   14589                 :            :             D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
   14590                 :          0 :             _res = invalid_lambda_parameters_var;
   14591                 :          0 :             goto done;
   14592                 :            :         }
   14593                 :         52 :         p->mark = _mark;
   14594                 :            :         D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
   14595                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
   14596                 :            :     }
   14597                 :            :     { // lambda_parameters
   14598         [ +  + ]:      37303 :         if (p->error_indicator) {
   14599                 :         27 :             p->level--;
   14600                 :         27 :             return NULL;
   14601                 :            :         }
   14602                 :            :         D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
   14603                 :            :         arguments_ty lambda_parameters_var;
   14604         [ +  + ]:      37276 :         if (
   14605                 :      37276 :             (lambda_parameters_var = lambda_parameters_rule(p))  // lambda_parameters
   14606                 :            :         )
   14607                 :            :         {
   14608                 :            :             D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
   14609                 :      34516 :             _res = lambda_parameters_var;
   14610                 :      34516 :             goto done;
   14611                 :            :         }
   14612                 :       2760 :         p->mark = _mark;
   14613                 :            :         D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
   14614                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
   14615                 :            :     }
   14616                 :       2760 :     _res = NULL;
   14617                 :      37276 :   done:
   14618                 :      37276 :     p->level--;
   14619                 :      37276 :     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                 :      37276 : lambda_parameters_rule(Parser *p)
   14630                 :            : {
   14631         [ -  + ]:      37276 :     if (p->level++ == MAXSTACK) {
   14632                 :          0 :         p->error_indicator = 1;
   14633                 :            :         PyErr_NoMemory();
   14634                 :            :     }
   14635         [ -  + ]:      37276 :     if (p->error_indicator) {
   14636                 :          0 :         p->level--;
   14637                 :          0 :         return NULL;
   14638                 :            :     }
   14639                 :      37276 :     arguments_ty _res = NULL;
   14640                 :      37276 :     int _mark = p->mark;
   14641                 :            :     { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
   14642         [ -  + ]:      37276 :         if (p->error_indicator) {
   14643                 :          0 :             p->level--;
   14644                 :          0 :             return NULL;
   14645                 :            :         }
   14646                 :            :         D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
   14647                 :            :         asdl_arg_seq* a;
   14648                 :            :         asdl_arg_seq* b;
   14649                 :            :         asdl_seq * c;
   14650                 :            :         void *d;
   14651         [ +  + ]:      37276 :         if (
   14652                 :      37276 :             (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                 :            :             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                 :      37199 :         p->mark = _mark;
   14671                 :            :         D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
   14672                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
   14673                 :            :     }
   14674                 :            :     { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
   14675         [ +  + ]:      37199 :         if (p->error_indicator) {
   14676                 :          2 :             p->level--;
   14677                 :          2 :             return NULL;
   14678                 :            :         }
   14679                 :            :         D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
   14680                 :            :         SlashWithDefault* a;
   14681                 :            :         asdl_seq * b;
   14682                 :            :         void *c;
   14683         [ +  + ]:      37197 :         if (
   14684                 :      37197 :             (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                 :            :             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                 :      37140 :         p->mark = _mark;
   14701                 :            :         D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
   14702                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
   14703                 :            :     }
   14704                 :            :     { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
   14705         [ +  + ]:      37140 :         if (p->error_indicator) {
   14706                 :          1 :             p->level--;
   14707                 :          1 :             return NULL;
   14708                 :            :         }
   14709                 :            :         D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
   14710                 :            :         asdl_arg_seq* a;
   14711                 :            :         asdl_seq * b;
   14712                 :            :         void *c;
   14713         [ +  + ]:      37139 :         if (
   14714                 :      37139 :             (a = (asdl_arg_seq*)_loop1_98_rule(p))  // lambda_param_no_default+
   14715         [ +  - ]:      33996 :             &&
   14716                 :      33996 :             (b = _loop0_99_rule(p))  // lambda_param_with_default*
   14717                 :      33996 :             &&
   14718         [ +  + ]:      33996 :             (c = lambda_star_etc_rule(p), !p->error_indicator)  // lambda_star_etc?
   14719                 :            :         )
   14720                 :            :         {
   14721                 :            :             D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
   14722                 :      33989 :             _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
   14723   [ -  +  -  - ]:      33989 :             if (_res == NULL && PyErr_Occurred()) {
   14724                 :          0 :                 p->error_indicator = 1;
   14725                 :          0 :                 p->level--;
   14726                 :          0 :                 return NULL;
   14727                 :            :             }
   14728                 :      33989 :             goto done;
   14729                 :            :         }
   14730                 :       3150 :         p->mark = _mark;
   14731                 :            :         D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
   14732                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
   14733                 :            :     }
   14734                 :            :     { // lambda_param_with_default+ lambda_star_etc?
   14735         [ +  + ]:       3150 :         if (p->error_indicator) {
   14736                 :          7 :             p->level--;
   14737                 :          7 :             return NULL;
   14738                 :            :         }
   14739                 :            :         D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
   14740                 :            :         asdl_seq * a;
   14741                 :            :         void *b;
   14742         [ +  + ]:       3143 :         if (
   14743                 :       3143 :             (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                 :            :             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                 :       2999 :         p->mark = _mark;
   14758                 :            :         D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
   14759                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
   14760                 :            :     }
   14761                 :            :     { // lambda_star_etc
   14762         [ -  + ]:       2999 :         if (p->error_indicator) {
   14763                 :          0 :             p->level--;
   14764                 :          0 :             return NULL;
   14765                 :            :         }
   14766                 :            :         D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
   14767                 :            :         StarEtc* a;
   14768         [ +  + ]:       2999 :         if (
   14769                 :       2999 :             (a = lambda_star_etc_rule(p))  // lambda_star_etc
   14770                 :            :         )
   14771                 :            :         {
   14772                 :            :             D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
   14773                 :        249 :             _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
   14774   [ -  +  -  - ]:        249 :             if (_res == NULL && PyErr_Occurred()) {
   14775                 :          0 :                 p->error_indicator = 1;
   14776                 :          0 :                 p->level--;
   14777                 :          0 :                 return NULL;
   14778                 :            :             }
   14779                 :        249 :             goto done;
   14780                 :            :         }
   14781                 :       2750 :         p->mark = _mark;
   14782                 :            :         D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
   14783                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
   14784                 :            :     }
   14785                 :       2750 :     _res = NULL;
   14786                 :      37266 :   done:
   14787                 :      37266 :     p->level--;
   14788                 :      37266 :     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                 :      37349 : lambda_slash_no_default_rule(Parser *p)
   14796                 :            : {
   14797         [ -  + ]:      37349 :     if (p->level++ == MAXSTACK) {
   14798                 :          0 :         p->error_indicator = 1;
   14799                 :            :         PyErr_NoMemory();
   14800                 :            :     }
   14801         [ -  + ]:      37349 :     if (p->error_indicator) {
   14802                 :          0 :         p->level--;
   14803                 :          0 :         return NULL;
   14804                 :            :     }
   14805                 :      37349 :     asdl_arg_seq* _res = NULL;
   14806                 :      37349 :     int _mark = p->mark;
   14807                 :            :     { // lambda_param_no_default+ '/' ','
   14808         [ -  + ]:      37349 :         if (p->error_indicator) {
   14809                 :          0 :             p->level--;
   14810                 :          0 :             return NULL;
   14811                 :            :         }
   14812                 :            :         D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
   14813                 :            :         Token * _literal;
   14814                 :            :         Token * _literal_1;
   14815                 :            :         asdl_arg_seq* a;
   14816         [ +  + ]:      37349 :         if (
   14817                 :      37349 :             (a = (asdl_arg_seq*)_loop1_101_rule(p))  // lambda_param_no_default+
   14818         [ +  + ]:      34114 :             &&
   14819                 :      34114 :             (_literal = _PyPegen_expect_token(p, 17))  // token='/'
   14820         [ +  + ]:         89 :             &&
   14821                 :         89 :             (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
   14822                 :            :         )
   14823                 :            :         {
   14824                 :            :             D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
   14825                 :         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                 :      37273 :         p->mark = _mark;
   14834                 :            :         D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
   14835                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
   14836                 :            :     }
   14837                 :            :     { // lambda_param_no_default+ '/' &':'
   14838         [ -  + ]:      37273 :         if (p->error_indicator) {
   14839                 :          0 :             p->level--;
   14840                 :          0 :             return NULL;
   14841                 :            :         }
   14842                 :            :         D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
   14843                 :            :         Token * _literal;
   14844                 :            :         asdl_arg_seq* a;
   14845         [ +  + ]:      37273 :         if (
   14846                 :      37273 :             (a = (asdl_arg_seq*)_loop1_102_rule(p))  // lambda_param_no_default+
   14847         [ +  + ]:      34038 :             &&
   14848                 :      34038 :             (_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                 :            :             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                 :      37260 :         p->mark = _mark;
   14863                 :            :         D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
   14864                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
   14865                 :            :     }
   14866                 :      37260 :     _res = NULL;
   14867                 :      37349 :   done:
   14868                 :      37349 :     p->level--;
   14869                 :      37349 :     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                 :      37312 : lambda_slash_with_default_rule(Parser *p)
   14877                 :            : {
   14878         [ -  + ]:      37312 :     if (p->level++ == MAXSTACK) {
   14879                 :          0 :         p->error_indicator = 1;
   14880                 :            :         PyErr_NoMemory();
   14881                 :            :     }
   14882         [ -  + ]:      37312 :     if (p->error_indicator) {
   14883                 :          0 :         p->level--;
   14884                 :          0 :         return NULL;
   14885                 :            :     }
   14886                 :      37312 :     SlashWithDefault* _res = NULL;
   14887                 :      37312 :     int _mark = p->mark;
   14888                 :            :     { // lambda_param_no_default* lambda_param_with_default+ '/' ','
   14889         [ -  + ]:      37312 :         if (p->error_indicator) {
   14890                 :          0 :             p->level--;
   14891                 :          0 :             return NULL;
   14892                 :            :         }
   14893                 :            :         D(fprintf(stderr, "%*c> lambda_slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
   14894                 :            :         Token * _literal;
   14895                 :            :         Token * _literal_1;
   14896                 :            :         asdl_seq * a;
   14897                 :            :         asdl_seq * b;
   14898         [ +  - ]:      37312 :         if (
   14899                 :      37312 :             (a = _loop0_103_rule(p))  // lambda_param_no_default*
   14900         [ +  + ]:      37312 :             &&
   14901                 :      37312 :             (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                 :            :             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                 :      37257 :         p->mark = _mark;
   14918                 :            :         D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
   14919                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
   14920                 :            :     }
   14921                 :            :     { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
   14922         [ +  + ]:      37257 :         if (p->error_indicator) {
   14923                 :          2 :             p->level--;
   14924                 :          2 :             return NULL;
   14925                 :            :         }
   14926                 :            :         D(fprintf(stderr, "%*c> lambda_slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
   14927                 :            :         Token * _literal;
   14928                 :            :         asdl_seq * a;
   14929                 :            :         asdl_seq * b;
   14930         [ +  - ]:      37255 :         if (
   14931                 :      37255 :             (a = _loop0_105_rule(p))  // lambda_param_no_default*
   14932         [ +  + ]:      37255 :             &&
   14933                 :      37255 :             (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                 :            :             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                 :      37246 :         p->mark = _mark;
   14950                 :            :         D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
   14951                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
   14952                 :            :     }
   14953                 :      37246 :     _res = NULL;
   14954                 :      37310 :   done:
   14955                 :      37310 :     p->level--;
   14956                 :      37310 :     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                 :      37276 : lambda_star_etc_rule(Parser *p)
   14966                 :            : {
   14967         [ -  + ]:      37276 :     if (p->level++ == MAXSTACK) {
   14968                 :          0 :         p->error_indicator = 1;
   14969                 :            :         PyErr_NoMemory();
   14970                 :            :     }
   14971         [ -  + ]:      37276 :     if (p->error_indicator) {
   14972                 :          0 :         p->level--;
   14973                 :          0 :         return NULL;
   14974                 :            :     }
   14975                 :      37276 :     StarEtc* _res = NULL;
   14976                 :      37276 :     int _mark = p->mark;
   14977         [ +  + ]:      37276 :     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                 :            :         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                 :            :             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                 :            :         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         [ +  + ]:      37276 :         if (p->error_indicator) {
   14998                 :          6 :             p->level--;
   14999                 :          6 :             return NULL;
   15000                 :            :         }
   15001                 :            :         D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
   15002                 :            :         Token * _literal;
   15003                 :            :         arg_ty a;
   15004                 :            :         asdl_seq * b;
   15005                 :            :         void *c;
   15006         [ +  + ]:      37270 :         if (
   15007                 :      37270 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   15008         [ +  + ]:        400 :             &&
   15009                 :        400 :             (a = lambda_param_no_default_rule(p))  // lambda_param_no_default
   15010         [ +  - ]:        295 :             &&
   15011                 :        295 :             (b = _loop0_107_rule(p))  // lambda_param_maybe_default*
   15012                 :        295 :             &&
   15013         [ +  + ]:        295 :             (c = lambda_kwds_rule(p), !p->error_indicator)  // lambda_kwds?
   15014                 :            :         )
   15015                 :            :         {
   15016                 :            :             D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
   15017                 :        291 :             _res = _PyPegen_star_etc ( p , a , b , c );
   15018   [ -  +  -  - ]:        291 :             if (_res == NULL && PyErr_Occurred()) {
   15019                 :          0 :                 p->error_indicator = 1;
   15020                 :          0 :                 p->level--;
   15021                 :          0 :                 return NULL;
   15022                 :            :             }
   15023                 :        291 :             goto done;
   15024                 :            :         }
   15025                 :      36979 :         p->mark = _mark;
   15026                 :            :         D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
   15027                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
   15028                 :            :     }
   15029                 :            :     { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
   15030         [ +  + ]:      36979 :         if (p->error_indicator) {
   15031                 :          4 :             p->level--;
   15032                 :          4 :             return NULL;
   15033                 :            :         }
   15034                 :            :         D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
   15035                 :            :         Token * _literal;
   15036                 :            :         Token * _literal_1;
   15037                 :            :         asdl_seq * b;
   15038                 :            :         void *c;
   15039         [ +  + ]:      36975 :         if (
   15040                 :      36975 :             (_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                 :            :             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                 :      36873 :         p->mark = _mark;
   15059                 :            :         D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
   15060                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
   15061                 :            :     }
   15062                 :            :     { // lambda_kwds
   15063         [ -  + ]:      36873 :         if (p->error_indicator) {
   15064                 :          0 :             p->level--;
   15065                 :          0 :             return NULL;
   15066                 :            :         }
   15067                 :            :         D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
   15068                 :            :         arg_ty a;
   15069         [ +  + ]:      36873 :         if (
   15070                 :      36873 :             (a = lambda_kwds_rule(p))  // lambda_kwds
   15071                 :            :         )
   15072                 :            :         {
   15073                 :            :             D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
   15074                 :         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                 :      36854 :         p->mark = _mark;
   15083                 :            :         D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
   15084                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
   15085                 :            :     }
   15086                 :      36854 :     _res = NULL;
   15087                 :      37266 :   done:
   15088                 :      37266 :     p->level--;
   15089                 :      37266 :     return _res;
   15090                 :            : }
   15091                 :            : 
   15092                 :            : // lambda_kwds: invalid_lambda_kwds | '**' lambda_param_no_default
   15093                 :            : static arg_ty
   15094                 :      37270 : lambda_kwds_rule(Parser *p)
   15095                 :            : {
   15096         [ -  + ]:      37270 :     if (p->level++ == MAXSTACK) {
   15097                 :          0 :         p->error_indicator = 1;
   15098                 :            :         PyErr_NoMemory();
   15099                 :            :     }
   15100         [ -  + ]:      37270 :     if (p->error_indicator) {
   15101                 :          0 :         p->level--;
   15102                 :          0 :         return NULL;
   15103                 :            :     }
   15104                 :      37270 :     arg_ty _res = NULL;
   15105                 :      37270 :     int _mark = p->mark;
   15106         [ +  + ]:      37270 :     if (p->call_invalid_rules) { // invalid_lambda_kwds
   15107         [ -  + ]:         19 :         if (p->error_indicator) {
   15108                 :          0 :             p->level--;
   15109                 :          0 :             return NULL;
   15110                 :            :         }
   15111                 :            :         D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_kwds"));
   15112                 :            :         void *invalid_lambda_kwds_var;
   15113         [ -  + ]:         19 :         if (
   15114                 :         19 :             (invalid_lambda_kwds_var = invalid_lambda_kwds_rule(p))  // invalid_lambda_kwds
   15115                 :            :         )
   15116                 :            :         {
   15117                 :            :             D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_kwds"));
   15118                 :          0 :             _res = invalid_lambda_kwds_var;
   15119                 :          0 :             goto done;
   15120                 :            :         }
   15121                 :         19 :         p->mark = _mark;
   15122                 :            :         D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
   15123                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_kwds"));
   15124                 :            :     }
   15125                 :            :     { // '**' lambda_param_no_default
   15126         [ +  + ]:      37270 :         if (p->error_indicator) {
   15127                 :          7 :             p->level--;
   15128                 :          7 :             return NULL;
   15129                 :            :         }
   15130                 :            :         D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
   15131                 :            :         Token * _literal;
   15132                 :            :         arg_ty a;
   15133         [ +  + ]:      37263 :         if (
   15134                 :      37263 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   15135         [ +  + ]:        125 :             &&
   15136                 :        125 :             (a = lambda_param_no_default_rule(p))  // lambda_param_no_default
   15137                 :            :         )
   15138                 :            :         {
   15139                 :            :             D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
   15140                 :        124 :             _res = a;
   15141   [ -  +  -  - ]:        124 :             if (_res == NULL && PyErr_Occurred()) {
   15142                 :          0 :                 p->error_indicator = 1;
   15143                 :          0 :                 p->level--;
   15144                 :          0 :                 return NULL;
   15145                 :            :             }
   15146                 :        124 :             goto done;
   15147                 :            :         }
   15148                 :      37139 :         p->mark = _mark;
   15149                 :            :         D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
   15150                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
   15151                 :            :     }
   15152                 :      37139 :     _res = NULL;
   15153                 :      37263 :   done:
   15154                 :      37263 :     p->level--;
   15155                 :      37263 :     return _res;
   15156                 :            : }
   15157                 :            : 
   15158                 :            : // lambda_param_no_default: lambda_param ',' | lambda_param &':'
   15159                 :            : static arg_ty
   15160                 :    1024906 : lambda_param_no_default_rule(Parser *p)
   15161                 :            : {
   15162         [ -  + ]:    1024906 :     if (p->level++ == MAXSTACK) {
   15163                 :          0 :         p->error_indicator = 1;
   15164                 :            :         PyErr_NoMemory();
   15165                 :            :     }
   15166         [ -  + ]:    1024906 :     if (p->error_indicator) {
   15167                 :          0 :         p->level--;
   15168                 :          0 :         return NULL;
   15169                 :            :     }
   15170                 :    1024906 :     arg_ty _res = NULL;
   15171                 :    1024906 :     int _mark = p->mark;
   15172                 :            :     { // lambda_param ','
   15173         [ -  + ]:    1024906 :         if (p->error_indicator) {
   15174                 :          0 :             p->level--;
   15175                 :          0 :             return NULL;
   15176                 :            :         }
   15177                 :            :         D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
   15178                 :            :         Token * _literal;
   15179                 :            :         arg_ty a;
   15180         [ +  + ]:    1024906 :         if (
   15181                 :    1024906 :             (a = lambda_param_rule(p))  // lambda_param
   15182         [ +  + ]:     839792 :             &&
   15183                 :     839792 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   15184                 :            :         )
   15185                 :            :         {
   15186                 :            :             D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
   15187                 :     668916 :             _res = a;
   15188   [ -  +  -  - ]:     668916 :             if (_res == NULL && PyErr_Occurred()) {
   15189                 :          0 :                 p->error_indicator = 1;
   15190                 :          0 :                 p->level--;
   15191                 :          0 :                 return NULL;
   15192                 :            :             }
   15193                 :     668916 :             goto done;
   15194                 :            :         }
   15195                 :     355990 :         p->mark = _mark;
   15196                 :            :         D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
   15197                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
   15198                 :            :     }
   15199                 :            :     { // lambda_param &':'
   15200         [ -  + ]:     355990 :         if (p->error_indicator) {
   15201                 :          0 :             p->level--;
   15202                 :          0 :             return NULL;
   15203                 :            :         }
   15204                 :            :         D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
   15205                 :            :         arg_ty a;
   15206         [ +  + ]:     355990 :         if (
   15207                 :     355990 :             (a = lambda_param_rule(p))  // lambda_param
   15208         [ +  + ]:     170876 :             &&
   15209                 :     170876 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11)  // token=':'
   15210                 :            :         )
   15211                 :            :         {
   15212                 :            :             D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
   15213                 :     169372 :             _res = a;
   15214   [ -  +  -  - ]:     169372 :             if (_res == NULL && PyErr_Occurred()) {
   15215                 :          0 :                 p->error_indicator = 1;
   15216                 :          0 :                 p->level--;
   15217                 :          0 :                 return NULL;
   15218                 :            :             }
   15219                 :     169372 :             goto done;
   15220                 :            :         }
   15221                 :     186618 :         p->mark = _mark;
   15222                 :            :         D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
   15223                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
   15224                 :            :     }
   15225                 :     186618 :     _res = NULL;
   15226                 :    1024906 :   done:
   15227                 :    1024906 :     p->level--;
   15228                 :    1024906 :     return _res;
   15229                 :            : }
   15230                 :            : 
   15231                 :            : // lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
   15232                 :            : static NameDefaultPair*
   15233                 :     112861 : lambda_param_with_default_rule(Parser *p)
   15234                 :            : {
   15235         [ -  + ]:     112861 :     if (p->level++ == MAXSTACK) {
   15236                 :          0 :         p->error_indicator = 1;
   15237                 :            :         PyErr_NoMemory();
   15238                 :            :     }
   15239         [ -  + ]:     112861 :     if (p->error_indicator) {
   15240                 :          0 :         p->level--;
   15241                 :          0 :         return NULL;
   15242                 :            :     }
   15243                 :     112861 :     NameDefaultPair* _res = NULL;
   15244                 :     112861 :     int _mark = p->mark;
   15245                 :            :     { // lambda_param default ','
   15246         [ -  + ]:     112861 :         if (p->error_indicator) {
   15247                 :          0 :             p->level--;
   15248                 :          0 :             return NULL;
   15249                 :            :         }
   15250                 :            :         D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
   15251                 :            :         Token * _literal;
   15252                 :            :         arg_ty a;
   15253                 :            :         expr_ty c;
   15254         [ +  + ]:     112861 :         if (
   15255                 :     112861 :             (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                 :            :             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                 :     112508 :         p->mark = _mark;
   15272                 :            :         D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
   15273                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
   15274                 :            :     }
   15275                 :            :     { // lambda_param default &':'
   15276         [ +  + ]:     112508 :         if (p->error_indicator) {
   15277                 :          2 :             p->level--;
   15278                 :          2 :             return NULL;
   15279                 :            :         }
   15280                 :            :         D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
   15281                 :            :         arg_ty a;
   15282                 :            :         expr_ty c;
   15283         [ +  + ]:     112506 :         if (
   15284                 :     112506 :             (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                 :            :             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                 :     111888 :         p->mark = _mark;
   15301                 :            :         D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
   15302                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
   15303                 :            :     }
   15304                 :     111888 :     _res = NULL;
   15305                 :     112859 :   done:
   15306                 :     112859 :     p->level--;
   15307                 :     112859 :     return _res;
   15308                 :            : }
   15309                 :            : 
   15310                 :            : // lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
   15311                 :            : static NameDefaultPair*
   15312                 :        768 : lambda_param_maybe_default_rule(Parser *p)
   15313                 :            : {
   15314         [ -  + ]:        768 :     if (p->level++ == MAXSTACK) {
   15315                 :          0 :         p->error_indicator = 1;
   15316                 :            :         PyErr_NoMemory();
   15317                 :            :     }
   15318         [ -  + ]:        768 :     if (p->error_indicator) {
   15319                 :          0 :         p->level--;
   15320                 :          0 :         return NULL;
   15321                 :            :     }
   15322                 :        768 :     NameDefaultPair* _res = NULL;
   15323                 :        768 :     int _mark = p->mark;
   15324                 :            :     { // lambda_param default? ','
   15325         [ -  + ]:        768 :         if (p->error_indicator) {
   15326                 :          0 :             p->level--;
   15327                 :          0 :             return NULL;
   15328                 :            :         }
   15329                 :            :         D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
   15330                 :            :         Token * _literal;
   15331                 :            :         arg_ty a;
   15332                 :            :         void *c;
   15333         [ +  + ]:        768 :         if (
   15334                 :        768 :             (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                 :            :             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                 :        582 :         p->mark = _mark;
   15351                 :            :         D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
   15352                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
   15353                 :            :     }
   15354                 :            :     { // lambda_param default? &':'
   15355         [ -  + ]:        582 :         if (p->error_indicator) {
   15356                 :          0 :             p->level--;
   15357                 :          0 :             return NULL;
   15358                 :            :         }
   15359                 :            :         D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
   15360                 :            :         arg_ty a;
   15361                 :            :         void *c;
   15362         [ +  + ]:        582 :         if (
   15363                 :        582 :             (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                 :            :             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                 :        490 :         p->mark = _mark;
   15380                 :            :         D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
   15381                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
   15382                 :            :     }
   15383                 :        490 :     _res = NULL;
   15384                 :        768 :   done:
   15385                 :        768 :     p->level--;
   15386                 :        768 :     return _res;
   15387                 :            : }
   15388                 :            : 
   15389                 :            : // lambda_param: NAME
   15390                 :            : static arg_ty
   15391                 :    1607658 : lambda_param_rule(Parser *p)
   15392                 :            : {
   15393         [ -  + ]:    1607658 :     if (p->level++ == MAXSTACK) {
   15394                 :          0 :         p->error_indicator = 1;
   15395                 :            :         PyErr_NoMemory();
   15396                 :            :     }
   15397         [ -  + ]:    1607658 :     if (p->error_indicator) {
   15398                 :          0 :         p->level--;
   15399                 :          0 :         return NULL;
   15400                 :            :     }
   15401                 :    1607658 :     arg_ty _res = NULL;
   15402                 :    1607658 :     int _mark = p->mark;
   15403   [ +  +  -  + ]:    1607658 :     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                 :    1607658 :     int _start_lineno = p->tokens[_mark]->lineno;
   15409                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   15410                 :    1607658 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   15411                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   15412                 :            :     { // NAME
   15413         [ -  + ]:    1607658 :         if (p->error_indicator) {
   15414                 :          0 :             p->level--;
   15415                 :          0 :             return NULL;
   15416                 :            :         }
   15417                 :            :         D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
   15418                 :            :         expr_ty a;
   15419         [ +  + ]:    1607658 :         if (
   15420                 :    1607658 :             (a = _PyPegen_name_token(p))  // NAME
   15421                 :            :         )
   15422                 :            :         {
   15423                 :            :             D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
   15424                 :    1012737 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   15425         [ -  + ]:    1012737 :             if (_token == NULL) {
   15426                 :          0 :                 p->level--;
   15427                 :          0 :                 return NULL;
   15428                 :            :             }
   15429                 :    1012737 :             int _end_lineno = _token->end_lineno;
   15430                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   15431                 :    1012737 :             int _end_col_offset = _token->end_col_offset;
   15432                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   15433                 :    1012737 :             _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
   15434   [ -  +  -  - ]:    1012737 :             if (_res == NULL && PyErr_Occurred()) {
   15435                 :          0 :                 p->error_indicator = 1;
   15436                 :          0 :                 p->level--;
   15437                 :          0 :                 return NULL;
   15438                 :            :             }
   15439                 :    1012737 :             goto done;
   15440                 :            :         }
   15441                 :     594921 :         p->mark = _mark;
   15442                 :            :         D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
   15443                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
   15444                 :            :     }
   15445                 :     594921 :     _res = NULL;
   15446                 :    1607658 :   done:
   15447                 :    1607658 :     p->level--;
   15448                 :    1607658 :     return _res;
   15449                 :            : }
   15450                 :            : 
   15451                 :            : // strings: STRING+
   15452                 :            : static expr_ty
   15453                 :    3411414 : strings_rule(Parser *p)
   15454                 :            : {
   15455         [ -  + ]:    3411414 :     if (p->level++ == MAXSTACK) {
   15456                 :          0 :         p->error_indicator = 1;
   15457                 :            :         PyErr_NoMemory();
   15458                 :            :     }
   15459         [ -  + ]:    3411414 :     if (p->error_indicator) {
   15460                 :          0 :         p->level--;
   15461                 :          0 :         return NULL;
   15462                 :            :     }
   15463                 :    3411414 :     expr_ty _res = NULL;
   15464         [ +  + ]:    3411414 :     if (_PyPegen_is_memoized(p, strings_type, &_res)) {
   15465                 :    1807252 :         p->level--;
   15466                 :    1807252 :         return _res;
   15467                 :            :     }
   15468                 :    1604162 :     int _mark = p->mark;
   15469                 :            :     { // STRING+
   15470         [ -  + ]:    1604162 :         if (p->error_indicator) {
   15471                 :          0 :             p->level--;
   15472                 :          0 :             return NULL;
   15473                 :            :         }
   15474                 :            :         D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
   15475                 :            :         asdl_seq * a;
   15476         [ +  + ]:    1604162 :         if (
   15477                 :    1604162 :             (a = _loop1_109_rule(p))  // STRING+
   15478                 :            :         )
   15479                 :            :         {
   15480                 :            :             D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
   15481                 :    1600817 :             _res = _PyPegen_concatenate_strings ( p , a );
   15482   [ +  +  +  - ]:    1600817 :             if (_res == NULL && PyErr_Occurred()) {
   15483                 :        767 :                 p->error_indicator = 1;
   15484                 :        767 :                 p->level--;
   15485                 :        767 :                 return NULL;
   15486                 :            :             }
   15487                 :    1600050 :             goto done;
   15488                 :            :         }
   15489                 :       3345 :         p->mark = _mark;
   15490                 :            :         D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
   15491                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
   15492                 :            :     }
   15493                 :       3345 :     _res = NULL;
   15494                 :    1603395 :   done:
   15495                 :    1603395 :     _PyPegen_insert_memo(p, _mark, strings_type, _res);
   15496                 :    1603395 :     p->level--;
   15497                 :    1603395 :     return _res;
   15498                 :            : }
   15499                 :            : 
   15500                 :            : // list: '[' star_named_expressions? ']'
   15501                 :            : static expr_ty
   15502                 :     263549 : list_rule(Parser *p)
   15503                 :            : {
   15504         [ -  + ]:     263549 :     if (p->level++ == MAXSTACK) {
   15505                 :          0 :         p->error_indicator = 1;
   15506                 :            :         PyErr_NoMemory();
   15507                 :            :     }
   15508         [ -  + ]:     263549 :     if (p->error_indicator) {
   15509                 :          0 :         p->level--;
   15510                 :          0 :         return NULL;
   15511                 :            :     }
   15512                 :     263549 :     expr_ty _res = NULL;
   15513                 :     263549 :     int _mark = p->mark;
   15514   [ -  +  -  - ]:     263549 :     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                 :     263549 :     int _start_lineno = p->tokens[_mark]->lineno;
   15520                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   15521                 :     263549 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   15522                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   15523                 :            :     { // '[' star_named_expressions? ']'
   15524         [ -  + ]:     263549 :         if (p->error_indicator) {
   15525                 :          0 :             p->level--;
   15526                 :          0 :             return NULL;
   15527                 :            :         }
   15528                 :            :         D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
   15529                 :            :         Token * _literal;
   15530                 :            :         Token * _literal_1;
   15531                 :            :         void *a;
   15532         [ +  + ]:     263549 :         if (
   15533                 :     263549 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   15534                 :     261422 :             &&
   15535         [ +  + ]:     261422 :             (a = star_named_expressions_rule(p), !p->error_indicator)  // star_named_expressions?
   15536         [ +  + ]:     261388 :             &&
   15537                 :     261388 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   15538                 :            :         )
   15539                 :            :         {
   15540                 :            :             D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
   15541                 :     232152 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   15542         [ -  + ]:     232152 :             if (_token == NULL) {
   15543                 :          0 :                 p->level--;
   15544                 :          0 :                 return NULL;
   15545                 :            :             }
   15546                 :     232152 :             int _end_lineno = _token->end_lineno;
   15547                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   15548                 :     232152 :             int _end_col_offset = _token->end_col_offset;
   15549                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   15550                 :     232152 :             _res = _PyAST_List ( a , Load , EXTRA );
   15551   [ -  +  -  - ]:     232152 :             if (_res == NULL && PyErr_Occurred()) {
   15552                 :          0 :                 p->error_indicator = 1;
   15553                 :          0 :                 p->level--;
   15554                 :          0 :                 return NULL;
   15555                 :            :             }
   15556                 :     232152 :             goto done;
   15557                 :            :         }
   15558                 :      31397 :         p->mark = _mark;
   15559                 :            :         D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
   15560                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
   15561                 :            :     }
   15562                 :      31397 :     _res = NULL;
   15563                 :     263549 :   done:
   15564                 :     263549 :     p->level--;
   15565                 :     263549 :     return _res;
   15566                 :            : }
   15567                 :            : 
   15568                 :            : // tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
   15569                 :            : static expr_ty
   15570                 :     865839 : tuple_rule(Parser *p)
   15571                 :            : {
   15572         [ -  + ]:     865839 :     if (p->level++ == MAXSTACK) {
   15573                 :          0 :         p->error_indicator = 1;
   15574                 :            :         PyErr_NoMemory();
   15575                 :            :     }
   15576         [ -  + ]:     865839 :     if (p->error_indicator) {
   15577                 :          0 :         p->level--;
   15578                 :          0 :         return NULL;
   15579                 :            :     }
   15580                 :     865839 :     expr_ty _res = NULL;
   15581                 :     865839 :     int _mark = p->mark;
   15582   [ -  +  -  - ]:     865839 :     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                 :     865839 :     int _start_lineno = p->tokens[_mark]->lineno;
   15588                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   15589                 :     865839 :     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         [ -  + ]:     865839 :         if (p->error_indicator) {
   15593                 :          0 :             p->level--;
   15594                 :          0 :             return NULL;
   15595                 :            :         }
   15596                 :            :         D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
   15597                 :            :         Token * _literal;
   15598                 :            :         Token * _literal_1;
   15599                 :            :         void *a;
   15600         [ +  + ]:     865839 :         if (
   15601                 :     865839 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   15602                 :     863752 :             &&
   15603         [ +  + ]:     863752 :             (a = _tmp_110_rule(p), !p->error_indicator)  // [star_named_expression ',' star_named_expressions?]
   15604         [ +  + ]:     863700 :             &&
   15605                 :     863700 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   15606                 :            :         )
   15607                 :            :         {
   15608                 :            :             D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
   15609                 :     569927 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   15610         [ -  + ]:     569927 :             if (_token == NULL) {
   15611                 :          0 :                 p->level--;
   15612                 :          0 :                 return NULL;
   15613                 :            :             }
   15614                 :     569927 :             int _end_lineno = _token->end_lineno;
   15615                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   15616                 :     569927 :             int _end_col_offset = _token->end_col_offset;
   15617                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   15618                 :     569927 :             _res = _PyAST_Tuple ( a , Load , EXTRA );
   15619   [ -  +  -  - ]:     569927 :             if (_res == NULL && PyErr_Occurred()) {
   15620                 :          0 :                 p->error_indicator = 1;
   15621                 :          0 :                 p->level--;
   15622                 :          0 :                 return NULL;
   15623                 :            :             }
   15624                 :     569927 :             goto done;
   15625                 :            :         }
   15626                 :     295912 :         p->mark = _mark;
   15627                 :            :         D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
   15628                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
   15629                 :            :     }
   15630                 :     295912 :     _res = NULL;
   15631                 :     865839 :   done:
   15632                 :     865839 :     p->level--;
   15633                 :     865839 :     return _res;
   15634                 :            : }
   15635                 :            : 
   15636                 :            : // set: '{' star_named_expressions '}'
   15637                 :            : static expr_ty
   15638                 :      13763 : set_rule(Parser *p)
   15639                 :            : {
   15640         [ -  + ]:      13763 :     if (p->level++ == MAXSTACK) {
   15641                 :          0 :         p->error_indicator = 1;
   15642                 :            :         PyErr_NoMemory();
   15643                 :            :     }
   15644         [ -  + ]:      13763 :     if (p->error_indicator) {
   15645                 :          0 :         p->level--;
   15646                 :          0 :         return NULL;
   15647                 :            :     }
   15648                 :      13763 :     expr_ty _res = NULL;
   15649                 :      13763 :     int _mark = p->mark;
   15650   [ -  +  -  - ]:      13763 :     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                 :      13763 :     int _start_lineno = p->tokens[_mark]->lineno;
   15656                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   15657                 :      13763 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   15658                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   15659                 :            :     { // '{' star_named_expressions '}'
   15660         [ -  + ]:      13763 :         if (p->error_indicator) {
   15661                 :          0 :             p->level--;
   15662                 :          0 :             return NULL;
   15663                 :            :         }
   15664                 :            :         D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
   15665                 :            :         Token * _literal;
   15666                 :            :         Token * _literal_1;
   15667                 :            :         asdl_expr_seq* a;
   15668         [ +  - ]:      13763 :         if (
   15669                 :      13763 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
   15670         [ +  + ]:      13763 :             &&
   15671                 :      13763 :             (a = star_named_expressions_rule(p))  // star_named_expressions
   15672         [ +  + ]:      13730 :             &&
   15673                 :      13730 :             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
   15674                 :            :         )
   15675                 :            :         {
   15676                 :            :             D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
   15677                 :       8391 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   15678         [ -  + ]:       8391 :             if (_token == NULL) {
   15679                 :          0 :                 p->level--;
   15680                 :          0 :                 return NULL;
   15681                 :            :             }
   15682                 :       8391 :             int _end_lineno = _token->end_lineno;
   15683                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   15684                 :       8391 :             int _end_col_offset = _token->end_col_offset;
   15685                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   15686                 :       8391 :             _res = _PyAST_Set ( a , EXTRA );
   15687   [ -  +  -  - ]:       8391 :             if (_res == NULL && PyErr_Occurred()) {
   15688                 :          0 :                 p->error_indicator = 1;
   15689                 :          0 :                 p->level--;
   15690                 :          0 :                 return NULL;
   15691                 :            :             }
   15692                 :       8391 :             goto done;
   15693                 :            :         }
   15694                 :       5372 :         p->mark = _mark;
   15695                 :            :         D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
   15696                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
   15697                 :            :     }
   15698                 :       5372 :     _res = NULL;
   15699                 :      13763 :   done:
   15700                 :      13763 :     p->level--;
   15701                 :      13763 :     return _res;
   15702                 :            : }
   15703                 :            : 
   15704                 :            : // dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
   15705                 :            : static expr_ty
   15706                 :     112968 : dict_rule(Parser *p)
   15707                 :            : {
   15708         [ -  + ]:     112968 :     if (p->level++ == MAXSTACK) {
   15709                 :          0 :         p->error_indicator = 1;
   15710                 :            :         PyErr_NoMemory();
   15711                 :            :     }
   15712         [ -  + ]:     112968 :     if (p->error_indicator) {
   15713                 :          0 :         p->level--;
   15714                 :          0 :         return NULL;
   15715                 :            :     }
   15716                 :     112968 :     expr_ty _res = NULL;
   15717                 :     112968 :     int _mark = p->mark;
   15718   [ -  +  -  - ]:     112968 :     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                 :     112968 :     int _start_lineno = p->tokens[_mark]->lineno;
   15724                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   15725                 :     112968 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   15726                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   15727                 :            :     { // '{' double_starred_kvpairs? '}'
   15728         [ -  + ]:     112968 :         if (p->error_indicator) {
   15729                 :          0 :             p->level--;
   15730                 :          0 :             return NULL;
   15731                 :            :         }
   15732                 :            :         D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
   15733                 :            :         Token * _literal;
   15734                 :            :         Token * _literal_1;
   15735                 :            :         void *a;
   15736         [ +  - ]:     112968 :         if (
   15737                 :     112968 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
   15738                 :     112968 :             &&
   15739         [ +  + ]:     112968 :             (a = double_starred_kvpairs_rule(p), !p->error_indicator)  // double_starred_kvpairs?
   15740         [ +  + ]:     112942 :             &&
   15741                 :     112942 :             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
   15742                 :            :         )
   15743                 :            :         {
   15744                 :            :             D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
   15745                 :      99173 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   15746         [ -  + ]:      99173 :             if (_token == NULL) {
   15747                 :          0 :                 p->level--;
   15748                 :          0 :                 return NULL;
   15749                 :            :             }
   15750                 :      99173 :             int _end_lineno = _token->end_lineno;
   15751                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   15752                 :      99173 :             int _end_col_offset = _token->end_col_offset;
   15753                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   15754                 :      99173 :             _res = _PyAST_Dict ( CHECK ( asdl_expr_seq* , _PyPegen_get_keys ( p , a ) ) , CHECK ( asdl_expr_seq* , _PyPegen_get_values ( p , a ) ) , EXTRA );
   15755   [ -  +  -  - ]:      99173 :             if (_res == NULL && PyErr_Occurred()) {
   15756                 :          0 :                 p->error_indicator = 1;
   15757                 :          0 :                 p->level--;
   15758                 :          0 :                 return NULL;
   15759                 :            :             }
   15760                 :      99173 :             goto done;
   15761                 :            :         }
   15762                 :      13795 :         p->mark = _mark;
   15763                 :            :         D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
   15764                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
   15765                 :            :     }
   15766                 :            :     { // '{' invalid_double_starred_kvpairs '}'
   15767         [ +  + ]:      13795 :         if (p->error_indicator) {
   15768                 :         26 :             p->level--;
   15769                 :         26 :             return NULL;
   15770                 :            :         }
   15771                 :            :         D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
   15772                 :            :         Token * _literal;
   15773                 :            :         Token * _literal_1;
   15774                 :            :         void *invalid_double_starred_kvpairs_var;
   15775         [ +  - ]:      13769 :         if (
   15776                 :      13769 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
   15777         [ -  + ]:      13769 :             &&
   15778                 :      13769 :             (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                 :            :             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                 :      13769 :         p->mark = _mark;
   15788                 :            :         D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
   15789                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
   15790                 :            :     }
   15791                 :      13769 :     _res = NULL;
   15792                 :     112942 :   done:
   15793                 :     112942 :     p->level--;
   15794                 :     112942 :     return _res;
   15795                 :            : }
   15796                 :            : 
   15797                 :            : // double_starred_kvpairs: ','.double_starred_kvpair+ ','?
   15798                 :            : static asdl_seq*
   15799                 :     112968 : double_starred_kvpairs_rule(Parser *p)
   15800                 :            : {
   15801         [ -  + ]:     112968 :     if (p->level++ == MAXSTACK) {
   15802                 :          0 :         p->error_indicator = 1;
   15803                 :            :         PyErr_NoMemory();
   15804                 :            :     }
   15805         [ -  + ]:     112968 :     if (p->error_indicator) {
   15806                 :          0 :         p->level--;
   15807                 :          0 :         return NULL;
   15808                 :            :     }
   15809                 :     112968 :     asdl_seq* _res = NULL;
   15810                 :     112968 :     int _mark = p->mark;
   15811                 :            :     { // ','.double_starred_kvpair+ ','?
   15812         [ -  + ]:     112968 :         if (p->error_indicator) {
   15813                 :          0 :             p->level--;
   15814                 :          0 :             return NULL;
   15815                 :            :         }
   15816                 :            :         D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
   15817                 :            :         void *_opt_var;
   15818                 :            :         UNUSED(_opt_var); // Silence compiler warnings
   15819                 :            :         asdl_seq * a;
   15820         [ +  + ]:     112968 :         if (
   15821                 :     112968 :             (a = _gather_111_rule(p))  // ','.double_starred_kvpair+
   15822                 :      65085 :             &&
   15823         [ +  + ]:      65085 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   15824                 :            :         )
   15825                 :            :         {
   15826                 :            :             D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
   15827                 :      65072 :             _res = a;
   15828   [ -  +  -  - ]:      65072 :             if (_res == NULL && PyErr_Occurred()) {
   15829                 :          0 :                 p->error_indicator = 1;
   15830                 :          0 :                 p->level--;
   15831                 :          0 :                 return NULL;
   15832                 :            :             }
   15833                 :      65072 :             goto done;
   15834                 :            :         }
   15835                 :      47896 :         p->mark = _mark;
   15836                 :            :         D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
   15837                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
   15838                 :            :     }
   15839                 :      47896 :     _res = NULL;
   15840                 :     112968 :   done:
   15841                 :     112968 :     p->level--;
   15842                 :     112968 :     return _res;
   15843                 :            : }
   15844                 :            : 
   15845                 :            : // double_starred_kvpair: '**' bitwise_or | kvpair
   15846                 :            : static KeyValuePair*
   15847                 :    1608586 : double_starred_kvpair_rule(Parser *p)
   15848                 :            : {
   15849         [ -  + ]:    1608586 :     if (p->level++ == MAXSTACK) {
   15850                 :          0 :         p->error_indicator = 1;
   15851                 :            :         PyErr_NoMemory();
   15852                 :            :     }
   15853         [ -  + ]:    1608586 :     if (p->error_indicator) {
   15854                 :          0 :         p->level--;
   15855                 :          0 :         return NULL;
   15856                 :            :     }
   15857                 :    1608586 :     KeyValuePair* _res = NULL;
   15858                 :    1608586 :     int _mark = p->mark;
   15859                 :            :     { // '**' bitwise_or
   15860         [ -  + ]:    1608586 :         if (p->error_indicator) {
   15861                 :          0 :             p->level--;
   15862                 :          0 :             return NULL;
   15863                 :            :         }
   15864                 :            :         D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
   15865                 :            :         Token * _literal;
   15866                 :            :         expr_ty a;
   15867         [ +  + ]:    1608586 :         if (
   15868                 :    1608586 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   15869         [ +  - ]:       3093 :             &&
   15870                 :       3093 :             (a = bitwise_or_rule(p))  // bitwise_or
   15871                 :            :         )
   15872                 :            :         {
   15873                 :            :             D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
   15874                 :       3093 :             _res = _PyPegen_key_value_pair ( p , NULL , a );
   15875   [ -  +  -  - ]:       3093 :             if (_res == NULL && PyErr_Occurred()) {
   15876                 :          0 :                 p->error_indicator = 1;
   15877                 :          0 :                 p->level--;
   15878                 :          0 :                 return NULL;
   15879                 :            :             }
   15880                 :       3093 :             goto done;
   15881                 :            :         }
   15882                 :    1605493 :         p->mark = _mark;
   15883                 :            :         D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
   15884                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
   15885                 :            :     }
   15886                 :            :     { // kvpair
   15887         [ +  + ]:    1605493 :         if (p->error_indicator) {
   15888                 :         12 :             p->level--;
   15889                 :         12 :             return NULL;
   15890                 :            :         }
   15891                 :            :         D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
   15892                 :            :         KeyValuePair* kvpair_var;
   15893         [ +  + ]:    1605481 :         if (
   15894                 :    1605481 :             (kvpair_var = kvpair_rule(p))  // kvpair
   15895                 :            :         )
   15896                 :            :         {
   15897                 :            :             D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
   15898                 :    1525156 :             _res = kvpair_var;
   15899                 :    1525156 :             goto done;
   15900                 :            :         }
   15901                 :      80325 :         p->mark = _mark;
   15902                 :            :         D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
   15903                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
   15904                 :            :     }
   15905                 :      80325 :     _res = NULL;
   15906                 :    1608574 :   done:
   15907                 :    1608574 :     p->level--;
   15908                 :    1608574 :     return _res;
   15909                 :            : }
   15910                 :            : 
   15911                 :            : // kvpair: expression ':' expression
   15912                 :            : static KeyValuePair*
   15913                 :    1610848 : kvpair_rule(Parser *p)
   15914                 :            : {
   15915         [ -  + ]:    1610848 :     if (p->level++ == MAXSTACK) {
   15916                 :          0 :         p->error_indicator = 1;
   15917                 :            :         PyErr_NoMemory();
   15918                 :            :     }
   15919         [ -  + ]:    1610848 :     if (p->error_indicator) {
   15920                 :          0 :         p->level--;
   15921                 :          0 :         return NULL;
   15922                 :            :     }
   15923                 :    1610848 :     KeyValuePair* _res = NULL;
   15924                 :    1610848 :     int _mark = p->mark;
   15925                 :            :     { // expression ':' expression
   15926         [ -  + ]:    1610848 :         if (p->error_indicator) {
   15927                 :          0 :             p->level--;
   15928                 :          0 :             return NULL;
   15929                 :            :         }
   15930                 :            :         D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
   15931                 :            :         Token * _literal;
   15932                 :            :         expr_ty a;
   15933                 :            :         expr_ty b;
   15934         [ +  + ]:    1610848 :         if (
   15935                 :    1610848 :             (a = expression_rule(p))  // expression
   15936         [ +  + ]:    1550300 :             &&
   15937                 :    1550300 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   15938         [ +  + ]:    1528997 :             &&
   15939                 :    1528997 :             (b = expression_rule(p))  // expression
   15940                 :            :         )
   15941                 :            :         {
   15942                 :            :             D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
   15943                 :    1528942 :             _res = _PyPegen_key_value_pair ( p , a , b );
   15944   [ -  +  -  - ]:    1528942 :             if (_res == NULL && PyErr_Occurred()) {
   15945                 :          0 :                 p->error_indicator = 1;
   15946                 :          0 :                 p->level--;
   15947                 :          0 :                 return NULL;
   15948                 :            :             }
   15949                 :    1528942 :             goto done;
   15950                 :            :         }
   15951                 :      81906 :         p->mark = _mark;
   15952                 :            :         D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
   15953                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
   15954                 :            :     }
   15955                 :      81906 :     _res = NULL;
   15956                 :    1610848 :   done:
   15957                 :    1610848 :     p->level--;
   15958                 :    1610848 :     return _res;
   15959                 :            : }
   15960                 :            : 
   15961                 :            : // for_if_clauses: for_if_clause+
   15962                 :            : static asdl_comprehension_seq*
   15963                 :    2124538 : for_if_clauses_rule(Parser *p)
   15964                 :            : {
   15965         [ -  + ]:    2124538 :     if (p->level++ == MAXSTACK) {
   15966                 :          0 :         p->error_indicator = 1;
   15967                 :            :         PyErr_NoMemory();
   15968                 :            :     }
   15969         [ -  + ]:    2124538 :     if (p->error_indicator) {
   15970                 :          0 :         p->level--;
   15971                 :          0 :         return NULL;
   15972                 :            :     }
   15973                 :    2124538 :     asdl_comprehension_seq* _res = NULL;
   15974                 :    2124538 :     int _mark = p->mark;
   15975                 :            :     { // for_if_clause+
   15976         [ -  + ]:    2124538 :         if (p->error_indicator) {
   15977                 :          0 :             p->level--;
   15978                 :          0 :             return NULL;
   15979                 :            :         }
   15980                 :            :         D(fprintf(stderr, "%*c> for_if_clauses[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
   15981                 :            :         asdl_comprehension_seq* a;
   15982         [ +  + ]:    2124538 :         if (
   15983                 :    2124538 :             (a = (asdl_comprehension_seq*)_loop1_113_rule(p))  // for_if_clause+
   15984                 :            :         )
   15985                 :            :         {
   15986                 :            :             D(fprintf(stderr, "%*c+ for_if_clauses[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
   15987                 :      49628 :             _res = a;
   15988   [ -  +  -  - ]:      49628 :             if (_res == NULL && PyErr_Occurred()) {
   15989                 :          0 :                 p->error_indicator = 1;
   15990                 :          0 :                 p->level--;
   15991                 :          0 :                 return NULL;
   15992                 :            :             }
   15993                 :      49628 :             goto done;
   15994                 :            :         }
   15995                 :    2074910 :         p->mark = _mark;
   15996                 :            :         D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
   15997                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
   15998                 :            :     }
   15999                 :    2074910 :     _res = NULL;
   16000                 :    2124538 :   done:
   16001                 :    2124538 :     p->level--;
   16002                 :    2124538 :     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                 :    2176116 : for_if_clause_rule(Parser *p)
   16011                 :            : {
   16012         [ -  + ]:    2176116 :     if (p->level++ == MAXSTACK) {
   16013                 :          0 :         p->error_indicator = 1;
   16014                 :            :         PyErr_NoMemory();
   16015                 :            :     }
   16016         [ -  + ]:    2176116 :     if (p->error_indicator) {
   16017                 :          0 :         p->level--;
   16018                 :          0 :         return NULL;
   16019                 :            :     }
   16020                 :    2176116 :     comprehension_ty _res = NULL;
   16021                 :    2176116 :     int _mark = p->mark;
   16022                 :            :     { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
   16023         [ -  + ]:    2176116 :         if (p->error_indicator) {
   16024                 :          0 :             p->level--;
   16025                 :          0 :             return NULL;
   16026                 :            :         }
   16027                 :            :         D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
   16028                 :    2176116 :         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         [ +  + ]:    2176116 :         if (
   16036                 :    2176116 :             (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                 :            :             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                 :    2175608 :         p->mark = _mark;
   16061                 :            :         D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
   16062                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
   16063         [ -  + ]:    2175608 :         if (_cut_var) {
   16064                 :          0 :             p->level--;
   16065                 :          0 :             return NULL;
   16066                 :            :         }
   16067                 :            :     }
   16068                 :            :     { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
   16069         [ -  + ]:    2175608 :         if (p->error_indicator) {
   16070                 :          0 :             p->level--;
   16071                 :          0 :             return NULL;
   16072                 :            :         }
   16073                 :            :         D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
   16074                 :    2175608 :         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         [ +  + ]:    2175608 :         if (
   16081                 :    2175608 :             (_keyword = _PyPegen_expect_token(p, 642))  // token='for'
   16082         [ +  + ]:      51093 :             &&
   16083                 :      51093 :             (a = star_targets_rule(p))  // star_targets
   16084         [ +  + ]:      51089 :             &&
   16085                 :      51089 :             (_keyword_1 = _PyPegen_expect_token(p, 643))  // token='in'
   16086                 :            :             &&
   16087                 :      51080 :             (_cut_var = 1)
   16088         [ +  + ]:      51080 :             &&
   16089                 :      51080 :             (b = disjunction_rule(p))  // disjunction
   16090         [ +  - ]:      51072 :             &&
   16091                 :      51072 :             (c = (asdl_expr_seq*)_loop0_115_rule(p))  // (('if' disjunction))*
   16092                 :            :         )
   16093                 :            :         {
   16094                 :            :             D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
   16095                 :      51072 :             _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
   16096   [ -  +  -  - ]:      51072 :             if (_res == NULL && PyErr_Occurred()) {
   16097                 :          0 :                 p->error_indicator = 1;
   16098                 :          0 :                 p->level--;
   16099                 :          0 :                 return NULL;
   16100                 :            :             }
   16101                 :      51072 :             goto done;
   16102                 :            :         }
   16103                 :    2124536 :         p->mark = _mark;
   16104                 :            :         D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
   16105                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
   16106         [ +  + ]:    2124536 :         if (_cut_var) {
   16107                 :          8 :             p->level--;
   16108                 :          8 :             return NULL;
   16109                 :            :         }
   16110                 :            :     }
   16111         [ +  + ]:    2124528 :     if (p->call_invalid_rules) { // invalid_for_target
   16112         [ -  + ]:        488 :         if (p->error_indicator) {
   16113                 :          0 :             p->level--;
   16114                 :          0 :             return NULL;
   16115                 :            :         }
   16116                 :            :         D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
   16117                 :            :         void *invalid_for_target_var;
   16118         [ -  + ]:        488 :         if (
   16119                 :        488 :             (invalid_for_target_var = invalid_for_target_rule(p))  // invalid_for_target
   16120                 :            :         )
   16121                 :            :         {
   16122                 :            :             D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
   16123                 :          0 :             _res = invalid_for_target_var;
   16124                 :          0 :             goto done;
   16125                 :            :         }
   16126                 :        488 :         p->mark = _mark;
   16127                 :            :         D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
   16128                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
   16129                 :            :     }
   16130                 :    2124528 :     _res = NULL;
   16131                 :    2176106 :   done:
   16132                 :    2176106 :     p->level--;
   16133                 :    2176106 :     return _res;
   16134                 :            : }
   16135                 :            : 
   16136                 :            : // listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
   16137                 :            : static expr_ty
   16138                 :      29223 : listcomp_rule(Parser *p)
   16139                 :            : {
   16140         [ -  + ]:      29223 :     if (p->level++ == MAXSTACK) {
   16141                 :          0 :         p->error_indicator = 1;
   16142                 :            :         PyErr_NoMemory();
   16143                 :            :     }
   16144         [ -  + ]:      29223 :     if (p->error_indicator) {
   16145                 :          0 :         p->level--;
   16146                 :          0 :         return NULL;
   16147                 :            :     }
   16148                 :      29223 :     expr_ty _res = NULL;
   16149                 :      29223 :     int _mark = p->mark;
   16150   [ -  +  -  - ]:      29223 :     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                 :      29223 :     int _start_lineno = p->tokens[_mark]->lineno;
   16156                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16157                 :      29223 :     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         [ -  + ]:      29223 :         if (p->error_indicator) {
   16161                 :          0 :             p->level--;
   16162                 :          0 :             return NULL;
   16163                 :            :         }
   16164                 :            :         D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
   16165                 :            :         Token * _literal;
   16166                 :            :         Token * _literal_1;
   16167                 :            :         expr_ty a;
   16168                 :            :         asdl_comprehension_seq* b;
   16169         [ +  - ]:      29223 :         if (
   16170                 :      29223 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   16171         [ +  + ]:      29223 :             &&
   16172                 :      29223 :             (a = named_expression_rule(p))  // named_expression
   16173         [ +  + ]:      29180 :             &&
   16174                 :      29180 :             (b = for_if_clauses_rule(p))  // for_if_clauses
   16175         [ +  + ]:      29138 :             &&
   16176                 :      29138 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   16177                 :            :         )
   16178                 :            :         {
   16179                 :            :             D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
   16180                 :      29134 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16181         [ -  + ]:      29134 :             if (_token == NULL) {
   16182                 :          0 :                 p->level--;
   16183                 :          0 :                 return NULL;
   16184                 :            :             }
   16185                 :      29134 :             int _end_lineno = _token->end_lineno;
   16186                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16187                 :      29134 :             int _end_col_offset = _token->end_col_offset;
   16188                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16189                 :      29134 :             _res = _PyAST_ListComp ( a , b , EXTRA );
   16190   [ -  +  -  - ]:      29134 :             if (_res == NULL && PyErr_Occurred()) {
   16191                 :          0 :                 p->error_indicator = 1;
   16192                 :          0 :                 p->level--;
   16193                 :          0 :                 return NULL;
   16194                 :            :             }
   16195                 :      29134 :             goto done;
   16196                 :            :         }
   16197                 :         89 :         p->mark = _mark;
   16198                 :            :         D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
   16199                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
   16200                 :            :     }
   16201         [ +  + ]:         89 :     if (p->call_invalid_rules) { // invalid_comprehension
   16202         [ +  + ]:         17 :         if (p->error_indicator) {
   16203                 :          3 :             p->level--;
   16204                 :          3 :             return NULL;
   16205                 :            :         }
   16206                 :            :         D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
   16207                 :            :         void *invalid_comprehension_var;
   16208         [ -  + ]:         14 :         if (
   16209                 :         14 :             (invalid_comprehension_var = invalid_comprehension_rule(p))  // invalid_comprehension
   16210                 :            :         )
   16211                 :            :         {
   16212                 :            :             D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
   16213                 :          0 :             _res = invalid_comprehension_var;
   16214                 :          0 :             goto done;
   16215                 :            :         }
   16216                 :         14 :         p->mark = _mark;
   16217                 :            :         D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
   16218                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
   16219                 :            :     }
   16220                 :         86 :     _res = NULL;
   16221                 :      29220 :   done:
   16222                 :      29220 :     p->level--;
   16223                 :      29220 :     return _res;
   16224                 :            : }
   16225                 :            : 
   16226                 :            : // setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
   16227                 :            : static expr_ty
   16228                 :       1586 : setcomp_rule(Parser *p)
   16229                 :            : {
   16230         [ -  + ]:       1586 :     if (p->level++ == MAXSTACK) {
   16231                 :          0 :         p->error_indicator = 1;
   16232                 :            :         PyErr_NoMemory();
   16233                 :            :     }
   16234         [ -  + ]:       1586 :     if (p->error_indicator) {
   16235                 :          0 :         p->level--;
   16236                 :          0 :         return NULL;
   16237                 :            :     }
   16238                 :       1586 :     expr_ty _res = NULL;
   16239                 :       1586 :     int _mark = p->mark;
   16240   [ -  +  -  - ]:       1586 :     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                 :       1586 :     int _start_lineno = p->tokens[_mark]->lineno;
   16246                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16247                 :       1586 :     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         [ -  + ]:       1586 :         if (p->error_indicator) {
   16251                 :          0 :             p->level--;
   16252                 :          0 :             return NULL;
   16253                 :            :         }
   16254                 :            :         D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
   16255                 :            :         Token * _literal;
   16256                 :            :         Token * _literal_1;
   16257                 :            :         expr_ty a;
   16258                 :            :         asdl_comprehension_seq* b;
   16259         [ +  - ]:       1586 :         if (
   16260                 :       1586 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
   16261         [ +  + ]:       1586 :             &&
   16262                 :       1586 :             (a = named_expression_rule(p))  // named_expression
   16263         [ +  + ]:       1559 :             &&
   16264                 :       1559 :             (b = for_if_clauses_rule(p))  // for_if_clauses
   16265         [ +  - ]:       1528 :             &&
   16266                 :       1528 :             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
   16267                 :            :         )
   16268                 :            :         {
   16269                 :            :             D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
   16270                 :       1528 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16271         [ -  + ]:       1528 :             if (_token == NULL) {
   16272                 :          0 :                 p->level--;
   16273                 :          0 :                 return NULL;
   16274                 :            :             }
   16275                 :       1528 :             int _end_lineno = _token->end_lineno;
   16276                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16277                 :       1528 :             int _end_col_offset = _token->end_col_offset;
   16278                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16279                 :       1528 :             _res = _PyAST_SetComp ( a , b , EXTRA );
   16280   [ -  +  -  - ]:       1528 :             if (_res == NULL && PyErr_Occurred()) {
   16281                 :          0 :                 p->error_indicator = 1;
   16282                 :          0 :                 p->level--;
   16283                 :          0 :                 return NULL;
   16284                 :            :             }
   16285                 :       1528 :             goto done;
   16286                 :            :         }
   16287                 :         58 :         p->mark = _mark;
   16288                 :            :         D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
   16289                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
   16290                 :            :     }
   16291         [ +  + ]:         58 :     if (p->call_invalid_rules) { // invalid_comprehension
   16292         [ -  + ]:         30 :         if (p->error_indicator) {
   16293                 :          0 :             p->level--;
   16294                 :          0 :             return NULL;
   16295                 :            :         }
   16296                 :            :         D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
   16297                 :            :         void *invalid_comprehension_var;
   16298         [ -  + ]:         30 :         if (
   16299                 :         30 :             (invalid_comprehension_var = invalid_comprehension_rule(p))  // invalid_comprehension
   16300                 :            :         )
   16301                 :            :         {
   16302                 :            :             D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
   16303                 :          0 :             _res = invalid_comprehension_var;
   16304                 :          0 :             goto done;
   16305                 :            :         }
   16306                 :         30 :         p->mark = _mark;
   16307                 :            :         D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
   16308                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
   16309                 :            :     }
   16310                 :         58 :     _res = NULL;
   16311                 :       1586 :   done:
   16312                 :       1586 :     p->level--;
   16313                 :       1586 :     return _res;
   16314                 :            : }
   16315                 :            : 
   16316                 :            : // genexp:
   16317                 :            : //     | '(' (assignment_expression | expression !':=') for_if_clauses ')'
   16318                 :            : //     | invalid_comprehension
   16319                 :            : static expr_ty
   16320                 :   14494473 : genexp_rule(Parser *p)
   16321                 :            : {
   16322         [ -  + ]:   14494473 :     if (p->level++ == MAXSTACK) {
   16323                 :          0 :         p->error_indicator = 1;
   16324                 :            :         PyErr_NoMemory();
   16325                 :            :     }
   16326         [ -  + ]:   14494473 :     if (p->error_indicator) {
   16327                 :          0 :         p->level--;
   16328                 :          0 :         return NULL;
   16329                 :            :     }
   16330                 :   14494473 :     expr_ty _res = NULL;
   16331                 :   14494473 :     int _mark = p->mark;
   16332   [ -  +  -  - ]:   14494473 :     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                 :   14494473 :     int _start_lineno = p->tokens[_mark]->lineno;
   16338                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16339                 :   14494473 :     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         [ -  + ]:   14494473 :         if (p->error_indicator) {
   16343                 :          0 :             p->level--;
   16344                 :          0 :             return NULL;
   16345                 :            :         }
   16346                 :            :         D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
   16347                 :            :         Token * _literal;
   16348                 :            :         Token * _literal_1;
   16349                 :            :         void *a;
   16350                 :            :         asdl_comprehension_seq* b;
   16351         [ +  + ]:   14494473 :         if (
   16352                 :   14494473 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   16353         [ +  + ]:    3090425 :             &&
   16354                 :    3090425 :             (a = _tmp_116_rule(p))  // assignment_expression | expression !':='
   16355         [ +  + ]:    2089737 :             &&
   16356                 :    2089737 :             (b = for_if_clauses_rule(p))  // for_if_clauses
   16357         [ +  + ]:      15148 :             &&
   16358                 :      15148 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   16359                 :            :         )
   16360                 :            :         {
   16361                 :            :             D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
   16362                 :      15114 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16363         [ -  + ]:      15114 :             if (_token == NULL) {
   16364                 :          0 :                 p->level--;
   16365                 :          0 :                 return NULL;
   16366                 :            :             }
   16367                 :      15114 :             int _end_lineno = _token->end_lineno;
   16368                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16369                 :      15114 :             int _end_col_offset = _token->end_col_offset;
   16370                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16371                 :      15114 :             _res = _PyAST_GeneratorExp ( a , b , EXTRA );
   16372   [ -  +  -  - ]:      15114 :             if (_res == NULL && PyErr_Occurred()) {
   16373                 :          0 :                 p->error_indicator = 1;
   16374                 :          0 :                 p->level--;
   16375                 :          0 :                 return NULL;
   16376                 :            :             }
   16377                 :      15114 :             goto done;
   16378                 :            :         }
   16379                 :   14479359 :         p->mark = _mark;
   16380                 :            :         D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
   16381                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
   16382                 :            :     }
   16383         [ +  + ]:   14479359 :     if (p->call_invalid_rules) { // invalid_comprehension
   16384         [ -  + ]:       2862 :         if (p->error_indicator) {
   16385                 :          0 :             p->level--;
   16386                 :          0 :             return NULL;
   16387                 :            :         }
   16388                 :            :         D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
   16389                 :            :         void *invalid_comprehension_var;
   16390         [ -  + ]:       2862 :         if (
   16391                 :       2862 :             (invalid_comprehension_var = invalid_comprehension_rule(p))  // invalid_comprehension
   16392                 :            :         )
   16393                 :            :         {
   16394                 :            :             D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
   16395                 :          0 :             _res = invalid_comprehension_var;
   16396                 :          0 :             goto done;
   16397                 :            :         }
   16398                 :       2862 :         p->mark = _mark;
   16399                 :            :         D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
   16400                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
   16401                 :            :     }
   16402                 :   14479359 :     _res = NULL;
   16403                 :   14494473 :   done:
   16404                 :   14494473 :     p->level--;
   16405                 :   14494473 :     return _res;
   16406                 :            : }
   16407                 :            : 
   16408                 :            : // dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
   16409                 :            : static expr_ty
   16410                 :       5367 : dictcomp_rule(Parser *p)
   16411                 :            : {
   16412         [ -  + ]:       5367 :     if (p->level++ == MAXSTACK) {
   16413                 :          0 :         p->error_indicator = 1;
   16414                 :            :         PyErr_NoMemory();
   16415                 :            :     }
   16416         [ -  + ]:       5367 :     if (p->error_indicator) {
   16417                 :          0 :         p->level--;
   16418                 :          0 :         return NULL;
   16419                 :            :     }
   16420                 :       5367 :     expr_ty _res = NULL;
   16421                 :       5367 :     int _mark = p->mark;
   16422   [ -  +  -  - ]:       5367 :     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                 :       5367 :     int _start_lineno = p->tokens[_mark]->lineno;
   16428                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16429                 :       5367 :     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         [ -  + ]:       5367 :         if (p->error_indicator) {
   16433                 :          0 :             p->level--;
   16434                 :          0 :             return NULL;
   16435                 :            :         }
   16436                 :            :         D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
   16437                 :            :         Token * _literal;
   16438                 :            :         Token * _literal_1;
   16439                 :            :         KeyValuePair* a;
   16440                 :            :         asdl_comprehension_seq* b;
   16441         [ +  - ]:       5367 :         if (
   16442                 :       5367 :             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
   16443         [ +  + ]:       5367 :             &&
   16444                 :       5367 :             (a = kvpair_rule(p))  // kvpair
   16445         [ +  + ]:       3786 :             &&
   16446                 :       3786 :             (b = for_if_clauses_rule(p))  // for_if_clauses
   16447         [ +  - ]:       3780 :             &&
   16448                 :       3780 :             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
   16449                 :            :         )
   16450                 :            :         {
   16451                 :            :             D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
   16452                 :       3780 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16453         [ -  + ]:       3780 :             if (_token == NULL) {
   16454                 :          0 :                 p->level--;
   16455                 :          0 :                 return NULL;
   16456                 :            :             }
   16457                 :       3780 :             int _end_lineno = _token->end_lineno;
   16458                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16459                 :       3780 :             int _end_col_offset = _token->end_col_offset;
   16460                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16461                 :       3780 :             _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
   16462   [ -  +  -  - ]:       3780 :             if (_res == NULL && PyErr_Occurred()) {
   16463                 :          0 :                 p->error_indicator = 1;
   16464                 :          0 :                 p->level--;
   16465                 :          0 :                 return NULL;
   16466                 :            :             }
   16467                 :       3780 :             goto done;
   16468                 :            :         }
   16469                 :       1587 :         p->mark = _mark;
   16470                 :            :         D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
   16471                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
   16472                 :            :     }
   16473         [ +  + ]:       1587 :     if (p->call_invalid_rules) { // invalid_dict_comprehension
   16474         [ -  + ]:         37 :         if (p->error_indicator) {
   16475                 :          0 :             p->level--;
   16476                 :          0 :             return NULL;
   16477                 :            :         }
   16478                 :            :         D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
   16479                 :            :         void *invalid_dict_comprehension_var;
   16480         [ -  + ]:         37 :         if (
   16481                 :         37 :             (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p))  // invalid_dict_comprehension
   16482                 :            :         )
   16483                 :            :         {
   16484                 :            :             D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
   16485                 :          0 :             _res = invalid_dict_comprehension_var;
   16486                 :          0 :             goto done;
   16487                 :            :         }
   16488                 :         37 :         p->mark = _mark;
   16489                 :            :         D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
   16490                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
   16491                 :            :     }
   16492                 :       1587 :     _res = NULL;
   16493                 :       5367 :   done:
   16494                 :       5367 :     p->level--;
   16495                 :       5367 :     return _res;
   16496                 :            : }
   16497                 :            : 
   16498                 :            : // arguments: args ','? &')' | invalid_arguments
   16499                 :            : static expr_ty
   16500                 :    3120727 : arguments_rule(Parser *p)
   16501                 :            : {
   16502         [ -  + ]:    3120727 :     if (p->level++ == MAXSTACK) {
   16503                 :          0 :         p->error_indicator = 1;
   16504                 :            :         PyErr_NoMemory();
   16505                 :            :     }
   16506         [ -  + ]:    3120727 :     if (p->error_indicator) {
   16507                 :          0 :         p->level--;
   16508                 :          0 :         return NULL;
   16509                 :            :     }
   16510                 :    3120727 :     expr_ty _res = NULL;
   16511         [ +  + ]:    3120727 :     if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
   16512                 :    1192529 :         p->level--;
   16513                 :    1192529 :         return _res;
   16514                 :            :     }
   16515                 :    1928198 :     int _mark = p->mark;
   16516                 :            :     { // args ','? &')'
   16517         [ -  + ]:    1928198 :         if (p->error_indicator) {
   16518                 :          0 :             p->level--;
   16519                 :          0 :             return NULL;
   16520                 :            :         }
   16521                 :            :         D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
   16522                 :            :         void *_opt_var;
   16523                 :            :         UNUSED(_opt_var); // Silence compiler warnings
   16524                 :            :         expr_ty a;
   16525         [ +  + ]:    1928198 :         if (
   16526                 :    1928198 :             (a = args_rule(p))  // args
   16527                 :    1382856 :             &&
   16528         [ +  - ]:    1382856 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   16529         [ +  + ]:    1382856 :             &&
   16530                 :    1382856 :             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8)  // token=')'
   16531                 :            :         )
   16532                 :            :         {
   16533                 :            :             D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
   16534                 :    1379852 :             _res = a;
   16535   [ -  +  -  - ]:    1379852 :             if (_res == NULL && PyErr_Occurred()) {
   16536                 :          0 :                 p->error_indicator = 1;
   16537                 :          0 :                 p->level--;
   16538                 :          0 :                 return NULL;
   16539                 :            :             }
   16540                 :    1379852 :             goto done;
   16541                 :            :         }
   16542                 :     548346 :         p->mark = _mark;
   16543                 :            :         D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
   16544                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
   16545                 :            :     }
   16546         [ +  + ]:     548346 :     if (p->call_invalid_rules) { // invalid_arguments
   16547         [ +  + ]:        109 :         if (p->error_indicator) {
   16548                 :         15 :             p->level--;
   16549                 :         15 :             return NULL;
   16550                 :            :         }
   16551                 :            :         D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
   16552                 :            :         void *invalid_arguments_var;
   16553         [ -  + ]:         94 :         if (
   16554                 :         94 :             (invalid_arguments_var = invalid_arguments_rule(p))  // invalid_arguments
   16555                 :            :         )
   16556                 :            :         {
   16557                 :            :             D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
   16558                 :          0 :             _res = invalid_arguments_var;
   16559                 :          0 :             goto done;
   16560                 :            :         }
   16561                 :         94 :         p->mark = _mark;
   16562                 :            :         D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
   16563                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
   16564                 :            :     }
   16565                 :     548331 :     _res = NULL;
   16566                 :    1928183 :   done:
   16567                 :    1928183 :     _PyPegen_insert_memo(p, _mark, arguments_type, _res);
   16568                 :    1928183 :     p->level--;
   16569                 :    1928183 :     return _res;
   16570                 :            : }
   16571                 :            : 
   16572                 :            : // args:
   16573                 :            : //     | ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]
   16574                 :            : //     | kwargs
   16575                 :            : static expr_ty
   16576                 :    1928539 : args_rule(Parser *p)
   16577                 :            : {
   16578         [ -  + ]:    1928539 :     if (p->level++ == MAXSTACK) {
   16579                 :          0 :         p->error_indicator = 1;
   16580                 :            :         PyErr_NoMemory();
   16581                 :            :     }
   16582         [ -  + ]:    1928539 :     if (p->error_indicator) {
   16583                 :          0 :         p->level--;
   16584                 :          0 :         return NULL;
   16585                 :            :     }
   16586                 :    1928539 :     expr_ty _res = NULL;
   16587                 :    1928539 :     int _mark = p->mark;
   16588   [ +  +  +  + ]:    1928539 :     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                 :    1928538 :     int _start_lineno = p->tokens[_mark]->lineno;
   16594                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16595                 :    1928538 :     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         [ -  + ]:    1928538 :         if (p->error_indicator) {
   16599                 :          0 :             p->level--;
   16600                 :          0 :             return NULL;
   16601                 :            :         }
   16602                 :            :         D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
   16603                 :            :         asdl_expr_seq* a;
   16604                 :            :         void *b;
   16605         [ +  + ]:    1928538 :         if (
   16606                 :    1928538 :             (a = (asdl_expr_seq*)_gather_117_rule(p))  // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+
   16607                 :    1344264 :             &&
   16608         [ +  + ]:    1344264 :             (b = _tmp_119_rule(p), !p->error_indicator)  // [',' kwargs]
   16609                 :            :         )
   16610                 :            :         {
   16611                 :            :             D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
   16612                 :    1344250 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16613         [ -  + ]:    1344250 :             if (_token == NULL) {
   16614                 :          0 :                 p->level--;
   16615                 :          0 :                 return NULL;
   16616                 :            :             }
   16617                 :    1344250 :             int _end_lineno = _token->end_lineno;
   16618                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16619                 :    1344250 :             int _end_col_offset = _token->end_col_offset;
   16620                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16621                 :    1344250 :             _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
   16622   [ -  +  -  - ]:    1344250 :             if (_res == NULL && PyErr_Occurred()) {
   16623                 :          0 :                 p->error_indicator = 1;
   16624                 :          0 :                 p->level--;
   16625                 :          0 :                 return NULL;
   16626                 :            :             }
   16627                 :    1344250 :             goto done;
   16628                 :            :         }
   16629                 :     584288 :         p->mark = _mark;
   16630                 :            :         D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
   16631                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
   16632                 :            :     }
   16633                 :            :     { // kwargs
   16634         [ +  + ]:     584288 :         if (p->error_indicator) {
   16635                 :         16 :             p->level--;
   16636                 :         16 :             return NULL;
   16637                 :            :         }
   16638                 :            :         D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
   16639                 :            :         asdl_seq* a;
   16640         [ +  + ]:     584272 :         if (
   16641                 :     584272 :             (a = kwargs_rule(p))  // kwargs
   16642                 :            :         )
   16643                 :            :         {
   16644                 :            :             D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
   16645                 :      38744 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16646         [ -  + ]:      38744 :             if (_token == NULL) {
   16647                 :          0 :                 p->level--;
   16648                 :          0 :                 return NULL;
   16649                 :            :             }
   16650                 :      38744 :             int _end_lineno = _token->end_lineno;
   16651                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16652                 :      38744 :             int _end_col_offset = _token->end_col_offset;
   16653                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16654                 :      38744 :             _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   [ -  +  -  - ]:      38744 :             if (_res == NULL && PyErr_Occurred()) {
   16656                 :          0 :                 p->error_indicator = 1;
   16657                 :          0 :                 p->level--;
   16658                 :          0 :                 return NULL;
   16659                 :            :             }
   16660                 :      38744 :             goto done;
   16661                 :            :         }
   16662                 :     545528 :         p->mark = _mark;
   16663                 :            :         D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
   16664                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
   16665                 :            :     }
   16666                 :     545528 :     _res = NULL;
   16667                 :    1928522 :   done:
   16668                 :    1928522 :     p->level--;
   16669                 :    1928522 :     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                 :     656767 : kwargs_rule(Parser *p)
   16678                 :            : {
   16679         [ -  + ]:     656767 :     if (p->level++ == MAXSTACK) {
   16680                 :          0 :         p->error_indicator = 1;
   16681                 :            :         PyErr_NoMemory();
   16682                 :            :     }
   16683         [ -  + ]:     656767 :     if (p->error_indicator) {
   16684                 :          0 :         p->level--;
   16685                 :          0 :         return NULL;
   16686                 :            :     }
   16687                 :     656767 :     asdl_seq* _res = NULL;
   16688                 :     656767 :     int _mark = p->mark;
   16689                 :            :     { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
   16690         [ -  + ]:     656767 :         if (p->error_indicator) {
   16691                 :          0 :             p->level--;
   16692                 :          0 :             return NULL;
   16693                 :            :         }
   16694                 :            :         D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
   16695                 :            :         Token * _literal;
   16696                 :            :         asdl_seq * a;
   16697                 :            :         asdl_seq * b;
   16698         [ +  + ]:     656767 :         if (
   16699                 :     656767 :             (a = _gather_120_rule(p))  // ','.kwarg_or_starred+
   16700         [ +  + ]:      98713 :             &&
   16701                 :      98713 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   16702         [ +  + ]:       8567 :             &&
   16703                 :       8567 :             (b = _gather_122_rule(p))  // ','.kwarg_or_double_starred+
   16704                 :            :         )
   16705                 :            :         {
   16706                 :            :             D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
   16707                 :       1044 :             _res = _PyPegen_join_sequences ( p , a , b );
   16708   [ -  +  -  - ]:       1044 :             if (_res == NULL && PyErr_Occurred()) {
   16709                 :          0 :                 p->error_indicator = 1;
   16710                 :          0 :                 p->level--;
   16711                 :          0 :                 return NULL;
   16712                 :            :             }
   16713                 :       1044 :             goto done;
   16714                 :            :         }
   16715                 :     655723 :         p->mark = _mark;
   16716                 :            :         D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
   16717                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
   16718                 :            :     }
   16719                 :            :     { // ','.kwarg_or_starred+
   16720         [ +  + ]:     655723 :         if (p->error_indicator) {
   16721                 :         14 :             p->level--;
   16722                 :         14 :             return NULL;
   16723                 :            :         }
   16724                 :            :         D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
   16725                 :            :         asdl_seq * _gather_124_var;
   16726         [ +  + ]:     655709 :         if (
   16727                 :     655709 :             (_gather_124_var = _gather_124_rule(p))  // ','.kwarg_or_starred+
   16728                 :            :         )
   16729                 :            :         {
   16730                 :            :             D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
   16731                 :      97669 :             _res = _gather_124_var;
   16732                 :      97669 :             goto done;
   16733                 :            :         }
   16734                 :     558040 :         p->mark = _mark;
   16735                 :            :         D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
   16736                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
   16737                 :            :     }
   16738                 :            :     { // ','.kwarg_or_double_starred+
   16739         [ -  + ]:     558040 :         if (p->error_indicator) {
   16740                 :          0 :             p->level--;
   16741                 :          0 :             return NULL;
   16742                 :            :         }
   16743                 :            :         D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
   16744                 :            :         asdl_seq * _gather_126_var;
   16745         [ +  + ]:     558040 :         if (
   16746                 :     558040 :             (_gather_126_var = _gather_126_rule(p))  // ','.kwarg_or_double_starred+
   16747                 :            :         )
   16748                 :            :         {
   16749                 :            :             D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
   16750                 :       7424 :             _res = _gather_126_var;
   16751                 :       7424 :             goto done;
   16752                 :            :         }
   16753                 :     550616 :         p->mark = _mark;
   16754                 :            :         D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
   16755                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
   16756                 :            :     }
   16757                 :     550616 :     _res = NULL;
   16758                 :     656753 :   done:
   16759                 :     656753 :     p->level--;
   16760                 :     656753 :     return _res;
   16761                 :            : }
   16762                 :            : 
   16763                 :            : // starred_expression: '*' expression
   16764                 :            : static expr_ty
   16765                 :    3886840 : starred_expression_rule(Parser *p)
   16766                 :            : {
   16767         [ -  + ]:    3886840 :     if (p->level++ == MAXSTACK) {
   16768                 :          0 :         p->error_indicator = 1;
   16769                 :            :         PyErr_NoMemory();
   16770                 :            :     }
   16771         [ -  + ]:    3886840 :     if (p->error_indicator) {
   16772                 :          0 :         p->level--;
   16773                 :          0 :         return NULL;
   16774                 :            :     }
   16775                 :    3886840 :     expr_ty _res = NULL;
   16776                 :    3886840 :     int _mark = p->mark;
   16777   [ +  +  +  + ]:    3886840 :     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                 :    3886830 :     int _start_lineno = p->tokens[_mark]->lineno;
   16783                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16784                 :    3886830 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   16785                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   16786                 :            :     { // '*' expression
   16787         [ -  + ]:    3886830 :         if (p->error_indicator) {
   16788                 :          0 :             p->level--;
   16789                 :          0 :             return NULL;
   16790                 :            :         }
   16791                 :            :         D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
   16792                 :            :         Token * _literal;
   16793                 :            :         expr_ty a;
   16794         [ +  + ]:    3886830 :         if (
   16795                 :    3886830 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   16796         [ +  + ]:      12656 :             &&
   16797                 :      12656 :             (a = expression_rule(p))  // expression
   16798                 :            :         )
   16799                 :            :         {
   16800                 :            :             D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
   16801                 :      12600 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16802         [ -  + ]:      12600 :             if (_token == NULL) {
   16803                 :          0 :                 p->level--;
   16804                 :          0 :                 return NULL;
   16805                 :            :             }
   16806                 :      12600 :             int _end_lineno = _token->end_lineno;
   16807                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16808                 :      12600 :             int _end_col_offset = _token->end_col_offset;
   16809                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16810                 :      12600 :             _res = _PyAST_Starred ( a , Load , EXTRA );
   16811   [ -  +  -  - ]:      12600 :             if (_res == NULL && PyErr_Occurred()) {
   16812                 :          0 :                 p->error_indicator = 1;
   16813                 :          0 :                 p->level--;
   16814                 :          0 :                 return NULL;
   16815                 :            :             }
   16816                 :      12600 :             goto done;
   16817                 :            :         }
   16818                 :    3874230 :         p->mark = _mark;
   16819                 :            :         D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
   16820                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
   16821                 :            :     }
   16822                 :    3874230 :     _res = NULL;
   16823                 :    3886830 :   done:
   16824                 :    3886830 :     p->level--;
   16825                 :    3886830 :     return _res;
   16826                 :            : }
   16827                 :            : 
   16828                 :            : // kwarg_or_starred: invalid_kwarg | NAME '=' expression | starred_expression
   16829                 :            : static KeywordOrStarred*
   16830                 :    1480219 : kwarg_or_starred_rule(Parser *p)
   16831                 :            : {
   16832         [ -  + ]:    1480219 :     if (p->level++ == MAXSTACK) {
   16833                 :          0 :         p->error_indicator = 1;
   16834                 :            :         PyErr_NoMemory();
   16835                 :            :     }
   16836         [ -  + ]:    1480219 :     if (p->error_indicator) {
   16837                 :          0 :         p->level--;
   16838                 :          0 :         return NULL;
   16839                 :            :     }
   16840                 :    1480219 :     KeywordOrStarred* _res = NULL;
   16841                 :    1480219 :     int _mark = p->mark;
   16842   [ +  +  -  + ]:    1480219 :     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                 :    1480219 :     int _start_lineno = p->tokens[_mark]->lineno;
   16848                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16849                 :    1480219 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   16850                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   16851         [ +  + ]:    1480219 :     if (p->call_invalid_rules) { // invalid_kwarg
   16852         [ -  + ]:        804 :         if (p->error_indicator) {
   16853                 :          0 :             p->level--;
   16854                 :          0 :             return NULL;
   16855                 :            :         }
   16856                 :            :         D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
   16857                 :            :         void *invalid_kwarg_var;
   16858         [ -  + ]:        804 :         if (
   16859                 :        804 :             (invalid_kwarg_var = invalid_kwarg_rule(p))  // invalid_kwarg
   16860                 :            :         )
   16861                 :            :         {
   16862                 :            :             D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
   16863                 :          0 :             _res = invalid_kwarg_var;
   16864                 :          0 :             goto done;
   16865                 :            :         }
   16866                 :        804 :         p->mark = _mark;
   16867                 :            :         D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
   16868                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
   16869                 :            :     }
   16870                 :            :     { // NAME '=' expression
   16871         [ +  + ]:    1480219 :         if (p->error_indicator) {
   16872                 :         14 :             p->level--;
   16873                 :         14 :             return NULL;
   16874                 :            :         }
   16875                 :            :         D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
   16876                 :            :         Token * _literal;
   16877                 :            :         expr_ty a;
   16878                 :            :         expr_ty b;
   16879         [ +  + ]:    1480205 :         if (
   16880                 :    1480205 :             (a = _PyPegen_name_token(p))  // NAME
   16881         [ +  + ]:     347940 :             &&
   16882                 :     347940 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   16883         [ +  + ]:     347848 :             &&
   16884                 :     347848 :             (b = expression_rule(p))  // expression
   16885                 :            :         )
   16886                 :            :         {
   16887                 :            :             D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
   16888                 :     347836 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   16889         [ -  + ]:     347836 :             if (_token == NULL) {
   16890                 :          0 :                 p->level--;
   16891                 :          0 :                 return NULL;
   16892                 :            :             }
   16893                 :     347836 :             int _end_lineno = _token->end_lineno;
   16894                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   16895                 :     347836 :             int _end_col_offset = _token->end_col_offset;
   16896                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   16897                 :     347836 :             _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
   16898   [ -  +  -  - ]:     347836 :             if (_res == NULL && PyErr_Occurred()) {
   16899                 :          0 :                 p->error_indicator = 1;
   16900                 :          0 :                 p->level--;
   16901                 :          0 :                 return NULL;
   16902                 :            :             }
   16903                 :     347836 :             goto done;
   16904                 :            :         }
   16905                 :    1132369 :         p->mark = _mark;
   16906                 :            :         D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
   16907                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
   16908                 :            :     }
   16909                 :            :     { // starred_expression
   16910         [ -  + ]:    1132369 :         if (p->error_indicator) {
   16911                 :          0 :             p->level--;
   16912                 :          0 :             return NULL;
   16913                 :            :         }
   16914                 :            :         D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
   16915                 :            :         expr_ty a;
   16916         [ +  + ]:    1132369 :         if (
   16917                 :    1132369 :             (a = starred_expression_rule(p))  // starred_expression
   16918                 :            :         )
   16919                 :            :         {
   16920                 :            :             D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
   16921                 :        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                 :    1132170 :         p->mark = _mark;
   16930                 :            :         D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
   16931                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
   16932                 :            :     }
   16933                 :    1132170 :     _res = NULL;
   16934                 :    1480205 :   done:
   16935                 :    1480205 :     p->level--;
   16936                 :    1480205 :     return _res;
   16937                 :            : }
   16938                 :            : 
   16939                 :            : // kwarg_or_double_starred: invalid_kwarg | NAME '=' expression | '**' expression
   16940                 :            : static KeywordOrStarred*
   16941                 :     566698 : kwarg_or_double_starred_rule(Parser *p)
   16942                 :            : {
   16943         [ -  + ]:     566698 :     if (p->level++ == MAXSTACK) {
   16944                 :          0 :         p->error_indicator = 1;
   16945                 :            :         PyErr_NoMemory();
   16946                 :            :     }
   16947         [ -  + ]:     566698 :     if (p->error_indicator) {
   16948                 :          0 :         p->level--;
   16949                 :          0 :         return NULL;
   16950                 :            :     }
   16951                 :     566698 :     KeywordOrStarred* _res = NULL;
   16952                 :     566698 :     int _mark = p->mark;
   16953   [ +  +  -  + ]:     566698 :     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                 :     566698 :     int _start_lineno = p->tokens[_mark]->lineno;
   16959                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   16960                 :     566698 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   16961                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   16962         [ +  + ]:     566698 :     if (p->call_invalid_rules) { // invalid_kwarg
   16963         [ -  + ]:        326 :         if (p->error_indicator) {
   16964                 :          0 :             p->level--;
   16965                 :          0 :             return NULL;
   16966                 :            :         }
   16967                 :            :         D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
   16968                 :            :         void *invalid_kwarg_var;
   16969         [ -  + ]:        326 :         if (
   16970                 :        326 :             (invalid_kwarg_var = invalid_kwarg_rule(p))  // invalid_kwarg
   16971                 :            :         )
   16972                 :            :         {
   16973                 :            :             D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
   16974                 :          0 :             _res = invalid_kwarg_var;
   16975                 :          0 :             goto done;
   16976                 :            :         }
   16977                 :        326 :         p->mark = _mark;
   16978                 :            :         D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
   16979                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
   16980                 :            :     }
   16981                 :            :     { // NAME '=' expression
   16982         [ -  + ]:     566698 :         if (p->error_indicator) {
   16983                 :          0 :             p->level--;
   16984                 :          0 :             return NULL;
   16985                 :            :         }
   16986                 :            :         D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
   16987                 :            :         Token * _literal;
   16988                 :            :         expr_ty a;
   16989                 :            :         expr_ty b;
   16990         [ +  + ]:     566698 :         if (
   16991                 :     566698 :             (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                 :            :             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                 :     566657 :         p->mark = _mark;
   17017                 :            :         D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
   17018                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
   17019                 :            :     }
   17020                 :            :     { // '**' expression
   17021         [ -  + ]:     566657 :         if (p->error_indicator) {
   17022                 :          0 :             p->level--;
   17023                 :          0 :             return NULL;
   17024                 :            :         }
   17025                 :            :         D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
   17026                 :            :         Token * _literal;
   17027                 :            :         expr_ty a;
   17028         [ +  + ]:     566657 :         if (
   17029                 :     566657 :             (_literal = _PyPegen_expect_token(p, 35))  // token='**'
   17030         [ +  + ]:       8492 :             &&
   17031                 :       8492 :             (a = expression_rule(p))  // expression
   17032                 :            :         )
   17033                 :            :         {
   17034                 :            :             D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
   17035                 :       8491 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17036         [ -  + ]:       8491 :             if (_token == NULL) {
   17037                 :          0 :                 p->level--;
   17038                 :          0 :                 return NULL;
   17039                 :            :             }
   17040                 :       8491 :             int _end_lineno = _token->end_lineno;
   17041                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17042                 :       8491 :             int _end_col_offset = _token->end_col_offset;
   17043                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17044                 :       8491 :             _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
   17045   [ -  +  -  - ]:       8491 :             if (_res == NULL && PyErr_Occurred()) {
   17046                 :          0 :                 p->error_indicator = 1;
   17047                 :          0 :                 p->level--;
   17048                 :          0 :                 return NULL;
   17049                 :            :             }
   17050                 :       8491 :             goto done;
   17051                 :            :         }
   17052                 :     558166 :         p->mark = _mark;
   17053                 :            :         D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
   17054                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
   17055                 :            :     }
   17056                 :     558166 :     _res = NULL;
   17057                 :     566698 :   done:
   17058                 :     566698 :     p->level--;
   17059                 :     566698 :     return _res;
   17060                 :            : }
   17061                 :            : 
   17062                 :            : // star_targets: star_target !',' | star_target ((',' star_target))* ','?
   17063                 :            : static expr_ty
   17064                 :    4125968 : star_targets_rule(Parser *p)
   17065                 :            : {
   17066         [ -  + ]:    4125968 :     if (p->level++ == MAXSTACK) {
   17067                 :          0 :         p->error_indicator = 1;
   17068                 :            :         PyErr_NoMemory();
   17069                 :            :     }
   17070         [ -  + ]:    4125968 :     if (p->error_indicator) {
   17071                 :          0 :         p->level--;
   17072                 :          0 :         return NULL;
   17073                 :            :     }
   17074                 :    4125968 :     expr_ty _res = NULL;
   17075                 :    4125968 :     int _mark = p->mark;
   17076   [ +  +  +  + ]:    4125968 :     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                 :    4125948 :     int _start_lineno = p->tokens[_mark]->lineno;
   17082                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   17083                 :    4125948 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   17084                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   17085                 :            :     { // star_target !','
   17086         [ -  + ]:    4125948 :         if (p->error_indicator) {
   17087                 :          0 :             p->level--;
   17088                 :          0 :             return NULL;
   17089                 :            :         }
   17090                 :            :         D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
   17091                 :            :         expr_ty a;
   17092         [ +  + ]:    4125948 :         if (
   17093                 :    4125948 :             (a = star_target_rule(p))  // star_target
   17094         [ +  + ]:    2271732 :             &&
   17095                 :    2271732 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12)  // token=','
   17096                 :            :         )
   17097                 :            :         {
   17098                 :            :             D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
   17099                 :    2214980 :             _res = a;
   17100   [ -  +  -  - ]:    2214980 :             if (_res == NULL && PyErr_Occurred()) {
   17101                 :          0 :                 p->error_indicator = 1;
   17102                 :          0 :                 p->level--;
   17103                 :          0 :                 return NULL;
   17104                 :            :             }
   17105                 :    2214980 :             goto done;
   17106                 :            :         }
   17107                 :    1910968 :         p->mark = _mark;
   17108                 :            :         D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
   17109                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
   17110                 :            :     }
   17111                 :            :     { // star_target ((',' star_target))* ','?
   17112         [ +  + ]:    1910968 :         if (p->error_indicator) {
   17113                 :         18 :             p->level--;
   17114                 :         18 :             return NULL;
   17115                 :            :         }
   17116                 :            :         D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
   17117                 :            :         void *_opt_var;
   17118                 :            :         UNUSED(_opt_var); // Silence compiler warnings
   17119                 :            :         expr_ty a;
   17120                 :            :         asdl_seq * b;
   17121         [ +  + ]:    1910950 :         if (
   17122                 :    1910950 :             (a = star_target_rule(p))  // star_target
   17123         [ +  - ]:      56752 :             &&
   17124                 :      56752 :             (b = _loop0_128_rule(p))  // ((',' star_target))*
   17125                 :      56752 :             &&
   17126         [ +  + ]:      56752 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   17127                 :            :         )
   17128                 :            :         {
   17129                 :            :             D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
   17130                 :      56750 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17131         [ -  + ]:      56750 :             if (_token == NULL) {
   17132                 :          0 :                 p->level--;
   17133                 :          0 :                 return NULL;
   17134                 :            :             }
   17135                 :      56750 :             int _end_lineno = _token->end_lineno;
   17136                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17137                 :      56750 :             int _end_col_offset = _token->end_col_offset;
   17138                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17139                 :      56750 :             _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq* , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
   17140   [ -  +  -  - ]:      56750 :             if (_res == NULL && PyErr_Occurred()) {
   17141                 :          0 :                 p->error_indicator = 1;
   17142                 :          0 :                 p->level--;
   17143                 :          0 :                 return NULL;
   17144                 :            :             }
   17145                 :      56750 :             goto done;
   17146                 :            :         }
   17147                 :    1854200 :         p->mark = _mark;
   17148                 :            :         D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
   17149                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
   17150                 :            :     }
   17151                 :    1854200 :     _res = NULL;
   17152                 :    4125930 :   done:
   17153                 :    4125930 :     p->level--;
   17154                 :    4125930 :     return _res;
   17155                 :            : }
   17156                 :            : 
   17157                 :            : // star_targets_list_seq: ','.star_target+ ','?
   17158                 :            : static asdl_expr_seq*
   17159                 :      42591 : star_targets_list_seq_rule(Parser *p)
   17160                 :            : {
   17161         [ -  + ]:      42591 :     if (p->level++ == MAXSTACK) {
   17162                 :          0 :         p->error_indicator = 1;
   17163                 :            :         PyErr_NoMemory();
   17164                 :            :     }
   17165         [ -  + ]:      42591 :     if (p->error_indicator) {
   17166                 :          0 :         p->level--;
   17167                 :          0 :         return NULL;
   17168                 :            :     }
   17169                 :      42591 :     asdl_expr_seq* _res = NULL;
   17170                 :      42591 :     int _mark = p->mark;
   17171                 :            :     { // ','.star_target+ ','?
   17172         [ -  + ]:      42591 :         if (p->error_indicator) {
   17173                 :          0 :             p->level--;
   17174                 :          0 :             return NULL;
   17175                 :            :         }
   17176                 :            :         D(fprintf(stderr, "%*c> star_targets_list_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
   17177                 :            :         void *_opt_var;
   17178                 :            :         UNUSED(_opt_var); // Silence compiler warnings
   17179                 :            :         asdl_expr_seq* a;
   17180         [ +  + ]:      42591 :         if (
   17181                 :      42591 :             (a = (asdl_expr_seq*)_gather_129_rule(p))  // ','.star_target+
   17182                 :      12099 :             &&
   17183         [ +  - ]:      12099 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   17184                 :            :         )
   17185                 :            :         {
   17186                 :            :             D(fprintf(stderr, "%*c+ star_targets_list_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
   17187                 :      12099 :             _res = a;
   17188   [ -  +  -  - ]:      12099 :             if (_res == NULL && PyErr_Occurred()) {
   17189                 :          0 :                 p->error_indicator = 1;
   17190                 :          0 :                 p->level--;
   17191                 :          0 :                 return NULL;
   17192                 :            :             }
   17193                 :      12099 :             goto done;
   17194                 :            :         }
   17195                 :      30492 :         p->mark = _mark;
   17196                 :            :         D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
   17197                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
   17198                 :            :     }
   17199                 :      30492 :     _res = NULL;
   17200                 :      42591 :   done:
   17201                 :      42591 :     p->level--;
   17202                 :      42591 :     return _res;
   17203                 :            : }
   17204                 :            : 
   17205                 :            : // star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
   17206                 :            : static asdl_expr_seq*
   17207                 :      31442 : star_targets_tuple_seq_rule(Parser *p)
   17208                 :            : {
   17209         [ -  + ]:      31442 :     if (p->level++ == MAXSTACK) {
   17210                 :          0 :         p->error_indicator = 1;
   17211                 :            :         PyErr_NoMemory();
   17212                 :            :     }
   17213         [ -  + ]:      31442 :     if (p->error_indicator) {
   17214                 :          0 :         p->level--;
   17215                 :          0 :         return NULL;
   17216                 :            :     }
   17217                 :      31442 :     asdl_expr_seq* _res = NULL;
   17218                 :      31442 :     int _mark = p->mark;
   17219                 :            :     { // star_target ((',' star_target))+ ','?
   17220         [ -  + ]:      31442 :         if (p->error_indicator) {
   17221                 :          0 :             p->level--;
   17222                 :          0 :             return NULL;
   17223                 :            :         }
   17224                 :            :         D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
   17225                 :            :         void *_opt_var;
   17226                 :            :         UNUSED(_opt_var); // Silence compiler warnings
   17227                 :            :         expr_ty a;
   17228                 :            :         asdl_seq * b;
   17229         [ +  + ]:      31442 :         if (
   17230                 :      31442 :             (a = star_target_rule(p))  // star_target
   17231         [ +  + ]:      16500 :             &&
   17232                 :      16500 :             (b = _loop1_131_rule(p))  // ((',' star_target))+
   17233                 :       7591 :             &&
   17234         [ +  - ]:       7591 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   17235                 :            :         )
   17236                 :            :         {
   17237                 :            :             D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
   17238                 :       7591 :             _res = ( asdl_expr_seq* ) _PyPegen_seq_insert_in_front ( p , a , b );
   17239   [ -  +  -  - ]:       7591 :             if (_res == NULL && PyErr_Occurred()) {
   17240                 :          0 :                 p->error_indicator = 1;
   17241                 :          0 :                 p->level--;
   17242                 :          0 :                 return NULL;
   17243                 :            :             }
   17244                 :       7591 :             goto done;
   17245                 :            :         }
   17246                 :      23851 :         p->mark = _mark;
   17247                 :            :         D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
   17248                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
   17249                 :            :     }
   17250                 :            :     { // star_target ','
   17251         [ -  + ]:      23851 :         if (p->error_indicator) {
   17252                 :          0 :             p->level--;
   17253                 :          0 :             return NULL;
   17254                 :            :         }
   17255                 :            :         D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
   17256                 :            :         Token * _literal;
   17257                 :            :         expr_ty a;
   17258         [ +  + ]:      23851 :         if (
   17259                 :      23851 :             (a = star_target_rule(p))  // star_target
   17260         [ +  + ]:       8909 :             &&
   17261                 :       8909 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   17262                 :            :         )
   17263                 :            :         {
   17264                 :            :             D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
   17265                 :       1851 :             _res = ( asdl_expr_seq* ) _PyPegen_singleton_seq ( p , a );
   17266   [ -  +  -  - ]:       1851 :             if (_res == NULL && PyErr_Occurred()) {
   17267                 :          0 :                 p->error_indicator = 1;
   17268                 :          0 :                 p->level--;
   17269                 :          0 :                 return NULL;
   17270                 :            :             }
   17271                 :       1851 :             goto done;
   17272                 :            :         }
   17273                 :      22000 :         p->mark = _mark;
   17274                 :            :         D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
   17275                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
   17276                 :            :     }
   17277                 :      22000 :     _res = NULL;
   17278                 :      31442 :   done:
   17279                 :      31442 :     p->level--;
   17280                 :      31442 :     return _res;
   17281                 :            : }
   17282                 :            : 
   17283                 :            : // star_target: '*' (!'*' star_target) | target_with_star_atom
   17284                 :            : static expr_ty
   17285                 :    6255532 : star_target_rule(Parser *p)
   17286                 :            : {
   17287         [ -  + ]:    6255532 :     if (p->level++ == MAXSTACK) {
   17288                 :          0 :         p->error_indicator = 1;
   17289                 :            :         PyErr_NoMemory();
   17290                 :            :     }
   17291         [ -  + ]:    6255532 :     if (p->error_indicator) {
   17292                 :          0 :         p->level--;
   17293                 :          0 :         return NULL;
   17294                 :            :     }
   17295                 :    6255532 :     expr_ty _res = NULL;
   17296         [ +  + ]:    6255532 :     if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
   17297                 :    1969843 :         p->level--;
   17298                 :    1969843 :         return _res;
   17299                 :            :     }
   17300                 :    4285689 :     int _mark = p->mark;
   17301   [ -  +  -  - ]:    4285689 :     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                 :    4285689 :     int _start_lineno = p->tokens[_mark]->lineno;
   17307                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   17308                 :    4285689 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   17309                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   17310                 :            :     { // '*' (!'*' star_target)
   17311         [ -  + ]:    4285689 :         if (p->error_indicator) {
   17312                 :          0 :             p->level--;
   17313                 :          0 :             return NULL;
   17314                 :            :         }
   17315                 :            :         D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
   17316                 :            :         Token * _literal;
   17317                 :            :         void *a;
   17318         [ +  + ]:    4285689 :         if (
   17319                 :    4285689 :             (_literal = _PyPegen_expect_token(p, 16))  // token='*'
   17320         [ +  + ]:        733 :             &&
   17321                 :        733 :             (a = _tmp_132_rule(p))  // !'*' star_target
   17322                 :            :         )
   17323                 :            :         {
   17324                 :            :             D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
   17325                 :        697 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17326         [ -  + ]:        697 :             if (_token == NULL) {
   17327                 :          0 :                 p->level--;
   17328                 :          0 :                 return NULL;
   17329                 :            :             }
   17330                 :        697 :             int _end_lineno = _token->end_lineno;
   17331                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17332                 :        697 :             int _end_col_offset = _token->end_col_offset;
   17333                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17334                 :        697 :             _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
   17335   [ -  +  -  - ]:        697 :             if (_res == NULL && PyErr_Occurred()) {
   17336                 :          0 :                 p->error_indicator = 1;
   17337                 :          0 :                 p->level--;
   17338                 :          0 :                 return NULL;
   17339                 :            :             }
   17340                 :        697 :             goto done;
   17341                 :            :         }
   17342                 :    4284992 :         p->mark = _mark;
   17343                 :            :         D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
   17344                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
   17345                 :            :     }
   17346                 :            :     { // target_with_star_atom
   17347         [ -  + ]:    4284992 :         if (p->error_indicator) {
   17348                 :          0 :             p->level--;
   17349                 :          0 :             return NULL;
   17350                 :            :         }
   17351                 :            :         D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
   17352                 :            :         expr_ty target_with_star_atom_var;
   17353         [ +  + ]:    4284992 :         if (
   17354                 :    4284992 :             (target_with_star_atom_var = target_with_star_atom_rule(p))  // target_with_star_atom
   17355                 :            :         )
   17356                 :            :         {
   17357                 :            :             D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
   17358                 :    2382732 :             _res = target_with_star_atom_var;
   17359                 :    2382732 :             goto done;
   17360                 :            :         }
   17361                 :    1902260 :         p->mark = _mark;
   17362                 :            :         D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
   17363                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
   17364                 :            :     }
   17365                 :    1902260 :     _res = NULL;
   17366                 :    4285689 :   done:
   17367                 :    4285689 :     _PyPegen_insert_memo(p, _mark, star_target_type, _res);
   17368                 :    4285689 :     p->level--;
   17369                 :    4285689 :     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                 :    4316540 : target_with_star_atom_rule(Parser *p)
   17378                 :            : {
   17379         [ -  + ]:    4316540 :     if (p->level++ == MAXSTACK) {
   17380                 :          0 :         p->error_indicator = 1;
   17381                 :            :         PyErr_NoMemory();
   17382                 :            :     }
   17383         [ -  + ]:    4316540 :     if (p->error_indicator) {
   17384                 :          0 :         p->level--;
   17385                 :          0 :         return NULL;
   17386                 :            :     }
   17387                 :    4316540 :     expr_ty _res = NULL;
   17388         [ +  + ]:    4316540 :     if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
   17389                 :      31307 :         p->level--;
   17390                 :      31307 :         return _res;
   17391                 :            :     }
   17392                 :    4285233 :     int _mark = p->mark;
   17393   [ -  +  -  - ]:    4285233 :     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                 :    4285233 :     int _start_lineno = p->tokens[_mark]->lineno;
   17399                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   17400                 :    4285233 :     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         [ -  + ]:    4285233 :         if (p->error_indicator) {
   17404                 :          0 :             p->level--;
   17405                 :          0 :             return NULL;
   17406                 :            :         }
   17407                 :            :         D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
   17408                 :            :         Token * _literal;
   17409                 :            :         expr_ty a;
   17410                 :            :         expr_ty b;
   17411         [ +  + ]:    4285233 :         if (
   17412                 :    4285233 :             (a = t_primary_rule(p))  // t_primary
   17413         [ +  + ]:    1158391 :             &&
   17414                 :    1158391 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   17415         [ +  + ]:     216734 :             &&
   17416                 :     216734 :             (b = _PyPegen_name_token(p))  // NAME
   17417         [ +  - ]:     216726 :             &&
   17418                 :     216726 :             _PyPegen_lookahead(0, t_lookahead_rule, p)
   17419                 :            :         )
   17420                 :            :         {
   17421                 :            :             D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
   17422                 :     216726 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17423         [ -  + ]:     216726 :             if (_token == NULL) {
   17424                 :          0 :                 p->level--;
   17425                 :          0 :                 return NULL;
   17426                 :            :             }
   17427                 :     216726 :             int _end_lineno = _token->end_lineno;
   17428                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17429                 :     216726 :             int _end_col_offset = _token->end_col_offset;
   17430                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17431                 :     216726 :             _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
   17432   [ -  +  -  - ]:     216726 :             if (_res == NULL && PyErr_Occurred()) {
   17433                 :          0 :                 p->error_indicator = 1;
   17434                 :          0 :                 p->level--;
   17435                 :          0 :                 return NULL;
   17436                 :            :             }
   17437                 :     216726 :             goto done;
   17438                 :            :         }
   17439                 :    4068507 :         p->mark = _mark;
   17440                 :            :         D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
   17441                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
   17442                 :            :     }
   17443                 :            :     { // t_primary '[' slices ']' !t_lookahead
   17444         [ +  + ]:    4068507 :         if (p->error_indicator) {
   17445                 :         20 :             p->level--;
   17446                 :         20 :             return NULL;
   17447                 :            :         }
   17448                 :            :         D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
   17449                 :            :         Token * _literal;
   17450                 :            :         Token * _literal_1;
   17451                 :            :         expr_ty a;
   17452                 :            :         expr_ty b;
   17453         [ +  + ]:    4068487 :         if (
   17454                 :    4068487 :             (a = t_primary_rule(p))  // t_primary
   17455         [ +  + ]:     941665 :             &&
   17456                 :     941665 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   17457         [ +  + ]:      75542 :             &&
   17458                 :      75542 :             (b = slices_rule(p))  // slices
   17459         [ +  + ]:      75525 :             &&
   17460                 :      75525 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   17461         [ +  - ]:      75510 :             &&
   17462                 :      75510 :             _PyPegen_lookahead(0, t_lookahead_rule, p)
   17463                 :            :         )
   17464                 :            :         {
   17465                 :            :             D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
   17466                 :      75510 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17467         [ -  + ]:      75510 :             if (_token == NULL) {
   17468                 :          0 :                 p->level--;
   17469                 :          0 :                 return NULL;
   17470                 :            :             }
   17471                 :      75510 :             int _end_lineno = _token->end_lineno;
   17472                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17473                 :      75510 :             int _end_col_offset = _token->end_col_offset;
   17474                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17475                 :      75510 :             _res = _PyAST_Subscript ( a , b , Store , EXTRA );
   17476   [ -  +  -  - ]:      75510 :             if (_res == NULL && PyErr_Occurred()) {
   17477                 :          0 :                 p->error_indicator = 1;
   17478                 :          0 :                 p->level--;
   17479                 :          0 :                 return NULL;
   17480                 :            :             }
   17481                 :      75510 :             goto done;
   17482                 :            :         }
   17483                 :    3992977 :         p->mark = _mark;
   17484                 :            :         D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
   17485                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
   17486                 :            :     }
   17487                 :            :     { // star_atom
   17488         [ -  + ]:    3992977 :         if (p->error_indicator) {
   17489                 :          0 :             p->level--;
   17490                 :          0 :             return NULL;
   17491                 :            :         }
   17492                 :            :         D(fprintf(stderr, "%*c> target_with_star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
   17493                 :            :         expr_ty star_atom_var;
   17494         [ +  + ]:    3992977 :         if (
   17495                 :    3992977 :             (star_atom_var = star_atom_rule(p))  // star_atom
   17496                 :            :         )
   17497                 :            :         {
   17498                 :            :             D(fprintf(stderr, "%*c+ target_with_star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_atom"));
   17499                 :    2090602 :             _res = star_atom_var;
   17500                 :    2090602 :             goto done;
   17501                 :            :         }
   17502                 :    1902375 :         p->mark = _mark;
   17503                 :            :         D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
   17504                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
   17505                 :            :     }
   17506                 :    1902375 :     _res = NULL;
   17507                 :    4285213 :   done:
   17508                 :    4285213 :     _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
   17509                 :    4285213 :     p->level--;
   17510                 :    4285213 :     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                 :    3992977 : star_atom_rule(Parser *p)
   17520                 :            : {
   17521         [ -  + ]:    3992977 :     if (p->level++ == MAXSTACK) {
   17522                 :          0 :         p->error_indicator = 1;
   17523                 :            :         PyErr_NoMemory();
   17524                 :            :     }
   17525         [ -  + ]:    3992977 :     if (p->error_indicator) {
   17526                 :          0 :         p->level--;
   17527                 :          0 :         return NULL;
   17528                 :            :     }
   17529                 :    3992977 :     expr_ty _res = NULL;
   17530                 :    3992977 :     int _mark = p->mark;
   17531   [ -  +  -  - ]:    3992977 :     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                 :    3992977 :     int _start_lineno = p->tokens[_mark]->lineno;
   17537                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   17538                 :    3992977 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   17539                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   17540                 :            :     { // NAME
   17541         [ -  + ]:    3992977 :         if (p->error_indicator) {
   17542                 :          0 :             p->level--;
   17543                 :          0 :             return NULL;
   17544                 :            :         }
   17545                 :            :         D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
   17546                 :            :         expr_ty a;
   17547         [ +  + ]:    3992977 :         if (
   17548                 :    3992977 :             (a = _PyPegen_name_token(p))  // NAME
   17549                 :            :         )
   17550                 :            :         {
   17551                 :            :             D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
   17552                 :    2060146 :             _res = _PyPegen_set_expr_context ( p , a , Store );
   17553   [ -  +  -  - ]:    2060146 :             if (_res == NULL && PyErr_Occurred()) {
   17554                 :          0 :                 p->error_indicator = 1;
   17555                 :          0 :                 p->level--;
   17556                 :          0 :                 return NULL;
   17557                 :            :             }
   17558                 :    2060146 :             goto done;
   17559                 :            :         }
   17560                 :    1932831 :         p->mark = _mark;
   17561                 :            :         D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
   17562                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
   17563                 :            :     }
   17564                 :            :     { // '(' target_with_star_atom ')'
   17565         [ -  + ]:    1932831 :         if (p->error_indicator) {
   17566                 :          0 :             p->level--;
   17567                 :          0 :             return NULL;
   17568                 :            :         }
   17569                 :            :         D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target_with_star_atom ')'"));
   17570                 :            :         Token * _literal;
   17571                 :            :         Token * _literal_1;
   17572                 :            :         expr_ty a;
   17573         [ +  + ]:    1932831 :         if (
   17574                 :    1932831 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   17575         [ +  + ]:      31548 :             &&
   17576                 :      31548 :             (a = target_with_star_atom_rule(p))  // target_with_star_atom
   17577         [ +  + ]:      16471 :             &&
   17578                 :      16471 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   17579                 :            :         )
   17580                 :            :         {
   17581                 :            :             D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target_with_star_atom ')'"));
   17582                 :        106 :             _res = _PyPegen_set_expr_context ( p , a , Store );
   17583   [ -  +  -  - ]:        106 :             if (_res == NULL && PyErr_Occurred()) {
   17584                 :          0 :                 p->error_indicator = 1;
   17585                 :          0 :                 p->level--;
   17586                 :          0 :                 return NULL;
   17587                 :            :             }
   17588                 :        106 :             goto done;
   17589                 :            :         }
   17590                 :    1932725 :         p->mark = _mark;
   17591                 :            :         D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
   17592                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
   17593                 :            :     }
   17594                 :            :     { // '(' star_targets_tuple_seq? ')'
   17595         [ -  + ]:    1932725 :         if (p->error_indicator) {
   17596                 :          0 :             p->level--;
   17597                 :          0 :             return NULL;
   17598                 :            :         }
   17599                 :            :         D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
   17600                 :            :         Token * _literal;
   17601                 :            :         Token * _literal_1;
   17602                 :            :         void *a;
   17603         [ +  + ]:    1932725 :         if (
   17604                 :    1932725 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   17605                 :      31442 :             &&
   17606         [ +  - ]:      31442 :             (a = star_targets_tuple_seq_rule(p), !p->error_indicator)  // star_targets_tuple_seq?
   17607         [ +  + ]:      31442 :             &&
   17608                 :      31442 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   17609                 :            :         )
   17610                 :            :         {
   17611                 :            :             D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
   17612                 :      10171 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17613         [ -  + ]:      10171 :             if (_token == NULL) {
   17614                 :          0 :                 p->level--;
   17615                 :          0 :                 return NULL;
   17616                 :            :             }
   17617                 :      10171 :             int _end_lineno = _token->end_lineno;
   17618                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17619                 :      10171 :             int _end_col_offset = _token->end_col_offset;
   17620                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17621                 :      10171 :             _res = _PyAST_Tuple ( a , Store , EXTRA );
   17622   [ -  +  -  - ]:      10171 :             if (_res == NULL && PyErr_Occurred()) {
   17623                 :          0 :                 p->error_indicator = 1;
   17624                 :          0 :                 p->level--;
   17625                 :          0 :                 return NULL;
   17626                 :            :             }
   17627                 :      10171 :             goto done;
   17628                 :            :         }
   17629                 :    1922554 :         p->mark = _mark;
   17630                 :            :         D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
   17631                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
   17632                 :            :     }
   17633                 :            :     { // '[' star_targets_list_seq? ']'
   17634         [ -  + ]:    1922554 :         if (p->error_indicator) {
   17635                 :          0 :             p->level--;
   17636                 :          0 :             return NULL;
   17637                 :            :         }
   17638                 :            :         D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_targets_list_seq? ']'"));
   17639                 :            :         Token * _literal;
   17640                 :            :         Token * _literal_1;
   17641                 :            :         void *a;
   17642         [ +  + ]:    1922554 :         if (
   17643                 :    1922554 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   17644                 :      42591 :             &&
   17645         [ +  - ]:      42591 :             (a = star_targets_list_seq_rule(p), !p->error_indicator)  // star_targets_list_seq?
   17646         [ +  + ]:      42591 :             &&
   17647                 :      42591 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   17648                 :            :         )
   17649                 :            :         {
   17650                 :            :             D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_targets_list_seq? ']'"));
   17651                 :      20179 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17652         [ -  + ]:      20179 :             if (_token == NULL) {
   17653                 :          0 :                 p->level--;
   17654                 :          0 :                 return NULL;
   17655                 :            :             }
   17656                 :      20179 :             int _end_lineno = _token->end_lineno;
   17657                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17658                 :      20179 :             int _end_col_offset = _token->end_col_offset;
   17659                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17660                 :      20179 :             _res = _PyAST_List ( a , Store , EXTRA );
   17661   [ -  +  -  - ]:      20179 :             if (_res == NULL && PyErr_Occurred()) {
   17662                 :          0 :                 p->error_indicator = 1;
   17663                 :          0 :                 p->level--;
   17664                 :          0 :                 return NULL;
   17665                 :            :             }
   17666                 :      20179 :             goto done;
   17667                 :            :         }
   17668                 :    1902375 :         p->mark = _mark;
   17669                 :            :         D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
   17670                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
   17671                 :            :     }
   17672                 :    1902375 :     _res = NULL;
   17673                 :    3992977 :   done:
   17674                 :    3992977 :     p->level--;
   17675                 :    3992977 :     return _res;
   17676                 :            : }
   17677                 :            : 
   17678                 :            : // single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
   17679                 :            : static expr_ty
   17680                 :    2398543 : single_target_rule(Parser *p)
   17681                 :            : {
   17682         [ -  + ]:    2398543 :     if (p->level++ == MAXSTACK) {
   17683                 :          0 :         p->error_indicator = 1;
   17684                 :            :         PyErr_NoMemory();
   17685                 :            :     }
   17686         [ -  + ]:    2398543 :     if (p->error_indicator) {
   17687                 :          0 :         p->level--;
   17688                 :          0 :         return NULL;
   17689                 :            :     }
   17690                 :    2398543 :     expr_ty _res = NULL;
   17691                 :    2398543 :     int _mark = p->mark;
   17692                 :            :     { // single_subscript_attribute_target
   17693         [ -  + ]:    2398543 :         if (p->error_indicator) {
   17694                 :          0 :             p->level--;
   17695                 :          0 :             return NULL;
   17696                 :            :         }
   17697                 :            :         D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
   17698                 :            :         expr_ty single_subscript_attribute_target_var;
   17699         [ +  + ]:    2398543 :         if (
   17700                 :    2398543 :             (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p))  // single_subscript_attribute_target
   17701                 :            :         )
   17702                 :            :         {
   17703                 :            :             D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
   17704                 :       8853 :             _res = single_subscript_attribute_target_var;
   17705                 :       8853 :             goto done;
   17706                 :            :         }
   17707                 :    2389690 :         p->mark = _mark;
   17708                 :            :         D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
   17709                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
   17710                 :            :     }
   17711                 :            :     { // NAME
   17712         [ +  + ]:    2389690 :         if (p->error_indicator) {
   17713                 :          8 :             p->level--;
   17714                 :          8 :             return NULL;
   17715                 :            :         }
   17716                 :            :         D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
   17717                 :            :         expr_ty a;
   17718         [ +  + ]:    2389682 :         if (
   17719                 :    2389682 :             (a = _PyPegen_name_token(p))  // NAME
   17720                 :            :         )
   17721                 :            :         {
   17722                 :            :             D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
   17723                 :     755164 :             _res = _PyPegen_set_expr_context ( p , a , Store );
   17724   [ -  +  -  - ]:     755164 :             if (_res == NULL && PyErr_Occurred()) {
   17725                 :          0 :                 p->error_indicator = 1;
   17726                 :          0 :                 p->level--;
   17727                 :          0 :                 return NULL;
   17728                 :            :             }
   17729                 :     755164 :             goto done;
   17730                 :            :         }
   17731                 :    1634518 :         p->mark = _mark;
   17732                 :            :         D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
   17733                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
   17734                 :            :     }
   17735                 :            :     { // '(' single_target ')'
   17736         [ -  + ]:    1634518 :         if (p->error_indicator) {
   17737                 :          0 :             p->level--;
   17738                 :          0 :             return NULL;
   17739                 :            :         }
   17740                 :            :         D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
   17741                 :            :         Token * _literal;
   17742                 :            :         Token * _literal_1;
   17743                 :            :         expr_ty a;
   17744         [ +  + ]:    1634518 :         if (
   17745                 :    1634518 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   17746         [ +  + ]:        491 :             &&
   17747                 :        491 :             (a = single_target_rule(p))  // single_target
   17748         [ +  + ]:        358 :             &&
   17749                 :        358 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   17750                 :            :         )
   17751                 :            :         {
   17752                 :            :             D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
   17753                 :         24 :             _res = a;
   17754   [ -  +  -  - ]:         24 :             if (_res == NULL && PyErr_Occurred()) {
   17755                 :          0 :                 p->error_indicator = 1;
   17756                 :          0 :                 p->level--;
   17757                 :          0 :                 return NULL;
   17758                 :            :             }
   17759                 :         24 :             goto done;
   17760                 :            :         }
   17761                 :    1634494 :         p->mark = _mark;
   17762                 :            :         D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
   17763                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
   17764                 :            :     }
   17765                 :    1634494 :     _res = NULL;
   17766                 :    2398535 :   done:
   17767                 :    2398535 :     p->level--;
   17768                 :    2398535 :     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                 :    5599881 : single_subscript_attribute_target_rule(Parser *p)
   17776                 :            : {
   17777         [ -  + ]:    5599881 :     if (p->level++ == MAXSTACK) {
   17778                 :          0 :         p->error_indicator = 1;
   17779                 :            :         PyErr_NoMemory();
   17780                 :            :     }
   17781         [ -  + ]:    5599881 :     if (p->error_indicator) {
   17782                 :          0 :         p->level--;
   17783                 :          0 :         return NULL;
   17784                 :            :     }
   17785                 :    5599881 :     expr_ty _res = NULL;
   17786                 :    5599881 :     int _mark = p->mark;
   17787   [ +  +  +  + ]:    5599881 :     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                 :    5599877 :     int _start_lineno = p->tokens[_mark]->lineno;
   17793                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   17794                 :    5599877 :     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         [ -  + ]:    5599877 :         if (p->error_indicator) {
   17798                 :          0 :             p->level--;
   17799                 :          0 :             return NULL;
   17800                 :            :         }
   17801                 :            :         D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
   17802                 :            :         Token * _literal;
   17803                 :            :         expr_ty a;
   17804                 :            :         expr_ty b;
   17805         [ +  + ]:    5599877 :         if (
   17806                 :    5599877 :             (a = t_primary_rule(p))  // t_primary
   17807         [ +  + ]:    1247348 :             &&
   17808                 :    1247348 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   17809         [ +  + ]:     148823 :             &&
   17810                 :     148823 :             (b = _PyPegen_name_token(p))  // NAME
   17811         [ +  - ]:     148807 :             &&
   17812                 :     148807 :             _PyPegen_lookahead(0, t_lookahead_rule, p)
   17813                 :            :         )
   17814                 :            :         {
   17815                 :            :             D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
   17816                 :     148807 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17817         [ -  + ]:     148807 :             if (_token == NULL) {
   17818                 :          0 :                 p->level--;
   17819                 :          0 :                 return NULL;
   17820                 :            :             }
   17821                 :     148807 :             int _end_lineno = _token->end_lineno;
   17822                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17823                 :     148807 :             int _end_col_offset = _token->end_col_offset;
   17824                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17825                 :     148807 :             _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
   17826   [ -  +  -  - ]:     148807 :             if (_res == NULL && PyErr_Occurred()) {
   17827                 :          0 :                 p->error_indicator = 1;
   17828                 :          0 :                 p->level--;
   17829                 :          0 :                 return NULL;
   17830                 :            :             }
   17831                 :     148807 :             goto done;
   17832                 :            :         }
   17833                 :    5451070 :         p->mark = _mark;
   17834                 :            :         D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
   17835                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
   17836                 :            :     }
   17837                 :            :     { // t_primary '[' slices ']' !t_lookahead
   17838         [ +  + ]:    5451070 :         if (p->error_indicator) {
   17839                 :        220 :             p->level--;
   17840                 :        220 :             return NULL;
   17841                 :            :         }
   17842                 :            :         D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
   17843                 :            :         Token * _literal;
   17844                 :            :         Token * _literal_1;
   17845                 :            :         expr_ty a;
   17846                 :            :         expr_ty b;
   17847         [ +  + ]:    5450850 :         if (
   17848                 :    5450850 :             (a = t_primary_rule(p))  // t_primary
   17849         [ +  + ]:    1098541 :             &&
   17850                 :    1098541 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   17851         [ +  + ]:      38313 :             &&
   17852                 :      38313 :             (b = slices_rule(p))  // slices
   17853         [ +  + ]:      38279 :             &&
   17854                 :      38279 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   17855         [ +  - ]:      38249 :             &&
   17856                 :      38249 :             _PyPegen_lookahead(0, t_lookahead_rule, p)
   17857                 :            :         )
   17858                 :            :         {
   17859                 :            :             D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
   17860                 :      38249 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17861         [ -  + ]:      38249 :             if (_token == NULL) {
   17862                 :          0 :                 p->level--;
   17863                 :          0 :                 return NULL;
   17864                 :            :             }
   17865                 :      38249 :             int _end_lineno = _token->end_lineno;
   17866                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17867                 :      38249 :             int _end_col_offset = _token->end_col_offset;
   17868                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17869                 :      38249 :             _res = _PyAST_Subscript ( a , b , Store , EXTRA );
   17870   [ -  +  -  - ]:      38249 :             if (_res == NULL && PyErr_Occurred()) {
   17871                 :          0 :                 p->error_indicator = 1;
   17872                 :          0 :                 p->level--;
   17873                 :          0 :                 return NULL;
   17874                 :            :             }
   17875                 :      38249 :             goto done;
   17876                 :            :         }
   17877                 :    5412601 :         p->mark = _mark;
   17878                 :            :         D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
   17879                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
   17880                 :            :     }
   17881                 :    5412601 :     _res = NULL;
   17882                 :    5599657 :   done:
   17883                 :    5599657 :     p->level--;
   17884                 :    5599657 :     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                 :   44297395 : t_primary_rule(Parser *p)
   17897                 :            : {
   17898         [ -  + ]:   44297395 :     if (p->level++ == MAXSTACK) {
   17899                 :          0 :         p->error_indicator = 1;
   17900                 :            :         PyErr_NoMemory();
   17901                 :            :     }
   17902                 :   44297395 :     expr_ty _res = NULL;
   17903         [ +  + ]:   44297395 :     if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
   17904                 :   39999183 :         p->level--;
   17905                 :   39999183 :         return _res;
   17906                 :            :     }
   17907                 :    4298212 :     int _mark = p->mark;
   17908                 :    4298212 :     int _resmark = p->mark;
   17909                 :    2877270 :     while (1) {
   17910                 :    7175482 :         int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
   17911         [ -  + ]:    7175482 :         if (tmpvar_9) {
   17912                 :          0 :             p->level--;
   17913                 :          0 :             return _res;
   17914                 :            :         }
   17915                 :    7175482 :         p->mark = _mark;
   17916                 :    7175482 :         void *_raw = t_primary_raw(p);
   17917         [ +  + ]:    7175482 :         if (p->error_indicator) {
   17918                 :        241 :             p->level--;
   17919                 :        241 :             return NULL;
   17920                 :            :         }
   17921   [ +  +  +  + ]:    7175241 :         if (_raw == NULL || p->mark <= _resmark)
   17922                 :            :             break;
   17923                 :    2877270 :         _resmark = p->mark;
   17924                 :    2877270 :         _res = _raw;
   17925                 :            :     }
   17926                 :    4297971 :     p->mark = _resmark;
   17927                 :    4297971 :     p->level--;
   17928                 :    4297971 :     return _res;
   17929                 :            : }
   17930                 :            : static expr_ty
   17931                 :    7175482 : t_primary_raw(Parser *p)
   17932                 :            : {
   17933         [ -  + ]:    7175482 :     if (p->level++ == MAXSTACK) {
   17934                 :          0 :         p->error_indicator = 1;
   17935                 :            :         PyErr_NoMemory();
   17936                 :            :     }
   17937         [ -  + ]:    7175482 :     if (p->error_indicator) {
   17938                 :          0 :         p->level--;
   17939                 :          0 :         return NULL;
   17940                 :            :     }
   17941                 :    7175482 :     expr_ty _res = NULL;
   17942                 :    7175482 :     int _mark = p->mark;
   17943   [ -  +  -  - ]:    7175482 :     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                 :    7175482 :     int _start_lineno = p->tokens[_mark]->lineno;
   17949                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   17950                 :    7175482 :     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         [ -  + ]:    7175482 :         if (p->error_indicator) {
   17954                 :          0 :             p->level--;
   17955                 :          0 :             return NULL;
   17956                 :            :         }
   17957                 :            :         D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
   17958                 :            :         Token * _literal;
   17959                 :            :         expr_ty a;
   17960                 :            :         expr_ty b;
   17961         [ +  + ]:    7175482 :         if (
   17962                 :    7175482 :             (a = t_primary_rule(p))  // t_primary
   17963         [ +  + ]:    2877270 :             &&
   17964                 :    2877270 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   17965         [ +  + ]:    1287461 :             &&
   17966                 :    1287461 :             (b = _PyPegen_name_token(p))  // NAME
   17967         [ +  + ]:    1287453 :             &&
   17968                 :    1287453 :             _PyPegen_lookahead(1, t_lookahead_rule, p)
   17969                 :            :         )
   17970                 :            :         {
   17971                 :            :             D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
   17972                 :    1067357 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   17973         [ -  + ]:    1067357 :             if (_token == NULL) {
   17974                 :          0 :                 p->level--;
   17975                 :          0 :                 return NULL;
   17976                 :            :             }
   17977                 :    1067357 :             int _end_lineno = _token->end_lineno;
   17978                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   17979                 :    1067357 :             int _end_col_offset = _token->end_col_offset;
   17980                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   17981                 :    1067357 :             _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
   17982   [ -  +  -  - ]:    1067357 :             if (_res == NULL && PyErr_Occurred()) {
   17983                 :          0 :                 p->error_indicator = 1;
   17984                 :          0 :                 p->level--;
   17985                 :          0 :                 return NULL;
   17986                 :            :             }
   17987                 :    1067357 :             goto done;
   17988                 :            :         }
   17989                 :    6108125 :         p->mark = _mark;
   17990                 :            :         D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
   17991                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
   17992                 :            :     }
   17993                 :            :     { // t_primary '[' slices ']' &t_lookahead
   17994         [ +  + ]:    6108125 :         if (p->error_indicator) {
   17995                 :          2 :             p->level--;
   17996                 :          2 :             return NULL;
   17997                 :            :         }
   17998                 :            :         D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
   17999                 :            :         Token * _literal;
   18000                 :            :         Token * _literal_1;
   18001                 :            :         expr_ty a;
   18002                 :            :         expr_ty b;
   18003         [ +  + ]:    6108123 :         if (
   18004                 :    6108123 :             (a = t_primary_rule(p))  // t_primary
   18005         [ +  + ]:    1809911 :             &&
   18006                 :    1809911 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   18007         [ +  + ]:     393719 :             &&
   18008                 :     393719 :             (b = slices_rule(p))  // slices
   18009         [ +  + ]:     393682 :             &&
   18010                 :     393682 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   18011         [ +  + ]:     393661 :             &&
   18012                 :     393661 :             _PyPegen_lookahead(1, t_lookahead_rule, p)
   18013                 :            :         )
   18014                 :            :         {
   18015                 :            :             D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
   18016                 :     313396 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   18017         [ -  + ]:     313396 :             if (_token == NULL) {
   18018                 :          0 :                 p->level--;
   18019                 :          0 :                 return NULL;
   18020                 :            :             }
   18021                 :     313396 :             int _end_lineno = _token->end_lineno;
   18022                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   18023                 :     313396 :             int _end_col_offset = _token->end_col_offset;
   18024                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   18025                 :     313396 :             _res = _PyAST_Subscript ( a , b , Load , EXTRA );
   18026   [ -  +  -  - ]:     313396 :             if (_res == NULL && PyErr_Occurred()) {
   18027                 :          0 :                 p->error_indicator = 1;
   18028                 :          0 :                 p->level--;
   18029                 :          0 :                 return NULL;
   18030                 :            :             }
   18031                 :     313396 :             goto done;
   18032                 :            :         }
   18033                 :    5794727 :         p->mark = _mark;
   18034                 :            :         D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
   18035                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
   18036                 :            :     }
   18037                 :            :     { // t_primary genexp &t_lookahead
   18038         [ +  + ]:    5794727 :         if (p->error_indicator) {
   18039                 :         16 :             p->level--;
   18040                 :         16 :             return NULL;
   18041                 :            :         }
   18042                 :            :         D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
   18043                 :            :         expr_ty a;
   18044                 :            :         expr_ty b;
   18045         [ +  + ]:    5794711 :         if (
   18046                 :    5794711 :             (a = t_primary_rule(p))  // t_primary
   18047         [ +  + ]:    1496499 :             &&
   18048                 :    1496499 :             (b = genexp_rule(p))  // genexp
   18049         [ +  + ]:       2941 :             &&
   18050                 :       2941 :             _PyPegen_lookahead(1, t_lookahead_rule, p)
   18051                 :            :         )
   18052                 :            :         {
   18053                 :            :             D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
   18054                 :         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                 :    5794683 :         p->mark = _mark;
   18072                 :            :         D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
   18073                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
   18074                 :            :     }
   18075                 :            :     { // t_primary '(' arguments? ')' &t_lookahead
   18076         [ +  + ]:    5794683 :         if (p->error_indicator) {
   18077                 :         33 :             p->level--;
   18078                 :         33 :             return NULL;
   18079                 :            :         }
   18080                 :            :         D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
   18081                 :            :         Token * _literal;
   18082                 :            :         Token * _literal_1;
   18083                 :            :         expr_ty a;
   18084                 :            :         void *b;
   18085         [ +  + ]:    5794650 :         if (
   18086                 :    5794650 :             (a = t_primary_rule(p))  // t_primary
   18087         [ +  + ]:    1496438 :             &&
   18088                 :    1496438 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   18089                 :    1196029 :             &&
   18090         [ +  + ]:    1196029 :             (b = arguments_rule(p), !p->error_indicator)  // arguments?
   18091         [ +  + ]:    1195984 :             &&
   18092                 :    1195984 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   18093         [ +  + ]:    1192997 :             &&
   18094                 :    1192997 :             _PyPegen_lookahead(1, t_lookahead_rule, p)
   18095                 :            :         )
   18096                 :            :         {
   18097                 :            :             D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
   18098                 :     329853 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   18099         [ -  + ]:     329853 :             if (_token == NULL) {
   18100                 :          0 :                 p->level--;
   18101                 :          0 :                 return NULL;
   18102                 :            :             }
   18103                 :     329853 :             int _end_lineno = _token->end_lineno;
   18104                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   18105                 :     329853 :             int _end_col_offset = _token->end_col_offset;
   18106                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   18107   [ +  +  +  + ]:     329853 :             _res = _PyAST_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
   18108   [ -  +  -  - ]:     329853 :             if (_res == NULL && PyErr_Occurred()) {
   18109                 :          0 :                 p->error_indicator = 1;
   18110                 :          0 :                 p->level--;
   18111                 :          0 :                 return NULL;
   18112                 :            :             }
   18113                 :     329853 :             goto done;
   18114                 :            :         }
   18115                 :    5464797 :         p->mark = _mark;
   18116                 :            :         D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
   18117                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
   18118                 :            :     }
   18119                 :            :     { // atom &t_lookahead
   18120         [ +  + ]:    5464797 :         if (p->error_indicator) {
   18121                 :         45 :             p->level--;
   18122                 :         45 :             return NULL;
   18123                 :            :         }
   18124                 :            :         D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
   18125                 :            :         expr_ty a;
   18126         [ +  + ]:    5464752 :         if (
   18127                 :    5464752 :             (a = atom_rule(p))  // atom
   18128         [ +  + ]:    3925123 :             &&
   18129                 :    3925123 :             _PyPegen_lookahead(1, t_lookahead_rule, p)
   18130                 :            :         )
   18131                 :            :         {
   18132                 :            :             D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
   18133                 :    2333176 :             _res = a;
   18134   [ -  +  -  - ]:    2333176 :             if (_res == NULL && PyErr_Occurred()) {
   18135                 :          0 :                 p->error_indicator = 1;
   18136                 :          0 :                 p->level--;
   18137                 :          0 :                 return NULL;
   18138                 :            :             }
   18139                 :    2333176 :             goto done;
   18140                 :            :         }
   18141                 :    3131576 :         p->mark = _mark;
   18142                 :            :         D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
   18143                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
   18144                 :            :     }
   18145                 :    3131576 :     _res = NULL;
   18146                 :    7175386 :   done:
   18147                 :    7175386 :     p->level--;
   18148                 :    7175386 :     return _res;
   18149                 :            : }
   18150                 :            : 
   18151                 :            : // t_lookahead: '(' | '[' | '.'
   18152                 :            : static void *
   18153                 :    7287630 : t_lookahead_rule(Parser *p)
   18154                 :            : {
   18155         [ -  + ]:    7287630 :     if (p->level++ == MAXSTACK) {
   18156                 :          0 :         p->error_indicator = 1;
   18157                 :            :         PyErr_NoMemory();
   18158                 :            :     }
   18159         [ -  + ]:    7287630 :     if (p->error_indicator) {
   18160                 :          0 :         p->level--;
   18161                 :          0 :         return NULL;
   18162                 :            :     }
   18163                 :    7287630 :     void * _res = NULL;
   18164                 :    7287630 :     int _mark = p->mark;
   18165                 :            :     { // '('
   18166         [ -  + ]:    7287630 :         if (p->error_indicator) {
   18167                 :          0 :             p->level--;
   18168                 :          0 :             return NULL;
   18169                 :            :         }
   18170                 :            :         D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
   18171                 :            :         Token * _literal;
   18172         [ +  + ]:    7287630 :         if (
   18173                 :    7287630 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   18174                 :            :         )
   18175                 :            :         {
   18176                 :            :             D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
   18177                 :    1437066 :             _res = _literal;
   18178                 :    1437066 :             goto done;
   18179                 :            :         }
   18180                 :    5850564 :         p->mark = _mark;
   18181                 :            :         D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
   18182                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
   18183                 :            :     }
   18184                 :            :     { // '['
   18185         [ +  + ]:    5850564 :         if (p->error_indicator) {
   18186                 :          7 :             p->level--;
   18187                 :          7 :             return NULL;
   18188                 :            :         }
   18189                 :            :         D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
   18190                 :            :         Token * _literal;
   18191         [ +  + ]:    5850557 :         if (
   18192                 :    5850557 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   18193                 :            :         )
   18194                 :            :         {
   18195                 :            :             D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
   18196                 :     454207 :             _res = _literal;
   18197                 :     454207 :             goto done;
   18198                 :            :         }
   18199                 :    5396350 :         p->mark = _mark;
   18200                 :            :         D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
   18201                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
   18202                 :            :     }
   18203                 :            :     { // '.'
   18204         [ -  + ]:    5396350 :         if (p->error_indicator) {
   18205                 :          0 :             p->level--;
   18206                 :          0 :             return NULL;
   18207                 :            :         }
   18208                 :            :         D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
   18209                 :            :         Token * _literal;
   18210         [ +  + ]:    5396350 :         if (
   18211                 :    5396350 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   18212                 :            :         )
   18213                 :            :         {
   18214                 :            :             D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
   18215                 :    2152537 :             _res = _literal;
   18216                 :    2152537 :             goto done;
   18217                 :            :         }
   18218                 :    3243813 :         p->mark = _mark;
   18219                 :            :         D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
   18220                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
   18221                 :            :     }
   18222                 :    3243813 :     _res = NULL;
   18223                 :    7287623 :   done:
   18224                 :    7287623 :     p->level--;
   18225                 :    7287623 :     return _res;
   18226                 :            : }
   18227                 :            : 
   18228                 :            : // del_targets: ','.del_target+ ','?
   18229                 :            : static asdl_expr_seq*
   18230                 :       8930 : del_targets_rule(Parser *p)
   18231                 :            : {
   18232         [ -  + ]:       8930 :     if (p->level++ == MAXSTACK) {
   18233                 :          0 :         p->error_indicator = 1;
   18234                 :            :         PyErr_NoMemory();
   18235                 :            :     }
   18236         [ -  + ]:       8930 :     if (p->error_indicator) {
   18237                 :          0 :         p->level--;
   18238                 :          0 :         return NULL;
   18239                 :            :     }
   18240                 :       8930 :     asdl_expr_seq* _res = NULL;
   18241                 :       8930 :     int _mark = p->mark;
   18242                 :            :     { // ','.del_target+ ','?
   18243         [ -  + ]:       8930 :         if (p->error_indicator) {
   18244                 :          0 :             p->level--;
   18245                 :          0 :             return NULL;
   18246                 :            :         }
   18247                 :            :         D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
   18248                 :            :         void *_opt_var;
   18249                 :            :         UNUSED(_opt_var); // Silence compiler warnings
   18250                 :            :         asdl_expr_seq* a;
   18251         [ +  + ]:       8930 :         if (
   18252                 :       8930 :             (a = (asdl_expr_seq*)_gather_133_rule(p))  // ','.del_target+
   18253                 :       8864 :             &&
   18254         [ +  - ]:       8864 :             (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
   18255                 :            :         )
   18256                 :            :         {
   18257                 :            :             D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
   18258                 :       8864 :             _res = a;
   18259   [ -  +  -  - ]:       8864 :             if (_res == NULL && PyErr_Occurred()) {
   18260                 :          0 :                 p->error_indicator = 1;
   18261                 :          0 :                 p->level--;
   18262                 :          0 :                 return NULL;
   18263                 :            :             }
   18264                 :       8864 :             goto done;
   18265                 :            :         }
   18266                 :         66 :         p->mark = _mark;
   18267                 :            :         D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
   18268                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
   18269                 :            :     }
   18270                 :         66 :     _res = NULL;
   18271                 :       8930 :   done:
   18272                 :       8930 :     p->level--;
   18273                 :       8930 :     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                 :      10773 : del_target_rule(Parser *p)
   18282                 :            : {
   18283         [ -  + ]:      10773 :     if (p->level++ == MAXSTACK) {
   18284                 :          0 :         p->error_indicator = 1;
   18285                 :            :         PyErr_NoMemory();
   18286                 :            :     }
   18287         [ -  + ]:      10773 :     if (p->error_indicator) {
   18288                 :          0 :         p->level--;
   18289                 :          0 :         return NULL;
   18290                 :            :     }
   18291                 :      10773 :     expr_ty _res = NULL;
   18292         [ +  + ]:      10773 :     if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
   18293                 :         68 :         p->level--;
   18294                 :         68 :         return _res;
   18295                 :            :     }
   18296                 :      10705 :     int _mark = p->mark;
   18297   [ -  +  -  - ]:      10705 :     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                 :      10705 :     int _start_lineno = p->tokens[_mark]->lineno;
   18303                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   18304                 :      10705 :     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         [ -  + ]:      10705 :         if (p->error_indicator) {
   18308                 :          0 :             p->level--;
   18309                 :          0 :             return NULL;
   18310                 :            :         }
   18311                 :            :         D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
   18312                 :            :         Token * _literal;
   18313                 :            :         expr_ty a;
   18314                 :            :         expr_ty b;
   18315         [ +  + ]:      10705 :         if (
   18316                 :      10705 :             (a = t_primary_rule(p))  // t_primary
   18317         [ +  + ]:       6189 :             &&
   18318                 :       6189 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   18319         [ +  - ]:       1427 :             &&
   18320                 :       1427 :             (b = _PyPegen_name_token(p))  // NAME
   18321         [ +  - ]:       1427 :             &&
   18322                 :       1427 :             _PyPegen_lookahead(0, t_lookahead_rule, p)
   18323                 :            :         )
   18324                 :            :         {
   18325                 :            :             D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
   18326                 :       1427 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   18327         [ -  + ]:       1427 :             if (_token == NULL) {
   18328                 :          0 :                 p->level--;
   18329                 :          0 :                 return NULL;
   18330                 :            :             }
   18331                 :       1427 :             int _end_lineno = _token->end_lineno;
   18332                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   18333                 :       1427 :             int _end_col_offset = _token->end_col_offset;
   18334                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   18335                 :       1427 :             _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
   18336   [ -  +  -  - ]:       1427 :             if (_res == NULL && PyErr_Occurred()) {
   18337                 :          0 :                 p->error_indicator = 1;
   18338                 :          0 :                 p->level--;
   18339                 :          0 :                 return NULL;
   18340                 :            :             }
   18341                 :       1427 :             goto done;
   18342                 :            :         }
   18343                 :       9278 :         p->mark = _mark;
   18344                 :            :         D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
   18345                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
   18346                 :            :     }
   18347                 :            :     { // t_primary '[' slices ']' !t_lookahead
   18348         [ +  + ]:       9278 :         if (p->error_indicator) {
   18349                 :          1 :             p->level--;
   18350                 :          1 :             return NULL;
   18351                 :            :         }
   18352                 :            :         D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
   18353                 :            :         Token * _literal;
   18354                 :            :         Token * _literal_1;
   18355                 :            :         expr_ty a;
   18356                 :            :         expr_ty b;
   18357         [ +  + ]:       9277 :         if (
   18358                 :       9277 :             (a = t_primary_rule(p))  // t_primary
   18359         [ +  + ]:       4762 :             &&
   18360                 :       4762 :             (_literal = _PyPegen_expect_token(p, 9))  // token='['
   18361         [ +  + ]:       4746 :             &&
   18362                 :       4746 :             (b = slices_rule(p))  // slices
   18363         [ +  + ]:       4742 :             &&
   18364                 :       4742 :             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
   18365         [ +  - ]:       4736 :             &&
   18366                 :       4736 :             _PyPegen_lookahead(0, t_lookahead_rule, p)
   18367                 :            :         )
   18368                 :            :         {
   18369                 :            :             D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
   18370                 :       4736 :             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
   18371         [ -  + ]:       4736 :             if (_token == NULL) {
   18372                 :          0 :                 p->level--;
   18373                 :          0 :                 return NULL;
   18374                 :            :             }
   18375                 :       4736 :             int _end_lineno = _token->end_lineno;
   18376                 :            :             UNUSED(_end_lineno); // Only used by EXTRA macro
   18377                 :       4736 :             int _end_col_offset = _token->end_col_offset;
   18378                 :            :             UNUSED(_end_col_offset); // Only used by EXTRA macro
   18379                 :       4736 :             _res = _PyAST_Subscript ( a , b , Del , EXTRA );
   18380   [ -  +  -  - ]:       4736 :             if (_res == NULL && PyErr_Occurred()) {
   18381                 :          0 :                 p->error_indicator = 1;
   18382                 :          0 :                 p->level--;
   18383                 :          0 :                 return NULL;
   18384                 :            :             }
   18385                 :       4736 :             goto done;
   18386                 :            :         }
   18387                 :       4541 :         p->mark = _mark;
   18388                 :            :         D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
   18389                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
   18390                 :            :     }
   18391                 :            :     { // del_t_atom
   18392         [ -  + ]:       4541 :         if (p->error_indicator) {
   18393                 :          0 :             p->level--;
   18394                 :          0 :             return NULL;
   18395                 :            :         }
   18396                 :            :         D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
   18397                 :            :         expr_ty del_t_atom_var;
   18398         [ +  + ]:       4541 :         if (
   18399                 :       4541 :             (del_t_atom_var = del_t_atom_rule(p))  // del_t_atom
   18400                 :            :         )
   18401                 :            :         {
   18402                 :            :             D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
   18403                 :       4463 :             _res = del_t_atom_var;
   18404                 :       4463 :             goto done;
   18405                 :            :         }
   18406                 :         78 :         p->mark = _mark;
   18407                 :            :         D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
   18408                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
   18409                 :            :     }
   18410                 :         78 :     _res = NULL;
   18411                 :      10704 :   done:
   18412                 :      10704 :     _PyPegen_insert_memo(p, _mark, del_target_type, _res);
   18413                 :      10704 :     p->level--;
   18414                 :      10704 :     return _res;
   18415                 :            : }
   18416                 :            : 
   18417                 :            : // del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
   18418                 :            : static expr_ty
   18419                 :       4541 : del_t_atom_rule(Parser *p)
   18420                 :            : {
   18421         [ -  + ]:       4541 :     if (p->level++ == MAXSTACK) {
   18422                 :          0 :         p->error_indicator = 1;
   18423                 :            :         PyErr_NoMemory();
   18424                 :            :     }
   18425         [ -  + ]:       4541 :     if (p->error_indicator) {
   18426                 :          0 :         p->level--;
   18427                 :          0 :         return NULL;
   18428                 :            :     }
   18429                 :       4541 :     expr_ty _res = NULL;
   18430                 :       4541 :     int _mark = p->mark;
   18431   [ -  +  -  - ]:       4541 :     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                 :       4541 :     int _start_lineno = p->tokens[_mark]->lineno;
   18437                 :            :     UNUSED(_start_lineno); // Only used by EXTRA macro
   18438                 :       4541 :     int _start_col_offset = p->tokens[_mark]->col_offset;
   18439                 :            :     UNUSED(_start_col_offset); // Only used by EXTRA macro
   18440                 :            :     { // NAME
   18441         [ -  + ]:       4541 :         if (p->error_indicator) {
   18442                 :          0 :             p->level--;
   18443                 :          0 :             return NULL;
   18444                 :            :         }
   18445                 :            :         D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
   18446                 :            :         expr_ty a;
   18447         [ +  + ]:       4541 :         if (
   18448                 :       4541 :             (a = _PyPegen_name_token(p))  // NAME
   18449                 :            :         )
   18450                 :            :         {
   18451                 :            :             D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
   18452                 :       4402 :             _res = _PyPegen_set_expr_context ( p , a , Del );
   18453   [ -  +  -  - ]:       4402 :             if (_res == NULL && PyErr_Occurred()) {
   18454                 :          0 :                 p->error_indicator = 1;
   18455                 :          0 :                 p->level--;
   18456                 :          0 :                 return NULL;
   18457                 :            :             }
   18458                 :       4402 :             goto done;
   18459                 :            :         }
   18460                 :        139 :         p->mark = _mark;
   18461                 :            :         D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
   18462                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
   18463                 :            :     }
   18464                 :            :     { // '(' del_target ')'
   18465         [ -  + ]:        139 :         if (p->error_indicator) {
   18466                 :          0 :             p->level--;
   18467                 :          0 :             return NULL;
   18468                 :            :         }
   18469                 :            :         D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
   18470                 :            :         Token * _literal;
   18471                 :            :         Token * _literal_1;
   18472                 :            :         expr_ty a;
   18473         [ +  + ]:        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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :       4541 :   done:
   18574                 :       4541 :     p->level--;
   18575                 :       4541 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :     340280 : func_type_comment_rule(Parser *p)
   18833                 :            : {
   18834         [ -  + ]:     340280 :     if (p->level++ == MAXSTACK) {
   18835                 :          0 :         p->error_indicator = 1;
   18836                 :            :         PyErr_NoMemory();
   18837                 :            :     }
   18838         [ -  + ]:     340280 :     if (p->error_indicator) {
   18839                 :          0 :         p->level--;
   18840                 :          0 :         return NULL;
   18841                 :            :     }
   18842                 :     340280 :     Token* _res = NULL;
   18843                 :     340280 :     int _mark = p->mark;
   18844                 :            :     { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
   18845         [ -  + ]:     340280 :         if (p->error_indicator) {
   18846                 :          0 :             p->level--;
   18847                 :          0 :             return NULL;
   18848                 :            :         }
   18849                 :            :         D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
   18850                 :            :         Token * newline_var;
   18851                 :            :         Token * t;
   18852         [ +  + ]:     340280 :         if (
   18853                 :     340280 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   18854         [ +  + ]:     334238 :             &&
   18855                 :     334238 :             (t = _PyPegen_expect_token(p, TYPE_COMMENT))  // token='TYPE_COMMENT'
   18856         [ +  - ]:         27 :             &&
   18857                 :         27 :             _PyPegen_lookahead(1, _tmp_143_rule, p)
   18858                 :            :         )
   18859                 :            :         {
   18860                 :            :             D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
   18861                 :         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                 :     340253 :         p->mark = _mark;
   18870                 :            :         D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
   18871                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
   18872                 :            :     }
   18873         [ +  + ]:     340253 :     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                 :            :         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                 :            :             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                 :            :         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         [ +  + ]:     340253 :         if (p->error_indicator) {
   18894                 :          9 :             p->level--;
   18895                 :          9 :             return NULL;
   18896                 :            :         }
   18897                 :            :         D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
   18898                 :            :         Token * type_comment_var;
   18899         [ +  + ]:     340244 :         if (
   18900                 :     340244 :             (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT))  // token='TYPE_COMMENT'
   18901                 :            :         )
   18902                 :            :         {
   18903                 :            :             D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
   18904                 :         34 :             _res = type_comment_var;
   18905                 :         34 :             goto done;
   18906                 :            :         }
   18907                 :     340210 :         p->mark = _mark;
   18908                 :            :         D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
   18909                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
   18910                 :            :     }
   18911                 :     340210 :     _res = NULL;
   18912                 :     340271 :   done:
   18913                 :     340271 :     p->level--;
   18914                 :     340271 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :      13769 : invalid_double_starred_kvpairs_rule(Parser *p)
   23266                 :            : {
   23267         [ -  + ]:      13769 :     if (p->level++ == MAXSTACK) {
   23268                 :          0 :         p->error_indicator = 1;
   23269                 :            :         PyErr_NoMemory();
   23270                 :            :     }
   23271         [ -  + ]:      13769 :     if (p->error_indicator) {
   23272                 :          0 :         p->level--;
   23273                 :          0 :         return NULL;
   23274                 :            :     }
   23275                 :      13769 :     void * _res = NULL;
   23276                 :      13769 :     int _mark = p->mark;
   23277                 :            :     { // ','.double_starred_kvpair+ ',' invalid_kvpair
   23278         [ -  + ]:      13769 :         if (p->error_indicator) {
   23279                 :          0 :             p->level--;
   23280                 :          0 :             return NULL;
   23281                 :            :         }
   23282                 :            :         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         [ +  + ]:      13769 :         if (
   23287                 :      13769 :             (_gather_215_var = _gather_215_rule(p))  // ','.double_starred_kvpair+
   23288         [ +  + ]:       3792 :             &&
   23289                 :       3792 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   23290         [ -  + ]:          3 :             &&
   23291                 :          3 :             (invalid_kvpair_var = invalid_kvpair_rule(p))  // invalid_kvpair
   23292                 :            :         )
   23293                 :            :         {
   23294                 :            :             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                 :      13769 :         p->mark = _mark;
   23299                 :            :         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         [ +  + ]:      13769 :         if (p->error_indicator) {
   23304                 :          3 :             p->level--;
   23305                 :          3 :             return NULL;
   23306                 :            :         }
   23307                 :            :         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         [ +  + ]:      13766 :         if (
   23313                 :      13766 :             (expression_var = expression_rule(p))  // expression
   23314         [ +  + ]:      13681 :             &&
   23315                 :      13681 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   23316         [ +  + ]:       3801 :             &&
   23317                 :       3801 :             (a = _PyPegen_expect_token(p, 16))  // token='*'
   23318         [ +  - ]:          2 :             &&
   23319                 :          2 :             (bitwise_or_var = bitwise_or_rule(p))  // bitwise_or
   23320                 :            :         )
   23321                 :            :         {
   23322                 :            :             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                 :      13764 :         p->mark = _mark;
   23332                 :            :         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         [ -  + ]:      13764 :         if (p->error_indicator) {
   23337                 :          0 :             p->level--;
   23338                 :          0 :             return NULL;
   23339                 :            :         }
   23340                 :            :         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         [ +  + ]:      13764 :         if (
   23344                 :      13764 :             (expression_var = expression_rule(p))  // expression
   23345         [ +  + ]:      13679 :             &&
   23346                 :      13679 :             (a = _PyPegen_expect_token(p, 11))  // token=':'
   23347         [ +  + ]:       3799 :             &&
   23348                 :       3799 :             _PyPegen_lookahead(1, _tmp_217_rule, p)
   23349                 :            :         )
   23350                 :            :         {
   23351                 :            :             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                 :      13763 :         p->mark = _mark;
   23361                 :            :         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                 :      13763 :     _res = NULL;
   23365                 :      13763 :   done:
   23366                 :      13763 :     p->level--;
   23367                 :      13763 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :      72068 : _loop0_1_rule(Parser *p)
   23484                 :            : {
   23485         [ -  + ]:      72068 :     if (p->level++ == MAXSTACK) {
   23486                 :          0 :         p->error_indicator = 1;
   23487                 :            :         PyErr_NoMemory();
   23488                 :            :     }
   23489         [ -  + ]:      72068 :     if (p->error_indicator) {
   23490                 :          0 :         p->level--;
   23491                 :          0 :         return NULL;
   23492                 :            :     }
   23493                 :      72068 :     void *_res = NULL;
   23494                 :      72068 :     int _mark = p->mark;
   23495                 :      72068 :     int _start_mark = p->mark;
   23496                 :      72068 :     void **_children = PyMem_Malloc(sizeof(void *));
   23497         [ -  + ]:      72068 :     if (!_children) {
   23498                 :          0 :         p->error_indicator = 1;
   23499                 :            :         PyErr_NoMemory();
   23500                 :          0 :         p->level--;
   23501                 :          0 :         return NULL;
   23502                 :            :     }
   23503                 :      72068 :     Py_ssize_t _children_capacity = 1;
   23504                 :      72068 :     Py_ssize_t _n = 0;
   23505                 :            :     { // NEWLINE
   23506         [ -  + ]:      72068 :         if (p->error_indicator) {
   23507                 :          0 :             p->level--;
   23508                 :          0 :             return NULL;
   23509                 :            :         }
   23510                 :            :         D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
   23511                 :            :         Token * newline_var;
   23512                 :      72068 :         while (
   23513         [ +  + ]:      72084 :             (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                 :            :                     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                 :      72068 :         p->mark = _mark;
   23532                 :            :         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                 :      72068 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   23536         [ -  + ]:      72068 :     if (!_seq) {
   23537                 :          0 :         PyMem_Free(_children);
   23538                 :          0 :         p->error_indicator = 1;
   23539                 :            :         PyErr_NoMemory();
   23540                 :          0 :         p->level--;
   23541                 :          0 :         return NULL;
   23542                 :            :     }
   23543         [ +  + ]:      72084 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   23544                 :      72068 :     PyMem_Free(_children);
   23545                 :      72068 :     _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
   23546                 :      72068 :     p->level--;
   23547                 :      72068 :     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                 :            :         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                 :            :         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                 :            :         D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
   23580                 :            :         Token * newline_var;
   23581                 :         12 :         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                 :            :                     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                 :            :         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                 :            :         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                 :    1038152 : _loop1_3_rule(Parser *p)
   23622                 :            : {
   23623         [ -  + ]:    1038152 :     if (p->level++ == MAXSTACK) {
   23624                 :          0 :         p->error_indicator = 1;
   23625                 :            :         PyErr_NoMemory();
   23626                 :            :     }
   23627         [ -  + ]:    1038152 :     if (p->error_indicator) {
   23628                 :          0 :         p->level--;
   23629                 :          0 :         return NULL;
   23630                 :            :     }
   23631                 :    1038152 :     void *_res = NULL;
   23632                 :    1038152 :     int _mark = p->mark;
   23633                 :    1038152 :     int _start_mark = p->mark;
   23634                 :    1038152 :     void **_children = PyMem_Malloc(sizeof(void *));
   23635         [ -  + ]:    1038152 :     if (!_children) {
   23636                 :          0 :         p->error_indicator = 1;
   23637                 :            :         PyErr_NoMemory();
   23638                 :          0 :         p->level--;
   23639                 :          0 :         return NULL;
   23640                 :            :     }
   23641                 :    1038152 :     Py_ssize_t _children_capacity = 1;
   23642                 :    1038152 :     Py_ssize_t _n = 0;
   23643                 :            :     { // statement
   23644         [ -  + ]:    1038152 :         if (p->error_indicator) {
   23645                 :          0 :             p->level--;
   23646                 :          0 :             return NULL;
   23647                 :            :         }
   23648                 :            :         D(fprintf(stderr, "%*c> _loop1_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
   23649                 :            :         asdl_stmt_seq* statement_var;
   23650                 :    1038152 :         while (
   23651         [ +  + ]:    4032083 :             (statement_var = statement_rule(p))  // statement
   23652                 :            :         )
   23653                 :            :         {
   23654                 :    2993931 :             _res = statement_var;
   23655         [ +  + ]:    2993931 :             if (_n == _children_capacity) {
   23656                 :     913971 :                 _children_capacity *= 2;
   23657                 :     913971 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   23658         [ -  + ]:     913971 :                 if (!_new_children) {
   23659                 :          0 :                     p->error_indicator = 1;
   23660                 :            :                     PyErr_NoMemory();
   23661                 :          0 :                     p->level--;
   23662                 :          0 :                     return NULL;
   23663                 :            :                 }
   23664                 :     913971 :                 _children = _new_children;
   23665                 :            :             }
   23666                 :    2993931 :             _children[_n++] = _res;
   23667                 :    2993931 :             _mark = p->mark;
   23668                 :            :         }
   23669                 :    1038152 :         p->mark = _mark;
   23670                 :            :         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   [ +  +  +  + ]:    1038152 :     if (_n == 0 || p->error_indicator) {
   23674                 :       1981 :         PyMem_Free(_children);
   23675                 :       1981 :         p->level--;
   23676                 :       1981 :         return NULL;
   23677                 :            :     }
   23678                 :    1036171 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   23679         [ -  + ]:    1036171 :     if (!_seq) {
   23680                 :          0 :         PyMem_Free(_children);
   23681                 :          0 :         p->error_indicator = 1;
   23682                 :            :         PyErr_NoMemory();
   23683                 :          0 :         p->level--;
   23684                 :          0 :         return NULL;
   23685                 :            :     }
   23686         [ +  + ]:    4030064 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   23687                 :    1036171 :     PyMem_Free(_children);
   23688                 :    1036171 :     _PyPegen_insert_memo(p, _start_mark, _loop1_3_type, _seq);
   23689                 :    1036171 :     p->level--;
   23690                 :    1036171 :     return _seq;
   23691                 :            : }
   23692                 :            : 
   23693                 :            : // _loop0_5: ';' simple_stmt
   23694                 :            : static asdl_seq *
   23695                 :       2724 : _loop0_5_rule(Parser *p)
   23696                 :            : {
   23697         [ -  + ]:       2724 :     if (p->level++ == MAXSTACK) {
   23698                 :          0 :         p->error_indicator = 1;
   23699                 :            :         PyErr_NoMemory();
   23700                 :            :     }
   23701         [ -  + ]:       2724 :     if (p->error_indicator) {
   23702                 :          0 :         p->level--;
   23703                 :          0 :         return NULL;
   23704                 :            :     }
   23705                 :       2724 :     void *_res = NULL;
   23706                 :       2724 :     int _mark = p->mark;
   23707                 :       2724 :     int _start_mark = p->mark;
   23708                 :       2724 :     void **_children = PyMem_Malloc(sizeof(void *));
   23709         [ -  + ]:       2724 :     if (!_children) {
   23710                 :          0 :         p->error_indicator = 1;
   23711                 :            :         PyErr_NoMemory();
   23712                 :          0 :         p->level--;
   23713                 :          0 :         return NULL;
   23714                 :            :     }
   23715                 :       2724 :     Py_ssize_t _children_capacity = 1;
   23716                 :       2724 :     Py_ssize_t _n = 0;
   23717                 :            :     { // ';' simple_stmt
   23718         [ -  + ]:       2724 :         if (p->error_indicator) {
   23719                 :          0 :             p->level--;
   23720                 :          0 :             return NULL;
   23721                 :            :         }
   23722                 :            :         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                 :       2724 :         while (
   23726                 :      10365 :             (_literal = _PyPegen_expect_token(p, 13))  // token=';'
   23727   [ +  +  +  + ]:      18151 :             &&
   23728                 :       7786 :             (elem = simple_stmt_rule(p))  // simple_stmt
   23729                 :            :         )
   23730                 :            :         {
   23731                 :       7641 :             _res = elem;
   23732   [ -  +  -  - ]:       7641 :             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         [ +  + ]:       7641 :             if (_n == _children_capacity) {
   23739                 :       1026 :                 _children_capacity *= 2;
   23740                 :       1026 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   23741         [ -  + ]:       1026 :                 if (!_new_children) {
   23742                 :          0 :                     p->error_indicator = 1;
   23743                 :            :                     PyErr_NoMemory();
   23744                 :          0 :                     p->level--;
   23745                 :          0 :                     return NULL;
   23746                 :            :                 }
   23747                 :       1026 :                 _children = _new_children;
   23748                 :            :             }
   23749                 :       7641 :             _children[_n++] = _res;
   23750                 :       7641 :             _mark = p->mark;
   23751                 :            :         }
   23752                 :       2724 :         p->mark = _mark;
   23753                 :            :         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                 :       2724 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   23757         [ -  + ]:       2724 :     if (!_seq) {
   23758                 :          0 :         PyMem_Free(_children);
   23759                 :          0 :         p->error_indicator = 1;
   23760                 :            :         PyErr_NoMemory();
   23761                 :          0 :         p->level--;
   23762                 :          0 :         return NULL;
   23763                 :            :     }
   23764         [ +  + ]:      10365 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   23765                 :       2724 :     PyMem_Free(_children);
   23766                 :       2724 :     _PyPegen_insert_memo(p, _start_mark, _loop0_5_type, _seq);
   23767                 :       2724 :     p->level--;
   23768                 :       2724 :     return _seq;
   23769                 :            : }
   23770                 :            : 
   23771                 :            : // _gather_4: simple_stmt _loop0_5
   23772                 :            : static asdl_seq *
   23773                 :    1040748 : _gather_4_rule(Parser *p)
   23774                 :            : {
   23775         [ -  + ]:    1040748 :     if (p->level++ == MAXSTACK) {
   23776                 :          0 :         p->error_indicator = 1;
   23777                 :            :         PyErr_NoMemory();
   23778                 :            :     }
   23779         [ -  + ]:    1040748 :     if (p->error_indicator) {
   23780                 :          0 :         p->level--;
   23781                 :          0 :         return NULL;
   23782                 :            :     }
   23783                 :    1040748 :     asdl_seq * _res = NULL;
   23784                 :    1040748 :     int _mark = p->mark;
   23785                 :            :     { // simple_stmt _loop0_5
   23786         [ -  + ]:    1040748 :         if (p->error_indicator) {
   23787                 :          0 :             p->level--;
   23788                 :          0 :             return NULL;
   23789                 :            :         }
   23790                 :            :         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         [ +  + ]:    1040748 :         if (
   23794                 :    1040748 :             (elem = simple_stmt_rule(p))  // simple_stmt
   23795         [ +  - ]:       2724 :             &&
   23796                 :       2724 :             (seq = _loop0_5_rule(p))  // _loop0_5
   23797                 :            :         )
   23798                 :            :         {
   23799                 :            :             D(fprintf(stderr, "%*c+ _gather_4[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt _loop0_5"));
   23800                 :       2724 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   23801                 :       2724 :             goto done;
   23802                 :            :         }
   23803                 :    1038024 :         p->mark = _mark;
   23804                 :            :         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                 :    1038024 :     _res = NULL;
   23808                 :    1040748 :   done:
   23809                 :    1040748 :     p->level--;
   23810                 :    1040748 :     return _res;
   23811                 :            : }
   23812                 :            : 
   23813                 :            : // _tmp_6: 'import' | 'from'
   23814                 :            : static void *
   23815                 :    1271877 : _tmp_6_rule(Parser *p)
   23816                 :            : {
   23817         [ -  + ]:    1271877 :     if (p->level++ == MAXSTACK) {
   23818                 :          0 :         p->error_indicator = 1;
   23819                 :            :         PyErr_NoMemory();
   23820                 :            :     }
   23821         [ -  + ]:    1271877 :     if (p->error_indicator) {
   23822                 :          0 :         p->level--;
   23823                 :          0 :         return NULL;
   23824                 :            :     }
   23825                 :    1271877 :     void * _res = NULL;
   23826                 :    1271877 :     int _mark = p->mark;
   23827                 :            :     { // 'import'
   23828         [ -  + ]:    1271877 :         if (p->error_indicator) {
   23829                 :          0 :             p->level--;
   23830                 :          0 :             return NULL;
   23831                 :            :         }
   23832                 :            :         D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
   23833                 :            :         Token * _keyword;
   23834         [ +  + ]:    1271877 :         if (
   23835                 :    1271877 :             (_keyword = _PyPegen_expect_token(p, 531))  // token='import'
   23836                 :            :         )
   23837                 :            :         {
   23838                 :            :             D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
   23839                 :      44837 :             _res = _keyword;
   23840                 :      44837 :             goto done;
   23841                 :            :         }
   23842                 :    1227040 :         p->mark = _mark;
   23843                 :            :         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         [ -  + ]:    1227040 :         if (p->error_indicator) {
   23848                 :          0 :             p->level--;
   23849                 :          0 :             return NULL;
   23850                 :            :         }
   23851                 :            :         D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
   23852                 :            :         Token * _keyword;
   23853         [ +  + ]:    1227040 :         if (
   23854                 :    1227040 :             (_keyword = _PyPegen_expect_token(p, 572))  // token='from'
   23855                 :            :         )
   23856                 :            :         {
   23857                 :            :             D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
   23858                 :      45790 :             _res = _keyword;
   23859                 :      45790 :             goto done;
   23860                 :            :         }
   23861                 :    1181250 :         p->mark = _mark;
   23862                 :            :         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                 :    1181250 :     _res = NULL;
   23866                 :    1271877 :   done:
   23867                 :    1271877 :     p->level--;
   23868                 :    1271877 :     return _res;
   23869                 :            : }
   23870                 :            : 
   23871                 :            : // _tmp_7: 'def' | '@' | ASYNC
   23872                 :            : static void *
   23873                 :    4037143 : _tmp_7_rule(Parser *p)
   23874                 :            : {
   23875         [ -  + ]:    4037143 :     if (p->level++ == MAXSTACK) {
   23876                 :          0 :         p->error_indicator = 1;
   23877                 :            :         PyErr_NoMemory();
   23878                 :            :     }
   23879         [ -  + ]:    4037143 :     if (p->error_indicator) {
   23880                 :          0 :         p->level--;
   23881                 :          0 :         return NULL;
   23882                 :            :     }
   23883                 :    4037143 :     void * _res = NULL;
   23884                 :    4037143 :     int _mark = p->mark;
   23885                 :            :     { // 'def'
   23886         [ -  + ]:    4037143 :         if (p->error_indicator) {
   23887                 :          0 :             p->level--;
   23888                 :          0 :             return NULL;
   23889                 :            :         }
   23890                 :            :         D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
   23891                 :            :         Token * _keyword;
   23892         [ +  + ]:    4037143 :         if (
   23893                 :    4037143 :             (_keyword = _PyPegen_expect_token(p, 644))  // token='def'
   23894                 :            :         )
   23895                 :            :         {
   23896                 :            :             D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
   23897                 :     306462 :             _res = _keyword;
   23898                 :     306462 :             goto done;
   23899                 :            :         }
   23900                 :    3730681 :         p->mark = _mark;
   23901                 :            :         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         [ +  + ]:    3730681 :         if (p->error_indicator) {
   23906                 :         78 :             p->level--;
   23907                 :         78 :             return NULL;
   23908                 :            :         }
   23909                 :            :         D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
   23910                 :            :         Token * _literal;
   23911         [ +  + ]:    3730603 :         if (
   23912                 :    3730603 :             (_literal = _PyPegen_expect_token(p, 49))  // token='@'
   23913                 :            :         )
   23914                 :            :         {
   23915                 :            :             D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
   23916                 :      34183 :             _res = _literal;
   23917                 :      34183 :             goto done;
   23918                 :            :         }
   23919                 :    3696420 :         p->mark = _mark;
   23920                 :            :         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         [ -  + ]:    3696420 :         if (p->error_indicator) {
   23925                 :          0 :             p->level--;
   23926                 :          0 :             return NULL;
   23927                 :            :         }
   23928                 :            :         D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
   23929                 :            :         Token * async_var;
   23930         [ +  + ]:    3696420 :         if (
   23931                 :    3696420 :             (async_var = _PyPegen_expect_token(p, ASYNC))  // token='ASYNC'
   23932                 :            :         )
   23933                 :            :         {
   23934                 :            :             D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
   23935                 :       3714 :             _res = async_var;
   23936                 :       3714 :             goto done;
   23937                 :            :         }
   23938                 :    3692706 :         p->mark = _mark;
   23939                 :            :         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                 :    3692706 :     _res = NULL;
   23943                 :    4037065 :   done:
   23944                 :    4037065 :     p->level--;
   23945                 :    4037065 :     return _res;
   23946                 :            : }
   23947                 :            : 
   23948                 :            : // _tmp_8: 'class' | '@'
   23949                 :            : static void *
   23950                 :    3209662 : _tmp_8_rule(Parser *p)
   23951                 :            : {
   23952         [ -  + ]:    3209662 :     if (p->level++ == MAXSTACK) {
   23953                 :          0 :         p->error_indicator = 1;
   23954                 :            :         PyErr_NoMemory();
   23955                 :            :     }
   23956         [ -  + ]:    3209662 :     if (p->error_indicator) {
   23957                 :          0 :         p->level--;
   23958                 :          0 :         return NULL;
   23959                 :            :     }
   23960                 :    3209662 :     void * _res = NULL;
   23961                 :    3209662 :     int _mark = p->mark;
   23962                 :            :     { // 'class'
   23963         [ -  + ]:    3209662 :         if (p->error_indicator) {
   23964                 :          0 :             p->level--;
   23965                 :          0 :             return NULL;
   23966                 :            :         }
   23967                 :            :         D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
   23968                 :            :         Token * _keyword;
   23969         [ +  + ]:    3209662 :         if (
   23970                 :    3209662 :             (_keyword = _PyPegen_expect_token(p, 646))  // token='class'
   23971                 :            :         )
   23972                 :            :         {
   23973                 :            :             D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
   23974                 :      53300 :             _res = _keyword;
   23975                 :      53300 :             goto done;
   23976                 :            :         }
   23977                 :    3156362 :         p->mark = _mark;
   23978                 :            :         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         [ -  + ]:    3156362 :         if (p->error_indicator) {
   23983                 :          0 :             p->level--;
   23984                 :          0 :             return NULL;
   23985                 :            :         }
   23986                 :            :         D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
   23987                 :            :         Token * _literal;
   23988         [ +  + ]:    3156362 :         if (
   23989                 :    3156362 :             (_literal = _PyPegen_expect_token(p, 49))  // token='@'
   23990                 :            :         )
   23991                 :            :         {
   23992                 :            :             D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
   23993                 :       3190 :             _res = _literal;
   23994                 :       3190 :             goto done;
   23995                 :            :         }
   23996                 :    3153172 :         p->mark = _mark;
   23997                 :            :         D(fprintf(stderr, "%*c%s _tmp_8[%d-%d]: %s failed!\n", p->level, ' ',
   23998                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
   23999                 :            :     }
   24000                 :    3153172 :     _res = NULL;
   24001                 :    3209662 :   done:
   24002                 :    3209662 :     p->level--;
   24003                 :    3209662 :     return _res;
   24004                 :            : }
   24005                 :            : 
   24006                 :            : // _tmp_9: 'with' | ASYNC
   24007                 :            : static void *
   24008                 :    3153205 : _tmp_9_rule(Parser *p)
   24009                 :            : {
   24010         [ -  + ]:    3153205 :     if (p->level++ == MAXSTACK) {
   24011                 :          0 :         p->error_indicator = 1;
   24012                 :            :         PyErr_NoMemory();
   24013                 :            :     }
   24014         [ -  + ]:    3153205 :     if (p->error_indicator) {
   24015                 :          0 :         p->level--;
   24016                 :          0 :         return NULL;
   24017                 :            :     }
   24018                 :    3153205 :     void * _res = NULL;
   24019                 :    3153205 :     int _mark = p->mark;
   24020                 :            :     { // 'with'
   24021         [ -  + ]:    3153205 :         if (p->error_indicator) {
   24022                 :          0 :             p->level--;
   24023                 :          0 :             return NULL;
   24024                 :            :         }
   24025                 :            :         D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
   24026                 :            :         Token * _keyword;
   24027         [ +  + ]:    3153205 :         if (
   24028                 :    3153205 :             (_keyword = _PyPegen_expect_token(p, 612))  // token='with'
   24029                 :            :         )
   24030                 :            :         {
   24031                 :            :             D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
   24032                 :      38632 :             _res = _keyword;
   24033                 :      38632 :             goto done;
   24034                 :            :         }
   24035                 :    3114573 :         p->mark = _mark;
   24036                 :            :         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         [ -  + ]:    3114573 :         if (p->error_indicator) {
   24041                 :          0 :             p->level--;
   24042                 :          0 :             return NULL;
   24043                 :            :         }
   24044                 :            :         D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
   24045                 :            :         Token * async_var;
   24046         [ +  + ]:    3114573 :         if (
   24047                 :    3114573 :             (async_var = _PyPegen_expect_token(p, ASYNC))  // token='ASYNC'
   24048                 :            :         )
   24049                 :            :         {
   24050                 :            :             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                 :    3113923 :         p->mark = _mark;
   24055                 :            :         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                 :    3113923 :     _res = NULL;
   24059                 :    3153205 :   done:
   24060                 :    3153205 :     p->level--;
   24061                 :    3153205 :     return _res;
   24062                 :            : }
   24063                 :            : 
   24064                 :            : // _tmp_10: 'for' | ASYNC
   24065                 :            : static void *
   24066                 :    3114231 : _tmp_10_rule(Parser *p)
   24067                 :            : {
   24068         [ -  + ]:    3114231 :     if (p->level++ == MAXSTACK) {
   24069                 :          0 :         p->error_indicator = 1;
   24070                 :            :         PyErr_NoMemory();
   24071                 :            :     }
   24072         [ -  + ]:    3114231 :     if (p->error_indicator) {
   24073                 :          0 :         p->level--;
   24074                 :          0 :         return NULL;
   24075                 :            :     }
   24076                 :    3114231 :     void * _res = NULL;
   24077                 :    3114231 :     int _mark = p->mark;
   24078                 :            :     { // 'for'
   24079         [ -  + ]:    3114231 :         if (p->error_indicator) {
   24080                 :          0 :             p->level--;
   24081                 :          0 :             return NULL;
   24082                 :            :         }
   24083                 :            :         D(fprintf(stderr, "%*c> _tmp_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
   24084                 :            :         Token * _keyword;
   24085         [ +  + ]:    3114231 :         if (
   24086                 :    3114231 :             (_keyword = _PyPegen_expect_token(p, 642))  // token='for'
   24087                 :            :         )
   24088                 :            :         {
   24089                 :            :             D(fprintf(stderr, "%*c+ _tmp_10[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
   24090                 :      61088 :             _res = _keyword;
   24091                 :      61088 :             goto done;
   24092                 :            :         }
   24093                 :    3053143 :         p->mark = _mark;
   24094                 :            :         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         [ -  + ]:    3053143 :         if (p->error_indicator) {
   24099                 :          0 :             p->level--;
   24100                 :          0 :             return NULL;
   24101                 :            :         }
   24102                 :            :         D(fprintf(stderr, "%*c> _tmp_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
   24103                 :            :         Token * async_var;
   24104         [ +  + ]:    3053143 :         if (
   24105                 :    3053143 :             (async_var = _PyPegen_expect_token(p, ASYNC))  // token='ASYNC'
   24106                 :            :         )
   24107                 :            :         {
   24108                 :            :             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                 :    3052867 :         p->mark = _mark;
   24113                 :            :         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                 :    3052867 :     _res = NULL;
   24117                 :    3114231 :   done:
   24118                 :    3114231 :     p->level--;
   24119                 :    3114231 :     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                 :            :         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                 :            :         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         [ +  - ]:       6018 :             &&
   24147                 :       6018 :             (d = annotated_rhs_rule(p))  // annotated_rhs
   24148                 :            :         )
   24149                 :            :         {
   24150                 :            :             D(fprintf(stderr, "%*c+ _tmp_11[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
   24151                 :       6018 :             _res = d;
   24152   [ -  +  -  - ]:       6018 :             if (_res == NULL && PyErr_Occurred()) {
   24153                 :          0 :                 p->error_indicator = 1;
   24154                 :          0 :                 p->level--;
   24155                 :          0 :                 return NULL;
   24156                 :            :             }
   24157                 :       6018 :             goto done;
   24158                 :            :         }
   24159                 :       3468 :         p->mark = _mark;
   24160                 :            :         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                 :       3468 :     _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                 :    3201373 : _tmp_12_rule(Parser *p)
   24172                 :            : {
   24173         [ -  + ]:    3201373 :     if (p->level++ == MAXSTACK) {
   24174                 :          0 :         p->error_indicator = 1;
   24175                 :            :         PyErr_NoMemory();
   24176                 :            :     }
   24177         [ -  + ]:    3201373 :     if (p->error_indicator) {
   24178                 :          0 :         p->level--;
   24179                 :          0 :         return NULL;
   24180                 :            :     }
   24181                 :    3201373 :     void * _res = NULL;
   24182                 :    3201373 :     int _mark = p->mark;
   24183                 :            :     { // '(' single_target ')'
   24184         [ -  + ]:    3201373 :         if (p->error_indicator) {
   24185                 :          0 :             p->level--;
   24186                 :          0 :             return NULL;
   24187                 :            :         }
   24188                 :            :         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         [ +  + ]:    3201373 :         if (
   24193                 :    3201373 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   24194         [ +  + ]:       2066 :             &&
   24195                 :       2066 :             (b = single_target_rule(p))  // single_target
   24196         [ +  + ]:       1877 :             &&
   24197                 :       1877 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   24198                 :            :         )
   24199                 :            :         {
   24200                 :            :             D(fprintf(stderr, "%*c+ _tmp_12[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
   24201                 :         27 :             _res = b;
   24202   [ -  +  -  - ]:         27 :             if (_res == NULL && PyErr_Occurred()) {
   24203                 :          0 :                 p->error_indicator = 1;
   24204                 :          0 :                 p->level--;
   24205                 :          0 :                 return NULL;
   24206                 :            :             }
   24207                 :         27 :             goto done;
   24208                 :            :         }
   24209                 :    3201346 :         p->mark = _mark;
   24210                 :            :         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         [ +  + ]:    3201346 :         if (p->error_indicator) {
   24215                 :          8 :             p->level--;
   24216                 :          8 :             return NULL;
   24217                 :            :         }
   24218                 :            :         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         [ +  + ]:    3201338 :         if (
   24221                 :    3201338 :             (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p))  // single_subscript_attribute_target
   24222                 :            :         )
   24223                 :            :         {
   24224                 :            :             D(fprintf(stderr, "%*c+ _tmp_12[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
   24225                 :     178203 :             _res = single_subscript_attribute_target_var;
   24226                 :     178203 :             goto done;
   24227                 :            :         }
   24228                 :    3023135 :         p->mark = _mark;
   24229                 :            :         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                 :    3023135 :     _res = NULL;
   24233                 :    3201365 :   done:
   24234                 :    3201365 :     p->level--;
   24235                 :    3201365 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :    3199180 : _loop1_14_rule(Parser *p)
   24288                 :            : {
   24289         [ -  + ]:    3199180 :     if (p->level++ == MAXSTACK) {
   24290                 :          0 :         p->error_indicator = 1;
   24291                 :            :         PyErr_NoMemory();
   24292                 :            :     }
   24293         [ -  + ]:    3199180 :     if (p->error_indicator) {
   24294                 :          0 :         p->level--;
   24295                 :          0 :         return NULL;
   24296                 :            :     }
   24297                 :    3199180 :     void *_res = NULL;
   24298                 :    3199180 :     int _mark = p->mark;
   24299                 :    3199180 :     int _start_mark = p->mark;
   24300                 :    3199180 :     void **_children = PyMem_Malloc(sizeof(void *));
   24301         [ -  + ]:    3199180 :     if (!_children) {
   24302                 :          0 :         p->error_indicator = 1;
   24303                 :            :         PyErr_NoMemory();
   24304                 :          0 :         p->level--;
   24305                 :          0 :         return NULL;
   24306                 :            :     }
   24307                 :    3199180 :     Py_ssize_t _children_capacity = 1;
   24308                 :    3199180 :     Py_ssize_t _n = 0;
   24309                 :            :     { // (star_targets '=')
   24310         [ -  + ]:    3199180 :         if (p->error_indicator) {
   24311                 :          0 :             p->level--;
   24312                 :          0 :             return NULL;
   24313                 :            :         }
   24314                 :            :         D(fprintf(stderr, "%*c> _loop1_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
   24315                 :            :         void *_tmp_219_var;
   24316                 :    3199180 :         while (
   24317         [ +  + ]:    4011463 :             (_tmp_219_var = _tmp_219_rule(p))  // star_targets '='
   24318                 :            :         )
   24319                 :            :         {
   24320                 :     812283 :             _res = _tmp_219_var;
   24321         [ +  + ]:     812283 :             if (_n == _children_capacity) {
   24322                 :       6420 :                 _children_capacity *= 2;
   24323                 :       6420 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   24324         [ -  + ]:       6420 :                 if (!_new_children) {
   24325                 :          0 :                     p->error_indicator = 1;
   24326                 :            :                     PyErr_NoMemory();
   24327                 :          0 :                     p->level--;
   24328                 :          0 :                     return NULL;
   24329                 :            :                 }
   24330                 :       6420 :                 _children = _new_children;
   24331                 :            :             }
   24332                 :     812283 :             _children[_n++] = _res;
   24333                 :     812283 :             _mark = p->mark;
   24334                 :            :         }
   24335                 :    3199180 :         p->mark = _mark;
   24336                 :            :         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   [ +  +  +  + ]:    3199180 :     if (_n == 0 || p->error_indicator) {
   24340                 :    2396007 :         PyMem_Free(_children);
   24341                 :    2396007 :         p->level--;
   24342                 :    2396007 :         return NULL;
   24343                 :            :     }
   24344                 :     803173 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   24345         [ -  + ]:     803173 :     if (!_seq) {
   24346                 :          0 :         PyMem_Free(_children);
   24347                 :          0 :         p->error_indicator = 1;
   24348                 :            :         PyErr_NoMemory();
   24349                 :          0 :         p->level--;
   24350                 :          0 :         return NULL;
   24351                 :            :     }
   24352         [ +  + ]:    1615422 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   24353                 :     803173 :     PyMem_Free(_children);
   24354                 :     803173 :     _PyPegen_insert_memo(p, _start_mark, _loop1_14_type, _seq);
   24355                 :     803173 :     p->level--;
   24356                 :     803173 :     return _seq;
   24357                 :            : }
   24358                 :            : 
   24359                 :            : // _tmp_15: yield_expr | star_expressions
   24360                 :            : static void *
   24361                 :     803173 : _tmp_15_rule(Parser *p)
   24362                 :            : {
   24363         [ -  + ]:     803173 :     if (p->level++ == MAXSTACK) {
   24364                 :          0 :         p->error_indicator = 1;
   24365                 :            :         PyErr_NoMemory();
   24366                 :            :     }
   24367         [ -  + ]:     803173 :     if (p->error_indicator) {
   24368                 :          0 :         p->level--;
   24369                 :          0 :         return NULL;
   24370                 :            :     }
   24371                 :     803173 :     void * _res = NULL;
   24372                 :     803173 :     int _mark = p->mark;
   24373                 :            :     { // yield_expr
   24374         [ -  + ]:     803173 :         if (p->error_indicator) {
   24375                 :          0 :             p->level--;
   24376                 :          0 :             return NULL;
   24377                 :            :         }
   24378                 :            :         D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
   24379                 :            :         expr_ty yield_expr_var;
   24380         [ +  + ]:     803173 :         if (
   24381                 :     803173 :             (yield_expr_var = yield_expr_rule(p))  // yield_expr
   24382                 :            :         )
   24383                 :            :         {
   24384                 :            :             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                 :     803007 :         p->mark = _mark;
   24389                 :            :         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         [ -  + ]:     803007 :         if (p->error_indicator) {
   24394                 :          0 :             p->level--;
   24395                 :          0 :             return NULL;
   24396                 :            :         }
   24397                 :            :         D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
   24398                 :            :         expr_ty star_expressions_var;
   24399         [ +  + ]:     803007 :         if (
   24400                 :     803007 :             (star_expressions_var = star_expressions_rule(p))  // star_expressions
   24401                 :            :         )
   24402                 :            :         {
   24403                 :            :             D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
   24404                 :     802991 :             _res = star_expressions_var;
   24405                 :     802991 :             goto done;
   24406                 :            :         }
   24407                 :         16 :         p->mark = _mark;
   24408                 :            :         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                 :     803173 :   done:
   24413                 :     803173 :     p->level--;
   24414                 :     803173 :     return _res;
   24415                 :            : }
   24416                 :            : 
   24417                 :            : // _tmp_16: yield_expr | star_expressions
   24418                 :            : static void *
   24419                 :      25588 : _tmp_16_rule(Parser *p)
   24420                 :            : {
   24421         [ -  + ]:      25588 :     if (p->level++ == MAXSTACK) {
   24422                 :          0 :         p->error_indicator = 1;
   24423                 :            :         PyErr_NoMemory();
   24424                 :            :     }
   24425         [ -  + ]:      25588 :     if (p->error_indicator) {
   24426                 :          0 :         p->level--;
   24427                 :          0 :         return NULL;
   24428                 :            :     }
   24429                 :      25588 :     void * _res = NULL;
   24430                 :      25588 :     int _mark = p->mark;
   24431                 :            :     { // yield_expr
   24432         [ -  + ]:      25588 :         if (p->error_indicator) {
   24433                 :          0 :             p->level--;
   24434                 :          0 :             return NULL;
   24435                 :            :         }
   24436                 :            :         D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
   24437                 :            :         expr_ty yield_expr_var;
   24438         [ +  + ]:      25588 :         if (
   24439                 :      25588 :             (yield_expr_var = yield_expr_rule(p))  // yield_expr
   24440                 :            :         )
   24441                 :            :         {
   24442                 :            :             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                 :      25586 :         p->mark = _mark;
   24447                 :            :         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         [ -  + ]:      25586 :         if (p->error_indicator) {
   24452                 :          0 :             p->level--;
   24453                 :          0 :             return NULL;
   24454                 :            :         }
   24455                 :            :         D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
   24456                 :            :         expr_ty star_expressions_var;
   24457         [ +  - ]:      25586 :         if (
   24458                 :      25586 :             (star_expressions_var = star_expressions_rule(p))  // star_expressions
   24459                 :            :         )
   24460                 :            :         {
   24461                 :            :             D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
   24462                 :      25586 :             _res = star_expressions_var;
   24463                 :      25586 :             goto done;
   24464                 :            :         }
   24465                 :          0 :         p->mark = _mark;
   24466                 :            :         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                 :      25588 :   done:
   24471                 :      25588 :     p->level--;
   24472                 :      25588 :     return _res;
   24473                 :            : }
   24474                 :            : 
   24475                 :            : // _tmp_17: 'from' expression
   24476                 :            : static void *
   24477                 :      56377 : _tmp_17_rule(Parser *p)
   24478                 :            : {
   24479         [ -  + ]:      56377 :     if (p->level++ == MAXSTACK) {
   24480                 :          0 :         p->error_indicator = 1;
   24481                 :            :         PyErr_NoMemory();
   24482                 :            :     }
   24483         [ -  + ]:      56377 :     if (p->error_indicator) {
   24484                 :          0 :         p->level--;
   24485                 :          0 :         return NULL;
   24486                 :            :     }
   24487                 :      56377 :     void * _res = NULL;
   24488                 :      56377 :     int _mark = p->mark;
   24489                 :            :     { // 'from' expression
   24490         [ -  + ]:      56377 :         if (p->error_indicator) {
   24491                 :          0 :             p->level--;
   24492                 :          0 :             return NULL;
   24493                 :            :         }
   24494                 :            :         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         [ +  + ]:      56377 :         if (
   24498                 :      56377 :             (_keyword = _PyPegen_expect_token(p, 572))  // token='from'
   24499         [ +  - ]:       2859 :             &&
   24500                 :       2859 :             (z = expression_rule(p))  // expression
   24501                 :            :         )
   24502                 :            :         {
   24503                 :            :             D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' expression"));
   24504                 :       2859 :             _res = z;
   24505   [ -  +  -  - ]:       2859 :             if (_res == NULL && PyErr_Occurred()) {
   24506                 :          0 :                 p->error_indicator = 1;
   24507                 :          0 :                 p->level--;
   24508                 :          0 :                 return NULL;
   24509                 :            :             }
   24510                 :       2859 :             goto done;
   24511                 :            :         }
   24512                 :      53518 :         p->mark = _mark;
   24513                 :            :         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                 :      53518 :     _res = NULL;
   24517                 :      56377 :   done:
   24518                 :      56377 :     p->level--;
   24519                 :      56377 :     return _res;
   24520                 :            : }
   24521                 :            : 
   24522                 :            : // _loop0_19: ',' NAME
   24523                 :            : static asdl_seq *
   24524                 :       1816 : _loop0_19_rule(Parser *p)
   24525                 :            : {
   24526         [ -  + ]:       1816 :     if (p->level++ == MAXSTACK) {
   24527                 :          0 :         p->error_indicator = 1;
   24528                 :            :         PyErr_NoMemory();
   24529                 :            :     }
   24530         [ -  + ]:       1816 :     if (p->error_indicator) {
   24531                 :          0 :         p->level--;
   24532                 :          0 :         return NULL;
   24533                 :            :     }
   24534                 :       1816 :     void *_res = NULL;
   24535                 :       1816 :     int _mark = p->mark;
   24536                 :       1816 :     int _start_mark = p->mark;
   24537                 :       1816 :     void **_children = PyMem_Malloc(sizeof(void *));
   24538         [ -  + ]:       1816 :     if (!_children) {
   24539                 :          0 :         p->error_indicator = 1;
   24540                 :            :         PyErr_NoMemory();
   24541                 :          0 :         p->level--;
   24542                 :          0 :         return NULL;
   24543                 :            :     }
   24544                 :       1816 :     Py_ssize_t _children_capacity = 1;
   24545                 :       1816 :     Py_ssize_t _n = 0;
   24546                 :            :     { // ',' NAME
   24547         [ -  + ]:       1816 :         if (p->error_indicator) {
   24548                 :          0 :             p->level--;
   24549                 :          0 :             return NULL;
   24550                 :            :         }
   24551                 :            :         D(fprintf(stderr, "%*c> _loop0_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
   24552                 :            :         Token * _literal;
   24553                 :            :         expr_ty elem;
   24554                 :       1816 :         while (
   24555                 :       2363 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   24556   [ +  +  +  - ]:       2910 :             &&
   24557                 :        547 :             (elem = _PyPegen_name_token(p))  // NAME
   24558                 :            :         )
   24559                 :            :         {
   24560                 :        547 :             _res = elem;
   24561   [ -  +  -  - ]:        547 :             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         [ +  + ]:        547 :             if (_n == _children_capacity) {
   24568                 :        129 :                 _children_capacity *= 2;
   24569                 :        129 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   24570         [ -  + ]:        129 :                 if (!_new_children) {
   24571                 :          0 :                     p->error_indicator = 1;
   24572                 :            :                     PyErr_NoMemory();
   24573                 :          0 :                     p->level--;
   24574                 :          0 :                     return NULL;
   24575                 :            :                 }
   24576                 :        129 :                 _children = _new_children;
   24577                 :            :             }
   24578                 :        547 :             _children[_n++] = _res;
   24579                 :        547 :             _mark = p->mark;
   24580                 :            :         }
   24581                 :       1816 :         p->mark = _mark;
   24582                 :            :         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                 :       1816 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   24586         [ -  + ]:       1816 :     if (!_seq) {
   24587                 :          0 :         PyMem_Free(_children);
   24588                 :          0 :         p->error_indicator = 1;
   24589                 :            :         PyErr_NoMemory();
   24590                 :          0 :         p->level--;
   24591                 :          0 :         return NULL;
   24592                 :            :     }
   24593         [ +  + ]:       2363 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   24594                 :       1816 :     PyMem_Free(_children);
   24595                 :       1816 :     _PyPegen_insert_memo(p, _start_mark, _loop0_19_type, _seq);
   24596                 :       1816 :     p->level--;
   24597                 :       1816 :     return _seq;
   24598                 :            : }
   24599                 :            : 
   24600                 :            : // _gather_18: NAME _loop0_19
   24601                 :            : static asdl_seq *
   24602                 :       1818 : _gather_18_rule(Parser *p)
   24603                 :            : {
   24604         [ -  + ]:       1818 :     if (p->level++ == MAXSTACK) {
   24605                 :          0 :         p->error_indicator = 1;
   24606                 :            :         PyErr_NoMemory();
   24607                 :            :     }
   24608         [ -  + ]:       1818 :     if (p->error_indicator) {
   24609                 :          0 :         p->level--;
   24610                 :          0 :         return NULL;
   24611                 :            :     }
   24612                 :       1818 :     asdl_seq * _res = NULL;
   24613                 :       1818 :     int _mark = p->mark;
   24614                 :            :     { // NAME _loop0_19
   24615         [ -  + ]:       1818 :         if (p->error_indicator) {
   24616                 :          0 :             p->level--;
   24617                 :          0 :             return NULL;
   24618                 :            :         }
   24619                 :            :         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         [ +  + ]:       1818 :         if (
   24623                 :       1818 :             (elem = _PyPegen_name_token(p))  // NAME
   24624         [ +  - ]:       1816 :             &&
   24625                 :       1816 :             (seq = _loop0_19_rule(p))  // _loop0_19
   24626                 :            :         )
   24627                 :            :         {
   24628                 :            :             D(fprintf(stderr, "%*c+ _gather_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_19"));
   24629                 :       1816 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   24630                 :       1816 :             goto done;
   24631                 :            :         }
   24632                 :          2 :         p->mark = _mark;
   24633                 :            :         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                 :       1818 :   done:
   24638                 :       1818 :     p->level--;
   24639                 :       1818 :     return _res;
   24640                 :            : }
   24641                 :            : 
   24642                 :            : // _loop0_21: ',' NAME
   24643                 :            : static asdl_seq *
   24644                 :        928 : _loop0_21_rule(Parser *p)
   24645                 :            : {
   24646         [ -  + ]:        928 :     if (p->level++ == MAXSTACK) {
   24647                 :          0 :         p->error_indicator = 1;
   24648                 :            :         PyErr_NoMemory();
   24649                 :            :     }
   24650         [ -  + ]:        928 :     if (p->error_indicator) {
   24651                 :          0 :         p->level--;
   24652                 :          0 :         return NULL;
   24653                 :            :     }
   24654                 :        928 :     void *_res = NULL;
   24655                 :        928 :     int _mark = p->mark;
   24656                 :        928 :     int _start_mark = p->mark;
   24657                 :        928 :     void **_children = PyMem_Malloc(sizeof(void *));
   24658         [ -  + ]:        928 :     if (!_children) {
   24659                 :          0 :         p->error_indicator = 1;
   24660                 :            :         PyErr_NoMemory();
   24661                 :          0 :         p->level--;
   24662                 :          0 :         return NULL;
   24663                 :            :     }
   24664                 :        928 :     Py_ssize_t _children_capacity = 1;
   24665                 :        928 :     Py_ssize_t _n = 0;
   24666                 :            :     { // ',' NAME
   24667         [ -  + ]:        928 :         if (p->error_indicator) {
   24668                 :          0 :             p->level--;
   24669                 :          0 :             return NULL;
   24670                 :            :         }
   24671                 :            :         D(fprintf(stderr, "%*c> _loop0_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
   24672                 :            :         Token * _literal;
   24673                 :            :         expr_ty elem;
   24674                 :        928 :         while (
   24675                 :       1111 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   24676   [ +  +  +  - ]:       1294 :             &&
   24677                 :        183 :             (elem = _PyPegen_name_token(p))  // NAME
   24678                 :            :         )
   24679                 :            :         {
   24680                 :        183 :             _res = elem;
   24681   [ -  +  -  - ]:        183 :             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         [ +  + ]:        183 :             if (_n == _children_capacity) {
   24688                 :         75 :                 _children_capacity *= 2;
   24689                 :         75 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   24690         [ -  + ]:         75 :                 if (!_new_children) {
   24691                 :          0 :                     p->error_indicator = 1;
   24692                 :            :                     PyErr_NoMemory();
   24693                 :          0 :                     p->level--;
   24694                 :          0 :                     return NULL;
   24695                 :            :                 }
   24696                 :         75 :                 _children = _new_children;
   24697                 :            :             }
   24698                 :        183 :             _children[_n++] = _res;
   24699                 :        183 :             _mark = p->mark;
   24700                 :            :         }
   24701                 :        928 :         p->mark = _mark;
   24702                 :            :         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                 :        928 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   24706         [ -  + ]:        928 :     if (!_seq) {
   24707                 :          0 :         PyMem_Free(_children);
   24708                 :          0 :         p->error_indicator = 1;
   24709                 :            :         PyErr_NoMemory();
   24710                 :          0 :         p->level--;
   24711                 :          0 :         return NULL;
   24712                 :            :     }
   24713         [ +  + ]:       1111 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   24714                 :        928 :     PyMem_Free(_children);
   24715                 :        928 :     _PyPegen_insert_memo(p, _start_mark, _loop0_21_type, _seq);
   24716                 :        928 :     p->level--;
   24717                 :        928 :     return _seq;
   24718                 :            : }
   24719                 :            : 
   24720                 :            : // _gather_20: NAME _loop0_21
   24721                 :            : static asdl_seq *
   24722                 :        930 : _gather_20_rule(Parser *p)
   24723                 :            : {
   24724         [ -  + ]:        930 :     if (p->level++ == MAXSTACK) {
   24725                 :          0 :         p->error_indicator = 1;
   24726                 :            :         PyErr_NoMemory();
   24727                 :            :     }
   24728         [ -  + ]:        930 :     if (p->error_indicator) {
   24729                 :          0 :         p->level--;
   24730                 :          0 :         return NULL;
   24731                 :            :     }
   24732                 :        930 :     asdl_seq * _res = NULL;
   24733                 :        930 :     int _mark = p->mark;
   24734                 :            :     { // NAME _loop0_21
   24735         [ -  + ]:        930 :         if (p->error_indicator) {
   24736                 :          0 :             p->level--;
   24737                 :          0 :             return NULL;
   24738                 :            :         }
   24739                 :            :         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         [ +  + ]:        930 :         if (
   24743                 :        930 :             (elem = _PyPegen_name_token(p))  // NAME
   24744         [ +  - ]:        928 :             &&
   24745                 :        928 :             (seq = _loop0_21_rule(p))  // _loop0_21
   24746                 :            :         )
   24747                 :            :         {
   24748                 :            :             D(fprintf(stderr, "%*c+ _gather_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_21"));
   24749                 :        928 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   24750                 :        928 :             goto done;
   24751                 :            :         }
   24752                 :          2 :         p->mark = _mark;
   24753                 :            :         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                 :        930 :   done:
   24758                 :        930 :     p->level--;
   24759                 :        930 :     return _res;
   24760                 :            : }
   24761                 :            : 
   24762                 :            : // _tmp_22: ';' | NEWLINE
   24763                 :            : static void *
   24764                 :       8798 : _tmp_22_rule(Parser *p)
   24765                 :            : {
   24766         [ -  + ]:       8798 :     if (p->level++ == MAXSTACK) {
   24767                 :          0 :         p->error_indicator = 1;
   24768                 :            :         PyErr_NoMemory();
   24769                 :            :     }
   24770         [ -  + ]:       8798 :     if (p->error_indicator) {
   24771                 :          0 :         p->level--;
   24772                 :          0 :         return NULL;
   24773                 :            :     }
   24774                 :       8798 :     void * _res = NULL;
   24775                 :       8798 :     int _mark = p->mark;
   24776                 :            :     { // ';'
   24777         [ -  + ]:       8798 :         if (p->error_indicator) {
   24778                 :          0 :             p->level--;
   24779                 :          0 :             return NULL;
   24780                 :            :         }
   24781                 :            :         D(fprintf(stderr, "%*c> _tmp_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
   24782                 :            :         Token * _literal;
   24783         [ +  + ]:       8798 :         if (
   24784                 :       8798 :             (_literal = _PyPegen_expect_token(p, 13))  // token=';'
   24785                 :            :         )
   24786                 :            :         {
   24787                 :            :             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                 :       8761 :         p->mark = _mark;
   24792                 :            :         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         [ -  + ]:       8761 :         if (p->error_indicator) {
   24797                 :          0 :             p->level--;
   24798                 :          0 :             return NULL;
   24799                 :            :         }
   24800                 :            :         D(fprintf(stderr, "%*c> _tmp_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
   24801                 :            :         Token * newline_var;
   24802         [ +  + ]:       8761 :         if (
   24803                 :       8761 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   24804                 :            :         )
   24805                 :            :         {
   24806                 :            :             D(fprintf(stderr, "%*c+ _tmp_22[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
   24807                 :       8727 :             _res = newline_var;
   24808                 :       8727 :             goto done;
   24809                 :            :         }
   24810                 :         34 :         p->mark = _mark;
   24811                 :            :         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                 :       8798 :   done:
   24816                 :       8798 :     p->level--;
   24817                 :       8798 :     return _res;
   24818                 :            : }
   24819                 :            : 
   24820                 :            : // _tmp_23: ',' expression
   24821                 :            : static void *
   24822                 :       9808 : _tmp_23_rule(Parser *p)
   24823                 :            : {
   24824         [ -  + ]:       9808 :     if (p->level++ == MAXSTACK) {
   24825                 :          0 :         p->error_indicator = 1;
   24826                 :            :         PyErr_NoMemory();
   24827                 :            :     }
   24828         [ -  + ]:       9808 :     if (p->error_indicator) {
   24829                 :          0 :         p->level--;
   24830                 :          0 :         return NULL;
   24831                 :            :     }
   24832                 :       9808 :     void * _res = NULL;
   24833                 :       9808 :     int _mark = p->mark;
   24834                 :            :     { // ',' expression
   24835         [ -  + ]:       9808 :         if (p->error_indicator) {
   24836                 :          0 :             p->level--;
   24837                 :          0 :             return NULL;
   24838                 :            :         }
   24839                 :            :         D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
   24840                 :            :         Token * _literal;
   24841                 :            :         expr_ty z;
   24842         [ +  + ]:       9808 :         if (
   24843                 :       9808 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   24844         [ +  - ]:       2179 :             &&
   24845                 :       2179 :             (z = expression_rule(p))  // expression
   24846                 :            :         )
   24847                 :            :         {
   24848                 :            :             D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
   24849                 :       2179 :             _res = z;
   24850   [ -  +  -  - ]:       2179 :             if (_res == NULL && PyErr_Occurred()) {
   24851                 :          0 :                 p->error_indicator = 1;
   24852                 :          0 :                 p->level--;
   24853                 :          0 :                 return NULL;
   24854                 :            :             }
   24855                 :       2179 :             goto done;
   24856                 :            :         }
   24857                 :       7629 :         p->mark = _mark;
   24858                 :            :         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                 :       7629 :     _res = NULL;
   24862                 :       9808 :   done:
   24863                 :       9808 :     p->level--;
   24864                 :       9808 :     return _res;
   24865                 :            : }
   24866                 :            : 
   24867                 :            : // _loop0_24: ('.' | '...')
   24868                 :            : static asdl_seq *
   24869                 :      45790 : _loop0_24_rule(Parser *p)
   24870                 :            : {
   24871         [ -  + ]:      45790 :     if (p->level++ == MAXSTACK) {
   24872                 :          0 :         p->error_indicator = 1;
   24873                 :            :         PyErr_NoMemory();
   24874                 :            :     }
   24875         [ -  + ]:      45790 :     if (p->error_indicator) {
   24876                 :          0 :         p->level--;
   24877                 :          0 :         return NULL;
   24878                 :            :     }
   24879                 :      45790 :     void *_res = NULL;
   24880                 :      45790 :     int _mark = p->mark;
   24881                 :      45790 :     int _start_mark = p->mark;
   24882                 :      45790 :     void **_children = PyMem_Malloc(sizeof(void *));
   24883         [ -  + ]:      45790 :     if (!_children) {
   24884                 :          0 :         p->error_indicator = 1;
   24885                 :            :         PyErr_NoMemory();
   24886                 :          0 :         p->level--;
   24887                 :          0 :         return NULL;
   24888                 :            :     }
   24889                 :      45790 :     Py_ssize_t _children_capacity = 1;
   24890                 :      45790 :     Py_ssize_t _n = 0;
   24891                 :            :     { // ('.' | '...')
   24892         [ -  + ]:      45790 :         if (p->error_indicator) {
   24893                 :          0 :             p->level--;
   24894                 :          0 :             return NULL;
   24895                 :            :         }
   24896                 :            :         D(fprintf(stderr, "%*c> _loop0_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
   24897                 :            :         void *_tmp_220_var;
   24898                 :      45790 :         while (
   24899         [ +  + ]:      57387 :             (_tmp_220_var = _tmp_220_rule(p))  // '.' | '...'
   24900                 :            :         )
   24901                 :            :         {
   24902                 :      11597 :             _res = _tmp_220_var;
   24903         [ +  + ]:      11597 :             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                 :            :                     PyErr_NoMemory();
   24909                 :          0 :                     p->level--;
   24910                 :          0 :                     return NULL;
   24911                 :            :                 }
   24912                 :        652 :                 _children = _new_children;
   24913                 :            :             }
   24914                 :      11597 :             _children[_n++] = _res;
   24915                 :      11597 :             _mark = p->mark;
   24916                 :            :         }
   24917                 :      45790 :         p->mark = _mark;
   24918                 :            :         D(fprintf(stderr, "%*c%s _loop0_24[%d-%d]: %s failed!\n", p->level, ' ',
   24919                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
   24920                 :            :     }
   24921                 :      45790 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   24922         [ -  + ]:      45790 :     if (!_seq) {
   24923                 :          0 :         PyMem_Free(_children);
   24924                 :          0 :         p->error_indicator = 1;
   24925                 :            :         PyErr_NoMemory();
   24926                 :          0 :         p->level--;
   24927                 :          0 :         return NULL;
   24928                 :            :     }
   24929         [ +  + ]:      57387 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   24930                 :      45790 :     PyMem_Free(_children);
   24931                 :      45790 :     _PyPegen_insert_memo(p, _start_mark, _loop0_24_type, _seq);
   24932                 :      45790 :     p->level--;
   24933                 :      45790 :     return _seq;
   24934                 :            : }
   24935                 :            : 
   24936                 :            : // _loop1_25: ('.' | '...')
   24937                 :            : static asdl_seq *
   24938                 :       1277 : _loop1_25_rule(Parser *p)
   24939                 :            : {
   24940         [ -  + ]:       1277 :     if (p->level++ == MAXSTACK) {
   24941                 :          0 :         p->error_indicator = 1;
   24942                 :            :         PyErr_NoMemory();
   24943                 :            :     }
   24944         [ -  + ]:       1277 :     if (p->error_indicator) {
   24945                 :          0 :         p->level--;
   24946                 :          0 :         return NULL;
   24947                 :            :     }
   24948                 :       1277 :     void *_res = NULL;
   24949                 :       1277 :     int _mark = p->mark;
   24950                 :       1277 :     int _start_mark = p->mark;
   24951                 :       1277 :     void **_children = PyMem_Malloc(sizeof(void *));
   24952         [ -  + ]:       1277 :     if (!_children) {
   24953                 :          0 :         p->error_indicator = 1;
   24954                 :            :         PyErr_NoMemory();
   24955                 :          0 :         p->level--;
   24956                 :          0 :         return NULL;
   24957                 :            :     }
   24958                 :       1277 :     Py_ssize_t _children_capacity = 1;
   24959                 :       1277 :     Py_ssize_t _n = 0;
   24960                 :            :     { // ('.' | '...')
   24961         [ -  + ]:       1277 :         if (p->error_indicator) {
   24962                 :          0 :             p->level--;
   24963                 :          0 :             return NULL;
   24964                 :            :         }
   24965                 :            :         D(fprintf(stderr, "%*c> _loop1_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
   24966                 :            :         void *_tmp_221_var;
   24967                 :       1277 :         while (
   24968         [ +  + ]:       2650 :             (_tmp_221_var = _tmp_221_rule(p))  // '.' | '...'
   24969                 :            :         )
   24970                 :            :         {
   24971                 :       1373 :             _res = _tmp_221_var;
   24972         [ +  + ]:       1373 :             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                 :            :                     PyErr_NoMemory();
   24978                 :          0 :                     p->level--;
   24979                 :          0 :                     return NULL;
   24980                 :            :                 }
   24981                 :        115 :                 _children = _new_children;
   24982                 :            :             }
   24983                 :       1373 :             _children[_n++] = _res;
   24984                 :       1373 :             _mark = p->mark;
   24985                 :            :         }
   24986                 :       1277 :         p->mark = _mark;
   24987                 :            :         D(fprintf(stderr, "%*c%s _loop1_25[%d-%d]: %s failed!\n", p->level, ' ',
   24988                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
   24989                 :            :     }
   24990   [ +  +  -  + ]:       1277 :     if (_n == 0 || p->error_indicator) {
   24991                 :         19 :         PyMem_Free(_children);
   24992                 :         19 :         p->level--;
   24993                 :         19 :         return NULL;
   24994                 :            :     }
   24995                 :       1258 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   24996         [ -  + ]:       1258 :     if (!_seq) {
   24997                 :          0 :         PyMem_Free(_children);
   24998                 :          0 :         p->error_indicator = 1;
   24999                 :            :         PyErr_NoMemory();
   25000                 :          0 :         p->level--;
   25001                 :          0 :         return NULL;
   25002                 :            :     }
   25003         [ +  + ]:       2631 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25004                 :       1258 :     PyMem_Free(_children);
   25005                 :       1258 :     _PyPegen_insert_memo(p, _start_mark, _loop1_25_type, _seq);
   25006                 :       1258 :     p->level--;
   25007                 :       1258 :     return _seq;
   25008                 :            : }
   25009                 :            : 
   25010                 :            : // _loop0_27: ',' import_from_as_name
   25011                 :            : static asdl_seq *
   25012                 :      44687 : _loop0_27_rule(Parser *p)
   25013                 :            : {
   25014         [ -  + ]:      44687 :     if (p->level++ == MAXSTACK) {
   25015                 :          0 :         p->error_indicator = 1;
   25016                 :            :         PyErr_NoMemory();
   25017                 :            :     }
   25018         [ -  + ]:      44687 :     if (p->error_indicator) {
   25019                 :          0 :         p->level--;
   25020                 :          0 :         return NULL;
   25021                 :            :     }
   25022                 :      44687 :     void *_res = NULL;
   25023                 :      44687 :     int _mark = p->mark;
   25024                 :      44687 :     int _start_mark = p->mark;
   25025                 :      44687 :     void **_children = PyMem_Malloc(sizeof(void *));
   25026         [ -  + ]:      44687 :     if (!_children) {
   25027                 :          0 :         p->error_indicator = 1;
   25028                 :            :         PyErr_NoMemory();
   25029                 :          0 :         p->level--;
   25030                 :          0 :         return NULL;
   25031                 :            :     }
   25032                 :      44687 :     Py_ssize_t _children_capacity = 1;
   25033                 :      44687 :     Py_ssize_t _n = 0;
   25034                 :            :     { // ',' import_from_as_name
   25035         [ -  + ]:      44687 :         if (p->error_indicator) {
   25036                 :          0 :             p->level--;
   25037                 :          0 :             return NULL;
   25038                 :            :         }
   25039                 :            :         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                 :      44687 :         while (
   25043                 :      76876 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   25044   [ +  +  +  + ]:     110445 :             &&
   25045                 :      33569 :             (elem = import_from_as_name_rule(p))  // import_from_as_name
   25046                 :            :         )
   25047                 :            :         {
   25048                 :      32189 :             _res = elem;
   25049   [ -  +  -  - ]:      32189 :             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         [ +  + ]:      32189 :             if (_n == _children_capacity) {
   25056                 :      12624 :                 _children_capacity *= 2;
   25057                 :      12624 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   25058         [ -  + ]:      12624 :                 if (!_new_children) {
   25059                 :          0 :                     p->error_indicator = 1;
   25060                 :            :                     PyErr_NoMemory();
   25061                 :          0 :                     p->level--;
   25062                 :          0 :                     return NULL;
   25063                 :            :                 }
   25064                 :      12624 :                 _children = _new_children;
   25065                 :            :             }
   25066                 :      32189 :             _children[_n++] = _res;
   25067                 :      32189 :             _mark = p->mark;
   25068                 :            :         }
   25069                 :      44687 :         p->mark = _mark;
   25070                 :            :         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                 :      44687 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25074         [ -  + ]:      44687 :     if (!_seq) {
   25075                 :          0 :         PyMem_Free(_children);
   25076                 :          0 :         p->error_indicator = 1;
   25077                 :            :         PyErr_NoMemory();
   25078                 :          0 :         p->level--;
   25079                 :          0 :         return NULL;
   25080                 :            :     }
   25081         [ +  + ]:      76876 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25082                 :      44687 :     PyMem_Free(_children);
   25083                 :      44687 :     _PyPegen_insert_memo(p, _start_mark, _loop0_27_type, _seq);
   25084                 :      44687 :     p->level--;
   25085                 :      44687 :     return _seq;
   25086                 :            : }
   25087                 :            : 
   25088                 :            : // _gather_26: import_from_as_name _loop0_27
   25089                 :            : static asdl_seq *
   25090                 :      45800 : _gather_26_rule(Parser *p)
   25091                 :            : {
   25092         [ -  + ]:      45800 :     if (p->level++ == MAXSTACK) {
   25093                 :          0 :         p->error_indicator = 1;
   25094                 :            :         PyErr_NoMemory();
   25095                 :            :     }
   25096         [ -  + ]:      45800 :     if (p->error_indicator) {
   25097                 :          0 :         p->level--;
   25098                 :          0 :         return NULL;
   25099                 :            :     }
   25100                 :      45800 :     asdl_seq * _res = NULL;
   25101                 :      45800 :     int _mark = p->mark;
   25102                 :            :     { // import_from_as_name _loop0_27
   25103         [ -  + ]:      45800 :         if (p->error_indicator) {
   25104                 :          0 :             p->level--;
   25105                 :          0 :             return NULL;
   25106                 :            :         }
   25107                 :            :         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         [ +  + ]:      45800 :         if (
   25111                 :      45800 :             (elem = import_from_as_name_rule(p))  // import_from_as_name
   25112         [ +  - ]:      44687 :             &&
   25113                 :      44687 :             (seq = _loop0_27_rule(p))  // _loop0_27
   25114                 :            :         )
   25115                 :            :         {
   25116                 :            :             D(fprintf(stderr, "%*c+ _gather_26[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_27"));
   25117                 :      44687 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   25118                 :      44687 :             goto done;
   25119                 :            :         }
   25120                 :       1113 :         p->mark = _mark;
   25121                 :            :         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                 :       1113 :     _res = NULL;
   25125                 :      45800 :   done:
   25126                 :      45800 :     p->level--;
   25127                 :      45800 :     return _res;
   25128                 :            : }
   25129                 :            : 
   25130                 :            : // _tmp_28: 'as' NAME
   25131                 :            : static void *
   25132                 :      76884 : _tmp_28_rule(Parser *p)
   25133                 :            : {
   25134         [ -  + ]:      76884 :     if (p->level++ == MAXSTACK) {
   25135                 :          0 :         p->error_indicator = 1;
   25136                 :            :         PyErr_NoMemory();
   25137                 :            :     }
   25138         [ -  + ]:      76884 :     if (p->error_indicator) {
   25139                 :          0 :         p->level--;
   25140                 :          0 :         return NULL;
   25141                 :            :     }
   25142                 :      76884 :     void * _res = NULL;
   25143                 :      76884 :     int _mark = p->mark;
   25144                 :            :     { // 'as' NAME
   25145         [ -  + ]:      76884 :         if (p->error_indicator) {
   25146                 :          0 :             p->level--;
   25147                 :          0 :             return NULL;
   25148                 :            :         }
   25149                 :            :         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         [ +  + ]:      76884 :         if (
   25153                 :      76884 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   25154         [ +  + ]:       3124 :             &&
   25155                 :       3124 :             (z = _PyPegen_name_token(p))  // NAME
   25156                 :            :         )
   25157                 :            :         {
   25158                 :            :             D(fprintf(stderr, "%*c+ _tmp_28[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   25159                 :       3120 :             _res = z;
   25160   [ -  +  -  - ]:       3120 :             if (_res == NULL && PyErr_Occurred()) {
   25161                 :          0 :                 p->error_indicator = 1;
   25162                 :          0 :                 p->level--;
   25163                 :          0 :                 return NULL;
   25164                 :            :             }
   25165                 :       3120 :             goto done;
   25166                 :            :         }
   25167                 :      73764 :         p->mark = _mark;
   25168                 :            :         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                 :      73764 :     _res = NULL;
   25172                 :      76884 :   done:
   25173                 :      76884 :     p->level--;
   25174                 :      76884 :     return _res;
   25175                 :            : }
   25176                 :            : 
   25177                 :            : // _loop0_30: ',' dotted_as_name
   25178                 :            : static asdl_seq *
   25179                 :      44819 : _loop0_30_rule(Parser *p)
   25180                 :            : {
   25181         [ -  + ]:      44819 :     if (p->level++ == MAXSTACK) {
   25182                 :          0 :         p->error_indicator = 1;
   25183                 :            :         PyErr_NoMemory();
   25184                 :            :     }
   25185         [ -  + ]:      44819 :     if (p->error_indicator) {
   25186                 :          0 :         p->level--;
   25187                 :          0 :         return NULL;
   25188                 :            :     }
   25189                 :      44819 :     void *_res = NULL;
   25190                 :      44819 :     int _mark = p->mark;
   25191                 :      44819 :     int _start_mark = p->mark;
   25192                 :      44819 :     void **_children = PyMem_Malloc(sizeof(void *));
   25193         [ -  + ]:      44819 :     if (!_children) {
   25194                 :          0 :         p->error_indicator = 1;
   25195                 :            :         PyErr_NoMemory();
   25196                 :          0 :         p->level--;
   25197                 :          0 :         return NULL;
   25198                 :            :     }
   25199                 :      44819 :     Py_ssize_t _children_capacity = 1;
   25200                 :      44819 :     Py_ssize_t _n = 0;
   25201                 :            :     { // ',' dotted_as_name
   25202         [ -  + ]:      44819 :         if (p->error_indicator) {
   25203                 :          0 :             p->level--;
   25204                 :          0 :             return NULL;
   25205                 :            :         }
   25206                 :            :         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                 :      44819 :         while (
   25210                 :      46076 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   25211   [ +  +  +  - ]:      47333 :             &&
   25212                 :       1257 :             (elem = dotted_as_name_rule(p))  // dotted_as_name
   25213                 :            :         )
   25214                 :            :         {
   25215                 :       1257 :             _res = elem;
   25216   [ -  +  -  - ]:       1257 :             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         [ +  + ]:       1257 :             if (_n == _children_capacity) {
   25223                 :        283 :                 _children_capacity *= 2;
   25224                 :        283 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   25225         [ -  + ]:        283 :                 if (!_new_children) {
   25226                 :          0 :                     p->error_indicator = 1;
   25227                 :            :                     PyErr_NoMemory();
   25228                 :          0 :                     p->level--;
   25229                 :          0 :                     return NULL;
   25230                 :            :                 }
   25231                 :        283 :                 _children = _new_children;
   25232                 :            :             }
   25233                 :       1257 :             _children[_n++] = _res;
   25234                 :       1257 :             _mark = p->mark;
   25235                 :            :         }
   25236                 :      44819 :         p->mark = _mark;
   25237                 :            :         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                 :      44819 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25241         [ -  + ]:      44819 :     if (!_seq) {
   25242                 :          0 :         PyMem_Free(_children);
   25243                 :          0 :         p->error_indicator = 1;
   25244                 :            :         PyErr_NoMemory();
   25245                 :          0 :         p->level--;
   25246                 :          0 :         return NULL;
   25247                 :            :     }
   25248         [ +  + ]:      46076 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25249                 :      44819 :     PyMem_Free(_children);
   25250                 :      44819 :     _PyPegen_insert_memo(p, _start_mark, _loop0_30_type, _seq);
   25251                 :      44819 :     p->level--;
   25252                 :      44819 :     return _seq;
   25253                 :            : }
   25254                 :            : 
   25255                 :            : // _gather_29: dotted_as_name _loop0_30
   25256                 :            : static asdl_seq *
   25257                 :      44837 : _gather_29_rule(Parser *p)
   25258                 :            : {
   25259         [ -  + ]:      44837 :     if (p->level++ == MAXSTACK) {
   25260                 :          0 :         p->error_indicator = 1;
   25261                 :            :         PyErr_NoMemory();
   25262                 :            :     }
   25263         [ -  + ]:      44837 :     if (p->error_indicator) {
   25264                 :          0 :         p->level--;
   25265                 :          0 :         return NULL;
   25266                 :            :     }
   25267                 :      44837 :     asdl_seq * _res = NULL;
   25268                 :      44837 :     int _mark = p->mark;
   25269                 :            :     { // dotted_as_name _loop0_30
   25270         [ -  + ]:      44837 :         if (p->error_indicator) {
   25271                 :          0 :             p->level--;
   25272                 :          0 :             return NULL;
   25273                 :            :         }
   25274                 :            :         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         [ +  + ]:      44837 :         if (
   25278                 :      44837 :             (elem = dotted_as_name_rule(p))  // dotted_as_name
   25279         [ +  - ]:      44819 :             &&
   25280                 :      44819 :             (seq = _loop0_30_rule(p))  // _loop0_30
   25281                 :            :         )
   25282                 :            :         {
   25283                 :            :             D(fprintf(stderr, "%*c+ _gather_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_30"));
   25284                 :      44819 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   25285                 :      44819 :             goto done;
   25286                 :            :         }
   25287                 :         18 :         p->mark = _mark;
   25288                 :            :         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                 :      44837 :   done:
   25293                 :      44837 :     p->level--;
   25294                 :      44837 :     return _res;
   25295                 :            : }
   25296                 :            : 
   25297                 :            : // _tmp_31: 'as' NAME
   25298                 :            : static void *
   25299                 :      46076 : _tmp_31_rule(Parser *p)
   25300                 :            : {
   25301         [ -  + ]:      46076 :     if (p->level++ == MAXSTACK) {
   25302                 :          0 :         p->error_indicator = 1;
   25303                 :            :         PyErr_NoMemory();
   25304                 :            :     }
   25305         [ -  + ]:      46076 :     if (p->error_indicator) {
   25306                 :          0 :         p->level--;
   25307                 :          0 :         return NULL;
   25308                 :            :     }
   25309                 :      46076 :     void * _res = NULL;
   25310                 :      46076 :     int _mark = p->mark;
   25311                 :            :     { // 'as' NAME
   25312         [ -  + ]:      46076 :         if (p->error_indicator) {
   25313                 :          0 :             p->level--;
   25314                 :          0 :             return NULL;
   25315                 :            :         }
   25316                 :            :         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         [ +  + ]:      46076 :         if (
   25320                 :      46076 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   25321         [ +  + ]:       1538 :             &&
   25322                 :       1538 :             (z = _PyPegen_name_token(p))  // NAME
   25323                 :            :         )
   25324                 :            :         {
   25325                 :            :             D(fprintf(stderr, "%*c+ _tmp_31[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   25326                 :       1532 :             _res = z;
   25327   [ -  +  -  - ]:       1532 :             if (_res == NULL && PyErr_Occurred()) {
   25328                 :          0 :                 p->error_indicator = 1;
   25329                 :          0 :                 p->level--;
   25330                 :          0 :                 return NULL;
   25331                 :            :             }
   25332                 :       1532 :             goto done;
   25333                 :            :         }
   25334                 :      44544 :         p->mark = _mark;
   25335                 :            :         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                 :      44544 :     _res = NULL;
   25339                 :      46076 :   done:
   25340                 :      46076 :     p->level--;
   25341                 :      46076 :     return _res;
   25342                 :            : }
   25343                 :            : 
   25344                 :            : // _loop1_32: ('@' named_expression NEWLINE)
   25345                 :            : static asdl_seq *
   25346                 :     400849 : _loop1_32_rule(Parser *p)
   25347                 :            : {
   25348         [ -  + ]:     400849 :     if (p->level++ == MAXSTACK) {
   25349                 :          0 :         p->error_indicator = 1;
   25350                 :            :         PyErr_NoMemory();
   25351                 :            :     }
   25352         [ -  + ]:     400849 :     if (p->error_indicator) {
   25353                 :          0 :         p->level--;
   25354                 :          0 :         return NULL;
   25355                 :            :     }
   25356                 :     400849 :     void *_res = NULL;
   25357                 :     400849 :     int _mark = p->mark;
   25358                 :     400849 :     int _start_mark = p->mark;
   25359                 :     400849 :     void **_children = PyMem_Malloc(sizeof(void *));
   25360         [ -  + ]:     400849 :     if (!_children) {
   25361                 :          0 :         p->error_indicator = 1;
   25362                 :            :         PyErr_NoMemory();
   25363                 :          0 :         p->level--;
   25364                 :          0 :         return NULL;
   25365                 :            :     }
   25366                 :     400849 :     Py_ssize_t _children_capacity = 1;
   25367                 :     400849 :     Py_ssize_t _n = 0;
   25368                 :            :     { // ('@' named_expression NEWLINE)
   25369         [ -  + ]:     400849 :         if (p->error_indicator) {
   25370                 :          0 :             p->level--;
   25371                 :          0 :             return NULL;
   25372                 :            :         }
   25373                 :            :         D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
   25374                 :            :         void *_tmp_222_var;
   25375                 :     400849 :         while (
   25376         [ +  + ]:     440979 :             (_tmp_222_var = _tmp_222_rule(p))  // '@' named_expression NEWLINE
   25377                 :            :         )
   25378                 :            :         {
   25379                 :      40130 :             _res = _tmp_222_var;
   25380         [ +  + ]:      40130 :             if (_n == _children_capacity) {
   25381                 :       2712 :                 _children_capacity *= 2;
   25382                 :       2712 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   25383         [ -  + ]:       2712 :                 if (!_new_children) {
   25384                 :          0 :                     p->error_indicator = 1;
   25385                 :            :                     PyErr_NoMemory();
   25386                 :          0 :                     p->level--;
   25387                 :          0 :                     return NULL;
   25388                 :            :                 }
   25389                 :       2712 :                 _children = _new_children;
   25390                 :            :             }
   25391                 :      40130 :             _children[_n++] = _res;
   25392                 :      40130 :             _mark = p->mark;
   25393                 :            :         }
   25394                 :     400849 :         p->mark = _mark;
   25395                 :            :         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   [ +  +  -  + ]:     400849 :     if (_n == 0 || p->error_indicator) {
   25399                 :     363505 :         PyMem_Free(_children);
   25400                 :     363505 :         p->level--;
   25401                 :     363505 :         return NULL;
   25402                 :            :     }
   25403                 :      37344 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25404         [ -  + ]:      37344 :     if (!_seq) {
   25405                 :          0 :         PyMem_Free(_children);
   25406                 :          0 :         p->error_indicator = 1;
   25407                 :            :         PyErr_NoMemory();
   25408                 :          0 :         p->level--;
   25409                 :          0 :         return NULL;
   25410                 :            :     }
   25411         [ +  + ]:      77474 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25412                 :      37344 :     PyMem_Free(_children);
   25413                 :      37344 :     _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
   25414                 :      37344 :     p->level--;
   25415                 :      37344 :     return _seq;
   25416                 :            : }
   25417                 :            : 
   25418                 :            : // _tmp_33: '(' arguments? ')'
   25419                 :            : static void *
   25420                 :      56469 : _tmp_33_rule(Parser *p)
   25421                 :            : {
   25422         [ -  + ]:      56469 :     if (p->level++ == MAXSTACK) {
   25423                 :          0 :         p->error_indicator = 1;
   25424                 :            :         PyErr_NoMemory();
   25425                 :            :     }
   25426         [ -  + ]:      56469 :     if (p->error_indicator) {
   25427                 :          0 :         p->level--;
   25428                 :          0 :         return NULL;
   25429                 :            :     }
   25430                 :      56469 :     void * _res = NULL;
   25431                 :      56469 :     int _mark = p->mark;
   25432                 :            :     { // '(' arguments? ')'
   25433         [ -  + ]:      56469 :         if (p->error_indicator) {
   25434                 :          0 :             p->level--;
   25435                 :          0 :             return NULL;
   25436                 :            :         }
   25437                 :            :         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         [ +  + ]:      56469 :         if (
   25442                 :      56469 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   25443                 :      42665 :             &&
   25444         [ +  + ]:      42665 :             (z = arguments_rule(p), !p->error_indicator)  // arguments?
   25445         [ +  + ]:      42659 :             &&
   25446                 :      42659 :             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
   25447                 :            :         )
   25448                 :            :         {
   25449                 :            :             D(fprintf(stderr, "%*c+ _tmp_33[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
   25450                 :      42657 :             _res = z;
   25451   [ +  +  -  + ]:      42657 :             if (_res == NULL && PyErr_Occurred()) {
   25452                 :          0 :                 p->error_indicator = 1;
   25453                 :          0 :                 p->level--;
   25454                 :          0 :                 return NULL;
   25455                 :            :             }
   25456                 :      42657 :             goto done;
   25457                 :            :         }
   25458                 :      13812 :         p->mark = _mark;
   25459                 :            :         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                 :      13812 :     _res = NULL;
   25463                 :      56469 :   done:
   25464                 :      56469 :     p->level--;
   25465                 :      56469 :     return _res;
   25466                 :            : }
   25467                 :            : 
   25468                 :            : // _tmp_34: '->' expression
   25469                 :            : static void *
   25470                 :     336834 : _tmp_34_rule(Parser *p)
   25471                 :            : {
   25472         [ -  + ]:     336834 :     if (p->level++ == MAXSTACK) {
   25473                 :          0 :         p->error_indicator = 1;
   25474                 :            :         PyErr_NoMemory();
   25475                 :            :     }
   25476         [ -  + ]:     336834 :     if (p->error_indicator) {
   25477                 :          0 :         p->level--;
   25478                 :          0 :         return NULL;
   25479                 :            :     }
   25480                 :     336834 :     void * _res = NULL;
   25481                 :     336834 :     int _mark = p->mark;
   25482                 :            :     { // '->' expression
   25483         [ -  + ]:     336834 :         if (p->error_indicator) {
   25484                 :          0 :             p->level--;
   25485                 :          0 :             return NULL;
   25486                 :            :         }
   25487                 :            :         D(fprintf(stderr, "%*c> _tmp_34[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
   25488                 :            :         Token * _literal;
   25489                 :            :         expr_ty z;
   25490         [ +  + ]:     336834 :         if (
   25491                 :     336834 :             (_literal = _PyPegen_expect_token(p, 51))  // token='->'
   25492         [ +  - ]:      32955 :             &&
   25493                 :      32955 :             (z = expression_rule(p))  // expression
   25494                 :            :         )
   25495                 :            :         {
   25496                 :            :             D(fprintf(stderr, "%*c+ _tmp_34[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
   25497                 :      32955 :             _res = z;
   25498   [ -  +  -  - ]:      32955 :             if (_res == NULL && PyErr_Occurred()) {
   25499                 :          0 :                 p->error_indicator = 1;
   25500                 :          0 :                 p->level--;
   25501                 :          0 :                 return NULL;
   25502                 :            :             }
   25503                 :      32955 :             goto done;
   25504                 :            :         }
   25505                 :     303879 :         p->mark = _mark;
   25506                 :            :         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                 :     303879 :     _res = NULL;
   25510                 :     336834 :   done:
   25511                 :     336834 :     p->level--;
   25512                 :     336834 :     return _res;
   25513                 :            : }
   25514                 :            : 
   25515                 :            : // _tmp_35: '->' expression
   25516                 :            : static void *
   25517                 :       3447 : _tmp_35_rule(Parser *p)
   25518                 :            : {
   25519         [ -  + ]:       3447 :     if (p->level++ == MAXSTACK) {
   25520                 :          0 :         p->error_indicator = 1;
   25521                 :            :         PyErr_NoMemory();
   25522                 :            :     }
   25523         [ -  + ]:       3447 :     if (p->error_indicator) {
   25524                 :          0 :         p->level--;
   25525                 :          0 :         return NULL;
   25526                 :            :     }
   25527                 :       3447 :     void * _res = NULL;
   25528                 :       3447 :     int _mark = p->mark;
   25529                 :            :     { // '->' expression
   25530         [ -  + ]:       3447 :         if (p->error_indicator) {
   25531                 :          0 :             p->level--;
   25532                 :          0 :             return NULL;
   25533                 :            :         }
   25534                 :            :         D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
   25535                 :            :         Token * _literal;
   25536                 :            :         expr_ty z;
   25537         [ +  + ]:       3447 :         if (
   25538                 :       3447 :             (_literal = _PyPegen_expect_token(p, 51))  // token='->'
   25539         [ +  - ]:        416 :             &&
   25540                 :        416 :             (z = expression_rule(p))  // expression
   25541                 :            :         )
   25542                 :            :         {
   25543                 :            :             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                 :       3031 :         p->mark = _mark;
   25553                 :            :         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                 :       3031 :     _res = NULL;
   25557                 :       3447 :   done:
   25558                 :       3447 :     p->level--;
   25559                 :       3447 :     return _res;
   25560                 :            : }
   25561                 :            : 
   25562                 :            : // _loop0_36: param_no_default
   25563                 :            : static asdl_seq *
   25564                 :      17578 : _loop0_36_rule(Parser *p)
   25565                 :            : {
   25566         [ -  + ]:      17578 :     if (p->level++ == MAXSTACK) {
   25567                 :          0 :         p->error_indicator = 1;
   25568                 :            :         PyErr_NoMemory();
   25569                 :            :     }
   25570         [ -  + ]:      17578 :     if (p->error_indicator) {
   25571                 :          0 :         p->level--;
   25572                 :          0 :         return NULL;
   25573                 :            :     }
   25574                 :      17578 :     void *_res = NULL;
   25575                 :      17578 :     int _mark = p->mark;
   25576                 :      17578 :     int _start_mark = p->mark;
   25577                 :      17578 :     void **_children = PyMem_Malloc(sizeof(void *));
   25578         [ -  + ]:      17578 :     if (!_children) {
   25579                 :          0 :         p->error_indicator = 1;
   25580                 :            :         PyErr_NoMemory();
   25581                 :          0 :         p->level--;
   25582                 :          0 :         return NULL;
   25583                 :            :     }
   25584                 :      17578 :     Py_ssize_t _children_capacity = 1;
   25585                 :      17578 :     Py_ssize_t _n = 0;
   25586                 :            :     { // param_no_default
   25587         [ -  + ]:      17578 :         if (p->error_indicator) {
   25588                 :          0 :             p->level--;
   25589                 :          0 :             return NULL;
   25590                 :            :         }
   25591                 :            :         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                 :      17578 :         while (
   25594         [ +  + ]:      17778 :             (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                 :            :                     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                 :      17578 :         p->mark = _mark;
   25613                 :            :         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                 :      17578 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25617         [ -  + ]:      17578 :     if (!_seq) {
   25618                 :          0 :         PyMem_Free(_children);
   25619                 :          0 :         p->error_indicator = 1;
   25620                 :            :         PyErr_NoMemory();
   25621                 :          0 :         p->level--;
   25622                 :          0 :         return NULL;
   25623                 :            :     }
   25624         [ +  + ]:      17778 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25625                 :      17578 :     PyMem_Free(_children);
   25626                 :      17578 :     _PyPegen_insert_memo(p, _start_mark, _loop0_36_type, _seq);
   25627                 :      17578 :     p->level--;
   25628                 :      17578 :     return _seq;
   25629                 :            : }
   25630                 :            : 
   25631                 :            : // _loop0_37: param_with_default
   25632                 :            : static asdl_seq *
   25633                 :      17578 : _loop0_37_rule(Parser *p)
   25634                 :            : {
   25635         [ -  + ]:      17578 :     if (p->level++ == MAXSTACK) {
   25636                 :          0 :         p->error_indicator = 1;
   25637                 :            :         PyErr_NoMemory();
   25638                 :            :     }
   25639         [ -  + ]:      17578 :     if (p->error_indicator) {
   25640                 :          0 :         p->level--;
   25641                 :          0 :         return NULL;
   25642                 :            :     }
   25643                 :      17578 :     void *_res = NULL;
   25644                 :      17578 :     int _mark = p->mark;
   25645                 :      17578 :     int _start_mark = p->mark;
   25646                 :      17578 :     void **_children = PyMem_Malloc(sizeof(void *));
   25647         [ -  + ]:      17578 :     if (!_children) {
   25648                 :          0 :         p->error_indicator = 1;
   25649                 :            :         PyErr_NoMemory();
   25650                 :          0 :         p->level--;
   25651                 :          0 :         return NULL;
   25652                 :            :     }
   25653                 :      17578 :     Py_ssize_t _children_capacity = 1;
   25654                 :      17578 :     Py_ssize_t _n = 0;
   25655                 :            :     { // param_with_default
   25656         [ -  + ]:      17578 :         if (p->error_indicator) {
   25657                 :          0 :             p->level--;
   25658                 :          0 :             return NULL;
   25659                 :            :         }
   25660                 :            :         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                 :      17578 :         while (
   25663         [ +  + ]:      17777 :             (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                 :            :                     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                 :      17578 :         p->mark = _mark;
   25682                 :            :         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                 :      17578 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25686         [ -  + ]:      17578 :     if (!_seq) {
   25687                 :          0 :         PyMem_Free(_children);
   25688                 :          0 :         p->error_indicator = 1;
   25689                 :            :         PyErr_NoMemory();
   25690                 :          0 :         p->level--;
   25691                 :          0 :         return NULL;
   25692                 :            :     }
   25693         [ +  + ]:      17777 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25694                 :      17578 :     PyMem_Free(_children);
   25695                 :      17578 :     _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
   25696                 :      17578 :     p->level--;
   25697                 :      17578 :     return _seq;
   25698                 :            : }
   25699                 :            : 
   25700                 :            : // _loop0_38: param_with_default
   25701                 :            : static asdl_seq *
   25702                 :        367 : _loop0_38_rule(Parser *p)
   25703                 :            : {
   25704         [ -  + ]:        367 :     if (p->level++ == MAXSTACK) {
   25705                 :          0 :         p->error_indicator = 1;
   25706                 :            :         PyErr_NoMemory();
   25707                 :            :     }
   25708         [ -  + ]:        367 :     if (p->error_indicator) {
   25709                 :          0 :         p->level--;
   25710                 :          0 :         return NULL;
   25711                 :            :     }
   25712                 :        367 :     void *_res = NULL;
   25713                 :        367 :     int _mark = p->mark;
   25714                 :        367 :     int _start_mark = p->mark;
   25715                 :        367 :     void **_children = PyMem_Malloc(sizeof(void *));
   25716         [ -  + ]:        367 :     if (!_children) {
   25717                 :          0 :         p->error_indicator = 1;
   25718                 :            :         PyErr_NoMemory();
   25719                 :          0 :         p->level--;
   25720                 :          0 :         return NULL;
   25721                 :            :     }
   25722                 :        367 :     Py_ssize_t _children_capacity = 1;
   25723                 :        367 :     Py_ssize_t _n = 0;
   25724                 :            :     { // param_with_default
   25725         [ -  + ]:        367 :         if (p->error_indicator) {
   25726                 :          0 :             p->level--;
   25727                 :          0 :             return NULL;
   25728                 :            :         }
   25729                 :            :         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                 :        367 :         while (
   25732         [ +  + ]:        475 :             (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                 :            :                     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                 :        367 :         p->mark = _mark;
   25751                 :            :         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                 :        367 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25755         [ -  + ]:        367 :     if (!_seq) {
   25756                 :          0 :         PyMem_Free(_children);
   25757                 :          0 :         p->error_indicator = 1;
   25758                 :            :         PyErr_NoMemory();
   25759                 :          0 :         p->level--;
   25760                 :          0 :         return NULL;
   25761                 :            :     }
   25762         [ +  + ]:        475 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25763                 :        367 :     PyMem_Free(_children);
   25764                 :        367 :     _PyPegen_insert_memo(p, _start_mark, _loop0_38_type, _seq);
   25765                 :        367 :     p->level--;
   25766                 :        367 :     return _seq;
   25767                 :            : }
   25768                 :            : 
   25769                 :            : // _loop1_39: param_no_default
   25770                 :            : static asdl_seq *
   25771                 :     322646 : _loop1_39_rule(Parser *p)
   25772                 :            : {
   25773         [ -  + ]:     322646 :     if (p->level++ == MAXSTACK) {
   25774                 :          0 :         p->error_indicator = 1;
   25775                 :            :         PyErr_NoMemory();
   25776                 :            :     }
   25777         [ -  + ]:     322646 :     if (p->error_indicator) {
   25778                 :          0 :         p->level--;
   25779                 :          0 :         return NULL;
   25780                 :            :     }
   25781                 :     322646 :     void *_res = NULL;
   25782                 :     322646 :     int _mark = p->mark;
   25783                 :     322646 :     int _start_mark = p->mark;
   25784                 :     322646 :     void **_children = PyMem_Malloc(sizeof(void *));
   25785         [ -  + ]:     322646 :     if (!_children) {
   25786                 :          0 :         p->error_indicator = 1;
   25787                 :            :         PyErr_NoMemory();
   25788                 :          0 :         p->level--;
   25789                 :          0 :         return NULL;
   25790                 :            :     }
   25791                 :     322646 :     Py_ssize_t _children_capacity = 1;
   25792                 :     322646 :     Py_ssize_t _n = 0;
   25793                 :            :     { // param_no_default
   25794         [ -  + ]:     322646 :         if (p->error_indicator) {
   25795                 :          0 :             p->level--;
   25796                 :          0 :             return NULL;
   25797                 :            :         }
   25798                 :            :         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                 :     322646 :         while (
   25801         [ +  + ]:     786062 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   25802                 :            :         )
   25803                 :            :         {
   25804                 :     463416 :             _res = param_no_default_var;
   25805         [ +  + ]:     463416 :             if (_n == _children_capacity) {
   25806                 :     148137 :                 _children_capacity *= 2;
   25807                 :     148137 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   25808         [ -  + ]:     148137 :                 if (!_new_children) {
   25809                 :          0 :                     p->error_indicator = 1;
   25810                 :            :                     PyErr_NoMemory();
   25811                 :          0 :                     p->level--;
   25812                 :          0 :                     return NULL;
   25813                 :            :                 }
   25814                 :     148137 :                 _children = _new_children;
   25815                 :            :             }
   25816                 :     463416 :             _children[_n++] = _res;
   25817                 :     463416 :             _mark = p->mark;
   25818                 :            :         }
   25819                 :     322646 :         p->mark = _mark;
   25820                 :            :         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   [ +  +  -  + ]:     322646 :     if (_n == 0 || p->error_indicator) {
   25824                 :      24704 :         PyMem_Free(_children);
   25825                 :      24704 :         p->level--;
   25826                 :      24704 :         return NULL;
   25827                 :            :     }
   25828                 :     297942 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25829         [ -  + ]:     297942 :     if (!_seq) {
   25830                 :          0 :         PyMem_Free(_children);
   25831                 :          0 :         p->error_indicator = 1;
   25832                 :            :         PyErr_NoMemory();
   25833                 :          0 :         p->level--;
   25834                 :          0 :         return NULL;
   25835                 :            :     }
   25836         [ +  + ]:     761358 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25837                 :     297942 :     PyMem_Free(_children);
   25838                 :     297942 :     _PyPegen_insert_memo(p, _start_mark, _loop1_39_type, _seq);
   25839                 :     297942 :     p->level--;
   25840                 :     297942 :     return _seq;
   25841                 :            : }
   25842                 :            : 
   25843                 :            : // _loop0_40: param_with_default
   25844                 :            : static asdl_seq *
   25845                 :     297942 : _loop0_40_rule(Parser *p)
   25846                 :            : {
   25847         [ -  + ]:     297942 :     if (p->level++ == MAXSTACK) {
   25848                 :          0 :         p->error_indicator = 1;
   25849                 :            :         PyErr_NoMemory();
   25850                 :            :     }
   25851         [ -  + ]:     297942 :     if (p->error_indicator) {
   25852                 :          0 :         p->level--;
   25853                 :          0 :         return NULL;
   25854                 :            :     }
   25855                 :     297942 :     void *_res = NULL;
   25856                 :     297942 :     int _mark = p->mark;
   25857                 :     297942 :     int _start_mark = p->mark;
   25858                 :     297942 :     void **_children = PyMem_Malloc(sizeof(void *));
   25859         [ -  + ]:     297942 :     if (!_children) {
   25860                 :          0 :         p->error_indicator = 1;
   25861                 :            :         PyErr_NoMemory();
   25862                 :          0 :         p->level--;
   25863                 :          0 :         return NULL;
   25864                 :            :     }
   25865                 :     297942 :     Py_ssize_t _children_capacity = 1;
   25866                 :     297942 :     Py_ssize_t _n = 0;
   25867                 :            :     { // param_with_default
   25868         [ -  + ]:     297942 :         if (p->error_indicator) {
   25869                 :          0 :             p->level--;
   25870                 :          0 :             return NULL;
   25871                 :            :         }
   25872                 :            :         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                 :     297942 :         while (
   25875         [ +  + ]:     364179 :             (param_with_default_var = param_with_default_rule(p))  // param_with_default
   25876                 :            :         )
   25877                 :            :         {
   25878                 :      66237 :             _res = param_with_default_var;
   25879         [ +  + ]:      66237 :             if (_n == _children_capacity) {
   25880                 :      22407 :                 _children_capacity *= 2;
   25881                 :      22407 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   25882         [ -  + ]:      22407 :                 if (!_new_children) {
   25883                 :          0 :                     p->error_indicator = 1;
   25884                 :            :                     PyErr_NoMemory();
   25885                 :          0 :                     p->level--;
   25886                 :          0 :                     return NULL;
   25887                 :            :                 }
   25888                 :      22407 :                 _children = _new_children;
   25889                 :            :             }
   25890                 :      66237 :             _children[_n++] = _res;
   25891                 :      66237 :             _mark = p->mark;
   25892                 :            :         }
   25893                 :     297942 :         p->mark = _mark;
   25894                 :            :         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                 :     297942 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25898         [ -  + ]:     297942 :     if (!_seq) {
   25899                 :          0 :         PyMem_Free(_children);
   25900                 :          0 :         p->error_indicator = 1;
   25901                 :            :         PyErr_NoMemory();
   25902                 :          0 :         p->level--;
   25903                 :          0 :         return NULL;
   25904                 :            :     }
   25905         [ +  + ]:     364179 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25906                 :     297942 :     PyMem_Free(_children);
   25907                 :     297942 :     _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
   25908                 :     297942 :     p->level--;
   25909                 :     297942 :     return _seq;
   25910                 :            : }
   25911                 :            : 
   25912                 :            : // _loop1_41: param_with_default
   25913                 :            : static asdl_seq *
   25914                 :      24704 : _loop1_41_rule(Parser *p)
   25915                 :            : {
   25916         [ -  + ]:      24704 :     if (p->level++ == MAXSTACK) {
   25917                 :          0 :         p->error_indicator = 1;
   25918                 :            :         PyErr_NoMemory();
   25919                 :            :     }
   25920         [ -  + ]:      24704 :     if (p->error_indicator) {
   25921                 :          0 :         p->level--;
   25922                 :          0 :         return NULL;
   25923                 :            :     }
   25924                 :      24704 :     void *_res = NULL;
   25925                 :      24704 :     int _mark = p->mark;
   25926                 :      24704 :     int _start_mark = p->mark;
   25927                 :      24704 :     void **_children = PyMem_Malloc(sizeof(void *));
   25928         [ -  + ]:      24704 :     if (!_children) {
   25929                 :          0 :         p->error_indicator = 1;
   25930                 :            :         PyErr_NoMemory();
   25931                 :          0 :         p->level--;
   25932                 :          0 :         return NULL;
   25933                 :            :     }
   25934                 :      24704 :     Py_ssize_t _children_capacity = 1;
   25935                 :      24704 :     Py_ssize_t _n = 0;
   25936                 :            :     { // param_with_default
   25937         [ -  + ]:      24704 :         if (p->error_indicator) {
   25938                 :          0 :             p->level--;
   25939                 :          0 :             return NULL;
   25940                 :            :         }
   25941                 :            :         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                 :      24704 :         while (
   25944         [ +  + ]:      31429 :             (param_with_default_var = param_with_default_rule(p))  // param_with_default
   25945                 :            :         )
   25946                 :            :         {
   25947                 :       6725 :             _res = param_with_default_var;
   25948         [ +  + ]:       6725 :             if (_n == _children_capacity) {
   25949                 :       2752 :                 _children_capacity *= 2;
   25950                 :       2752 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   25951         [ -  + ]:       2752 :                 if (!_new_children) {
   25952                 :          0 :                     p->error_indicator = 1;
   25953                 :            :                     PyErr_NoMemory();
   25954                 :          0 :                     p->level--;
   25955                 :          0 :                     return NULL;
   25956                 :            :                 }
   25957                 :       2752 :                 _children = _new_children;
   25958                 :            :             }
   25959                 :       6725 :             _children[_n++] = _res;
   25960                 :       6725 :             _mark = p->mark;
   25961                 :            :         }
   25962                 :      24704 :         p->mark = _mark;
   25963                 :            :         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   [ +  +  -  + ]:      24704 :     if (_n == 0 || p->error_indicator) {
   25967                 :      21609 :         PyMem_Free(_children);
   25968                 :      21609 :         p->level--;
   25969                 :      21609 :         return NULL;
   25970                 :            :     }
   25971                 :       3095 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   25972         [ -  + ]:       3095 :     if (!_seq) {
   25973                 :          0 :         PyMem_Free(_children);
   25974                 :          0 :         p->error_indicator = 1;
   25975                 :            :         PyErr_NoMemory();
   25976                 :          0 :         p->level--;
   25977                 :          0 :         return NULL;
   25978                 :            :     }
   25979         [ +  + ]:       9820 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   25980                 :       3095 :     PyMem_Free(_children);
   25981                 :       3095 :     _PyPegen_insert_memo(p, _start_mark, _loop1_41_type, _seq);
   25982                 :       3095 :     p->level--;
   25983                 :       3095 :     return _seq;
   25984                 :            : }
   25985                 :            : 
   25986                 :            : // _loop1_42: param_no_default
   25987                 :            : static asdl_seq *
   25988                 :     341144 : _loop1_42_rule(Parser *p)
   25989                 :            : {
   25990         [ -  + ]:     341144 :     if (p->level++ == MAXSTACK) {
   25991                 :          0 :         p->error_indicator = 1;
   25992                 :            :         PyErr_NoMemory();
   25993                 :            :     }
   25994         [ -  + ]:     341144 :     if (p->error_indicator) {
   25995                 :          0 :         p->level--;
   25996                 :          0 :         return NULL;
   25997                 :            :     }
   25998                 :     341144 :     void *_res = NULL;
   25999                 :     341144 :     int _mark = p->mark;
   26000                 :     341144 :     int _start_mark = p->mark;
   26001                 :     341144 :     void **_children = PyMem_Malloc(sizeof(void *));
   26002         [ -  + ]:     341144 :     if (!_children) {
   26003                 :          0 :         p->error_indicator = 1;
   26004                 :            :         PyErr_NoMemory();
   26005                 :          0 :         p->level--;
   26006                 :          0 :         return NULL;
   26007                 :            :     }
   26008                 :     341144 :     Py_ssize_t _children_capacity = 1;
   26009                 :     341144 :     Py_ssize_t _n = 0;
   26010                 :            :     { // param_no_default
   26011         [ -  + ]:     341144 :         if (p->error_indicator) {
   26012                 :          0 :             p->level--;
   26013                 :          0 :             return NULL;
   26014                 :            :         }
   26015                 :            :         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                 :     341144 :         while (
   26018         [ +  + ]:     823714 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   26019                 :            :         )
   26020                 :            :         {
   26021                 :     482570 :             _res = param_no_default_var;
   26022         [ +  + ]:     482570 :             if (_n == _children_capacity) {
   26023                 :     148714 :                 _children_capacity *= 2;
   26024                 :     148714 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26025         [ -  + ]:     148714 :                 if (!_new_children) {
   26026                 :          0 :                     p->error_indicator = 1;
   26027                 :            :                     PyErr_NoMemory();
   26028                 :          0 :                     p->level--;
   26029                 :          0 :                     return NULL;
   26030                 :            :                 }
   26031                 :     148714 :                 _children = _new_children;
   26032                 :            :             }
   26033                 :     482570 :             _children[_n++] = _res;
   26034                 :     482570 :             _mark = p->mark;
   26035                 :            :         }
   26036                 :     341144 :         p->mark = _mark;
   26037                 :            :         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   [ +  +  +  + ]:     341144 :     if (_n == 0 || p->error_indicator) {
   26041                 :      25256 :         PyMem_Free(_children);
   26042                 :      25256 :         p->level--;
   26043                 :      25256 :         return NULL;
   26044                 :            :     }
   26045                 :     315888 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26046         [ -  + ]:     315888 :     if (!_seq) {
   26047                 :          0 :         PyMem_Free(_children);
   26048                 :          0 :         p->error_indicator = 1;
   26049                 :            :         PyErr_NoMemory();
   26050                 :          0 :         p->level--;
   26051                 :          0 :         return NULL;
   26052                 :            :     }
   26053         [ +  + ]:     798454 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26054                 :     315888 :     PyMem_Free(_children);
   26055                 :     315888 :     _PyPegen_insert_memo(p, _start_mark, _loop1_42_type, _seq);
   26056                 :     315888 :     p->level--;
   26057                 :     315888 :     return _seq;
   26058                 :            : }
   26059                 :            : 
   26060                 :            : // _loop1_43: param_no_default
   26061                 :            : static asdl_seq *
   26062                 :     323768 : _loop1_43_rule(Parser *p)
   26063                 :            : {
   26064         [ -  + ]:     323768 :     if (p->level++ == MAXSTACK) {
   26065                 :          0 :         p->error_indicator = 1;
   26066                 :            :         PyErr_NoMemory();
   26067                 :            :     }
   26068         [ -  + ]:     323768 :     if (p->error_indicator) {
   26069                 :          0 :         p->level--;
   26070                 :          0 :         return NULL;
   26071                 :            :     }
   26072                 :     323768 :     void *_res = NULL;
   26073                 :     323768 :     int _mark = p->mark;
   26074                 :     323768 :     int _start_mark = p->mark;
   26075                 :     323768 :     void **_children = PyMem_Malloc(sizeof(void *));
   26076         [ -  + ]:     323768 :     if (!_children) {
   26077                 :          0 :         p->error_indicator = 1;
   26078                 :            :         PyErr_NoMemory();
   26079                 :          0 :         p->level--;
   26080                 :          0 :         return NULL;
   26081                 :            :     }
   26082                 :     323768 :     Py_ssize_t _children_capacity = 1;
   26083                 :     323768 :     Py_ssize_t _n = 0;
   26084                 :            :     { // param_no_default
   26085         [ -  + ]:     323768 :         if (p->error_indicator) {
   26086                 :          0 :             p->level--;
   26087                 :          0 :             return NULL;
   26088                 :            :         }
   26089                 :            :         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                 :     323768 :         while (
   26092         [ +  + ]:     788538 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   26093                 :            :         )
   26094                 :            :         {
   26095                 :     464770 :             _res = param_no_default_var;
   26096         [ +  + ]:     464770 :             if (_n == _children_capacity) {
   26097                 :     148311 :                 _children_capacity *= 2;
   26098                 :     148311 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26099         [ -  + ]:     148311 :                 if (!_new_children) {
   26100                 :          0 :                     p->error_indicator = 1;
   26101                 :            :                     PyErr_NoMemory();
   26102                 :          0 :                     p->level--;
   26103                 :          0 :                     return NULL;
   26104                 :            :                 }
   26105                 :     148311 :                 _children = _new_children;
   26106                 :            :             }
   26107                 :     464770 :             _children[_n++] = _res;
   26108                 :     464770 :             _mark = p->mark;
   26109                 :            :         }
   26110                 :     323768 :         p->mark = _mark;
   26111                 :            :         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   [ +  +  -  + ]:     323768 :     if (_n == 0 || p->error_indicator) {
   26115                 :      25243 :         PyMem_Free(_children);
   26116                 :      25243 :         p->level--;
   26117                 :      25243 :         return NULL;
   26118                 :            :     }
   26119                 :     298525 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26120         [ -  + ]:     298525 :     if (!_seq) {
   26121                 :          0 :         PyMem_Free(_children);
   26122                 :          0 :         p->error_indicator = 1;
   26123                 :            :         PyErr_NoMemory();
   26124                 :          0 :         p->level--;
   26125                 :          0 :         return NULL;
   26126                 :            :     }
   26127         [ +  + ]:     763295 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26128                 :     298525 :     PyMem_Free(_children);
   26129                 :     298525 :     _PyPegen_insert_memo(p, _start_mark, _loop1_43_type, _seq);
   26130                 :     298525 :     p->level--;
   26131                 :     298525 :     return _seq;
   26132                 :            : }
   26133                 :            : 
   26134                 :            : // _loop0_44: param_no_default
   26135                 :            : static asdl_seq *
   26136                 :     323835 : _loop0_44_rule(Parser *p)
   26137                 :            : {
   26138         [ -  + ]:     323835 :     if (p->level++ == MAXSTACK) {
   26139                 :          0 :         p->error_indicator = 1;
   26140                 :            :         PyErr_NoMemory();
   26141                 :            :     }
   26142         [ -  + ]:     323835 :     if (p->error_indicator) {
   26143                 :          0 :         p->level--;
   26144                 :          0 :         return NULL;
   26145                 :            :     }
   26146                 :     323835 :     void *_res = NULL;
   26147                 :     323835 :     int _mark = p->mark;
   26148                 :     323835 :     int _start_mark = p->mark;
   26149                 :     323835 :     void **_children = PyMem_Malloc(sizeof(void *));
   26150         [ -  + ]:     323835 :     if (!_children) {
   26151                 :          0 :         p->error_indicator = 1;
   26152                 :            :         PyErr_NoMemory();
   26153                 :          0 :         p->level--;
   26154                 :          0 :         return NULL;
   26155                 :            :     }
   26156                 :     323835 :     Py_ssize_t _children_capacity = 1;
   26157                 :     323835 :     Py_ssize_t _n = 0;
   26158                 :            :     { // param_no_default
   26159         [ -  + ]:     323835 :         if (p->error_indicator) {
   26160                 :          0 :             p->level--;
   26161                 :          0 :             return NULL;
   26162                 :            :         }
   26163                 :            :         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                 :     323835 :         while (
   26166         [ +  + ]:     787630 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   26167                 :            :         )
   26168                 :            :         {
   26169                 :     463795 :             _res = param_no_default_var;
   26170         [ +  + ]:     463795 :             if (_n == _children_capacity) {
   26171                 :     148159 :                 _children_capacity *= 2;
   26172                 :     148159 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26173         [ -  + ]:     148159 :                 if (!_new_children) {
   26174                 :          0 :                     p->error_indicator = 1;
   26175                 :            :                     PyErr_NoMemory();
   26176                 :          0 :                     p->level--;
   26177                 :          0 :                     return NULL;
   26178                 :            :                 }
   26179                 :     148159 :                 _children = _new_children;
   26180                 :            :             }
   26181                 :     463795 :             _children[_n++] = _res;
   26182                 :     463795 :             _mark = p->mark;
   26183                 :            :         }
   26184                 :     323835 :         p->mark = _mark;
   26185                 :            :         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                 :     323835 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26189         [ -  + ]:     323835 :     if (!_seq) {
   26190                 :          0 :         PyMem_Free(_children);
   26191                 :          0 :         p->error_indicator = 1;
   26192                 :            :         PyErr_NoMemory();
   26193                 :          0 :         p->level--;
   26194                 :          0 :         return NULL;
   26195                 :            :     }
   26196         [ +  + ]:     787630 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26197                 :     323835 :     PyMem_Free(_children);
   26198                 :     323835 :     _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
   26199                 :     323835 :     p->level--;
   26200                 :     323835 :     return _seq;
   26201                 :            : }
   26202                 :            : 
   26203                 :            : // _loop1_45: param_with_default
   26204                 :            : static asdl_seq *
   26205                 :     323835 : _loop1_45_rule(Parser *p)
   26206                 :            : {
   26207         [ -  + ]:     323835 :     if (p->level++ == MAXSTACK) {
   26208                 :          0 :         p->error_indicator = 1;
   26209                 :            :         PyErr_NoMemory();
   26210                 :            :     }
   26211         [ -  + ]:     323835 :     if (p->error_indicator) {
   26212                 :          0 :         p->level--;
   26213                 :          0 :         return NULL;
   26214                 :            :     }
   26215                 :     323835 :     void *_res = NULL;
   26216                 :     323835 :     int _mark = p->mark;
   26217                 :     323835 :     int _start_mark = p->mark;
   26218                 :     323835 :     void **_children = PyMem_Malloc(sizeof(void *));
   26219         [ -  + ]:     323835 :     if (!_children) {
   26220                 :          0 :         p->error_indicator = 1;
   26221                 :            :         PyErr_NoMemory();
   26222                 :          0 :         p->level--;
   26223                 :          0 :         return NULL;
   26224                 :            :     }
   26225                 :     323835 :     Py_ssize_t _children_capacity = 1;
   26226                 :     323835 :     Py_ssize_t _n = 0;
   26227                 :            :     { // param_with_default
   26228         [ -  + ]:     323835 :         if (p->error_indicator) {
   26229                 :          0 :             p->level--;
   26230                 :          0 :             return NULL;
   26231                 :            :         }
   26232                 :            :         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                 :     323835 :         while (
   26235         [ +  + ]:     397197 :             (param_with_default_var = param_with_default_rule(p))  // param_with_default
   26236                 :            :         )
   26237                 :            :         {
   26238                 :      73362 :             _res = param_with_default_var;
   26239         [ +  + ]:      73362 :             if (_n == _children_capacity) {
   26240                 :      25170 :                 _children_capacity *= 2;
   26241                 :      25170 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26242         [ -  + ]:      25170 :                 if (!_new_children) {
   26243                 :          0 :                     p->error_indicator = 1;
   26244                 :            :                     PyErr_NoMemory();
   26245                 :          0 :                     p->level--;
   26246                 :          0 :                     return NULL;
   26247                 :            :                 }
   26248                 :      25170 :                 _children = _new_children;
   26249                 :            :             }
   26250                 :      73362 :             _children[_n++] = _res;
   26251                 :      73362 :             _mark = p->mark;
   26252                 :            :         }
   26253                 :     323835 :         p->mark = _mark;
   26254                 :            :         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   [ +  +  +  + ]:     323835 :     if (_n == 0 || p->error_indicator) {
   26258                 :     284174 :         PyMem_Free(_children);
   26259                 :     284174 :         p->level--;
   26260                 :     284174 :         return NULL;
   26261                 :            :     }
   26262                 :      39661 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26263         [ -  + ]:      39661 :     if (!_seq) {
   26264                 :          0 :         PyMem_Free(_children);
   26265                 :          0 :         p->error_indicator = 1;
   26266                 :            :         PyErr_NoMemory();
   26267                 :          0 :         p->level--;
   26268                 :          0 :         return NULL;
   26269                 :            :     }
   26270         [ +  + ]:     113022 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26271                 :      39661 :     PyMem_Free(_children);
   26272                 :      39661 :     _PyPegen_insert_memo(p, _start_mark, _loop1_45_type, _seq);
   26273                 :      39661 :     p->level--;
   26274                 :      39661 :     return _seq;
   26275                 :            : }
   26276                 :            : 
   26277                 :            : // _loop0_46: param_no_default
   26278                 :            : static asdl_seq *
   26279                 :     323480 : _loop0_46_rule(Parser *p)
   26280                 :            : {
   26281         [ -  + ]:     323480 :     if (p->level++ == MAXSTACK) {
   26282                 :          0 :         p->error_indicator = 1;
   26283                 :            :         PyErr_NoMemory();
   26284                 :            :     }
   26285         [ -  + ]:     323480 :     if (p->error_indicator) {
   26286                 :          0 :         p->level--;
   26287                 :          0 :         return NULL;
   26288                 :            :     }
   26289                 :     323480 :     void *_res = NULL;
   26290                 :     323480 :     int _mark = p->mark;
   26291                 :     323480 :     int _start_mark = p->mark;
   26292                 :     323480 :     void **_children = PyMem_Malloc(sizeof(void *));
   26293         [ -  + ]:     323480 :     if (!_children) {
   26294                 :          0 :         p->error_indicator = 1;
   26295                 :            :         PyErr_NoMemory();
   26296                 :          0 :         p->level--;
   26297                 :          0 :         return NULL;
   26298                 :            :     }
   26299                 :     323480 :     Py_ssize_t _children_capacity = 1;
   26300                 :     323480 :     Py_ssize_t _n = 0;
   26301                 :            :     { // param_no_default
   26302         [ -  + ]:     323480 :         if (p->error_indicator) {
   26303                 :          0 :             p->level--;
   26304                 :          0 :             return NULL;
   26305                 :            :         }
   26306                 :            :         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                 :     323480 :         while (
   26309         [ +  + ]:     786994 :             (param_no_default_var = param_no_default_rule(p))  // param_no_default
   26310                 :            :         )
   26311                 :            :         {
   26312                 :     463514 :             _res = param_no_default_var;
   26313         [ +  + ]:     463514 :             if (_n == _children_capacity) {
   26314                 :     148145 :                 _children_capacity *= 2;
   26315                 :     148145 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26316         [ -  + ]:     148145 :                 if (!_new_children) {
   26317                 :          0 :                     p->error_indicator = 1;
   26318                 :            :                     PyErr_NoMemory();
   26319                 :          0 :                     p->level--;
   26320                 :          0 :                     return NULL;
   26321                 :            :                 }
   26322                 :     148145 :                 _children = _new_children;
   26323                 :            :             }
   26324                 :     463514 :             _children[_n++] = _res;
   26325                 :     463514 :             _mark = p->mark;
   26326                 :            :         }
   26327                 :     323480 :         p->mark = _mark;
   26328                 :            :         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                 :     323480 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26332         [ -  + ]:     323480 :     if (!_seq) {
   26333                 :          0 :         PyMem_Free(_children);
   26334                 :          0 :         p->error_indicator = 1;
   26335                 :            :         PyErr_NoMemory();
   26336                 :          0 :         p->level--;
   26337                 :          0 :         return NULL;
   26338                 :            :     }
   26339         [ +  + ]:     786994 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26340                 :     323480 :     PyMem_Free(_children);
   26341                 :     323480 :     _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
   26342                 :     323480 :     p->level--;
   26343                 :     323480 :     return _seq;
   26344                 :            : }
   26345                 :            : 
   26346                 :            : // _loop1_47: param_with_default
   26347                 :            : static asdl_seq *
   26348                 :     323480 : _loop1_47_rule(Parser *p)
   26349                 :            : {
   26350         [ -  + ]:     323480 :     if (p->level++ == MAXSTACK) {
   26351                 :          0 :         p->error_indicator = 1;
   26352                 :            :         PyErr_NoMemory();
   26353                 :            :     }
   26354         [ -  + ]:     323480 :     if (p->error_indicator) {
   26355                 :          0 :         p->level--;
   26356                 :          0 :         return NULL;
   26357                 :            :     }
   26358                 :     323480 :     void *_res = NULL;
   26359                 :     323480 :     int _mark = p->mark;
   26360                 :     323480 :     int _start_mark = p->mark;
   26361                 :     323480 :     void **_children = PyMem_Malloc(sizeof(void *));
   26362         [ -  + ]:     323480 :     if (!_children) {
   26363                 :          0 :         p->error_indicator = 1;
   26364                 :            :         PyErr_NoMemory();
   26365                 :          0 :         p->level--;
   26366                 :          0 :         return NULL;
   26367                 :            :     }
   26368                 :     323480 :     Py_ssize_t _children_capacity = 1;
   26369                 :     323480 :     Py_ssize_t _n = 0;
   26370                 :            :     { // param_with_default
   26371         [ -  + ]:     323480 :         if (p->error_indicator) {
   26372                 :          0 :             p->level--;
   26373                 :          0 :             return NULL;
   26374                 :            :         }
   26375                 :            :         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                 :     323480 :         while (
   26378         [ +  + ]:     396478 :             (param_with_default_var = param_with_default_rule(p))  // param_with_default
   26379                 :            :         )
   26380                 :            :         {
   26381                 :      72998 :             _res = param_with_default_var;
   26382         [ +  + ]:      72998 :             if (_n == _children_capacity) {
   26383                 :      25159 :                 _children_capacity *= 2;
   26384                 :      25159 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26385         [ -  + ]:      25159 :                 if (!_new_children) {
   26386                 :          0 :                     p->error_indicator = 1;
   26387                 :            :                     PyErr_NoMemory();
   26388                 :          0 :                     p->level--;
   26389                 :          0 :                     return NULL;
   26390                 :            :                 }
   26391                 :      25159 :                 _children = _new_children;
   26392                 :            :             }
   26393                 :      72998 :             _children[_n++] = _res;
   26394                 :      72998 :             _mark = p->mark;
   26395                 :            :         }
   26396                 :     323480 :         p->mark = _mark;
   26397                 :            :         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   [ +  +  -  + ]:     323480 :     if (_n == 0 || p->error_indicator) {
   26401                 :     284171 :         PyMem_Free(_children);
   26402                 :     284171 :         p->level--;
   26403                 :     284171 :         return NULL;
   26404                 :            :     }
   26405                 :      39309 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26406         [ -  + ]:      39309 :     if (!_seq) {
   26407                 :          0 :         PyMem_Free(_children);
   26408                 :          0 :         p->error_indicator = 1;
   26409                 :            :         PyErr_NoMemory();
   26410                 :          0 :         p->level--;
   26411                 :          0 :         return NULL;
   26412                 :            :     }
   26413         [ +  + ]:     112307 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26414                 :      39309 :     PyMem_Free(_children);
   26415                 :      39309 :     _PyPegen_insert_memo(p, _start_mark, _loop1_47_type, _seq);
   26416                 :      39309 :     p->level--;
   26417                 :      39309 :     return _seq;
   26418                 :            : }
   26419                 :            : 
   26420                 :            : // _loop0_48: param_maybe_default
   26421                 :            : static asdl_seq *
   26422                 :      27187 : _loop0_48_rule(Parser *p)
   26423                 :            : {
   26424         [ -  + ]:      27187 :     if (p->level++ == MAXSTACK) {
   26425                 :          0 :         p->error_indicator = 1;
   26426                 :            :         PyErr_NoMemory();
   26427                 :            :     }
   26428         [ -  + ]:      27187 :     if (p->error_indicator) {
   26429                 :          0 :         p->level--;
   26430                 :          0 :         return NULL;
   26431                 :            :     }
   26432                 :      27187 :     void *_res = NULL;
   26433                 :      27187 :     int _mark = p->mark;
   26434                 :      27187 :     int _start_mark = p->mark;
   26435                 :      27187 :     void **_children = PyMem_Malloc(sizeof(void *));
   26436         [ -  + ]:      27187 :     if (!_children) {
   26437                 :          0 :         p->error_indicator = 1;
   26438                 :            :         PyErr_NoMemory();
   26439                 :          0 :         p->level--;
   26440                 :          0 :         return NULL;
   26441                 :            :     }
   26442                 :      27187 :     Py_ssize_t _children_capacity = 1;
   26443                 :      27187 :     Py_ssize_t _n = 0;
   26444                 :            :     { // param_maybe_default
   26445         [ -  + ]:      27187 :         if (p->error_indicator) {
   26446                 :          0 :             p->level--;
   26447                 :          0 :             return NULL;
   26448                 :            :         }
   26449                 :            :         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                 :      27187 :         while (
   26452         [ +  + ]:      29061 :             (param_maybe_default_var = param_maybe_default_rule(p))  // param_maybe_default
   26453                 :            :         )
   26454                 :            :         {
   26455                 :       1874 :             _res = param_maybe_default_var;
   26456         [ +  + ]:       1874 :             if (_n == _children_capacity) {
   26457                 :        615 :                 _children_capacity *= 2;
   26458                 :        615 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26459         [ -  + ]:        615 :                 if (!_new_children) {
   26460                 :          0 :                     p->error_indicator = 1;
   26461                 :            :                     PyErr_NoMemory();
   26462                 :          0 :                     p->level--;
   26463                 :          0 :                     return NULL;
   26464                 :            :                 }
   26465                 :        615 :                 _children = _new_children;
   26466                 :            :             }
   26467                 :       1874 :             _children[_n++] = _res;
   26468                 :       1874 :             _mark = p->mark;
   26469                 :            :         }
   26470                 :      27187 :         p->mark = _mark;
   26471                 :            :         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                 :      27187 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26475         [ -  + ]:      27187 :     if (!_seq) {
   26476                 :          0 :         PyMem_Free(_children);
   26477                 :          0 :         p->error_indicator = 1;
   26478                 :            :         PyErr_NoMemory();
   26479                 :          0 :         p->level--;
   26480                 :          0 :         return NULL;
   26481                 :            :     }
   26482         [ +  + ]:      29061 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26483                 :      27187 :     PyMem_Free(_children);
   26484                 :      27187 :     _PyPegen_insert_memo(p, _start_mark, _loop0_48_type, _seq);
   26485                 :      27187 :     p->level--;
   26486                 :      27187 :     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                 :            :         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                 :            :         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                 :            :         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                 :         20 :         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                 :            :                     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                 :            :         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                 :            :         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                 :       5934 : _loop1_50_rule(Parser *p)
   26561                 :            : {
   26562         [ -  + ]:       5934 :     if (p->level++ == MAXSTACK) {
   26563                 :          0 :         p->error_indicator = 1;
   26564                 :            :         PyErr_NoMemory();
   26565                 :            :     }
   26566         [ -  + ]:       5934 :     if (p->error_indicator) {
   26567                 :          0 :         p->level--;
   26568                 :          0 :         return NULL;
   26569                 :            :     }
   26570                 :       5934 :     void *_res = NULL;
   26571                 :       5934 :     int _mark = p->mark;
   26572                 :       5934 :     int _start_mark = p->mark;
   26573                 :       5934 :     void **_children = PyMem_Malloc(sizeof(void *));
   26574         [ -  + ]:       5934 :     if (!_children) {
   26575                 :          0 :         p->error_indicator = 1;
   26576                 :            :         PyErr_NoMemory();
   26577                 :          0 :         p->level--;
   26578                 :          0 :         return NULL;
   26579                 :            :     }
   26580                 :       5934 :     Py_ssize_t _children_capacity = 1;
   26581                 :       5934 :     Py_ssize_t _n = 0;
   26582                 :            :     { // param_maybe_default
   26583         [ -  + ]:       5934 :         if (p->error_indicator) {
   26584                 :          0 :             p->level--;
   26585                 :          0 :             return NULL;
   26586                 :            :         }
   26587                 :            :         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                 :       5934 :         while (
   26590         [ +  + ]:      22635 :             (param_maybe_default_var = param_maybe_default_rule(p))  // param_maybe_default
   26591                 :            :         )
   26592                 :            :         {
   26593                 :      16701 :             _res = param_maybe_default_var;
   26594         [ +  + ]:      16701 :             if (_n == _children_capacity) {
   26595                 :       6817 :                 _children_capacity *= 2;
   26596                 :       6817 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   26597         [ -  + ]:       6817 :                 if (!_new_children) {
   26598                 :          0 :                     p->error_indicator = 1;
   26599                 :            :                     PyErr_NoMemory();
   26600                 :          0 :                     p->level--;
   26601                 :          0 :                     return NULL;
   26602                 :            :                 }
   26603                 :       6817 :                 _children = _new_children;
   26604                 :            :             }
   26605                 :      16701 :             _children[_n++] = _res;
   26606                 :      16701 :             _mark = p->mark;
   26607                 :            :         }
   26608                 :       5934 :         p->mark = _mark;
   26609                 :            :         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   [ +  +  -  + ]:       5934 :     if (_n == 0 || p->error_indicator) {
   26613                 :         13 :         PyMem_Free(_children);
   26614                 :         13 :         p->level--;
   26615                 :         13 :         return NULL;
   26616                 :            :     }
   26617                 :       5921 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26618         [ -  + ]:       5921 :     if (!_seq) {
   26619                 :          0 :         PyMem_Free(_children);
   26620                 :          0 :         p->error_indicator = 1;
   26621                 :            :         PyErr_NoMemory();
   26622                 :          0 :         p->level--;
   26623                 :          0 :         return NULL;
   26624                 :            :     }
   26625         [ +  + ]:      22622 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26626                 :       5921 :     PyMem_Free(_children);
   26627                 :       5921 :     _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
   26628                 :       5921 :     p->level--;
   26629                 :       5921 :     return _seq;
   26630                 :            : }
   26631                 :            : 
   26632                 :            : // _loop0_52: ',' with_item
   26633                 :            : static asdl_seq *
   26634                 :         71 : _loop0_52_rule(Parser *p)
   26635                 :            : {
   26636         [ -  + ]:         71 :     if (p->level++ == MAXSTACK) {
   26637                 :          0 :         p->error_indicator = 1;
   26638                 :            :         PyErr_NoMemory();
   26639                 :            :     }
   26640         [ -  + ]:         71 :     if (p->error_indicator) {
   26641                 :          0 :         p->level--;
   26642                 :          0 :         return NULL;
   26643                 :            :     }
   26644                 :         71 :     void *_res = NULL;
   26645                 :         71 :     int _mark = p->mark;
   26646                 :         71 :     int _start_mark = p->mark;
   26647                 :         71 :     void **_children = PyMem_Malloc(sizeof(void *));
   26648         [ -  + ]:         71 :     if (!_children) {
   26649                 :          0 :         p->error_indicator = 1;
   26650                 :            :         PyErr_NoMemory();
   26651                 :          0 :         p->level--;
   26652                 :          0 :         return NULL;
   26653                 :            :     }
   26654                 :         71 :     Py_ssize_t _children_capacity = 1;
   26655                 :         71 :     Py_ssize_t _n = 0;
   26656                 :            :     { // ',' with_item
   26657         [ -  + ]:         71 :         if (p->error_indicator) {
   26658                 :          0 :             p->level--;
   26659                 :          0 :             return NULL;
   26660                 :            :         }
   26661                 :            :         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                 :         71 :         while (
   26665                 :        109 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   26666   [ +  +  +  + ]:        156 :             &&
   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                 :            :                     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                 :         71 :         p->mark = _mark;
   26692                 :            :         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                 :         71 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26696         [ -  + ]:         71 :     if (!_seq) {
   26697                 :          0 :         PyMem_Free(_children);
   26698                 :          0 :         p->error_indicator = 1;
   26699                 :            :         PyErr_NoMemory();
   26700                 :          0 :         p->level--;
   26701                 :          0 :         return NULL;
   26702                 :            :     }
   26703         [ +  + ]:        109 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26704                 :         71 :     PyMem_Free(_children);
   26705                 :         71 :     _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
   26706                 :         71 :     p->level--;
   26707                 :         71 :     return _seq;
   26708                 :            : }
   26709                 :            : 
   26710                 :            : // _gather_51: with_item _loop0_52
   26711                 :            : static asdl_seq *
   26712                 :         72 : _gather_51_rule(Parser *p)
   26713                 :            : {
   26714         [ -  + ]:         72 :     if (p->level++ == MAXSTACK) {
   26715                 :          0 :         p->error_indicator = 1;
   26716                 :            :         PyErr_NoMemory();
   26717                 :            :     }
   26718         [ -  + ]:         72 :     if (p->error_indicator) {
   26719                 :          0 :         p->level--;
   26720                 :          0 :         return NULL;
   26721                 :            :     }
   26722                 :         72 :     asdl_seq * _res = NULL;
   26723                 :         72 :     int _mark = p->mark;
   26724                 :            :     { // with_item _loop0_52
   26725         [ -  + ]:         72 :         if (p->error_indicator) {
   26726                 :          0 :             p->level--;
   26727                 :          0 :             return NULL;
   26728                 :            :         }
   26729                 :            :         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         [ +  + ]:         72 :         if (
   26733                 :         72 :             (elem = with_item_rule(p))  // with_item
   26734         [ +  - ]:         71 :             &&
   26735                 :         71 :             (seq = _loop0_52_rule(p))  // _loop0_52
   26736                 :            :         )
   26737                 :            :         {
   26738                 :            :             D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_52"));
   26739                 :         71 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   26740                 :         71 :             goto done;
   26741                 :            :         }
   26742                 :          1 :         p->mark = _mark;
   26743                 :            :         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                 :         72 :   done:
   26748                 :         72 :     p->level--;
   26749                 :         72 :     return _res;
   26750                 :            : }
   26751                 :            : 
   26752                 :            : // _loop0_54: ',' with_item
   26753                 :            : static asdl_seq *
   26754                 :      38574 : _loop0_54_rule(Parser *p)
   26755                 :            : {
   26756         [ -  + ]:      38574 :     if (p->level++ == MAXSTACK) {
   26757                 :          0 :         p->error_indicator = 1;
   26758                 :            :         PyErr_NoMemory();
   26759                 :            :     }
   26760         [ -  + ]:      38574 :     if (p->error_indicator) {
   26761                 :          0 :         p->level--;
   26762                 :          0 :         return NULL;
   26763                 :            :     }
   26764                 :      38574 :     void *_res = NULL;
   26765                 :      38574 :     int _mark = p->mark;
   26766                 :      38574 :     int _start_mark = p->mark;
   26767                 :      38574 :     void **_children = PyMem_Malloc(sizeof(void *));
   26768         [ -  + ]:      38574 :     if (!_children) {
   26769                 :          0 :         p->error_indicator = 1;
   26770                 :            :         PyErr_NoMemory();
   26771                 :          0 :         p->level--;
   26772                 :          0 :         return NULL;
   26773                 :            :     }
   26774                 :      38574 :     Py_ssize_t _children_capacity = 1;
   26775                 :      38574 :     Py_ssize_t _n = 0;
   26776                 :            :     { // ',' with_item
   26777         [ -  + ]:      38574 :         if (p->error_indicator) {
   26778                 :          0 :             p->level--;
   26779                 :          0 :             return NULL;
   26780                 :            :         }
   26781                 :            :         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                 :      38574 :         while (
   26785                 :      39329 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   26786   [ +  +  +  + ]:      40085 :             &&
   26787                 :        756 :             (elem = with_item_rule(p))  // with_item
   26788                 :            :         )
   26789                 :            :         {
   26790                 :        755 :             _res = elem;
   26791   [ -  +  -  - ]:        755 :             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         [ +  + ]:        755 :             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                 :            :                     PyErr_NoMemory();
   26803                 :          0 :                     p->level--;
   26804                 :          0 :                     return NULL;
   26805                 :            :                 }
   26806                 :         73 :                 _children = _new_children;
   26807                 :            :             }
   26808                 :        755 :             _children[_n++] = _res;
   26809                 :        755 :             _mark = p->mark;
   26810                 :            :         }
   26811                 :      38574 :         p->mark = _mark;
   26812                 :            :         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                 :      38574 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   26816         [ -  + ]:      38574 :     if (!_seq) {
   26817                 :          0 :         PyMem_Free(_children);
   26818                 :          0 :         p->error_indicator = 1;
   26819                 :            :         PyErr_NoMemory();
   26820                 :          0 :         p->level--;
   26821                 :          0 :         return NULL;
   26822                 :            :     }
   26823         [ +  + ]:      39329 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   26824                 :      38574 :     PyMem_Free(_children);
   26825                 :      38574 :     _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
   26826                 :      38574 :     p->level--;
   26827                 :      38574 :     return _seq;
   26828                 :            : }
   26829                 :            : 
   26830                 :            : // _gather_53: with_item _loop0_54
   26831                 :            : static asdl_seq *
   26832                 :      38594 : _gather_53_rule(Parser *p)
   26833                 :            : {
   26834         [ -  + ]:      38594 :     if (p->level++ == MAXSTACK) {
   26835                 :          0 :         p->error_indicator = 1;
   26836                 :            :         PyErr_NoMemory();
   26837                 :            :     }
   26838         [ -  + ]:      38594 :     if (p->error_indicator) {
   26839                 :          0 :         p->level--;
   26840                 :          0 :         return NULL;
   26841                 :            :     }
   26842                 :      38594 :     asdl_seq * _res = NULL;
   26843                 :      38594 :     int _mark = p->mark;
   26844                 :            :     { // with_item _loop0_54
   26845         [ -  + ]:      38594 :         if (p->error_indicator) {
   26846                 :          0 :             p->level--;
   26847                 :          0 :             return NULL;
   26848                 :            :         }
   26849                 :            :         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         [ +  + ]:      38594 :         if (
   26853                 :      38594 :             (elem = with_item_rule(p))  // with_item
   26854         [ +  - ]:      38574 :             &&
   26855                 :      38574 :             (seq = _loop0_54_rule(p))  // _loop0_54
   26856                 :            :         )
   26857                 :            :         {
   26858                 :            :             D(fprintf(stderr, "%*c+ _gather_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_54"));
   26859                 :      38574 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   26860                 :      38574 :             goto done;
   26861                 :            :         }
   26862                 :         20 :         p->mark = _mark;
   26863                 :            :         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                 :      38594 :   done:
   26868                 :      38594 :     p->level--;
   26869                 :      38594 :     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                 :            :         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                 :            :         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                 :            :         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                 :          1 :         while (
   26905                 :          2 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   26906   [ +  +  +  - ]:          3 :             &&
   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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :        373 :         while (
   27025                 :        392 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   27026   [ +  +  +  - ]:        411 :             &&
   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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :      16830 : _tmp_59_rule(Parser *p)
   27115                 :            : {
   27116         [ -  + ]:      16830 :     if (p->level++ == MAXSTACK) {
   27117                 :          0 :         p->error_indicator = 1;
   27118                 :            :         PyErr_NoMemory();
   27119                 :            :     }
   27120         [ -  + ]:      16830 :     if (p->error_indicator) {
   27121                 :          0 :         p->level--;
   27122                 :          0 :         return NULL;
   27123                 :            :     }
   27124                 :      16830 :     void * _res = NULL;
   27125                 :      16830 :     int _mark = p->mark;
   27126                 :            :     { // ','
   27127         [ -  + ]:      16830 :         if (p->error_indicator) {
   27128                 :          0 :             p->level--;
   27129                 :          0 :             return NULL;
   27130                 :            :         }
   27131                 :            :         D(fprintf(stderr, "%*c> _tmp_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
   27132                 :            :         Token * _literal;
   27133         [ +  + ]:      16830 :         if (
   27134                 :      16830 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   27135                 :            :         )
   27136                 :            :         {
   27137                 :            :             D(fprintf(stderr, "%*c+ _tmp_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
   27138                 :        484 :             _res = _literal;
   27139                 :        484 :             goto done;
   27140                 :            :         }
   27141                 :      16346 :         p->mark = _mark;
   27142                 :            :         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         [ -  + ]:      16346 :         if (p->error_indicator) {
   27147                 :          0 :             p->level--;
   27148                 :          0 :             return NULL;
   27149                 :            :         }
   27150                 :            :         D(fprintf(stderr, "%*c> _tmp_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
   27151                 :            :         Token * _literal;
   27152         [ +  + ]:      16346 :         if (
   27153                 :      16346 :             (_literal = _PyPegen_expect_token(p, 8))  // token=')'
   27154                 :            :         )
   27155                 :            :         {
   27156                 :            :             D(fprintf(stderr, "%*c+ _tmp_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
   27157                 :         16 :             _res = _literal;
   27158                 :         16 :             goto done;
   27159                 :            :         }
   27160                 :      16330 :         p->mark = _mark;
   27161                 :            :         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         [ -  + ]:      16330 :         if (p->error_indicator) {
   27166                 :          0 :             p->level--;
   27167                 :          0 :             return NULL;
   27168                 :            :         }
   27169                 :            :         D(fprintf(stderr, "%*c> _tmp_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
   27170                 :            :         Token * _literal;
   27171         [ +  + ]:      16330 :         if (
   27172                 :      16330 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   27173                 :            :         )
   27174                 :            :         {
   27175                 :            :             D(fprintf(stderr, "%*c+ _tmp_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
   27176                 :      16320 :             _res = _literal;
   27177                 :      16320 :             goto done;
   27178                 :            :         }
   27179                 :         10 :         p->mark = _mark;
   27180                 :            :         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                 :      16830 :   done:
   27185                 :      16830 :     p->level--;
   27186                 :      16830 :     return _res;
   27187                 :            : }
   27188                 :            : 
   27189                 :            : // _loop1_60: except_block
   27190                 :            : static asdl_seq *
   27191                 :      41588 : _loop1_60_rule(Parser *p)
   27192                 :            : {
   27193         [ -  + ]:      41588 :     if (p->level++ == MAXSTACK) {
   27194                 :          0 :         p->error_indicator = 1;
   27195                 :            :         PyErr_NoMemory();
   27196                 :            :     }
   27197         [ -  + ]:      41588 :     if (p->error_indicator) {
   27198                 :          0 :         p->level--;
   27199                 :          0 :         return NULL;
   27200                 :            :     }
   27201                 :      41588 :     void *_res = NULL;
   27202                 :      41588 :     int _mark = p->mark;
   27203                 :      41588 :     int _start_mark = p->mark;
   27204                 :      41588 :     void **_children = PyMem_Malloc(sizeof(void *));
   27205         [ -  + ]:      41588 :     if (!_children) {
   27206                 :          0 :         p->error_indicator = 1;
   27207                 :            :         PyErr_NoMemory();
   27208                 :          0 :         p->level--;
   27209                 :          0 :         return NULL;
   27210                 :            :     }
   27211                 :      41588 :     Py_ssize_t _children_capacity = 1;
   27212                 :      41588 :     Py_ssize_t _n = 0;
   27213                 :            :     { // except_block
   27214         [ -  + ]:      41588 :         if (p->error_indicator) {
   27215                 :          0 :             p->level--;
   27216                 :          0 :             return NULL;
   27217                 :            :         }
   27218                 :            :         D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
   27219                 :            :         excepthandler_ty except_block_var;
   27220                 :      41588 :         while (
   27221         [ +  + ]:      85530 :             (except_block_var = except_block_rule(p))  // except_block
   27222                 :            :         )
   27223                 :            :         {
   27224                 :      43942 :             _res = except_block_var;
   27225         [ +  + ]:      43942 :             if (_n == _children_capacity) {
   27226                 :       2434 :                 _children_capacity *= 2;
   27227                 :       2434 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   27228         [ -  + ]:       2434 :                 if (!_new_children) {
   27229                 :          0 :                     p->error_indicator = 1;
   27230                 :            :                     PyErr_NoMemory();
   27231                 :          0 :                     p->level--;
   27232                 :          0 :                     return NULL;
   27233                 :            :                 }
   27234                 :       2434 :                 _children = _new_children;
   27235                 :            :             }
   27236                 :      43942 :             _children[_n++] = _res;
   27237                 :      43942 :             _mark = p->mark;
   27238                 :            :         }
   27239                 :      41588 :         p->mark = _mark;
   27240                 :            :         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   [ +  +  -  + ]:      41588 :     if (_n == 0 || p->error_indicator) {
   27244                 :        297 :         PyMem_Free(_children);
   27245                 :        297 :         p->level--;
   27246                 :        297 :         return NULL;
   27247                 :            :     }
   27248                 :      41291 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   27249         [ -  + ]:      41291 :     if (!_seq) {
   27250                 :          0 :         PyMem_Free(_children);
   27251                 :          0 :         p->error_indicator = 1;
   27252                 :            :         PyErr_NoMemory();
   27253                 :          0 :         p->level--;
   27254                 :          0 :         return NULL;
   27255                 :            :     }
   27256         [ +  + ]:      85233 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   27257                 :      41291 :     PyMem_Free(_children);
   27258                 :      41291 :     _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
   27259                 :      41291 :     p->level--;
   27260                 :      41291 :     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                 :            :         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                 :            :         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                 :            :         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                 :        297 :         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                 :            :                     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                 :            :         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                 :            :         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                 :      41811 : _tmp_62_rule(Parser *p)
   27340                 :            : {
   27341         [ -  + ]:      41811 :     if (p->level++ == MAXSTACK) {
   27342                 :          0 :         p->error_indicator = 1;
   27343                 :            :         PyErr_NoMemory();
   27344                 :            :     }
   27345         [ -  + ]:      41811 :     if (p->error_indicator) {
   27346                 :          0 :         p->level--;
   27347                 :          0 :         return NULL;
   27348                 :            :     }
   27349                 :      41811 :     void * _res = NULL;
   27350                 :      41811 :     int _mark = p->mark;
   27351                 :            :     { // 'as' NAME
   27352         [ -  + ]:      41811 :         if (p->error_indicator) {
   27353                 :          0 :             p->level--;
   27354                 :          0 :             return NULL;
   27355                 :            :         }
   27356                 :            :         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         [ +  + ]:      41811 :         if (
   27360                 :      41811 :             (_keyword = _PyPegen_expect_token(p, 632))  // token='as'
   27361         [ +  - ]:       9001 :             &&
   27362                 :       9001 :             (z = _PyPegen_name_token(p))  // NAME
   27363                 :            :         )
   27364                 :            :         {
   27365                 :            :             D(fprintf(stderr, "%*c+ _tmp_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
   27366                 :       9001 :             _res = z;
   27367   [ -  +  -  - ]:       9001 :             if (_res == NULL && PyErr_Occurred()) {
   27368                 :          0 :                 p->error_indicator = 1;
   27369                 :          0 :                 p->level--;
   27370                 :          0 :                 return NULL;
   27371                 :            :             }
   27372                 :       9001 :             goto done;
   27373                 :            :         }
   27374                 :      32810 :         p->mark = _mark;
   27375                 :            :         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                 :      32810 :     _res = NULL;
   27379                 :      41811 :   done:
   27380                 :      41811 :     p->level--;
   27381                 :      41811 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :       1269 : _loop1_64_rule(Parser *p)
   27434                 :            : {
   27435         [ -  + ]:       1269 :     if (p->level++ == MAXSTACK) {
   27436                 :          0 :         p->error_indicator = 1;
   27437                 :            :         PyErr_NoMemory();
   27438                 :            :     }
   27439         [ -  + ]:       1269 :     if (p->error_indicator) {
   27440                 :          0 :         p->level--;
   27441                 :          0 :         return NULL;
   27442                 :            :     }
   27443                 :       1269 :     void *_res = NULL;
   27444                 :       1269 :     int _mark = p->mark;
   27445                 :       1269 :     int _start_mark = p->mark;
   27446                 :       1269 :     void **_children = PyMem_Malloc(sizeof(void *));
   27447         [ -  + ]:       1269 :     if (!_children) {
   27448                 :          0 :         p->error_indicator = 1;
   27449                 :            :         PyErr_NoMemory();
   27450                 :          0 :         p->level--;
   27451                 :          0 :         return NULL;
   27452                 :            :     }
   27453                 :       1269 :     Py_ssize_t _children_capacity = 1;
   27454                 :       1269 :     Py_ssize_t _n = 0;
   27455                 :            :     { // case_block
   27456         [ -  + ]:       1269 :         if (p->error_indicator) {
   27457                 :          0 :             p->level--;
   27458                 :          0 :             return NULL;
   27459                 :            :         }
   27460                 :            :         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                 :       1269 :         while (
   27463         [ +  + ]:       3053 :             (case_block_var = case_block_rule(p))  // case_block
   27464                 :            :         )
   27465                 :            :         {
   27466                 :       1784 :             _res = case_block_var;
   27467         [ +  + ]:       1784 :             if (_n == _children_capacity) {
   27468                 :        515 :                 _children_capacity *= 2;
   27469                 :        515 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   27470         [ -  + ]:        515 :                 if (!_new_children) {
   27471                 :          0 :                     p->error_indicator = 1;
   27472                 :            :                     PyErr_NoMemory();
   27473                 :          0 :                     p->level--;
   27474                 :          0 :                     return NULL;
   27475                 :            :                 }
   27476                 :        515 :                 _children = _new_children;
   27477                 :            :             }
   27478                 :       1784 :             _children[_n++] = _res;
   27479                 :       1784 :             _mark = p->mark;
   27480                 :            :         }
   27481                 :       1269 :         p->mark = _mark;
   27482                 :            :         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   [ +  +  +  + ]:       1269 :     if (_n == 0 || p->error_indicator) {
   27486                 :         45 :         PyMem_Free(_children);
   27487                 :         45 :         p->level--;
   27488                 :         45 :         return NULL;
   27489                 :            :     }
   27490                 :       1224 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   27491         [ -  + ]:       1224 :     if (!_seq) {
   27492                 :          0 :         PyMem_Free(_children);
   27493                 :          0 :         p->error_indicator = 1;
   27494                 :            :         PyErr_NoMemory();
   27495                 :          0 :         p->level--;
   27496                 :          0 :         return NULL;
   27497                 :            :     }
   27498         [ +  + ]:       3007 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   27499                 :       1224 :     PyMem_Free(_children);
   27500                 :       1224 :     _PyPegen_insert_memo(p, _start_mark, _loop1_64_type, _seq);
   27501                 :       1224 :     p->level--;
   27502                 :       1224 :     return _seq;
   27503                 :            : }
   27504                 :            : 
   27505                 :            : // _loop0_66: '|' closed_pattern
   27506                 :            : static asdl_seq *
   27507                 :      12645 : _loop0_66_rule(Parser *p)
   27508                 :            : {
   27509         [ -  + ]:      12645 :     if (p->level++ == MAXSTACK) {
   27510                 :          0 :         p->error_indicator = 1;
   27511                 :            :         PyErr_NoMemory();
   27512                 :            :     }
   27513         [ -  + ]:      12645 :     if (p->error_indicator) {
   27514                 :          0 :         p->level--;
   27515                 :          0 :         return NULL;
   27516                 :            :     }
   27517                 :      12645 :     void *_res = NULL;
   27518                 :      12645 :     int _mark = p->mark;
   27519                 :      12645 :     int _start_mark = p->mark;
   27520                 :      12645 :     void **_children = PyMem_Malloc(sizeof(void *));
   27521         [ -  + ]:      12645 :     if (!_children) {
   27522                 :          0 :         p->error_indicator = 1;
   27523                 :            :         PyErr_NoMemory();
   27524                 :          0 :         p->level--;
   27525                 :          0 :         return NULL;
   27526                 :            :     }
   27527                 :      12645 :     Py_ssize_t _children_capacity = 1;
   27528                 :      12645 :     Py_ssize_t _n = 0;
   27529                 :            :     { // '|' closed_pattern
   27530         [ -  + ]:      12645 :         if (p->error_indicator) {
   27531                 :          0 :             p->level--;
   27532                 :          0 :             return NULL;
   27533                 :            :         }
   27534                 :            :         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                 :      12645 :         while (
   27538                 :      13873 :             (_literal = _PyPegen_expect_token(p, 18))  // token='|'
   27539   [ +  +  +  - ]:      15101 :             &&
   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                 :            :                     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                 :      12645 :         p->mark = _mark;
   27565                 :            :         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                 :      12645 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   27569         [ -  + ]:      12645 :     if (!_seq) {
   27570                 :          0 :         PyMem_Free(_children);
   27571                 :          0 :         p->error_indicator = 1;
   27572                 :            :         PyErr_NoMemory();
   27573                 :          0 :         p->level--;
   27574                 :          0 :         return NULL;
   27575                 :            :     }
   27576         [ +  + ]:      13873 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   27577                 :      12645 :     PyMem_Free(_children);
   27578                 :      12645 :     _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
   27579                 :      12645 :     p->level--;
   27580                 :      12645 :     return _seq;
   27581                 :            : }
   27582                 :            : 
   27583                 :            : // _gather_65: closed_pattern _loop0_66
   27584                 :            : static asdl_seq *
   27585                 :      13517 : _gather_65_rule(Parser *p)
   27586                 :            : {
   27587         [ -  + ]:      13517 :     if (p->level++ == MAXSTACK) {
   27588                 :          0 :         p->error_indicator = 1;
   27589                 :            :         PyErr_NoMemory();
   27590                 :            :     }
   27591         [ -  + ]:      13517 :     if (p->error_indicator) {
   27592                 :          0 :         p->level--;
   27593                 :          0 :         return NULL;
   27594                 :            :     }
   27595                 :      13517 :     asdl_seq * _res = NULL;
   27596                 :      13517 :     int _mark = p->mark;
   27597                 :            :     { // closed_pattern _loop0_66
   27598         [ -  + ]:      13517 :         if (p->error_indicator) {
   27599                 :          0 :             p->level--;
   27600                 :          0 :             return NULL;
   27601                 :            :         }
   27602                 :            :         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         [ +  + ]:      13517 :         if (
   27606                 :      13517 :             (elem = closed_pattern_rule(p))  // closed_pattern
   27607         [ +  - ]:      12645 :             &&
   27608                 :      12645 :             (seq = _loop0_66_rule(p))  // _loop0_66
   27609                 :            :         )
   27610                 :            :         {
   27611                 :            :             D(fprintf(stderr, "%*c+ _gather_65[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_66"));
   27612                 :      12645 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   27613                 :      12645 :             goto done;
   27614                 :            :         }
   27615                 :        872 :         p->mark = _mark;
   27616                 :            :         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                 :        872 :     _res = NULL;
   27620                 :      13517 :   done:
   27621                 :      13517 :     p->level--;
   27622                 :      13517 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :       1820 : _tmp_69_rule(Parser *p)
   27744                 :            : {
   27745         [ -  + ]:       1820 :     if (p->level++ == MAXSTACK) {
   27746                 :          0 :         p->error_indicator = 1;
   27747                 :            :         PyErr_NoMemory();
   27748                 :            :     }
   27749         [ -  + ]:       1820 :     if (p->error_indicator) {
   27750                 :          0 :         p->level--;
   27751                 :          0 :         return NULL;
   27752                 :            :     }
   27753                 :       1820 :     void * _res = NULL;
   27754                 :       1820 :     int _mark = p->mark;
   27755                 :            :     { // '.'
   27756         [ -  + ]:       1820 :         if (p->error_indicator) {
   27757                 :          0 :             p->level--;
   27758                 :          0 :             return NULL;
   27759                 :            :         }
   27760                 :            :         D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
   27761                 :            :         Token * _literal;
   27762         [ +  + ]:       1820 :         if (
   27763                 :       1820 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   27764                 :            :         )
   27765                 :            :         {
   27766                 :            :             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                 :       1709 :         p->mark = _mark;
   27771                 :            :         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         [ -  + ]:       1709 :         if (p->error_indicator) {
   27776                 :          0 :             p->level--;
   27777                 :          0 :             return NULL;
   27778                 :            :         }
   27779                 :            :         D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
   27780                 :            :         Token * _literal;
   27781         [ +  + ]:       1709 :         if (
   27782                 :       1709 :             (_literal = _PyPegen_expect_token(p, 7))  // token='('
   27783                 :            :         )
   27784                 :            :         {
   27785                 :            :             D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
   27786                 :        249 :             _res = _literal;
   27787                 :        249 :             goto done;
   27788                 :            :         }
   27789                 :       1460 :         p->mark = _mark;
   27790                 :            :         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         [ -  + ]:       1460 :         if (p->error_indicator) {
   27795                 :          0 :             p->level--;
   27796                 :          0 :             return NULL;
   27797                 :            :         }
   27798                 :            :         D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
   27799                 :            :         Token * _literal;
   27800         [ +  + ]:       1460 :         if (
   27801                 :       1460 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   27802                 :            :         )
   27803                 :            :         {
   27804                 :            :             D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
   27805                 :         77 :             _res = _literal;
   27806                 :         77 :             goto done;
   27807                 :            :         }
   27808                 :       1383 :         p->mark = _mark;
   27809                 :            :         D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
   27810                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
   27811                 :            :     }
   27812                 :       1383 :     _res = NULL;
   27813                 :       1820 :   done:
   27814                 :       1820 :     p->level--;
   27815                 :       1820 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :        627 : _loop0_72_rule(Parser *p)
   27898                 :            : {
   27899         [ -  + ]:        627 :     if (p->level++ == MAXSTACK) {
   27900                 :          0 :         p->error_indicator = 1;
   27901                 :            :         PyErr_NoMemory();
   27902                 :            :     }
   27903         [ -  + ]:        627 :     if (p->error_indicator) {
   27904                 :          0 :         p->level--;
   27905                 :          0 :         return NULL;
   27906                 :            :     }
   27907                 :        627 :     void *_res = NULL;
   27908                 :        627 :     int _mark = p->mark;
   27909                 :        627 :     int _start_mark = p->mark;
   27910                 :        627 :     void **_children = PyMem_Malloc(sizeof(void *));
   27911         [ -  + ]:        627 :     if (!_children) {
   27912                 :          0 :         p->error_indicator = 1;
   27913                 :            :         PyErr_NoMemory();
   27914                 :          0 :         p->level--;
   27915                 :          0 :         return NULL;
   27916                 :            :     }
   27917                 :        627 :     Py_ssize_t _children_capacity = 1;
   27918                 :        627 :     Py_ssize_t _n = 0;
   27919                 :            :     { // ',' maybe_star_pattern
   27920         [ -  + ]:        627 :         if (p->error_indicator) {
   27921                 :          0 :             p->level--;
   27922                 :          0 :             return NULL;
   27923                 :            :         }
   27924                 :            :         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                 :        627 :         while (
   27928                 :       1371 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   27929   [ +  +  +  + ]:       2142 :             &&
   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                 :            :                     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                 :        627 :         p->mark = _mark;
   27955                 :            :         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                 :        627 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   27959         [ -  + ]:        627 :     if (!_seq) {
   27960                 :          0 :         PyMem_Free(_children);
   27961                 :          0 :         p->error_indicator = 1;
   27962                 :            :         PyErr_NoMemory();
   27963                 :          0 :         p->level--;
   27964                 :          0 :         return NULL;
   27965                 :            :     }
   27966         [ +  + ]:       1371 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   27967                 :        627 :     PyMem_Free(_children);
   27968                 :        627 :     _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
   27969                 :        627 :     p->level--;
   27970                 :        627 :     return _seq;
   27971                 :            : }
   27972                 :            : 
   27973                 :            : // _gather_71: maybe_star_pattern _loop0_72
   27974                 :            : static asdl_seq *
   27975                 :        753 : _gather_71_rule(Parser *p)
   27976                 :            : {
   27977         [ -  + ]:        753 :     if (p->level++ == MAXSTACK) {
   27978                 :          0 :         p->error_indicator = 1;
   27979                 :            :         PyErr_NoMemory();
   27980                 :            :     }
   27981         [ -  + ]:        753 :     if (p->error_indicator) {
   27982                 :          0 :         p->level--;
   27983                 :          0 :         return NULL;
   27984                 :            :     }
   27985                 :        753 :     asdl_seq * _res = NULL;
   27986                 :        753 :     int _mark = p->mark;
   27987                 :            :     { // maybe_star_pattern _loop0_72
   27988         [ -  + ]:        753 :         if (p->error_indicator) {
   27989                 :          0 :             p->level--;
   27990                 :          0 :             return NULL;
   27991                 :            :         }
   27992                 :            :         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         [ +  + ]:        753 :         if (
   27996                 :        753 :             (elem = maybe_star_pattern_rule(p))  // maybe_star_pattern
   27997         [ +  - ]:        627 :             &&
   27998                 :        627 :             (seq = _loop0_72_rule(p))  // _loop0_72
   27999                 :            :         )
   28000                 :            :         {
   28001                 :            :             D(fprintf(stderr, "%*c+ _gather_71[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_72"));
   28002                 :        627 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   28003                 :        627 :             goto done;
   28004                 :            :         }
   28005                 :        126 :         p->mark = _mark;
   28006                 :            :         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                 :        753 :   done:
   28011                 :        753 :     p->level--;
   28012                 :        753 :     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                 :            :         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                 :            :         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                 :            :         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                 :        622 :         while (
   28048                 :        762 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   28049   [ +  +  +  + ]:        926 :             &&
   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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         D(fprintf(stderr, "%*c> _loop0_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
   28223                 :            :         Token * _literal;
   28224                 :            :         pattern_ty elem;
   28225                 :        276 :         while (
   28226                 :        373 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   28227   [ +  +  +  + ]:        559 :             &&
   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                 :            :                     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                 :            :         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                 :            :         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                 :        317 : _gather_76_rule(Parser *p)
   28274                 :            : {
   28275         [ -  + ]:        317 :     if (p->level++ == MAXSTACK) {
   28276                 :          0 :         p->error_indicator = 1;
   28277                 :            :         PyErr_NoMemory();
   28278                 :            :     }
   28279         [ -  + ]:        317 :     if (p->error_indicator) {
   28280                 :          0 :         p->level--;
   28281                 :          0 :         return NULL;
   28282                 :            :     }
   28283                 :        317 :     asdl_seq * _res = NULL;
   28284                 :        317 :     int _mark = p->mark;
   28285                 :            :     { // pattern _loop0_77
   28286         [ -  + ]:        317 :         if (p->error_indicator) {
   28287                 :          0 :             p->level--;
   28288                 :          0 :             return NULL;
   28289                 :            :         }
   28290                 :            :         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         [ +  + ]:        317 :         if (
   28294                 :        317 :             (elem = pattern_rule(p))  // pattern
   28295         [ +  - ]:        276 :             &&
   28296                 :        276 :             (seq = _loop0_77_rule(p))  // _loop0_77
   28297                 :            :         )
   28298                 :            :         {
   28299                 :            :             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                 :         41 :         p->mark = _mark;
   28304                 :            :         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                 :         41 :     _res = NULL;
   28308                 :        317 :   done:
   28309                 :        317 :     p->level--;
   28310                 :        317 :     return _res;
   28311                 :            : }
   28312                 :            : 
   28313                 :            : // _loop0_79: ',' keyword_pattern
   28314                 :            : static asdl_seq *
   28315                 :         79 : _loop0_79_rule(Parser *p)
   28316                 :            : {
   28317         [ -  + ]:         79 :     if (p->level++ == MAXSTACK) {
   28318                 :          0 :         p->error_indicator = 1;
   28319                 :            :         PyErr_NoMemory();
   28320                 :            :     }
   28321         [ -  + ]:         79 :     if (p->error_indicator) {
   28322                 :          0 :         p->level--;
   28323                 :          0 :         return NULL;
   28324                 :            :     }
   28325                 :         79 :     void *_res = NULL;
   28326                 :         79 :     int _mark = p->mark;
   28327                 :         79 :     int _start_mark = p->mark;
   28328                 :         79 :     void **_children = PyMem_Malloc(sizeof(void *));
   28329         [ -  + ]:         79 :     if (!_children) {
   28330                 :          0 :         p->error_indicator = 1;
   28331                 :            :         PyErr_NoMemory();
   28332                 :          0 :         p->level--;
   28333                 :          0 :         return NULL;
   28334                 :            :     }
   28335                 :         79 :     Py_ssize_t _children_capacity = 1;
   28336                 :         79 :     Py_ssize_t _n = 0;
   28337                 :            :     { // ',' keyword_pattern
   28338         [ -  + ]:         79 :         if (p->error_indicator) {
   28339                 :          0 :             p->level--;
   28340                 :          0 :             return NULL;
   28341                 :            :         }
   28342                 :            :         D(fprintf(stderr, "%*c> _loop0_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
   28343                 :            :         Token * _literal;
   28344                 :            :         KeyPatternPair* elem;
   28345                 :         79 :         while (
   28346                 :        123 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   28347   [ +  +  +  + ]:        179 :             &&
   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                 :            :                     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                 :         79 :         p->mark = _mark;
   28373                 :            :         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                 :         79 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28377         [ -  + ]:         79 :     if (!_seq) {
   28378                 :          0 :         PyMem_Free(_children);
   28379                 :          0 :         p->error_indicator = 1;
   28380                 :            :         PyErr_NoMemory();
   28381                 :          0 :         p->level--;
   28382                 :          0 :         return NULL;
   28383                 :            :     }
   28384         [ +  + ]:        123 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28385                 :         79 :     PyMem_Free(_children);
   28386                 :         79 :     _PyPegen_insert_memo(p, _start_mark, _loop0_79_type, _seq);
   28387                 :         79 :     p->level--;
   28388                 :         79 :     return _seq;
   28389                 :            : }
   28390                 :            : 
   28391                 :            : // _gather_78: keyword_pattern _loop0_79
   28392                 :            : static asdl_seq *
   28393                 :        122 : _gather_78_rule(Parser *p)
   28394                 :            : {
   28395         [ -  + ]:        122 :     if (p->level++ == MAXSTACK) {
   28396                 :          0 :         p->error_indicator = 1;
   28397                 :            :         PyErr_NoMemory();
   28398                 :            :     }
   28399         [ -  + ]:        122 :     if (p->error_indicator) {
   28400                 :          0 :         p->level--;
   28401                 :          0 :         return NULL;
   28402                 :            :     }
   28403                 :        122 :     asdl_seq * _res = NULL;
   28404                 :        122 :     int _mark = p->mark;
   28405                 :            :     { // keyword_pattern _loop0_79
   28406         [ -  + ]:        122 :         if (p->error_indicator) {
   28407                 :          0 :             p->level--;
   28408                 :          0 :             return NULL;
   28409                 :            :         }
   28410                 :            :         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         [ +  + ]:        122 :         if (
   28414                 :        122 :             (elem = keyword_pattern_rule(p))  // keyword_pattern
   28415         [ +  - ]:         79 :             &&
   28416                 :         79 :             (seq = _loop0_79_rule(p))  // _loop0_79
   28417                 :            :         )
   28418                 :            :         {
   28419                 :            :             D(fprintf(stderr, "%*c+ _gather_78[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_79"));
   28420                 :         79 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   28421                 :         79 :             goto done;
   28422                 :            :         }
   28423                 :         43 :         p->mark = _mark;
   28424                 :            :         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                 :        122 :   done:
   28429                 :        122 :     p->level--;
   28430                 :        122 :     return _res;
   28431                 :            : }
   28432                 :            : 
   28433                 :            : // _loop1_80: (',' expression)
   28434                 :            : static asdl_seq *
   28435                 :      72089 : _loop1_80_rule(Parser *p)
   28436                 :            : {
   28437         [ -  + ]:      72089 :     if (p->level++ == MAXSTACK) {
   28438                 :          0 :         p->error_indicator = 1;
   28439                 :            :         PyErr_NoMemory();
   28440                 :            :     }
   28441         [ -  + ]:      72089 :     if (p->error_indicator) {
   28442                 :          0 :         p->level--;
   28443                 :          0 :         return NULL;
   28444                 :            :     }
   28445                 :      72089 :     void *_res = NULL;
   28446                 :      72089 :     int _mark = p->mark;
   28447                 :      72089 :     int _start_mark = p->mark;
   28448                 :      72089 :     void **_children = PyMem_Malloc(sizeof(void *));
   28449         [ -  + ]:      72089 :     if (!_children) {
   28450                 :          0 :         p->error_indicator = 1;
   28451                 :            :         PyErr_NoMemory();
   28452                 :          0 :         p->level--;
   28453                 :          0 :         return NULL;
   28454                 :            :     }
   28455                 :      72089 :     Py_ssize_t _children_capacity = 1;
   28456                 :      72089 :     Py_ssize_t _n = 0;
   28457                 :            :     { // (',' expression)
   28458         [ -  + ]:      72089 :         if (p->error_indicator) {
   28459                 :          0 :             p->level--;
   28460                 :          0 :             return NULL;
   28461                 :            :         }
   28462                 :            :         D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
   28463                 :            :         void *_tmp_223_var;
   28464                 :      72089 :         while (
   28465         [ +  + ]:     513299 :             (_tmp_223_var = _tmp_223_rule(p))  // ',' expression
   28466                 :            :         )
   28467                 :            :         {
   28468                 :     441210 :             _res = _tmp_223_var;
   28469         [ +  + ]:     441210 :             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                 :            :                     PyErr_NoMemory();
   28475                 :          0 :                     p->level--;
   28476                 :          0 :                     return NULL;
   28477                 :            :                 }
   28478                 :        297 :                 _children = _new_children;
   28479                 :            :             }
   28480                 :     441210 :             _children[_n++] = _res;
   28481                 :     441210 :             _mark = p->mark;
   28482                 :            :         }
   28483                 :      72089 :         p->mark = _mark;
   28484                 :            :         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   [ +  +  -  + ]:      72089 :     if (_n == 0 || p->error_indicator) {
   28488                 :      71876 :         PyMem_Free(_children);
   28489                 :      71876 :         p->level--;
   28490                 :      71876 :         return NULL;
   28491                 :            :     }
   28492                 :        213 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28493         [ -  + ]:        213 :     if (!_seq) {
   28494                 :          0 :         PyMem_Free(_children);
   28495                 :          0 :         p->error_indicator = 1;
   28496                 :            :         PyErr_NoMemory();
   28497                 :          0 :         p->level--;
   28498                 :          0 :         return NULL;
   28499                 :            :     }
   28500         [ +  + ]:     441423 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28501                 :        213 :     PyMem_Free(_children);
   28502                 :        213 :     _PyPegen_insert_memo(p, _start_mark, _loop1_80_type, _seq);
   28503                 :        213 :     p->level--;
   28504                 :        213 :     return _seq;
   28505                 :            : }
   28506                 :            : 
   28507                 :            : // _loop1_81: (',' star_expression)
   28508                 :            : static asdl_seq *
   28509                 :    2094896 : _loop1_81_rule(Parser *p)
   28510                 :            : {
   28511         [ -  + ]:    2094896 :     if (p->level++ == MAXSTACK) {
   28512                 :          0 :         p->error_indicator = 1;
   28513                 :            :         PyErr_NoMemory();
   28514                 :            :     }
   28515         [ -  + ]:    2094896 :     if (p->error_indicator) {
   28516                 :          0 :         p->level--;
   28517                 :          0 :         return NULL;
   28518                 :            :     }
   28519                 :    2094896 :     void *_res = NULL;
   28520                 :    2094896 :     int _mark = p->mark;
   28521                 :    2094896 :     int _start_mark = p->mark;
   28522                 :    2094896 :     void **_children = PyMem_Malloc(sizeof(void *));
   28523         [ -  + ]:    2094896 :     if (!_children) {
   28524                 :          0 :         p->error_indicator = 1;
   28525                 :            :         PyErr_NoMemory();
   28526                 :          0 :         p->level--;
   28527                 :          0 :         return NULL;
   28528                 :            :     }
   28529                 :    2094896 :     Py_ssize_t _children_capacity = 1;
   28530                 :    2094896 :     Py_ssize_t _n = 0;
   28531                 :            :     { // (',' star_expression)
   28532         [ -  + ]:    2094896 :         if (p->error_indicator) {
   28533                 :          0 :             p->level--;
   28534                 :          0 :             return NULL;
   28535                 :            :         }
   28536                 :            :         D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
   28537                 :            :         void *_tmp_224_var;
   28538                 :    2094896 :         while (
   28539         [ +  + ]:    2122843 :             (_tmp_224_var = _tmp_224_rule(p))  // ',' star_expression
   28540                 :            :         )
   28541                 :            :         {
   28542                 :      27947 :             _res = _tmp_224_var;
   28543         [ +  + ]:      27947 :             if (_n == _children_capacity) {
   28544                 :       7315 :                 _children_capacity *= 2;
   28545                 :       7315 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   28546         [ -  + ]:       7315 :                 if (!_new_children) {
   28547                 :          0 :                     p->error_indicator = 1;
   28548                 :            :                     PyErr_NoMemory();
   28549                 :          0 :                     p->level--;
   28550                 :          0 :                     return NULL;
   28551                 :            :                 }
   28552                 :       7315 :                 _children = _new_children;
   28553                 :            :             }
   28554                 :      27947 :             _children[_n++] = _res;
   28555                 :      27947 :             _mark = p->mark;
   28556                 :            :         }
   28557                 :    2094896 :         p->mark = _mark;
   28558                 :            :         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   [ +  +  -  + ]:    2094896 :     if (_n == 0 || p->error_indicator) {
   28562                 :    2075366 :         PyMem_Free(_children);
   28563                 :    2075366 :         p->level--;
   28564                 :    2075366 :         return NULL;
   28565                 :            :     }
   28566                 :      19530 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28567         [ -  + ]:      19530 :     if (!_seq) {
   28568                 :          0 :         PyMem_Free(_children);
   28569                 :          0 :         p->error_indicator = 1;
   28570                 :            :         PyErr_NoMemory();
   28571                 :          0 :         p->level--;
   28572                 :          0 :         return NULL;
   28573                 :            :     }
   28574         [ +  + ]:      47477 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28575                 :      19530 :     PyMem_Free(_children);
   28576                 :      19530 :     _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
   28577                 :      19530 :     p->level--;
   28578                 :      19530 :     return _seq;
   28579                 :            : }
   28580                 :            : 
   28581                 :            : // _loop0_83: ',' star_named_expression
   28582                 :            : static asdl_seq *
   28583                 :     648263 : _loop0_83_rule(Parser *p)
   28584                 :            : {
   28585         [ -  + ]:     648263 :     if (p->level++ == MAXSTACK) {
   28586                 :          0 :         p->error_indicator = 1;
   28587                 :            :         PyErr_NoMemory();
   28588                 :            :     }
   28589         [ -  + ]:     648263 :     if (p->error_indicator) {
   28590                 :          0 :         p->level--;
   28591                 :          0 :         return NULL;
   28592                 :            :     }
   28593                 :     648263 :     void *_res = NULL;
   28594                 :     648263 :     int _mark = p->mark;
   28595                 :     648263 :     int _start_mark = p->mark;
   28596                 :     648263 :     void **_children = PyMem_Malloc(sizeof(void *));
   28597         [ -  + ]:     648263 :     if (!_children) {
   28598                 :          0 :         p->error_indicator = 1;
   28599                 :            :         PyErr_NoMemory();
   28600                 :          0 :         p->level--;
   28601                 :          0 :         return NULL;
   28602                 :            :     }
   28603                 :     648263 :     Py_ssize_t _children_capacity = 1;
   28604                 :     648263 :     Py_ssize_t _n = 0;
   28605                 :            :     { // ',' star_named_expression
   28606         [ -  + ]:     648263 :         if (p->error_indicator) {
   28607                 :          0 :             p->level--;
   28608                 :          0 :             return NULL;
   28609                 :            :         }
   28610                 :            :         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                 :     648263 :         while (
   28614                 :    3597723 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   28615   [ +  +  +  + ]:    6570530 :             &&
   28616                 :    2972807 :             (elem = star_named_expression_rule(p))  // star_named_expression
   28617                 :            :         )
   28618                 :            :         {
   28619                 :    2949460 :             _res = elem;
   28620   [ -  +  -  - ]:    2949460 :             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         [ +  + ]:    2949460 :             if (_n == _children_capacity) {
   28627                 :     338993 :                 _children_capacity *= 2;
   28628                 :     338993 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   28629         [ -  + ]:     338993 :                 if (!_new_children) {
   28630                 :          0 :                     p->error_indicator = 1;
   28631                 :            :                     PyErr_NoMemory();
   28632                 :          0 :                     p->level--;
   28633                 :          0 :                     return NULL;
   28634                 :            :                 }
   28635                 :     338993 :                 _children = _new_children;
   28636                 :            :             }
   28637                 :    2949460 :             _children[_n++] = _res;
   28638                 :    2949460 :             _mark = p->mark;
   28639                 :            :         }
   28640                 :     648263 :         p->mark = _mark;
   28641                 :            :         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                 :     648263 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28645         [ -  + ]:     648263 :     if (!_seq) {
   28646                 :          0 :         PyMem_Free(_children);
   28647                 :          0 :         p->error_indicator = 1;
   28648                 :            :         PyErr_NoMemory();
   28649                 :          0 :         p->level--;
   28650                 :          0 :         return NULL;
   28651                 :            :     }
   28652         [ +  + ]:    3597723 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28653                 :     648263 :     PyMem_Free(_children);
   28654                 :     648263 :     _PyPegen_insert_memo(p, _start_mark, _loop0_83_type, _seq);
   28655                 :     648263 :     p->level--;
   28656                 :     648263 :     return _seq;
   28657                 :            : }
   28658                 :            : 
   28659                 :            : // _gather_82: star_named_expression _loop0_83
   28660                 :            : static asdl_seq *
   28661                 :     823470 : _gather_82_rule(Parser *p)
   28662                 :            : {
   28663         [ -  + ]:     823470 :     if (p->level++ == MAXSTACK) {
   28664                 :          0 :         p->error_indicator = 1;
   28665                 :            :         PyErr_NoMemory();
   28666                 :            :     }
   28667         [ -  + ]:     823470 :     if (p->error_indicator) {
   28668                 :          0 :         p->level--;
   28669                 :          0 :         return NULL;
   28670                 :            :     }
   28671                 :     823470 :     asdl_seq * _res = NULL;
   28672                 :     823470 :     int _mark = p->mark;
   28673                 :            :     { // star_named_expression _loop0_83
   28674         [ -  + ]:     823470 :         if (p->error_indicator) {
   28675                 :          0 :             p->level--;
   28676                 :          0 :             return NULL;
   28677                 :            :         }
   28678                 :            :         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         [ +  + ]:     823470 :         if (
   28682                 :     823470 :             (elem = star_named_expression_rule(p))  // star_named_expression
   28683         [ +  - ]:     648263 :             &&
   28684                 :     648263 :             (seq = _loop0_83_rule(p))  // _loop0_83
   28685                 :            :         )
   28686                 :            :         {
   28687                 :            :             D(fprintf(stderr, "%*c+ _gather_82[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_83"));
   28688                 :     648263 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   28689                 :     648263 :             goto done;
   28690                 :            :         }
   28691                 :     175207 :         p->mark = _mark;
   28692                 :            :         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                 :     175207 :     _res = NULL;
   28696                 :     823470 :   done:
   28697                 :     823470 :     p->level--;
   28698                 :     823470 :     return _res;
   28699                 :            : }
   28700                 :            : 
   28701                 :            : // _loop1_84: ('or' conjunction)
   28702                 :            : static asdl_seq *
   28703                 :    9717377 : _loop1_84_rule(Parser *p)
   28704                 :            : {
   28705         [ -  + ]:    9717377 :     if (p->level++ == MAXSTACK) {
   28706                 :          0 :         p->error_indicator = 1;
   28707                 :            :         PyErr_NoMemory();
   28708                 :            :     }
   28709         [ -  + ]:    9717377 :     if (p->error_indicator) {
   28710                 :          0 :         p->level--;
   28711                 :          0 :         return NULL;
   28712                 :            :     }
   28713                 :    9717377 :     void *_res = NULL;
   28714                 :    9717377 :     int _mark = p->mark;
   28715                 :    9717377 :     int _start_mark = p->mark;
   28716                 :    9717377 :     void **_children = PyMem_Malloc(sizeof(void *));
   28717         [ -  + ]:    9717377 :     if (!_children) {
   28718                 :          0 :         p->error_indicator = 1;
   28719                 :            :         PyErr_NoMemory();
   28720                 :          0 :         p->level--;
   28721                 :          0 :         return NULL;
   28722                 :            :     }
   28723                 :    9717377 :     Py_ssize_t _children_capacity = 1;
   28724                 :    9717377 :     Py_ssize_t _n = 0;
   28725                 :            :     { // ('or' conjunction)
   28726         [ -  + ]:    9717377 :         if (p->error_indicator) {
   28727                 :          0 :             p->level--;
   28728                 :          0 :             return NULL;
   28729                 :            :         }
   28730                 :            :         D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
   28731                 :            :         void *_tmp_225_var;
   28732                 :    9717377 :         while (
   28733         [ +  + ]:    9746242 :             (_tmp_225_var = _tmp_225_rule(p))  // 'or' conjunction
   28734                 :            :         )
   28735                 :            :         {
   28736                 :      28865 :             _res = _tmp_225_var;
   28737         [ +  + ]:      28865 :             if (_n == _children_capacity) {
   28738                 :       2360 :                 _children_capacity *= 2;
   28739                 :       2360 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   28740         [ -  + ]:       2360 :                 if (!_new_children) {
   28741                 :          0 :                     p->error_indicator = 1;
   28742                 :            :                     PyErr_NoMemory();
   28743                 :          0 :                     p->level--;
   28744                 :          0 :                     return NULL;
   28745                 :            :                 }
   28746                 :       2360 :                 _children = _new_children;
   28747                 :            :             }
   28748                 :      28865 :             _children[_n++] = _res;
   28749                 :      28865 :             _mark = p->mark;
   28750                 :            :         }
   28751                 :    9717377 :         p->mark = _mark;
   28752                 :            :         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   [ +  +  -  + ]:    9717377 :     if (_n == 0 || p->error_indicator) {
   28756                 :    9691251 :         PyMem_Free(_children);
   28757                 :    9691251 :         p->level--;
   28758                 :    9691251 :         return NULL;
   28759                 :            :     }
   28760                 :      26126 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28761         [ -  + ]:      26126 :     if (!_seq) {
   28762                 :          0 :         PyMem_Free(_children);
   28763                 :          0 :         p->error_indicator = 1;
   28764                 :            :         PyErr_NoMemory();
   28765                 :          0 :         p->level--;
   28766                 :          0 :         return NULL;
   28767                 :            :     }
   28768         [ +  + ]:      54991 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28769                 :      26126 :     PyMem_Free(_children);
   28770                 :      26126 :     _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
   28771                 :      26126 :     p->level--;
   28772                 :      26126 :     return _seq;
   28773                 :            : }
   28774                 :            : 
   28775                 :            : // _loop1_85: ('and' inversion)
   28776                 :            : static asdl_seq *
   28777                 :    9746242 : _loop1_85_rule(Parser *p)
   28778                 :            : {
   28779         [ -  + ]:    9746242 :     if (p->level++ == MAXSTACK) {
   28780                 :          0 :         p->error_indicator = 1;
   28781                 :            :         PyErr_NoMemory();
   28782                 :            :     }
   28783         [ -  + ]:    9746242 :     if (p->error_indicator) {
   28784                 :          0 :         p->level--;
   28785                 :          0 :         return NULL;
   28786                 :            :     }
   28787                 :    9746242 :     void *_res = NULL;
   28788                 :    9746242 :     int _mark = p->mark;
   28789                 :    9746242 :     int _start_mark = p->mark;
   28790                 :    9746242 :     void **_children = PyMem_Malloc(sizeof(void *));
   28791         [ -  + ]:    9746242 :     if (!_children) {
   28792                 :          0 :         p->error_indicator = 1;
   28793                 :            :         PyErr_NoMemory();
   28794                 :          0 :         p->level--;
   28795                 :          0 :         return NULL;
   28796                 :            :     }
   28797                 :    9746242 :     Py_ssize_t _children_capacity = 1;
   28798                 :    9746242 :     Py_ssize_t _n = 0;
   28799                 :            :     { // ('and' inversion)
   28800         [ -  + ]:    9746242 :         if (p->error_indicator) {
   28801                 :          0 :             p->level--;
   28802                 :          0 :             return NULL;
   28803                 :            :         }
   28804                 :            :         D(fprintf(stderr, "%*c> _loop1_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
   28805                 :            :         void *_tmp_226_var;
   28806                 :    9746242 :         while (
   28807         [ +  + ]:    9792135 :             (_tmp_226_var = _tmp_226_rule(p))  // 'and' inversion
   28808                 :            :         )
   28809                 :            :         {
   28810                 :      45893 :             _res = _tmp_226_var;
   28811         [ +  + ]:      45893 :             if (_n == _children_capacity) {
   28812                 :       6005 :                 _children_capacity *= 2;
   28813                 :       6005 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   28814         [ -  + ]:       6005 :                 if (!_new_children) {
   28815                 :          0 :                     p->error_indicator = 1;
   28816                 :            :                     PyErr_NoMemory();
   28817                 :          0 :                     p->level--;
   28818                 :          0 :                     return NULL;
   28819                 :            :                 }
   28820                 :       6005 :                 _children = _new_children;
   28821                 :            :             }
   28822                 :      45893 :             _children[_n++] = _res;
   28823                 :      45893 :             _mark = p->mark;
   28824                 :            :         }
   28825                 :    9746242 :         p->mark = _mark;
   28826                 :            :         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   [ +  +  -  + ]:    9746242 :     if (_n == 0 || p->error_indicator) {
   28830                 :    9707178 :         PyMem_Free(_children);
   28831                 :    9707178 :         p->level--;
   28832                 :    9707178 :         return NULL;
   28833                 :            :     }
   28834                 :      39064 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28835         [ -  + ]:      39064 :     if (!_seq) {
   28836                 :          0 :         PyMem_Free(_children);
   28837                 :          0 :         p->error_indicator = 1;
   28838                 :            :         PyErr_NoMemory();
   28839                 :          0 :         p->level--;
   28840                 :          0 :         return NULL;
   28841                 :            :     }
   28842         [ +  + ]:      84957 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28843                 :      39064 :     PyMem_Free(_children);
   28844                 :      39064 :     _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
   28845                 :      39064 :     p->level--;
   28846                 :      39064 :     return _seq;
   28847                 :            : }
   28848                 :            : 
   28849                 :            : // _loop1_86: compare_op_bitwise_or_pair
   28850                 :            : static asdl_seq *
   28851                 :    9792136 : _loop1_86_rule(Parser *p)
   28852                 :            : {
   28853         [ -  + ]:    9792136 :     if (p->level++ == MAXSTACK) {
   28854                 :          0 :         p->error_indicator = 1;
   28855                 :            :         PyErr_NoMemory();
   28856                 :            :     }
   28857         [ -  + ]:    9792136 :     if (p->error_indicator) {
   28858                 :          0 :         p->level--;
   28859                 :          0 :         return NULL;
   28860                 :            :     }
   28861                 :    9792136 :     void *_res = NULL;
   28862                 :    9792136 :     int _mark = p->mark;
   28863                 :    9792136 :     int _start_mark = p->mark;
   28864                 :    9792136 :     void **_children = PyMem_Malloc(sizeof(void *));
   28865         [ -  + ]:    9792136 :     if (!_children) {
   28866                 :          0 :         p->error_indicator = 1;
   28867                 :            :         PyErr_NoMemory();
   28868                 :          0 :         p->level--;
   28869                 :          0 :         return NULL;
   28870                 :            :     }
   28871                 :    9792136 :     Py_ssize_t _children_capacity = 1;
   28872                 :    9792136 :     Py_ssize_t _n = 0;
   28873                 :            :     { // compare_op_bitwise_or_pair
   28874         [ -  + ]:    9792136 :         if (p->error_indicator) {
   28875                 :          0 :             p->level--;
   28876                 :          0 :             return NULL;
   28877                 :            :         }
   28878                 :            :         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                 :    9792136 :         while (
   28881         [ +  + ]:   10037237 :             (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p))  // compare_op_bitwise_or_pair
   28882                 :            :         )
   28883                 :            :         {
   28884                 :     245101 :             _res = compare_op_bitwise_or_pair_var;
   28885         [ +  + ]:     245101 :             if (_n == _children_capacity) {
   28886                 :       3179 :                 _children_capacity *= 2;
   28887                 :       3179 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   28888         [ -  + ]:       3179 :                 if (!_new_children) {
   28889                 :          0 :                     p->error_indicator = 1;
   28890                 :            :                     PyErr_NoMemory();
   28891                 :          0 :                     p->level--;
   28892                 :          0 :                     return NULL;
   28893                 :            :                 }
   28894                 :       3179 :                 _children = _new_children;
   28895                 :            :             }
   28896                 :     245101 :             _children[_n++] = _res;
   28897                 :     245101 :             _mark = p->mark;
   28898                 :            :         }
   28899                 :    9792136 :         p->mark = _mark;
   28900                 :            :         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   [ +  +  -  + ]:    9792136 :     if (_n == 0 || p->error_indicator) {
   28904                 :    9550370 :         PyMem_Free(_children);
   28905                 :    9550370 :         p->level--;
   28906                 :    9550370 :         return NULL;
   28907                 :            :     }
   28908                 :     241766 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   28909         [ -  + ]:     241766 :     if (!_seq) {
   28910                 :          0 :         PyMem_Free(_children);
   28911                 :          0 :         p->error_indicator = 1;
   28912                 :            :         PyErr_NoMemory();
   28913                 :          0 :         p->level--;
   28914                 :          0 :         return NULL;
   28915                 :            :     }
   28916         [ +  + ]:     486867 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   28917                 :     241766 :     PyMem_Free(_children);
   28918                 :     241766 :     _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
   28919                 :     241766 :     p->level--;
   28920                 :     241766 :     return _seq;
   28921                 :            : }
   28922                 :            : 
   28923                 :            : // _tmp_87: '!='
   28924                 :            : static void *
   28925                 :    9966036 : _tmp_87_rule(Parser *p)
   28926                 :            : {
   28927         [ -  + ]:    9966036 :     if (p->level++ == MAXSTACK) {
   28928                 :          0 :         p->error_indicator = 1;
   28929                 :            :         PyErr_NoMemory();
   28930                 :            :     }
   28931         [ -  + ]:    9966036 :     if (p->error_indicator) {
   28932                 :          0 :         p->level--;
   28933                 :          0 :         return NULL;
   28934                 :            :     }
   28935                 :    9966036 :     void * _res = NULL;
   28936                 :    9966036 :     int _mark = p->mark;
   28937                 :            :     { // '!='
   28938         [ -  + ]:    9966036 :         if (p->error_indicator) {
   28939                 :          0 :             p->level--;
   28940                 :          0 :             return NULL;
   28941                 :            :         }
   28942                 :            :         D(fprintf(stderr, "%*c> _tmp_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
   28943                 :            :         Token * tok;
   28944         [ +  + ]:    9966036 :         if (
   28945                 :    9966036 :             (tok = _PyPegen_expect_token(p, 28))  // token='!='
   28946                 :            :         )
   28947                 :            :         {
   28948                 :            :             D(fprintf(stderr, "%*c+ _tmp_87[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
   28949         [ +  + ]:      17557 :             _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
   28950   [ +  +  +  + ]:      17557 :             if (_res == NULL && PyErr_Occurred()) {
   28951                 :          1 :                 p->error_indicator = 1;
   28952                 :          1 :                 p->level--;
   28953                 :          1 :                 return NULL;
   28954                 :            :             }
   28955                 :      17556 :             goto done;
   28956                 :            :         }
   28957                 :    9948479 :         p->mark = _mark;
   28958                 :            :         D(fprintf(stderr, "%*c%s _tmp_87[%d-%d]: %s failed!\n", p->level, ' ',
   28959                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
   28960                 :            :     }
   28961                 :    9948479 :     _res = NULL;
   28962                 :    9966035 :   done:
   28963                 :    9966035 :     p->level--;
   28964                 :    9966035 :     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                 :            :         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                 :            :         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                 :            :         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                 :      21669 :         while (
   29000                 :      47489 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   29001   [ +  +  +  + ]:      73739 :             &&
   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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :      68531 : _tmp_90_rule(Parser *p)
   29090                 :            : {
   29091         [ -  + ]:      68531 :     if (p->level++ == MAXSTACK) {
   29092                 :          0 :         p->error_indicator = 1;
   29093                 :            :         PyErr_NoMemory();
   29094                 :            :     }
   29095         [ -  + ]:      68531 :     if (p->error_indicator) {
   29096                 :          0 :         p->level--;
   29097                 :          0 :         return NULL;
   29098                 :            :     }
   29099                 :      68531 :     void * _res = NULL;
   29100                 :      68531 :     int _mark = p->mark;
   29101                 :            :     { // ':' expression?
   29102         [ -  + ]:      68531 :         if (p->error_indicator) {
   29103                 :          0 :             p->level--;
   29104                 :          0 :             return NULL;
   29105                 :            :         }
   29106                 :            :         D(fprintf(stderr, "%*c> _tmp_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
   29107                 :            :         Token * _literal;
   29108                 :            :         void *d;
   29109         [ +  + ]:      68531 :         if (
   29110                 :      68531 :             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
   29111                 :       3189 :             &&
   29112         [ +  + ]:       3189 :             (d = expression_rule(p), !p->error_indicator)  // expression?
   29113                 :            :         )
   29114                 :            :         {
   29115                 :            :             D(fprintf(stderr, "%*c+ _tmp_90[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
   29116                 :       3185 :             _res = d;
   29117   [ +  +  -  + ]:       3185 :             if (_res == NULL && PyErr_Occurred()) {
   29118                 :          0 :                 p->error_indicator = 1;
   29119                 :          0 :                 p->level--;
   29120                 :          0 :                 return NULL;
   29121                 :            :             }
   29122                 :       3185 :             goto done;
   29123                 :            :         }
   29124                 :      65346 :         p->mark = _mark;
   29125                 :            :         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                 :      65346 :     _res = NULL;
   29129                 :      68531 :   done:
   29130                 :      68531 :     p->level--;
   29131                 :      68531 :     return _res;
   29132                 :            : }
   29133                 :            : 
   29134                 :            : // _tmp_91: tuple | group | genexp
   29135                 :            : static void *
   29136                 :     863699 : _tmp_91_rule(Parser *p)
   29137                 :            : {
   29138         [ -  + ]:     863699 :     if (p->level++ == MAXSTACK) {
   29139                 :          0 :         p->error_indicator = 1;
   29140                 :            :         PyErr_NoMemory();
   29141                 :            :     }
   29142         [ -  + ]:     863699 :     if (p->error_indicator) {
   29143                 :          0 :         p->level--;
   29144                 :          0 :         return NULL;
   29145                 :            :     }
   29146                 :     863699 :     void * _res = NULL;
   29147                 :     863699 :     int _mark = p->mark;
   29148                 :            :     { // tuple
   29149         [ -  + ]:     863699 :         if (p->error_indicator) {
   29150                 :          0 :             p->level--;
   29151                 :          0 :             return NULL;
   29152                 :            :         }
   29153                 :            :         D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
   29154                 :            :         expr_ty tuple_var;
   29155         [ +  + ]:     863699 :         if (
   29156                 :     863699 :             (tuple_var = tuple_rule(p))  // tuple
   29157                 :            :         )
   29158                 :            :         {
   29159                 :            :             D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
   29160                 :     569900 :             _res = tuple_var;
   29161                 :     569900 :             goto done;
   29162                 :            :         }
   29163                 :     293799 :         p->mark = _mark;
   29164                 :            :         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         [ +  + ]:     293799 :         if (p->error_indicator) {
   29169                 :         52 :             p->level--;
   29170                 :         52 :             return NULL;
   29171                 :            :         }
   29172                 :            :         D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
   29173                 :            :         expr_ty group_var;
   29174         [ +  + ]:     293747 :         if (
   29175                 :     293747 :             (group_var = group_rule(p))  // group
   29176                 :            :         )
   29177                 :            :         {
   29178                 :            :             D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
   29179                 :     288226 :             _res = group_var;
   29180                 :     288226 :             goto done;
   29181                 :            :         }
   29182                 :       5521 :         p->mark = _mark;
   29183                 :            :         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         [ +  + ]:       5521 :         if (p->error_indicator) {
   29188                 :         10 :             p->level--;
   29189                 :         10 :             return NULL;
   29190                 :            :         }
   29191                 :            :         D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
   29192                 :            :         expr_ty genexp_var;
   29193         [ +  + ]:       5511 :         if (
   29194                 :       5511 :             (genexp_var = genexp_rule(p))  // genexp
   29195                 :            :         )
   29196                 :            :         {
   29197                 :            :             D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
   29198                 :       5392 :             _res = genexp_var;
   29199                 :       5392 :             goto done;
   29200                 :            :         }
   29201                 :        119 :         p->mark = _mark;
   29202                 :            :         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                 :     863637 :   done:
   29207                 :     863637 :     p->level--;
   29208                 :     863637 :     return _res;
   29209                 :            : }
   29210                 :            : 
   29211                 :            : // _tmp_92: list | listcomp
   29212                 :            : static void *
   29213                 :     261397 : _tmp_92_rule(Parser *p)
   29214                 :            : {
   29215         [ -  + ]:     261397 :     if (p->level++ == MAXSTACK) {
   29216                 :          0 :         p->error_indicator = 1;
   29217                 :            :         PyErr_NoMemory();
   29218                 :            :     }
   29219         [ -  + ]:     261397 :     if (p->error_indicator) {
   29220                 :          0 :         p->level--;
   29221                 :          0 :         return NULL;
   29222                 :            :     }
   29223                 :     261397 :     void * _res = NULL;
   29224                 :     261397 :     int _mark = p->mark;
   29225                 :            :     { // list
   29226         [ -  + ]:     261397 :         if (p->error_indicator) {
   29227                 :          0 :             p->level--;
   29228                 :          0 :             return NULL;
   29229                 :            :         }
   29230                 :            :         D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
   29231                 :            :         expr_ty list_var;
   29232         [ +  + ]:     261397 :         if (
   29233                 :     261397 :             (list_var = list_rule(p))  // list
   29234                 :            :         )
   29235                 :            :         {
   29236                 :            :             D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
   29237                 :     232140 :             _res = list_var;
   29238                 :     232140 :             goto done;
   29239                 :            :         }
   29240                 :      29257 :         p->mark = _mark;
   29241                 :            :         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         [ +  + ]:      29257 :         if (p->error_indicator) {
   29246                 :         34 :             p->level--;
   29247                 :         34 :             return NULL;
   29248                 :            :         }
   29249                 :            :         D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
   29250                 :            :         expr_ty listcomp_var;
   29251         [ +  + ]:      29223 :         if (
   29252                 :      29223 :             (listcomp_var = listcomp_rule(p))  // listcomp
   29253                 :            :         )
   29254                 :            :         {
   29255                 :            :             D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
   29256                 :      29134 :             _res = listcomp_var;
   29257                 :      29134 :             goto done;
   29258                 :            :         }
   29259                 :         89 :         p->mark = _mark;
   29260                 :            :         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                 :     261363 :   done:
   29265                 :     261363 :     p->level--;
   29266                 :     261363 :     return _res;
   29267                 :            : }
   29268                 :            : 
   29269                 :            : // _tmp_93: dict | set | dictcomp | setcomp
   29270                 :            : static void *
   29271                 :     112968 : _tmp_93_rule(Parser *p)
   29272                 :            : {
   29273         [ -  + ]:     112968 :     if (p->level++ == MAXSTACK) {
   29274                 :          0 :         p->error_indicator = 1;
   29275                 :            :         PyErr_NoMemory();
   29276                 :            :     }
   29277         [ -  + ]:     112968 :     if (p->error_indicator) {
   29278                 :          0 :         p->level--;
   29279                 :          0 :         return NULL;
   29280                 :            :     }
   29281                 :     112968 :     void * _res = NULL;
   29282                 :     112968 :     int _mark = p->mark;
   29283                 :            :     { // dict
   29284         [ -  + ]:     112968 :         if (p->error_indicator) {
   29285                 :          0 :             p->level--;
   29286                 :          0 :             return NULL;
   29287                 :            :         }
   29288                 :            :         D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
   29289                 :            :         expr_ty dict_var;
   29290         [ +  + ]:     112968 :         if (
   29291                 :     112968 :             (dict_var = dict_rule(p))  // dict
   29292                 :            :         )
   29293                 :            :         {
   29294                 :            :             D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
   29295                 :      99173 :             _res = dict_var;
   29296                 :      99173 :             goto done;
   29297                 :            :         }
   29298                 :      13795 :         p->mark = _mark;
   29299                 :            :         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         [ +  + ]:      13795 :         if (p->error_indicator) {
   29304                 :         32 :             p->level--;
   29305                 :         32 :             return NULL;
   29306                 :            :         }
   29307                 :            :         D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
   29308                 :            :         expr_ty set_var;
   29309         [ +  + ]:      13763 :         if (
   29310                 :      13763 :             (set_var = set_rule(p))  // set
   29311                 :            :         )
   29312                 :            :         {
   29313                 :            :             D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
   29314                 :       8391 :             _res = set_var;
   29315                 :       8391 :             goto done;
   29316                 :            :         }
   29317                 :       5372 :         p->mark = _mark;
   29318                 :            :         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         [ +  + ]:       5372 :         if (p->error_indicator) {
   29323                 :          5 :             p->level--;
   29324                 :          5 :             return NULL;
   29325                 :            :         }
   29326                 :            :         D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
   29327                 :            :         expr_ty dictcomp_var;
   29328         [ +  + ]:       5367 :         if (
   29329                 :       5367 :             (dictcomp_var = dictcomp_rule(p))  // dictcomp
   29330                 :            :         )
   29331                 :            :         {
   29332                 :            :             D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
   29333                 :       3780 :             _res = dictcomp_var;
   29334                 :       3780 :             goto done;
   29335                 :            :         }
   29336                 :       1587 :         p->mark = _mark;
   29337                 :            :         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         [ +  + ]:       1587 :         if (p->error_indicator) {
   29342                 :          1 :             p->level--;
   29343                 :          1 :             return NULL;
   29344                 :            :         }
   29345                 :            :         D(fprintf(stderr, "%*c> _tmp_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
   29346                 :            :         expr_ty setcomp_var;
   29347         [ +  + ]:       1586 :         if (
   29348                 :       1586 :             (setcomp_var = setcomp_rule(p))  // setcomp
   29349                 :            :         )
   29350                 :            :         {
   29351                 :            :             D(fprintf(stderr, "%*c+ _tmp_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
   29352                 :       1528 :             _res = setcomp_var;
   29353                 :       1528 :             goto done;
   29354                 :            :         }
   29355                 :         58 :         p->mark = _mark;
   29356                 :            :         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                 :     112930 :   done:
   29361                 :     112930 :     p->level--;
   29362                 :     112930 :     return _res;
   29363                 :            : }
   29364                 :            : 
   29365                 :            : // _tmp_94: yield_expr | named_expression
   29366                 :            : static void *
   29367                 :     293747 : _tmp_94_rule(Parser *p)
   29368                 :            : {
   29369         [ -  + ]:     293747 :     if (p->level++ == MAXSTACK) {
   29370                 :          0 :         p->error_indicator = 1;
   29371                 :            :         PyErr_NoMemory();
   29372                 :            :     }
   29373         [ -  + ]:     293747 :     if (p->error_indicator) {
   29374                 :          0 :         p->level--;
   29375                 :          0 :         return NULL;
   29376                 :            :     }
   29377                 :     293747 :     void * _res = NULL;
   29378                 :     293747 :     int _mark = p->mark;
   29379                 :            :     { // yield_expr
   29380         [ -  + ]:     293747 :         if (p->error_indicator) {
   29381                 :          0 :             p->level--;
   29382                 :          0 :             return NULL;
   29383                 :            :         }
   29384                 :            :         D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
   29385                 :            :         expr_ty yield_expr_var;
   29386         [ +  + ]:     293747 :         if (
   29387                 :     293747 :             (yield_expr_var = yield_expr_rule(p))  // yield_expr
   29388                 :            :         )
   29389                 :            :         {
   29390                 :            :             D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
   29391                 :        504 :             _res = yield_expr_var;
   29392                 :        504 :             goto done;
   29393                 :            :         }
   29394                 :     293243 :         p->mark = _mark;
   29395                 :            :         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         [ -  + ]:     293243 :         if (p->error_indicator) {
   29400                 :          0 :             p->level--;
   29401                 :          0 :             return NULL;
   29402                 :            :         }
   29403                 :            :         D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
   29404                 :            :         expr_ty named_expression_var;
   29405         [ +  + ]:     293243 :         if (
   29406                 :     293243 :             (named_expression_var = named_expression_rule(p))  // named_expression
   29407                 :            :         )
   29408                 :            :         {
   29409                 :            :             D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
   29410                 :     293183 :             _res = named_expression_var;
   29411                 :     293183 :             goto done;
   29412                 :            :         }
   29413                 :         60 :         p->mark = _mark;
   29414                 :            :         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                 :     293747 :   done:
   29419                 :     293747 :     p->level--;
   29420                 :     293747 :     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                 :            :         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                 :            :         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                 :            :         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                 :         79 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :         79 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :         58 :         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                 :            :                     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                 :            :         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                 :            :         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                 :      37139 : _loop1_98_rule(Parser *p)
   29633                 :            : {
   29634         [ -  + ]:      37139 :     if (p->level++ == MAXSTACK) {
   29635                 :          0 :         p->error_indicator = 1;
   29636                 :            :         PyErr_NoMemory();
   29637                 :            :     }
   29638         [ -  + ]:      37139 :     if (p->error_indicator) {
   29639                 :          0 :         p->level--;
   29640                 :          0 :         return NULL;
   29641                 :            :     }
   29642                 :      37139 :     void *_res = NULL;
   29643                 :      37139 :     int _mark = p->mark;
   29644                 :      37139 :     int _start_mark = p->mark;
   29645                 :      37139 :     void **_children = PyMem_Malloc(sizeof(void *));
   29646         [ -  + ]:      37139 :     if (!_children) {
   29647                 :          0 :         p->error_indicator = 1;
   29648                 :            :         PyErr_NoMemory();
   29649                 :          0 :         p->level--;
   29650                 :          0 :         return NULL;
   29651                 :            :     }
   29652                 :      37139 :     Py_ssize_t _children_capacity = 1;
   29653                 :      37139 :     Py_ssize_t _n = 0;
   29654                 :            :     { // lambda_param_no_default
   29655         [ -  + ]:      37139 :         if (p->error_indicator) {
   29656                 :          0 :             p->level--;
   29657                 :          0 :             return NULL;
   29658                 :            :         }
   29659                 :            :         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                 :      37139 :         while (
   29662         [ +  + ]:     204643 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   29663                 :            :         )
   29664                 :            :         {
   29665                 :     167504 :             _res = lambda_param_no_default_var;
   29666         [ +  + ]:     167504 :             if (_n == _children_capacity) {
   29667                 :      81386 :                 _children_capacity *= 2;
   29668                 :      81386 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   29669         [ -  + ]:      81386 :                 if (!_new_children) {
   29670                 :          0 :                     p->error_indicator = 1;
   29671                 :            :                     PyErr_NoMemory();
   29672                 :          0 :                     p->level--;
   29673                 :          0 :                     return NULL;
   29674                 :            :                 }
   29675                 :      81386 :                 _children = _new_children;
   29676                 :            :             }
   29677                 :     167504 :             _children[_n++] = _res;
   29678                 :     167504 :             _mark = p->mark;
   29679                 :            :         }
   29680                 :      37139 :         p->mark = _mark;
   29681                 :            :         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   [ +  +  -  + ]:      37139 :     if (_n == 0 || p->error_indicator) {
   29685                 :       3143 :         PyMem_Free(_children);
   29686                 :       3143 :         p->level--;
   29687                 :       3143 :         return NULL;
   29688                 :            :     }
   29689                 :      33996 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   29690         [ -  + ]:      33996 :     if (!_seq) {
   29691                 :          0 :         PyMem_Free(_children);
   29692                 :          0 :         p->error_indicator = 1;
   29693                 :            :         PyErr_NoMemory();
   29694                 :          0 :         p->level--;
   29695                 :          0 :         return NULL;
   29696                 :            :     }
   29697         [ +  + ]:     201500 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   29698                 :      33996 :     PyMem_Free(_children);
   29699                 :      33996 :     _PyPegen_insert_memo(p, _start_mark, _loop1_98_type, _seq);
   29700                 :      33996 :     p->level--;
   29701                 :      33996 :     return _seq;
   29702                 :            : }
   29703                 :            : 
   29704                 :            : // _loop0_99: lambda_param_with_default
   29705                 :            : static asdl_seq *
   29706                 :      33996 : _loop0_99_rule(Parser *p)
   29707                 :            : {
   29708         [ -  + ]:      33996 :     if (p->level++ == MAXSTACK) {
   29709                 :          0 :         p->error_indicator = 1;
   29710                 :            :         PyErr_NoMemory();
   29711                 :            :     }
   29712         [ -  + ]:      33996 :     if (p->error_indicator) {
   29713                 :          0 :         p->level--;
   29714                 :          0 :         return NULL;
   29715                 :            :     }
   29716                 :      33996 :     void *_res = NULL;
   29717                 :      33996 :     int _mark = p->mark;
   29718                 :      33996 :     int _start_mark = p->mark;
   29719                 :      33996 :     void **_children = PyMem_Malloc(sizeof(void *));
   29720         [ -  + ]:      33996 :     if (!_children) {
   29721                 :          0 :         p->error_indicator = 1;
   29722                 :            :         PyErr_NoMemory();
   29723                 :          0 :         p->level--;
   29724                 :          0 :         return NULL;
   29725                 :            :     }
   29726                 :      33996 :     Py_ssize_t _children_capacity = 1;
   29727                 :      33996 :     Py_ssize_t _n = 0;
   29728                 :            :     { // lambda_param_with_default
   29729         [ -  + ]:      33996 :         if (p->error_indicator) {
   29730                 :          0 :             p->level--;
   29731                 :          0 :             return NULL;
   29732                 :            :         }
   29733                 :            :         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                 :      33996 :         while (
   29736         [ +  + ]:      34098 :             (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                 :            :                     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                 :      33996 :         p->mark = _mark;
   29755                 :            :         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                 :      33996 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   29759         [ -  + ]:      33996 :     if (!_seq) {
   29760                 :          0 :         PyMem_Free(_children);
   29761                 :          0 :         p->error_indicator = 1;
   29762                 :            :         PyErr_NoMemory();
   29763                 :          0 :         p->level--;
   29764                 :          0 :         return NULL;
   29765                 :            :     }
   29766         [ +  + ]:      34098 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   29767                 :      33996 :     PyMem_Free(_children);
   29768                 :      33996 :     _PyPegen_insert_memo(p, _start_mark, _loop0_99_type, _seq);
   29769                 :      33996 :     p->level--;
   29770                 :      33996 :     return _seq;
   29771                 :            : }
   29772                 :            : 
   29773                 :            : // _loop1_100: lambda_param_with_default
   29774                 :            : static asdl_seq *
   29775                 :       3143 : _loop1_100_rule(Parser *p)
   29776                 :            : {
   29777         [ -  + ]:       3143 :     if (p->level++ == MAXSTACK) {
   29778                 :          0 :         p->error_indicator = 1;
   29779                 :            :         PyErr_NoMemory();
   29780                 :            :     }
   29781         [ -  + ]:       3143 :     if (p->error_indicator) {
   29782                 :          0 :         p->level--;
   29783                 :          0 :         return NULL;
   29784                 :            :     }
   29785                 :       3143 :     void *_res = NULL;
   29786                 :       3143 :     int _mark = p->mark;
   29787                 :       3143 :     int _start_mark = p->mark;
   29788                 :       3143 :     void **_children = PyMem_Malloc(sizeof(void *));
   29789         [ -  + ]:       3143 :     if (!_children) {
   29790                 :          0 :         p->error_indicator = 1;
   29791                 :            :         PyErr_NoMemory();
   29792                 :          0 :         p->level--;
   29793                 :          0 :         return NULL;
   29794                 :            :     }
   29795                 :       3143 :     Py_ssize_t _children_capacity = 1;
   29796                 :       3143 :     Py_ssize_t _n = 0;
   29797                 :            :     { // lambda_param_with_default
   29798         [ -  + ]:       3143 :         if (p->error_indicator) {
   29799                 :          0 :             p->level--;
   29800                 :          0 :             return NULL;
   29801                 :            :         }
   29802                 :            :         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                 :       3143 :         while (
   29805         [ +  + ]:       3293 :             (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                 :            :                     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                 :       3143 :         p->mark = _mark;
   29824                 :            :         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   [ +  +  -  + ]:       3143 :     if (_n == 0 || p->error_indicator) {
   29828                 :       2999 :         PyMem_Free(_children);
   29829                 :       2999 :         p->level--;
   29830                 :       2999 :         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                 :            :         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                 :      37349 : _loop1_101_rule(Parser *p)
   29850                 :            : {
   29851         [ -  + ]:      37349 :     if (p->level++ == MAXSTACK) {
   29852                 :          0 :         p->error_indicator = 1;
   29853                 :            :         PyErr_NoMemory();
   29854                 :            :     }
   29855         [ -  + ]:      37349 :     if (p->error_indicator) {
   29856                 :          0 :         p->level--;
   29857                 :          0 :         return NULL;
   29858                 :            :     }
   29859                 :      37349 :     void *_res = NULL;
   29860                 :      37349 :     int _mark = p->mark;
   29861                 :      37349 :     int _start_mark = p->mark;
   29862                 :      37349 :     void **_children = PyMem_Malloc(sizeof(void *));
   29863         [ -  + ]:      37349 :     if (!_children) {
   29864                 :          0 :         p->error_indicator = 1;
   29865                 :            :         PyErr_NoMemory();
   29866                 :          0 :         p->level--;
   29867                 :          0 :         return NULL;
   29868                 :            :     }
   29869                 :      37349 :     Py_ssize_t _children_capacity = 1;
   29870                 :      37349 :     Py_ssize_t _n = 0;
   29871                 :            :     { // lambda_param_no_default
   29872         [ -  + ]:      37349 :         if (p->error_indicator) {
   29873                 :          0 :             p->level--;
   29874                 :          0 :             return NULL;
   29875                 :            :         }
   29876                 :            :         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                 :      37349 :         while (
   29879         [ +  + ]:     204986 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   29880                 :            :         )
   29881                 :            :         {
   29882                 :     167637 :             _res = lambda_param_no_default_var;
   29883         [ +  + ]:     167637 :             if (_n == _children_capacity) {
   29884                 :      81401 :                 _children_capacity *= 2;
   29885                 :      81401 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   29886         [ -  + ]:      81401 :                 if (!_new_children) {
   29887                 :          0 :                     p->error_indicator = 1;
   29888                 :            :                     PyErr_NoMemory();
   29889                 :          0 :                     p->level--;
   29890                 :          0 :                     return NULL;
   29891                 :            :                 }
   29892                 :      81401 :                 _children = _new_children;
   29893                 :            :             }
   29894                 :     167637 :             _children[_n++] = _res;
   29895                 :     167637 :             _mark = p->mark;
   29896                 :            :         }
   29897                 :      37349 :         p->mark = _mark;
   29898                 :            :         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   [ +  +  -  + ]:      37349 :     if (_n == 0 || p->error_indicator) {
   29902                 :       3235 :         PyMem_Free(_children);
   29903                 :       3235 :         p->level--;
   29904                 :       3235 :         return NULL;
   29905                 :            :     }
   29906                 :      34114 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   29907         [ -  + ]:      34114 :     if (!_seq) {
   29908                 :          0 :         PyMem_Free(_children);
   29909                 :          0 :         p->error_indicator = 1;
   29910                 :            :         PyErr_NoMemory();
   29911                 :          0 :         p->level--;
   29912                 :          0 :         return NULL;
   29913                 :            :     }
   29914         [ +  + ]:     201751 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   29915                 :      34114 :     PyMem_Free(_children);
   29916                 :      34114 :     _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
   29917                 :      34114 :     p->level--;
   29918                 :      34114 :     return _seq;
   29919                 :            : }
   29920                 :            : 
   29921                 :            : // _loop1_102: lambda_param_no_default
   29922                 :            : static asdl_seq *
   29923                 :      37273 : _loop1_102_rule(Parser *p)
   29924                 :            : {
   29925         [ -  + ]:      37273 :     if (p->level++ == MAXSTACK) {
   29926                 :          0 :         p->error_indicator = 1;
   29927                 :            :         PyErr_NoMemory();
   29928                 :            :     }
   29929         [ -  + ]:      37273 :     if (p->error_indicator) {
   29930                 :          0 :         p->level--;
   29931                 :          0 :         return NULL;
   29932                 :            :     }
   29933                 :      37273 :     void *_res = NULL;
   29934                 :      37273 :     int _mark = p->mark;
   29935                 :      37273 :     int _start_mark = p->mark;
   29936                 :      37273 :     void **_children = PyMem_Malloc(sizeof(void *));
   29937         [ -  + ]:      37273 :     if (!_children) {
   29938                 :          0 :         p->error_indicator = 1;
   29939                 :            :         PyErr_NoMemory();
   29940                 :          0 :         p->level--;
   29941                 :          0 :         return NULL;
   29942                 :            :     }
   29943                 :      37273 :     Py_ssize_t _children_capacity = 1;
   29944                 :      37273 :     Py_ssize_t _n = 0;
   29945                 :            :     { // lambda_param_no_default
   29946         [ -  + ]:      37273 :         if (p->error_indicator) {
   29947                 :          0 :             p->level--;
   29948                 :          0 :             return NULL;
   29949                 :            :         }
   29950                 :            :         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                 :      37273 :         while (
   29953         [ +  + ]:     204823 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   29954                 :            :         )
   29955                 :            :         {
   29956                 :     167550 :             _res = lambda_param_no_default_var;
   29957         [ +  + ]:     167550 :             if (_n == _children_capacity) {
   29958                 :      81390 :                 _children_capacity *= 2;
   29959                 :      81390 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   29960         [ -  + ]:      81390 :                 if (!_new_children) {
   29961                 :          0 :                     p->error_indicator = 1;
   29962                 :            :                     PyErr_NoMemory();
   29963                 :          0 :                     p->level--;
   29964                 :          0 :                     return NULL;
   29965                 :            :                 }
   29966                 :      81390 :                 _children = _new_children;
   29967                 :            :             }
   29968                 :     167550 :             _children[_n++] = _res;
   29969                 :     167550 :             _mark = p->mark;
   29970                 :            :         }
   29971                 :      37273 :         p->mark = _mark;
   29972                 :            :         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   [ +  +  -  + ]:      37273 :     if (_n == 0 || p->error_indicator) {
   29976                 :       3235 :         PyMem_Free(_children);
   29977                 :       3235 :         p->level--;
   29978                 :       3235 :         return NULL;
   29979                 :            :     }
   29980                 :      34038 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   29981         [ -  + ]:      34038 :     if (!_seq) {
   29982                 :          0 :         PyMem_Free(_children);
   29983                 :          0 :         p->error_indicator = 1;
   29984                 :            :         PyErr_NoMemory();
   29985                 :          0 :         p->level--;
   29986                 :          0 :         return NULL;
   29987                 :            :     }
   29988         [ +  + ]:     201588 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   29989                 :      34038 :     PyMem_Free(_children);
   29990                 :      34038 :     _PyPegen_insert_memo(p, _start_mark, _loop1_102_type, _seq);
   29991                 :      34038 :     p->level--;
   29992                 :      34038 :     return _seq;
   29993                 :            : }
   29994                 :            : 
   29995                 :            : // _loop0_103: lambda_param_no_default
   29996                 :            : static asdl_seq *
   29997                 :      37312 : _loop0_103_rule(Parser *p)
   29998                 :            : {
   29999         [ -  + ]:      37312 :     if (p->level++ == MAXSTACK) {
   30000                 :          0 :         p->error_indicator = 1;
   30001                 :            :         PyErr_NoMemory();
   30002                 :            :     }
   30003         [ -  + ]:      37312 :     if (p->error_indicator) {
   30004                 :          0 :         p->level--;
   30005                 :          0 :         return NULL;
   30006                 :            :     }
   30007                 :      37312 :     void *_res = NULL;
   30008                 :      37312 :     int _mark = p->mark;
   30009                 :      37312 :     int _start_mark = p->mark;
   30010                 :      37312 :     void **_children = PyMem_Malloc(sizeof(void *));
   30011         [ -  + ]:      37312 :     if (!_children) {
   30012                 :          0 :         p->error_indicator = 1;
   30013                 :            :         PyErr_NoMemory();
   30014                 :          0 :         p->level--;
   30015                 :          0 :         return NULL;
   30016                 :            :     }
   30017                 :      37312 :     Py_ssize_t _children_capacity = 1;
   30018                 :      37312 :     Py_ssize_t _n = 0;
   30019                 :            :     { // lambda_param_no_default
   30020         [ -  + ]:      37312 :         if (p->error_indicator) {
   30021                 :          0 :             p->level--;
   30022                 :          0 :             return NULL;
   30023                 :            :         }
   30024                 :            :         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                 :      37312 :         while (
   30027         [ +  + ]:     204845 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   30028                 :            :         )
   30029                 :            :         {
   30030                 :     167533 :             _res = lambda_param_no_default_var;
   30031         [ +  + ]:     167533 :             if (_n == _children_capacity) {
   30032                 :      81386 :                 _children_capacity *= 2;
   30033                 :      81386 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30034         [ -  + ]:      81386 :                 if (!_new_children) {
   30035                 :          0 :                     p->error_indicator = 1;
   30036                 :            :                     PyErr_NoMemory();
   30037                 :          0 :                     p->level--;
   30038                 :          0 :                     return NULL;
   30039                 :            :                 }
   30040                 :      81386 :                 _children = _new_children;
   30041                 :            :             }
   30042                 :     167533 :             _children[_n++] = _res;
   30043                 :     167533 :             _mark = p->mark;
   30044                 :            :         }
   30045                 :      37312 :         p->mark = _mark;
   30046                 :            :         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                 :      37312 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30050         [ -  + ]:      37312 :     if (!_seq) {
   30051                 :          0 :         PyMem_Free(_children);
   30052                 :          0 :         p->error_indicator = 1;
   30053                 :            :         PyErr_NoMemory();
   30054                 :          0 :         p->level--;
   30055                 :          0 :         return NULL;
   30056                 :            :     }
   30057         [ +  + ]:     204845 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30058                 :      37312 :     PyMem_Free(_children);
   30059                 :      37312 :     _PyPegen_insert_memo(p, _start_mark, _loop0_103_type, _seq);
   30060                 :      37312 :     p->level--;
   30061                 :      37312 :     return _seq;
   30062                 :            : }
   30063                 :            : 
   30064                 :            : // _loop1_104: lambda_param_with_default
   30065                 :            : static asdl_seq *
   30066                 :      37312 : _loop1_104_rule(Parser *p)
   30067                 :            : {
   30068         [ -  + ]:      37312 :     if (p->level++ == MAXSTACK) {
   30069                 :          0 :         p->error_indicator = 1;
   30070                 :            :         PyErr_NoMemory();
   30071                 :            :     }
   30072         [ -  + ]:      37312 :     if (p->error_indicator) {
   30073                 :          0 :         p->level--;
   30074                 :          0 :         return NULL;
   30075                 :            :     }
   30076                 :      37312 :     void *_res = NULL;
   30077                 :      37312 :     int _mark = p->mark;
   30078                 :      37312 :     int _start_mark = p->mark;
   30079                 :      37312 :     void **_children = PyMem_Malloc(sizeof(void *));
   30080         [ -  + ]:      37312 :     if (!_children) {
   30081                 :          0 :         p->error_indicator = 1;
   30082                 :            :         PyErr_NoMemory();
   30083                 :          0 :         p->level--;
   30084                 :          0 :         return NULL;
   30085                 :            :     }
   30086                 :      37312 :     Py_ssize_t _children_capacity = 1;
   30087                 :      37312 :     Py_ssize_t _n = 0;
   30088                 :            :     { // lambda_param_with_default
   30089         [ -  + ]:      37312 :         if (p->error_indicator) {
   30090                 :          0 :             p->level--;
   30091                 :          0 :             return NULL;
   30092                 :            :         }
   30093                 :            :         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                 :      37312 :         while (
   30096         [ +  + ]:      37673 :             (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                 :            :                     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                 :      37312 :         p->mark = _mark;
   30115                 :            :         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   [ +  +  +  + ]:      37312 :     if (_n == 0 || p->error_indicator) {
   30119                 :      37000 :         PyMem_Free(_children);
   30120                 :      37000 :         p->level--;
   30121                 :      37000 :         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                 :            :         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                 :      37255 : _loop0_105_rule(Parser *p)
   30141                 :            : {
   30142         [ -  + ]:      37255 :     if (p->level++ == MAXSTACK) {
   30143                 :          0 :         p->error_indicator = 1;
   30144                 :            :         PyErr_NoMemory();
   30145                 :            :     }
   30146         [ -  + ]:      37255 :     if (p->error_indicator) {
   30147                 :          0 :         p->level--;
   30148                 :          0 :         return NULL;
   30149                 :            :     }
   30150                 :      37255 :     void *_res = NULL;
   30151                 :      37255 :     int _mark = p->mark;
   30152                 :      37255 :     int _start_mark = p->mark;
   30153                 :      37255 :     void **_children = PyMem_Malloc(sizeof(void *));
   30154         [ -  + ]:      37255 :     if (!_children) {
   30155                 :          0 :         p->error_indicator = 1;
   30156                 :            :         PyErr_NoMemory();
   30157                 :          0 :         p->level--;
   30158                 :          0 :         return NULL;
   30159                 :            :     }
   30160                 :      37255 :     Py_ssize_t _children_capacity = 1;
   30161                 :      37255 :     Py_ssize_t _n = 0;
   30162                 :            :     { // lambda_param_no_default
   30163         [ -  + ]:      37255 :         if (p->error_indicator) {
   30164                 :          0 :             p->level--;
   30165                 :          0 :             return NULL;
   30166                 :            :         }
   30167                 :            :         D(fprintf(stderr, "%*c> _loop0_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
   30168                 :            :         arg_ty lambda_param_no_default_var;
   30169                 :      37255 :         while (
   30170         [ +  + ]:     204787 :             (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
   30171                 :            :         )
   30172                 :            :         {
   30173                 :     167532 :             _res = lambda_param_no_default_var;
   30174         [ +  + ]:     167532 :             if (_n == _children_capacity) {
   30175                 :      81386 :                 _children_capacity *= 2;
   30176                 :      81386 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30177         [ -  + ]:      81386 :                 if (!_new_children) {
   30178                 :          0 :                     p->error_indicator = 1;
   30179                 :            :                     PyErr_NoMemory();
   30180                 :          0 :                     p->level--;
   30181                 :          0 :                     return NULL;
   30182                 :            :                 }
   30183                 :      81386 :                 _children = _new_children;
   30184                 :            :             }
   30185                 :     167532 :             _children[_n++] = _res;
   30186                 :     167532 :             _mark = p->mark;
   30187                 :            :         }
   30188                 :      37255 :         p->mark = _mark;
   30189                 :            :         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                 :      37255 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30193         [ -  + ]:      37255 :     if (!_seq) {
   30194                 :          0 :         PyMem_Free(_children);
   30195                 :          0 :         p->error_indicator = 1;
   30196                 :            :         PyErr_NoMemory();
   30197                 :          0 :         p->level--;
   30198                 :          0 :         return NULL;
   30199                 :            :     }
   30200         [ +  + ]:     204787 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30201                 :      37255 :     PyMem_Free(_children);
   30202                 :      37255 :     _PyPegen_insert_memo(p, _start_mark, _loop0_105_type, _seq);
   30203                 :      37255 :     p->level--;
   30204                 :      37255 :     return _seq;
   30205                 :            : }
   30206                 :            : 
   30207                 :            : // _loop1_106: lambda_param_with_default
   30208                 :            : static asdl_seq *
   30209                 :      37255 : _loop1_106_rule(Parser *p)
   30210                 :            : {
   30211         [ -  + ]:      37255 :     if (p->level++ == MAXSTACK) {
   30212                 :          0 :         p->error_indicator = 1;
   30213                 :            :         PyErr_NoMemory();
   30214                 :            :     }
   30215         [ -  + ]:      37255 :     if (p->error_indicator) {
   30216                 :          0 :         p->level--;
   30217                 :          0 :         return NULL;
   30218                 :            :     }
   30219                 :      37255 :     void *_res = NULL;
   30220                 :      37255 :     int _mark = p->mark;
   30221                 :      37255 :     int _start_mark = p->mark;
   30222                 :      37255 :     void **_children = PyMem_Malloc(sizeof(void *));
   30223         [ -  + ]:      37255 :     if (!_children) {
   30224                 :          0 :         p->error_indicator = 1;
   30225                 :            :         PyErr_NoMemory();
   30226                 :          0 :         p->level--;
   30227                 :          0 :         return NULL;
   30228                 :            :     }
   30229                 :      37255 :     Py_ssize_t _children_capacity = 1;
   30230                 :      37255 :     Py_ssize_t _n = 0;
   30231                 :            :     { // lambda_param_with_default
   30232         [ -  + ]:      37255 :         if (p->error_indicator) {
   30233                 :          0 :             p->level--;
   30234                 :          0 :             return NULL;
   30235                 :            :         }
   30236                 :            :         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                 :      37255 :         while (
   30239         [ +  + ]:      37524 :             (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                 :            :                     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                 :      37255 :         p->mark = _mark;
   30258                 :            :         D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
   30259                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
   30260                 :            :     }
   30261   [ +  +  -  + ]:      37255 :     if (_n == 0 || p->error_indicator) {
   30262                 :      36998 :         PyMem_Free(_children);
   30263                 :      36998 :         p->level--;
   30264                 :      36998 :         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                 :            :         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                 :        295 : _loop0_107_rule(Parser *p)
   30284                 :            : {
   30285         [ -  + ]:        295 :     if (p->level++ == MAXSTACK) {
   30286                 :          0 :         p->error_indicator = 1;
   30287                 :            :         PyErr_NoMemory();
   30288                 :            :     }
   30289         [ -  + ]:        295 :     if (p->error_indicator) {
   30290                 :          0 :         p->level--;
   30291                 :          0 :         return NULL;
   30292                 :            :     }
   30293                 :        295 :     void *_res = NULL;
   30294                 :        295 :     int _mark = p->mark;
   30295                 :        295 :     int _start_mark = p->mark;
   30296                 :        295 :     void **_children = PyMem_Malloc(sizeof(void *));
   30297         [ -  + ]:        295 :     if (!_children) {
   30298                 :          0 :         p->error_indicator = 1;
   30299                 :            :         PyErr_NoMemory();
   30300                 :          0 :         p->level--;
   30301                 :          0 :         return NULL;
   30302                 :            :     }
   30303                 :        295 :     Py_ssize_t _children_capacity = 1;
   30304                 :        295 :     Py_ssize_t _n = 0;
   30305                 :            :     { // lambda_param_maybe_default
   30306         [ -  + ]:        295 :         if (p->error_indicator) {
   30307                 :          0 :             p->level--;
   30308                 :          0 :             return NULL;
   30309                 :            :         }
   30310                 :            :         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                 :        295 :         while (
   30313         [ +  + ]:        370 :             (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                 :            :                     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                 :        295 :         p->mark = _mark;
   30332                 :            :         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                 :        295 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30336         [ -  + ]:        295 :     if (!_seq) {
   30337                 :          0 :         PyMem_Free(_children);
   30338                 :          0 :         p->error_indicator = 1;
   30339                 :            :         PyErr_NoMemory();
   30340                 :          0 :         p->level--;
   30341                 :          0 :         return NULL;
   30342                 :            :     }
   30343         [ +  + ]:        370 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30344                 :        295 :     PyMem_Free(_children);
   30345                 :        295 :     _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
   30346                 :        295 :     p->level--;
   30347                 :        295 :     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                 :            :         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                 :            :         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                 :            :         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                 :        103 :         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                 :            :                     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                 :            :         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                 :            :         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                 :    1604162 : _loop1_109_rule(Parser *p)
   30427                 :            : {
   30428         [ -  + ]:    1604162 :     if (p->level++ == MAXSTACK) {
   30429                 :          0 :         p->error_indicator = 1;
   30430                 :            :         PyErr_NoMemory();
   30431                 :            :     }
   30432         [ -  + ]:    1604162 :     if (p->error_indicator) {
   30433                 :          0 :         p->level--;
   30434                 :          0 :         return NULL;
   30435                 :            :     }
   30436                 :    1604162 :     void *_res = NULL;
   30437                 :    1604162 :     int _mark = p->mark;
   30438                 :    1604162 :     int _start_mark = p->mark;
   30439                 :    1604162 :     void **_children = PyMem_Malloc(sizeof(void *));
   30440         [ -  + ]:    1604162 :     if (!_children) {
   30441                 :          0 :         p->error_indicator = 1;
   30442                 :            :         PyErr_NoMemory();
   30443                 :          0 :         p->level--;
   30444                 :          0 :         return NULL;
   30445                 :            :     }
   30446                 :    1604162 :     Py_ssize_t _children_capacity = 1;
   30447                 :    1604162 :     Py_ssize_t _n = 0;
   30448                 :            :     { // STRING
   30449         [ -  + ]:    1604162 :         if (p->error_indicator) {
   30450                 :          0 :             p->level--;
   30451                 :          0 :             return NULL;
   30452                 :            :         }
   30453                 :            :         D(fprintf(stderr, "%*c> _loop1_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
   30454                 :            :         expr_ty string_var;
   30455                 :    1604162 :         while (
   30456         [ +  + ]:    3290023 :             (string_var = _PyPegen_string_token(p))  // STRING
   30457                 :            :         )
   30458                 :            :         {
   30459                 :    1685861 :             _res = string_var;
   30460         [ +  + ]:    1685861 :             if (_n == _children_capacity) {
   30461                 :      25992 :                 _children_capacity *= 2;
   30462                 :      25992 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30463         [ -  + ]:      25992 :                 if (!_new_children) {
   30464                 :          0 :                     p->error_indicator = 1;
   30465                 :            :                     PyErr_NoMemory();
   30466                 :          0 :                     p->level--;
   30467                 :          0 :                     return NULL;
   30468                 :            :                 }
   30469                 :      25992 :                 _children = _new_children;
   30470                 :            :             }
   30471                 :    1685861 :             _children[_n++] = _res;
   30472                 :    1685861 :             _mark = p->mark;
   30473                 :            :         }
   30474                 :    1604162 :         p->mark = _mark;
   30475                 :            :         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   [ +  +  +  + ]:    1604162 :     if (_n == 0 || p->error_indicator) {
   30479                 :       3345 :         PyMem_Free(_children);
   30480                 :       3345 :         p->level--;
   30481                 :       3345 :         return NULL;
   30482                 :            :     }
   30483                 :    1600817 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30484         [ -  + ]:    1600817 :     if (!_seq) {
   30485                 :          0 :         PyMem_Free(_children);
   30486                 :          0 :         p->error_indicator = 1;
   30487                 :            :         PyErr_NoMemory();
   30488                 :          0 :         p->level--;
   30489                 :          0 :         return NULL;
   30490                 :            :     }
   30491         [ +  + ]:    3286676 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30492                 :    1600817 :     PyMem_Free(_children);
   30493                 :    1600817 :     _PyPegen_insert_memo(p, _start_mark, _loop1_109_type, _seq);
   30494                 :    1600817 :     p->level--;
   30495                 :    1600817 :     return _seq;
   30496                 :            : }
   30497                 :            : 
   30498                 :            : // _tmp_110: star_named_expression ',' star_named_expressions?
   30499                 :            : static void *
   30500                 :     863752 : _tmp_110_rule(Parser *p)
   30501                 :            : {
   30502         [ -  + ]:     863752 :     if (p->level++ == MAXSTACK) {
   30503                 :          0 :         p->error_indicator = 1;
   30504                 :            :         PyErr_NoMemory();
   30505                 :            :     }
   30506         [ -  + ]:     863752 :     if (p->error_indicator) {
   30507                 :          0 :         p->level--;
   30508                 :          0 :         return NULL;
   30509                 :            :     }
   30510                 :     863752 :     void * _res = NULL;
   30511                 :     863752 :     int _mark = p->mark;
   30512                 :            :     { // star_named_expression ',' star_named_expressions?
   30513         [ -  + ]:     863752 :         if (p->error_indicator) {
   30514                 :          0 :             p->level--;
   30515                 :          0 :             return NULL;
   30516                 :            :         }
   30517                 :            :         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         [ +  + ]:     863752 :         if (
   30522                 :     863752 :             (y = star_named_expression_rule(p))  // star_named_expression
   30523         [ +  + ]:     841478 :             &&
   30524                 :     841478 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   30525                 :     548260 :             &&
   30526         [ +  + ]:     548260 :             (z = star_named_expressions_rule(p), !p->error_indicator)  // star_named_expressions?
   30527                 :            :         )
   30528                 :            :         {
   30529                 :            :             D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
   30530                 :     548243 :             _res = _PyPegen_seq_insert_in_front ( p , y , z );
   30531   [ -  +  -  - ]:     548243 :             if (_res == NULL && PyErr_Occurred()) {
   30532                 :          0 :                 p->error_indicator = 1;
   30533                 :          0 :                 p->level--;
   30534                 :          0 :                 return NULL;
   30535                 :            :             }
   30536                 :     548243 :             goto done;
   30537                 :            :         }
   30538                 :     315509 :         p->mark = _mark;
   30539                 :            :         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                 :     315509 :     _res = NULL;
   30543                 :     863752 :   done:
   30544                 :     863752 :     p->level--;
   30545                 :     863752 :     return _res;
   30546                 :            : }
   30547                 :            : 
   30548                 :            : // _loop0_112: ',' double_starred_kvpair
   30549                 :            : static asdl_seq *
   30550                 :      65085 : _loop0_112_rule(Parser *p)
   30551                 :            : {
   30552         [ -  + ]:      65085 :     if (p->level++ == MAXSTACK) {
   30553                 :          0 :         p->error_indicator = 1;
   30554                 :            :         PyErr_NoMemory();
   30555                 :            :     }
   30556         [ -  + ]:      65085 :     if (p->error_indicator) {
   30557                 :          0 :         p->level--;
   30558                 :          0 :         return NULL;
   30559                 :            :     }
   30560                 :      65085 :     void *_res = NULL;
   30561                 :      65085 :     int _mark = p->mark;
   30562                 :      65085 :     int _start_mark = p->mark;
   30563                 :      65085 :     void **_children = PyMem_Malloc(sizeof(void *));
   30564         [ -  + ]:      65085 :     if (!_children) {
   30565                 :          0 :         p->error_indicator = 1;
   30566                 :            :         PyErr_NoMemory();
   30567                 :          0 :         p->level--;
   30568                 :          0 :         return NULL;
   30569                 :            :     }
   30570                 :      65085 :     Py_ssize_t _children_capacity = 1;
   30571                 :      65085 :     Py_ssize_t _n = 0;
   30572                 :            :     { // ',' double_starred_kvpair
   30573         [ -  + ]:      65085 :         if (p->error_indicator) {
   30574                 :          0 :             p->level--;
   30575                 :          0 :             return NULL;
   30576                 :            :         }
   30577                 :            :         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                 :      65085 :         while (
   30581                 :    1524449 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   30582   [ +  +  +  + ]:    3006287 :             &&
   30583                 :    1481838 :             (elem = double_starred_kvpair_rule(p))  // double_starred_kvpair
   30584                 :            :         )
   30585                 :            :         {
   30586                 :    1459364 :             _res = elem;
   30587   [ -  +  -  - ]:    1459364 :             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         [ +  + ]:    1459364 :             if (_n == _children_capacity) {
   30594                 :     109440 :                 _children_capacity *= 2;
   30595                 :     109440 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30596         [ -  + ]:     109440 :                 if (!_new_children) {
   30597                 :          0 :                     p->error_indicator = 1;
   30598                 :            :                     PyErr_NoMemory();
   30599                 :          0 :                     p->level--;
   30600                 :          0 :                     return NULL;
   30601                 :            :                 }
   30602                 :     109440 :                 _children = _new_children;
   30603                 :            :             }
   30604                 :    1459364 :             _children[_n++] = _res;
   30605                 :    1459364 :             _mark = p->mark;
   30606                 :            :         }
   30607                 :      65085 :         p->mark = _mark;
   30608                 :            :         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                 :      65085 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30612         [ -  + ]:      65085 :     if (!_seq) {
   30613                 :          0 :         PyMem_Free(_children);
   30614                 :          0 :         p->error_indicator = 1;
   30615                 :            :         PyErr_NoMemory();
   30616                 :          0 :         p->level--;
   30617                 :          0 :         return NULL;
   30618                 :            :     }
   30619         [ +  + ]:    1524449 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30620                 :      65085 :     PyMem_Free(_children);
   30621                 :      65085 :     _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
   30622                 :      65085 :     p->level--;
   30623                 :      65085 :     return _seq;
   30624                 :            : }
   30625                 :            : 
   30626                 :            : // _gather_111: double_starred_kvpair _loop0_112
   30627                 :            : static asdl_seq *
   30628                 :     112968 : _gather_111_rule(Parser *p)
   30629                 :            : {
   30630         [ -  + ]:     112968 :     if (p->level++ == MAXSTACK) {
   30631                 :          0 :         p->error_indicator = 1;
   30632                 :            :         PyErr_NoMemory();
   30633                 :            :     }
   30634         [ -  + ]:     112968 :     if (p->error_indicator) {
   30635                 :          0 :         p->level--;
   30636                 :          0 :         return NULL;
   30637                 :            :     }
   30638                 :     112968 :     asdl_seq * _res = NULL;
   30639                 :     112968 :     int _mark = p->mark;
   30640                 :            :     { // double_starred_kvpair _loop0_112
   30641         [ -  + ]:     112968 :         if (p->error_indicator) {
   30642                 :          0 :             p->level--;
   30643                 :          0 :             return NULL;
   30644                 :            :         }
   30645                 :            :         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         [ +  + ]:     112968 :         if (
   30649                 :     112968 :             (elem = double_starred_kvpair_rule(p))  // double_starred_kvpair
   30650         [ +  - ]:      65085 :             &&
   30651                 :      65085 :             (seq = _loop0_112_rule(p))  // _loop0_112
   30652                 :            :         )
   30653                 :            :         {
   30654                 :            :             D(fprintf(stderr, "%*c+ _gather_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_112"));
   30655                 :      65085 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   30656                 :      65085 :             goto done;
   30657                 :            :         }
   30658                 :      47883 :         p->mark = _mark;
   30659                 :            :         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                 :      47883 :     _res = NULL;
   30663                 :     112968 :   done:
   30664                 :     112968 :     p->level--;
   30665                 :     112968 :     return _res;
   30666                 :            : }
   30667                 :            : 
   30668                 :            : // _loop1_113: for_if_clause
   30669                 :            : static asdl_seq *
   30670                 :    2124538 : _loop1_113_rule(Parser *p)
   30671                 :            : {
   30672         [ -  + ]:    2124538 :     if (p->level++ == MAXSTACK) {
   30673                 :          0 :         p->error_indicator = 1;
   30674                 :            :         PyErr_NoMemory();
   30675                 :            :     }
   30676         [ -  + ]:    2124538 :     if (p->error_indicator) {
   30677                 :          0 :         p->level--;
   30678                 :          0 :         return NULL;
   30679                 :            :     }
   30680                 :    2124538 :     void *_res = NULL;
   30681                 :    2124538 :     int _mark = p->mark;
   30682                 :    2124538 :     int _start_mark = p->mark;
   30683                 :    2124538 :     void **_children = PyMem_Malloc(sizeof(void *));
   30684         [ -  + ]:    2124538 :     if (!_children) {
   30685                 :          0 :         p->error_indicator = 1;
   30686                 :            :         PyErr_NoMemory();
   30687                 :          0 :         p->level--;
   30688                 :          0 :         return NULL;
   30689                 :            :     }
   30690                 :    2124538 :     Py_ssize_t _children_capacity = 1;
   30691                 :    2124538 :     Py_ssize_t _n = 0;
   30692                 :            :     { // for_if_clause
   30693         [ -  + ]:    2124538 :         if (p->error_indicator) {
   30694                 :          0 :             p->level--;
   30695                 :          0 :             return NULL;
   30696                 :            :         }
   30697                 :            :         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                 :    2124538 :         while (
   30700         [ +  + ]:    2176116 :             (for_if_clause_var = for_if_clause_rule(p))  // for_if_clause
   30701                 :            :         )
   30702                 :            :         {
   30703                 :      51578 :             _res = for_if_clause_var;
   30704         [ +  + ]:      51578 :             if (_n == _children_capacity) {
   30705                 :       1950 :                 _children_capacity *= 2;
   30706                 :       1950 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30707         [ -  + ]:       1950 :                 if (!_new_children) {
   30708                 :          0 :                     p->error_indicator = 1;
   30709                 :            :                     PyErr_NoMemory();
   30710                 :          0 :                     p->level--;
   30711                 :          0 :                     return NULL;
   30712                 :            :                 }
   30713                 :       1950 :                 _children = _new_children;
   30714                 :            :             }
   30715                 :      51578 :             _children[_n++] = _res;
   30716                 :      51578 :             _mark = p->mark;
   30717                 :            :         }
   30718                 :    2124538 :         p->mark = _mark;
   30719                 :            :         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   [ +  +  -  + ]:    2124538 :     if (_n == 0 || p->error_indicator) {
   30723                 :    2074910 :         PyMem_Free(_children);
   30724                 :    2074910 :         p->level--;
   30725                 :    2074910 :         return NULL;
   30726                 :            :     }
   30727                 :      49628 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30728         [ -  + ]:      49628 :     if (!_seq) {
   30729                 :          0 :         PyMem_Free(_children);
   30730                 :          0 :         p->error_indicator = 1;
   30731                 :            :         PyErr_NoMemory();
   30732                 :          0 :         p->level--;
   30733                 :          0 :         return NULL;
   30734                 :            :     }
   30735         [ +  + ]:     101206 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30736                 :      49628 :     PyMem_Free(_children);
   30737                 :      49628 :     _PyPegen_insert_memo(p, _start_mark, _loop1_113_type, _seq);
   30738                 :      49628 :     p->level--;
   30739                 :      49628 :     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                 :            :         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                 :            :         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                 :            :         D(fprintf(stderr, "%*c> _loop0_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
   30772                 :            :         void *_tmp_228_var;
   30773                 :        508 :         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                 :            :                     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                 :            :         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                 :            :         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                 :      51072 : _loop0_115_rule(Parser *p)
   30814                 :            : {
   30815         [ -  + ]:      51072 :     if (p->level++ == MAXSTACK) {
   30816                 :          0 :         p->error_indicator = 1;
   30817                 :            :         PyErr_NoMemory();
   30818                 :            :     }
   30819         [ -  + ]:      51072 :     if (p->error_indicator) {
   30820                 :          0 :         p->level--;
   30821                 :          0 :         return NULL;
   30822                 :            :     }
   30823                 :      51072 :     void *_res = NULL;
   30824                 :      51072 :     int _mark = p->mark;
   30825                 :      51072 :     int _start_mark = p->mark;
   30826                 :      51072 :     void **_children = PyMem_Malloc(sizeof(void *));
   30827         [ -  + ]:      51072 :     if (!_children) {
   30828                 :          0 :         p->error_indicator = 1;
   30829                 :            :         PyErr_NoMemory();
   30830                 :          0 :         p->level--;
   30831                 :          0 :         return NULL;
   30832                 :            :     }
   30833                 :      51072 :     Py_ssize_t _children_capacity = 1;
   30834                 :      51072 :     Py_ssize_t _n = 0;
   30835                 :            :     { // ('if' disjunction)
   30836         [ -  + ]:      51072 :         if (p->error_indicator) {
   30837                 :          0 :             p->level--;
   30838                 :          0 :             return NULL;
   30839                 :            :         }
   30840                 :            :         D(fprintf(stderr, "%*c> _loop0_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
   30841                 :            :         void *_tmp_229_var;
   30842                 :      51072 :         while (
   30843         [ +  + ]:      63504 :             (_tmp_229_var = _tmp_229_rule(p))  // 'if' disjunction
   30844                 :            :         )
   30845                 :            :         {
   30846                 :      12432 :             _res = _tmp_229_var;
   30847         [ +  + ]:      12432 :             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                 :            :                     PyErr_NoMemory();
   30853                 :          0 :                     p->level--;
   30854                 :          0 :                     return NULL;
   30855                 :            :                 }
   30856                 :         22 :                 _children = _new_children;
   30857                 :            :             }
   30858                 :      12432 :             _children[_n++] = _res;
   30859                 :      12432 :             _mark = p->mark;
   30860                 :            :         }
   30861                 :      51072 :         p->mark = _mark;
   30862                 :            :         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                 :      51072 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   30866         [ -  + ]:      51072 :     if (!_seq) {
   30867                 :          0 :         PyMem_Free(_children);
   30868                 :          0 :         p->error_indicator = 1;
   30869                 :            :         PyErr_NoMemory();
   30870                 :          0 :         p->level--;
   30871                 :          0 :         return NULL;
   30872                 :            :     }
   30873         [ +  + ]:      63504 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   30874                 :      51072 :     PyMem_Free(_children);
   30875                 :      51072 :     _PyPegen_insert_memo(p, _start_mark, _loop0_115_type, _seq);
   30876                 :      51072 :     p->level--;
   30877                 :      51072 :     return _seq;
   30878                 :            : }
   30879                 :            : 
   30880                 :            : // _tmp_116: assignment_expression | expression !':='
   30881                 :            : static void *
   30882                 :    3090425 : _tmp_116_rule(Parser *p)
   30883                 :            : {
   30884         [ -  + ]:    3090425 :     if (p->level++ == MAXSTACK) {
   30885                 :          0 :         p->error_indicator = 1;
   30886                 :            :         PyErr_NoMemory();
   30887                 :            :     }
   30888         [ -  + ]:    3090425 :     if (p->error_indicator) {
   30889                 :          0 :         p->level--;
   30890                 :          0 :         return NULL;
   30891                 :            :     }
   30892                 :    3090425 :     void * _res = NULL;
   30893                 :    3090425 :     int _mark = p->mark;
   30894                 :            :     { // assignment_expression
   30895         [ -  + ]:    3090425 :         if (p->error_indicator) {
   30896                 :          0 :             p->level--;
   30897                 :          0 :             return NULL;
   30898                 :            :         }
   30899                 :            :         D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
   30900                 :            :         expr_ty assignment_expression_var;
   30901         [ +  + ]:    3090425 :         if (
   30902                 :    3090425 :             (assignment_expression_var = assignment_expression_rule(p))  // assignment_expression
   30903                 :            :         )
   30904                 :            :         {
   30905                 :            :             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                 :    3090367 :         p->mark = _mark;
   30910                 :            :         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         [ +  + ]:    3090367 :         if (p->error_indicator) {
   30915                 :         27 :             p->level--;
   30916                 :         27 :             return NULL;
   30917                 :            :         }
   30918                 :            :         D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
   30919                 :            :         expr_ty expression_var;
   30920         [ +  + ]:    3090340 :         if (
   30921                 :    3090340 :             (expression_var = expression_rule(p))  // expression
   30922         [ +  + ]:    2089685 :             &&
   30923                 :    2089685 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53)  // token=':='
   30924                 :            :         )
   30925                 :            :         {
   30926                 :            :             D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
   30927                 :    2089679 :             _res = expression_var;
   30928                 :    2089679 :             goto done;
   30929                 :            :         }
   30930                 :    1000661 :         p->mark = _mark;
   30931                 :            :         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                 :    1000661 :     _res = NULL;
   30935                 :    3090398 :   done:
   30936                 :    3090398 :     p->level--;
   30937                 :    3090398 :     return _res;
   30938                 :            : }
   30939                 :            : 
   30940                 :            : // _loop0_118: ',' (starred_expression | (assignment_expression | expression !':=') !'=')
   30941                 :            : static asdl_seq *
   30942                 :    1344264 : _loop0_118_rule(Parser *p)
   30943                 :            : {
   30944         [ -  + ]:    1344264 :     if (p->level++ == MAXSTACK) {
   30945                 :          0 :         p->error_indicator = 1;
   30946                 :            :         PyErr_NoMemory();
   30947                 :            :     }
   30948         [ -  + ]:    1344264 :     if (p->error_indicator) {
   30949                 :          0 :         p->level--;
   30950                 :          0 :         return NULL;
   30951                 :            :     }
   30952                 :    1344264 :     void *_res = NULL;
   30953                 :    1344264 :     int _mark = p->mark;
   30954                 :    1344264 :     int _start_mark = p->mark;
   30955                 :    1344264 :     void **_children = PyMem_Malloc(sizeof(void *));
   30956         [ -  + ]:    1344264 :     if (!_children) {
   30957                 :          0 :         p->error_indicator = 1;
   30958                 :            :         PyErr_NoMemory();
   30959                 :          0 :         p->level--;
   30960                 :          0 :         return NULL;
   30961                 :            :     }
   30962                 :    1344264 :     Py_ssize_t _children_capacity = 1;
   30963                 :    1344264 :     Py_ssize_t _n = 0;
   30964                 :            :     { // ',' (starred_expression | (assignment_expression | expression !':=') !'=')
   30965         [ -  + ]:    1344264 :         if (p->error_indicator) {
   30966                 :          0 :             p->level--;
   30967                 :          0 :             return NULL;
   30968                 :            :         }
   30969                 :            :         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                 :    1344264 :         while (
   30973                 :    2095148 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   30974   [ +  +  +  + ]:    2918541 :             &&
   30975                 :     823393 :             (elem = _tmp_230_rule(p))  // starred_expression | (assignment_expression | expression !':=') !'='
   30976                 :            :         )
   30977                 :            :         {
   30978                 :     750884 :             _res = elem;
   30979   [ -  +  -  - ]:     750884 :             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         [ +  + ]:     750884 :             if (_n == _children_capacity) {
   30986                 :     165708 :                 _children_capacity *= 2;
   30987                 :     165708 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   30988         [ -  + ]:     165708 :                 if (!_new_children) {
   30989                 :          0 :                     p->error_indicator = 1;
   30990                 :            :                     PyErr_NoMemory();
   30991                 :          0 :                     p->level--;
   30992                 :          0 :                     return NULL;
   30993                 :            :                 }
   30994                 :     165708 :                 _children = _new_children;
   30995                 :            :             }
   30996                 :     750884 :             _children[_n++] = _res;
   30997                 :     750884 :             _mark = p->mark;
   30998                 :            :         }
   30999                 :    1344264 :         p->mark = _mark;
   31000                 :            :         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                 :    1344264 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31004         [ -  + ]:    1344264 :     if (!_seq) {
   31005                 :          0 :         PyMem_Free(_children);
   31006                 :          0 :         p->error_indicator = 1;
   31007                 :            :         PyErr_NoMemory();
   31008                 :          0 :         p->level--;
   31009                 :          0 :         return NULL;
   31010                 :            :     }
   31011         [ +  + ]:    2095148 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31012                 :    1344264 :     PyMem_Free(_children);
   31013                 :    1344264 :     _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
   31014                 :    1344264 :     p->level--;
   31015                 :    1344264 :     return _seq;
   31016                 :            : }
   31017                 :            : 
   31018                 :            : // _gather_117:
   31019                 :            : //     | (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118
   31020                 :            : static asdl_seq *
   31021                 :    1928538 : _gather_117_rule(Parser *p)
   31022                 :            : {
   31023         [ -  + ]:    1928538 :     if (p->level++ == MAXSTACK) {
   31024                 :          0 :         p->error_indicator = 1;
   31025                 :            :         PyErr_NoMemory();
   31026                 :            :     }
   31027         [ -  + ]:    1928538 :     if (p->error_indicator) {
   31028                 :          0 :         p->level--;
   31029                 :          0 :         return NULL;
   31030                 :            :     }
   31031                 :    1928538 :     asdl_seq * _res = NULL;
   31032                 :    1928538 :     int _mark = p->mark;
   31033                 :            :     { // (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118
   31034         [ -  + ]:    1928538 :         if (p->error_indicator) {
   31035                 :          0 :             p->level--;
   31036                 :          0 :             return NULL;
   31037                 :            :         }
   31038                 :            :         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         [ +  + ]:    1928538 :         if (
   31042                 :    1928538 :             (elem = _tmp_230_rule(p))  // starred_expression | (assignment_expression | expression !':=') !'='
   31043         [ +  - ]:    1344264 :             &&
   31044                 :    1344264 :             (seq = _loop0_118_rule(p))  // _loop0_118
   31045                 :            :         )
   31046                 :            :         {
   31047                 :            :             D(fprintf(stderr, "%*c+ _gather_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_118"));
   31048                 :    1344264 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   31049                 :    1344264 :             goto done;
   31050                 :            :         }
   31051                 :     584274 :         p->mark = _mark;
   31052                 :            :         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                 :     584274 :     _res = NULL;
   31056                 :    1928538 :   done:
   31057                 :    1928538 :     p->level--;
   31058                 :    1928538 :     return _res;
   31059                 :            : }
   31060                 :            : 
   31061                 :            : // _tmp_119: ',' kwargs
   31062                 :            : static void *
   31063                 :    1344264 : _tmp_119_rule(Parser *p)
   31064                 :            : {
   31065         [ -  + ]:    1344264 :     if (p->level++ == MAXSTACK) {
   31066                 :          0 :         p->error_indicator = 1;
   31067                 :            :         PyErr_NoMemory();
   31068                 :            :     }
   31069         [ +  + ]:    1344264 :     if (p->error_indicator) {
   31070                 :         14 :         p->level--;
   31071                 :         14 :         return NULL;
   31072                 :            :     }
   31073                 :    1344250 :     void * _res = NULL;
   31074                 :    1344250 :     int _mark = p->mark;
   31075                 :            :     { // ',' kwargs
   31076         [ -  + ]:    1344250 :         if (p->error_indicator) {
   31077                 :          0 :             p->level--;
   31078                 :          0 :             return NULL;
   31079                 :            :         }
   31080                 :            :         D(fprintf(stderr, "%*c> _tmp_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
   31081                 :            :         Token * _literal;
   31082                 :            :         asdl_seq* k;
   31083         [ +  + ]:    1344250 :         if (
   31084                 :    1344250 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   31085         [ +  + ]:      72495 :             &&
   31086                 :      72495 :             (k = kwargs_rule(p))  // kwargs
   31087                 :            :         )
   31088                 :            :         {
   31089                 :            :             D(fprintf(stderr, "%*c+ _tmp_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
   31090                 :      67393 :             _res = k;
   31091   [ -  +  -  - ]:      67393 :             if (_res == NULL && PyErr_Occurred()) {
   31092                 :          0 :                 p->error_indicator = 1;
   31093                 :          0 :                 p->level--;
   31094                 :          0 :                 return NULL;
   31095                 :            :             }
   31096                 :      67393 :             goto done;
   31097                 :            :         }
   31098                 :    1276857 :         p->mark = _mark;
   31099                 :            :         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                 :    1276857 :     _res = NULL;
   31103                 :    1344250 :   done:
   31104                 :    1344250 :     p->level--;
   31105                 :    1344250 :     return _res;
   31106                 :            : }
   31107                 :            : 
   31108                 :            : // _loop0_121: ',' kwarg_or_starred
   31109                 :            : static asdl_seq *
   31110                 :      98713 : _loop0_121_rule(Parser *p)
   31111                 :            : {
   31112         [ -  + ]:      98713 :     if (p->level++ == MAXSTACK) {
   31113                 :          0 :         p->error_indicator = 1;
   31114                 :            :         PyErr_NoMemory();
   31115                 :            :     }
   31116         [ -  + ]:      98713 :     if (p->error_indicator) {
   31117                 :          0 :         p->level--;
   31118                 :          0 :         return NULL;
   31119                 :            :     }
   31120                 :      98713 :     void *_res = NULL;
   31121                 :      98713 :     int _mark = p->mark;
   31122                 :      98713 :     int _start_mark = p->mark;
   31123                 :      98713 :     void **_children = PyMem_Malloc(sizeof(void *));
   31124         [ -  + ]:      98713 :     if (!_children) {
   31125                 :          0 :         p->error_indicator = 1;
   31126                 :            :         PyErr_NoMemory();
   31127                 :          0 :         p->level--;
   31128                 :          0 :         return NULL;
   31129                 :            :     }
   31130                 :      98713 :     Py_ssize_t _children_capacity = 1;
   31131                 :      98713 :     Py_ssize_t _n = 0;
   31132                 :            :     { // ',' kwarg_or_starred
   31133         [ -  + ]:      98713 :         if (p->error_indicator) {
   31134                 :          0 :             p->level--;
   31135                 :          0 :             return NULL;
   31136                 :            :         }
   31137                 :            :         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                 :      98713 :         while (
   31141                 :     175247 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   31142   [ +  +  +  + ]:     260348 :             &&
   31143                 :      85101 :             (elem = kwarg_or_starred_rule(p))  // kwarg_or_starred
   31144                 :            :         )
   31145                 :            :         {
   31146                 :      76534 :             _res = elem;
   31147   [ -  +  -  - ]:      76534 :             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         [ +  + ]:      76534 :             if (_n == _children_capacity) {
   31154                 :      29841 :                 _children_capacity *= 2;
   31155                 :      29841 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   31156         [ -  + ]:      29841 :                 if (!_new_children) {
   31157                 :          0 :                     p->error_indicator = 1;
   31158                 :            :                     PyErr_NoMemory();
   31159                 :          0 :                     p->level--;
   31160                 :          0 :                     return NULL;
   31161                 :            :                 }
   31162                 :      29841 :                 _children = _new_children;
   31163                 :            :             }
   31164                 :      76534 :             _children[_n++] = _res;
   31165                 :      76534 :             _mark = p->mark;
   31166                 :            :         }
   31167                 :      98713 :         p->mark = _mark;
   31168                 :            :         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                 :      98713 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31172         [ -  + ]:      98713 :     if (!_seq) {
   31173                 :          0 :         PyMem_Free(_children);
   31174                 :          0 :         p->error_indicator = 1;
   31175                 :            :         PyErr_NoMemory();
   31176                 :          0 :         p->level--;
   31177                 :          0 :         return NULL;
   31178                 :            :     }
   31179         [ +  + ]:     175247 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31180                 :      98713 :     PyMem_Free(_children);
   31181                 :      98713 :     _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
   31182                 :      98713 :     p->level--;
   31183                 :      98713 :     return _seq;
   31184                 :            : }
   31185                 :            : 
   31186                 :            : // _gather_120: kwarg_or_starred _loop0_121
   31187                 :            : static asdl_seq *
   31188                 :     656767 : _gather_120_rule(Parser *p)
   31189                 :            : {
   31190         [ -  + ]:     656767 :     if (p->level++ == MAXSTACK) {
   31191                 :          0 :         p->error_indicator = 1;
   31192                 :            :         PyErr_NoMemory();
   31193                 :            :     }
   31194         [ -  + ]:     656767 :     if (p->error_indicator) {
   31195                 :          0 :         p->level--;
   31196                 :          0 :         return NULL;
   31197                 :            :     }
   31198                 :     656767 :     asdl_seq * _res = NULL;
   31199                 :     656767 :     int _mark = p->mark;
   31200                 :            :     { // kwarg_or_starred _loop0_121
   31201         [ -  + ]:     656767 :         if (p->error_indicator) {
   31202                 :          0 :             p->level--;
   31203                 :          0 :             return NULL;
   31204                 :            :         }
   31205                 :            :         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         [ +  + ]:     656767 :         if (
   31209                 :     656767 :             (elem = kwarg_or_starred_rule(p))  // kwarg_or_starred
   31210         [ +  - ]:      98713 :             &&
   31211                 :      98713 :             (seq = _loop0_121_rule(p))  // _loop0_121
   31212                 :            :         )
   31213                 :            :         {
   31214                 :            :             D(fprintf(stderr, "%*c+ _gather_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_121"));
   31215                 :      98713 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   31216                 :      98713 :             goto done;
   31217                 :            :         }
   31218                 :     558054 :         p->mark = _mark;
   31219                 :            :         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                 :     558054 :     _res = NULL;
   31223                 :     656767 :   done:
   31224                 :     656767 :     p->level--;
   31225                 :     656767 :     return _res;
   31226                 :            : }
   31227                 :            : 
   31228                 :            : // _loop0_123: ',' kwarg_or_double_starred
   31229                 :            : static asdl_seq *
   31230                 :       1044 : _loop0_123_rule(Parser *p)
   31231                 :            : {
   31232         [ -  + ]:       1044 :     if (p->level++ == MAXSTACK) {
   31233                 :          0 :         p->error_indicator = 1;
   31234                 :            :         PyErr_NoMemory();
   31235                 :            :     }
   31236         [ -  + ]:       1044 :     if (p->error_indicator) {
   31237                 :          0 :         p->level--;
   31238                 :          0 :         return NULL;
   31239                 :            :     }
   31240                 :       1044 :     void *_res = NULL;
   31241                 :       1044 :     int _mark = p->mark;
   31242                 :       1044 :     int _start_mark = p->mark;
   31243                 :       1044 :     void **_children = PyMem_Malloc(sizeof(void *));
   31244         [ -  + ]:       1044 :     if (!_children) {
   31245                 :          0 :         p->error_indicator = 1;
   31246                 :            :         PyErr_NoMemory();
   31247                 :          0 :         p->level--;
   31248                 :          0 :         return NULL;
   31249                 :            :     }
   31250                 :       1044 :     Py_ssize_t _children_capacity = 1;
   31251                 :       1044 :     Py_ssize_t _n = 0;
   31252                 :            :     { // ',' kwarg_or_double_starred
   31253         [ -  + ]:       1044 :         if (p->error_indicator) {
   31254                 :          0 :             p->level--;
   31255                 :          0 :             return NULL;
   31256                 :            :         }
   31257                 :            :         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                 :       1044 :         while (
   31261                 :       1060 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   31262   [ +  +  +  + ]:       1089 :             &&
   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                 :            :                     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                 :       1044 :         p->mark = _mark;
   31288                 :            :         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                 :       1044 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31292         [ -  + ]:       1044 :     if (!_seq) {
   31293                 :          0 :         PyMem_Free(_children);
   31294                 :          0 :         p->error_indicator = 1;
   31295                 :            :         PyErr_NoMemory();
   31296                 :          0 :         p->level--;
   31297                 :          0 :         return NULL;
   31298                 :            :     }
   31299         [ +  + ]:       1060 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31300                 :       1044 :     PyMem_Free(_children);
   31301                 :       1044 :     _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
   31302                 :       1044 :     p->level--;
   31303                 :       1044 :     return _seq;
   31304                 :            : }
   31305                 :            : 
   31306                 :            : // _gather_122: kwarg_or_double_starred _loop0_123
   31307                 :            : static asdl_seq *
   31308                 :       8567 : _gather_122_rule(Parser *p)
   31309                 :            : {
   31310         [ -  + ]:       8567 :     if (p->level++ == MAXSTACK) {
   31311                 :          0 :         p->error_indicator = 1;
   31312                 :            :         PyErr_NoMemory();
   31313                 :            :     }
   31314         [ -  + ]:       8567 :     if (p->error_indicator) {
   31315                 :          0 :         p->level--;
   31316                 :          0 :         return NULL;
   31317                 :            :     }
   31318                 :       8567 :     asdl_seq * _res = NULL;
   31319                 :       8567 :     int _mark = p->mark;
   31320                 :            :     { // kwarg_or_double_starred _loop0_123
   31321         [ -  + ]:       8567 :         if (p->error_indicator) {
   31322                 :          0 :             p->level--;
   31323                 :          0 :             return NULL;
   31324                 :            :         }
   31325                 :            :         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         [ +  + ]:       8567 :         if (
   31329                 :       8567 :             (elem = kwarg_or_double_starred_rule(p))  // kwarg_or_double_starred
   31330         [ +  - ]:       1044 :             &&
   31331                 :       1044 :             (seq = _loop0_123_rule(p))  // _loop0_123
   31332                 :            :         )
   31333                 :            :         {
   31334                 :            :             D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_123"));
   31335                 :       1044 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   31336                 :       1044 :             goto done;
   31337                 :            :         }
   31338                 :       7523 :         p->mark = _mark;
   31339                 :            :         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                 :       7523 :     _res = NULL;
   31343                 :       8567 :   done:
   31344                 :       8567 :     p->level--;
   31345                 :       8567 :     return _res;
   31346                 :            : }
   31347                 :            : 
   31348                 :            : // _loop0_125: ',' kwarg_or_starred
   31349                 :            : static asdl_seq *
   31350                 :      97669 : _loop0_125_rule(Parser *p)
   31351                 :            : {
   31352         [ -  + ]:      97669 :     if (p->level++ == MAXSTACK) {
   31353                 :          0 :         p->error_indicator = 1;
   31354                 :            :         PyErr_NoMemory();
   31355                 :            :     }
   31356         [ -  + ]:      97669 :     if (p->error_indicator) {
   31357                 :          0 :         p->level--;
   31358                 :          0 :         return NULL;
   31359                 :            :     }
   31360                 :      97669 :     void *_res = NULL;
   31361                 :      97669 :     int _mark = p->mark;
   31362                 :      97669 :     int _start_mark = p->mark;
   31363                 :      97669 :     void **_children = PyMem_Malloc(sizeof(void *));
   31364         [ -  + ]:      97669 :     if (!_children) {
   31365                 :          0 :         p->error_indicator = 1;
   31366                 :            :         PyErr_NoMemory();
   31367                 :          0 :         p->level--;
   31368                 :          0 :         return NULL;
   31369                 :            :     }
   31370                 :      97669 :     Py_ssize_t _children_capacity = 1;
   31371                 :      97669 :     Py_ssize_t _n = 0;
   31372                 :            :     { // ',' kwarg_or_starred
   31373         [ -  + ]:      97669 :         if (p->error_indicator) {
   31374                 :          0 :             p->level--;
   31375                 :          0 :             return NULL;
   31376                 :            :         }
   31377                 :            :         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                 :      97669 :         while (
   31381                 :     172788 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   31382   [ +  +  +  + ]:     255430 :             &&
   31383                 :      82642 :             (elem = kwarg_or_starred_rule(p))  // kwarg_or_starred
   31384                 :            :         )
   31385                 :            :         {
   31386                 :      75119 :             _res = elem;
   31387   [ -  +  -  - ]:      75119 :             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         [ +  + ]:      75119 :             if (_n == _children_capacity) {
   31394                 :      29202 :                 _children_capacity *= 2;
   31395                 :      29202 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   31396         [ -  + ]:      29202 :                 if (!_new_children) {
   31397                 :          0 :                     p->error_indicator = 1;
   31398                 :            :                     PyErr_NoMemory();
   31399                 :          0 :                     p->level--;
   31400                 :          0 :                     return NULL;
   31401                 :            :                 }
   31402                 :      29202 :                 _children = _new_children;
   31403                 :            :             }
   31404                 :      75119 :             _children[_n++] = _res;
   31405                 :      75119 :             _mark = p->mark;
   31406                 :            :         }
   31407                 :      97669 :         p->mark = _mark;
   31408                 :            :         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                 :      97669 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31412         [ -  + ]:      97669 :     if (!_seq) {
   31413                 :          0 :         PyMem_Free(_children);
   31414                 :          0 :         p->error_indicator = 1;
   31415                 :            :         PyErr_NoMemory();
   31416                 :          0 :         p->level--;
   31417                 :          0 :         return NULL;
   31418                 :            :     }
   31419         [ +  + ]:     172788 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31420                 :      97669 :     PyMem_Free(_children);
   31421                 :      97669 :     _PyPegen_insert_memo(p, _start_mark, _loop0_125_type, _seq);
   31422                 :      97669 :     p->level--;
   31423                 :      97669 :     return _seq;
   31424                 :            : }
   31425                 :            : 
   31426                 :            : // _gather_124: kwarg_or_starred _loop0_125
   31427                 :            : static asdl_seq *
   31428                 :     655709 : _gather_124_rule(Parser *p)
   31429                 :            : {
   31430         [ -  + ]:     655709 :     if (p->level++ == MAXSTACK) {
   31431                 :          0 :         p->error_indicator = 1;
   31432                 :            :         PyErr_NoMemory();
   31433                 :            :     }
   31434         [ -  + ]:     655709 :     if (p->error_indicator) {
   31435                 :          0 :         p->level--;
   31436                 :          0 :         return NULL;
   31437                 :            :     }
   31438                 :     655709 :     asdl_seq * _res = NULL;
   31439                 :     655709 :     int _mark = p->mark;
   31440                 :            :     { // kwarg_or_starred _loop0_125
   31441         [ -  + ]:     655709 :         if (p->error_indicator) {
   31442                 :          0 :             p->level--;
   31443                 :          0 :             return NULL;
   31444                 :            :         }
   31445                 :            :         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         [ +  + ]:     655709 :         if (
   31449                 :     655709 :             (elem = kwarg_or_starred_rule(p))  // kwarg_or_starred
   31450         [ +  - ]:      97669 :             &&
   31451                 :      97669 :             (seq = _loop0_125_rule(p))  // _loop0_125
   31452                 :            :         )
   31453                 :            :         {
   31454                 :            :             D(fprintf(stderr, "%*c+ _gather_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_125"));
   31455                 :      97669 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   31456                 :      97669 :             goto done;
   31457                 :            :         }
   31458                 :     558040 :         p->mark = _mark;
   31459                 :            :         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                 :     558040 :     _res = NULL;
   31463                 :     655709 :   done:
   31464                 :     655709 :     p->level--;
   31465                 :     655709 :     return _res;
   31466                 :            : }
   31467                 :            : 
   31468                 :            : // _loop0_127: ',' kwarg_or_double_starred
   31469                 :            : static asdl_seq *
   31470                 :       7424 : _loop0_127_rule(Parser *p)
   31471                 :            : {
   31472         [ -  + ]:       7424 :     if (p->level++ == MAXSTACK) {
   31473                 :          0 :         p->error_indicator = 1;
   31474                 :            :         PyErr_NoMemory();
   31475                 :            :     }
   31476         [ -  + ]:       7424 :     if (p->error_indicator) {
   31477                 :          0 :         p->level--;
   31478                 :          0 :         return NULL;
   31479                 :            :     }
   31480                 :       7424 :     void *_res = NULL;
   31481                 :       7424 :     int _mark = p->mark;
   31482                 :       7424 :     int _start_mark = p->mark;
   31483                 :       7424 :     void **_children = PyMem_Malloc(sizeof(void *));
   31484         [ -  + ]:       7424 :     if (!_children) {
   31485                 :          0 :         p->error_indicator = 1;
   31486                 :            :         PyErr_NoMemory();
   31487                 :          0 :         p->level--;
   31488                 :          0 :         return NULL;
   31489                 :            :     }
   31490                 :       7424 :     Py_ssize_t _children_capacity = 1;
   31491                 :       7424 :     Py_ssize_t _n = 0;
   31492                 :            :     { // ',' kwarg_or_double_starred
   31493         [ -  + ]:       7424 :         if (p->error_indicator) {
   31494                 :          0 :             p->level--;
   31495                 :          0 :             return NULL;
   31496                 :            :         }
   31497                 :            :         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                 :       7424 :         while (
   31501                 :       7472 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   31502   [ +  +  +  + ]:       7534 :             &&
   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                 :            :                     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                 :       7424 :         p->mark = _mark;
   31528                 :            :         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                 :       7424 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31532         [ -  + ]:       7424 :     if (!_seq) {
   31533                 :          0 :         PyMem_Free(_children);
   31534                 :          0 :         p->error_indicator = 1;
   31535                 :            :         PyErr_NoMemory();
   31536                 :          0 :         p->level--;
   31537                 :          0 :         return NULL;
   31538                 :            :     }
   31539         [ +  + ]:       7472 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31540                 :       7424 :     PyMem_Free(_children);
   31541                 :       7424 :     _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
   31542                 :       7424 :     p->level--;
   31543                 :       7424 :     return _seq;
   31544                 :            : }
   31545                 :            : 
   31546                 :            : // _gather_126: kwarg_or_double_starred _loop0_127
   31547                 :            : static asdl_seq *
   31548                 :     558040 : _gather_126_rule(Parser *p)
   31549                 :            : {
   31550         [ -  + ]:     558040 :     if (p->level++ == MAXSTACK) {
   31551                 :          0 :         p->error_indicator = 1;
   31552                 :            :         PyErr_NoMemory();
   31553                 :            :     }
   31554         [ -  + ]:     558040 :     if (p->error_indicator) {
   31555                 :          0 :         p->level--;
   31556                 :          0 :         return NULL;
   31557                 :            :     }
   31558                 :     558040 :     asdl_seq * _res = NULL;
   31559                 :     558040 :     int _mark = p->mark;
   31560                 :            :     { // kwarg_or_double_starred _loop0_127
   31561         [ -  + ]:     558040 :         if (p->error_indicator) {
   31562                 :          0 :             p->level--;
   31563                 :          0 :             return NULL;
   31564                 :            :         }
   31565                 :            :         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         [ +  + ]:     558040 :         if (
   31569                 :     558040 :             (elem = kwarg_or_double_starred_rule(p))  // kwarg_or_double_starred
   31570         [ +  - ]:       7424 :             &&
   31571                 :       7424 :             (seq = _loop0_127_rule(p))  // _loop0_127
   31572                 :            :         )
   31573                 :            :         {
   31574                 :            :             D(fprintf(stderr, "%*c+ _gather_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_127"));
   31575                 :       7424 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   31576                 :       7424 :             goto done;
   31577                 :            :         }
   31578                 :     550616 :         p->mark = _mark;
   31579                 :            :         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                 :     550616 :     _res = NULL;
   31583                 :     558040 :   done:
   31584                 :     558040 :     p->level--;
   31585                 :     558040 :     return _res;
   31586                 :            : }
   31587                 :            : 
   31588                 :            : // _loop0_128: (',' star_target)
   31589                 :            : static asdl_seq *
   31590                 :      56752 : _loop0_128_rule(Parser *p)
   31591                 :            : {
   31592         [ -  + ]:      56752 :     if (p->level++ == MAXSTACK) {
   31593                 :          0 :         p->error_indicator = 1;
   31594                 :            :         PyErr_NoMemory();
   31595                 :            :     }
   31596         [ -  + ]:      56752 :     if (p->error_indicator) {
   31597                 :          0 :         p->level--;
   31598                 :          0 :         return NULL;
   31599                 :            :     }
   31600                 :      56752 :     void *_res = NULL;
   31601                 :      56752 :     int _mark = p->mark;
   31602                 :      56752 :     int _start_mark = p->mark;
   31603                 :      56752 :     void **_children = PyMem_Malloc(sizeof(void *));
   31604         [ -  + ]:      56752 :     if (!_children) {
   31605                 :          0 :         p->error_indicator = 1;
   31606                 :            :         PyErr_NoMemory();
   31607                 :          0 :         p->level--;
   31608                 :          0 :         return NULL;
   31609                 :            :     }
   31610                 :      56752 :     Py_ssize_t _children_capacity = 1;
   31611                 :      56752 :     Py_ssize_t _n = 0;
   31612                 :            :     { // (',' star_target)
   31613         [ -  + ]:      56752 :         if (p->error_indicator) {
   31614                 :          0 :             p->level--;
   31615                 :          0 :             return NULL;
   31616                 :            :         }
   31617                 :            :         D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
   31618                 :            :         void *_tmp_231_var;
   31619                 :      56752 :         while (
   31620         [ +  + ]:     135571 :             (_tmp_231_var = _tmp_231_rule(p))  // ',' star_target
   31621                 :            :         )
   31622                 :            :         {
   31623                 :      78819 :             _res = _tmp_231_var;
   31624         [ +  + ]:      78819 :             if (_n == _children_capacity) {
   31625                 :      17309 :                 _children_capacity *= 2;
   31626                 :      17309 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   31627         [ -  + ]:      17309 :                 if (!_new_children) {
   31628                 :          0 :                     p->error_indicator = 1;
   31629                 :            :                     PyErr_NoMemory();
   31630                 :          0 :                     p->level--;
   31631                 :          0 :                     return NULL;
   31632                 :            :                 }
   31633                 :      17309 :                 _children = _new_children;
   31634                 :            :             }
   31635                 :      78819 :             _children[_n++] = _res;
   31636                 :      78819 :             _mark = p->mark;
   31637                 :            :         }
   31638                 :      56752 :         p->mark = _mark;
   31639                 :            :         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                 :      56752 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31643         [ -  + ]:      56752 :     if (!_seq) {
   31644                 :          0 :         PyMem_Free(_children);
   31645                 :          0 :         p->error_indicator = 1;
   31646                 :            :         PyErr_NoMemory();
   31647                 :          0 :         p->level--;
   31648                 :          0 :         return NULL;
   31649                 :            :     }
   31650         [ +  + ]:     135571 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31651                 :      56752 :     PyMem_Free(_children);
   31652                 :      56752 :     _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
   31653                 :      56752 :     p->level--;
   31654                 :      56752 :     return _seq;
   31655                 :            : }
   31656                 :            : 
   31657                 :            : // _loop0_130: ',' star_target
   31658                 :            : static asdl_seq *
   31659                 :      12099 : _loop0_130_rule(Parser *p)
   31660                 :            : {
   31661         [ -  + ]:      12099 :     if (p->level++ == MAXSTACK) {
   31662                 :          0 :         p->error_indicator = 1;
   31663                 :            :         PyErr_NoMemory();
   31664                 :            :     }
   31665         [ -  + ]:      12099 :     if (p->error_indicator) {
   31666                 :          0 :         p->level--;
   31667                 :          0 :         return NULL;
   31668                 :            :     }
   31669                 :      12099 :     void *_res = NULL;
   31670                 :      12099 :     int _mark = p->mark;
   31671                 :      12099 :     int _start_mark = p->mark;
   31672                 :      12099 :     void **_children = PyMem_Malloc(sizeof(void *));
   31673         [ -  + ]:      12099 :     if (!_children) {
   31674                 :          0 :         p->error_indicator = 1;
   31675                 :            :         PyErr_NoMemory();
   31676                 :          0 :         p->level--;
   31677                 :          0 :         return NULL;
   31678                 :            :     }
   31679                 :      12099 :     Py_ssize_t _children_capacity = 1;
   31680                 :      12099 :     Py_ssize_t _n = 0;
   31681                 :            :     { // ',' star_target
   31682         [ -  + ]:      12099 :         if (p->error_indicator) {
   31683                 :          0 :             p->level--;
   31684                 :          0 :             return NULL;
   31685                 :            :         }
   31686                 :            :         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                 :      12099 :         while (
   31690                 :      16028 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   31691   [ +  +  +  + ]:      20485 :             &&
   31692                 :       4457 :             (elem = star_target_rule(p))  // star_target
   31693                 :            :         )
   31694                 :            :         {
   31695                 :       3929 :             _res = elem;
   31696   [ -  +  -  - ]:       3929 :             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         [ +  + ]:       3929 :             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                 :            :                     PyErr_NoMemory();
   31708                 :          0 :                     p->level--;
   31709                 :          0 :                     return NULL;
   31710                 :            :                 }
   31711                 :       1283 :                 _children = _new_children;
   31712                 :            :             }
   31713                 :       3929 :             _children[_n++] = _res;
   31714                 :       3929 :             _mark = p->mark;
   31715                 :            :         }
   31716                 :      12099 :         p->mark = _mark;
   31717                 :            :         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                 :      12099 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31721         [ -  + ]:      12099 :     if (!_seq) {
   31722                 :          0 :         PyMem_Free(_children);
   31723                 :          0 :         p->error_indicator = 1;
   31724                 :            :         PyErr_NoMemory();
   31725                 :          0 :         p->level--;
   31726                 :          0 :         return NULL;
   31727                 :            :     }
   31728         [ +  + ]:      16028 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31729                 :      12099 :     PyMem_Free(_children);
   31730                 :      12099 :     _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
   31731                 :      12099 :     p->level--;
   31732                 :      12099 :     return _seq;
   31733                 :            : }
   31734                 :            : 
   31735                 :            : // _gather_129: star_target _loop0_130
   31736                 :            : static asdl_seq *
   31737                 :      42591 : _gather_129_rule(Parser *p)
   31738                 :            : {
   31739         [ -  + ]:      42591 :     if (p->level++ == MAXSTACK) {
   31740                 :          0 :         p->error_indicator = 1;
   31741                 :            :         PyErr_NoMemory();
   31742                 :            :     }
   31743         [ -  + ]:      42591 :     if (p->error_indicator) {
   31744                 :          0 :         p->level--;
   31745                 :          0 :         return NULL;
   31746                 :            :     }
   31747                 :      42591 :     asdl_seq * _res = NULL;
   31748                 :      42591 :     int _mark = p->mark;
   31749                 :            :     { // star_target _loop0_130
   31750         [ -  + ]:      42591 :         if (p->error_indicator) {
   31751                 :          0 :             p->level--;
   31752                 :          0 :             return NULL;
   31753                 :            :         }
   31754                 :            :         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         [ +  + ]:      42591 :         if (
   31758                 :      42591 :             (elem = star_target_rule(p))  // star_target
   31759         [ +  - ]:      12099 :             &&
   31760                 :      12099 :             (seq = _loop0_130_rule(p))  // _loop0_130
   31761                 :            :         )
   31762                 :            :         {
   31763                 :            :             D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_130"));
   31764                 :      12099 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   31765                 :      12099 :             goto done;
   31766                 :            :         }
   31767                 :      30492 :         p->mark = _mark;
   31768                 :            :         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                 :      30492 :     _res = NULL;
   31772                 :      42591 :   done:
   31773                 :      42591 :     p->level--;
   31774                 :      42591 :     return _res;
   31775                 :            : }
   31776                 :            : 
   31777                 :            : // _loop1_131: (',' star_target)
   31778                 :            : static asdl_seq *
   31779                 :      16500 : _loop1_131_rule(Parser *p)
   31780                 :            : {
   31781         [ -  + ]:      16500 :     if (p->level++ == MAXSTACK) {
   31782                 :          0 :         p->error_indicator = 1;
   31783                 :            :         PyErr_NoMemory();
   31784                 :            :     }
   31785         [ -  + ]:      16500 :     if (p->error_indicator) {
   31786                 :          0 :         p->level--;
   31787                 :          0 :         return NULL;
   31788                 :            :     }
   31789                 :      16500 :     void *_res = NULL;
   31790                 :      16500 :     int _mark = p->mark;
   31791                 :      16500 :     int _start_mark = p->mark;
   31792                 :      16500 :     void **_children = PyMem_Malloc(sizeof(void *));
   31793         [ -  + ]:      16500 :     if (!_children) {
   31794                 :          0 :         p->error_indicator = 1;
   31795                 :            :         PyErr_NoMemory();
   31796                 :          0 :         p->level--;
   31797                 :          0 :         return NULL;
   31798                 :            :     }
   31799                 :      16500 :     Py_ssize_t _children_capacity = 1;
   31800                 :      16500 :     Py_ssize_t _n = 0;
   31801                 :            :     { // (',' star_target)
   31802         [ -  + ]:      16500 :         if (p->error_indicator) {
   31803                 :          0 :             p->level--;
   31804                 :          0 :             return NULL;
   31805                 :            :         }
   31806                 :            :         D(fprintf(stderr, "%*c> _loop1_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
   31807                 :            :         void *_tmp_232_var;
   31808                 :      16500 :         while (
   31809         [ +  + ]:      32920 :             (_tmp_232_var = _tmp_232_rule(p))  // ',' star_target
   31810                 :            :         )
   31811                 :            :         {
   31812                 :      16420 :             _res = _tmp_232_var;
   31813         [ +  + ]:      16420 :             if (_n == _children_capacity) {
   31814                 :       3868 :                 _children_capacity *= 2;
   31815                 :       3868 :                 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
   31816         [ -  + ]:       3868 :                 if (!_new_children) {
   31817                 :          0 :                     p->error_indicator = 1;
   31818                 :            :                     PyErr_NoMemory();
   31819                 :          0 :                     p->level--;
   31820                 :          0 :                     return NULL;
   31821                 :            :                 }
   31822                 :       3868 :                 _children = _new_children;
   31823                 :            :             }
   31824                 :      16420 :             _children[_n++] = _res;
   31825                 :      16420 :             _mark = p->mark;
   31826                 :            :         }
   31827                 :      16500 :         p->mark = _mark;
   31828                 :            :         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   [ +  +  -  + ]:      16500 :     if (_n == 0 || p->error_indicator) {
   31832                 :       8909 :         PyMem_Free(_children);
   31833                 :       8909 :         p->level--;
   31834                 :       8909 :         return NULL;
   31835                 :            :     }
   31836                 :       7591 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31837         [ -  + ]:       7591 :     if (!_seq) {
   31838                 :          0 :         PyMem_Free(_children);
   31839                 :          0 :         p->error_indicator = 1;
   31840                 :            :         PyErr_NoMemory();
   31841                 :          0 :         p->level--;
   31842                 :          0 :         return NULL;
   31843                 :            :     }
   31844         [ +  + ]:      24011 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31845                 :       7591 :     PyMem_Free(_children);
   31846                 :       7591 :     _PyPegen_insert_memo(p, _start_mark, _loop1_131_type, _seq);
   31847                 :       7591 :     p->level--;
   31848                 :       7591 :     return _seq;
   31849                 :            : }
   31850                 :            : 
   31851                 :            : // _tmp_132: !'*' star_target
   31852                 :            : static void *
   31853                 :        733 : _tmp_132_rule(Parser *p)
   31854                 :            : {
   31855         [ -  + ]:        733 :     if (p->level++ == MAXSTACK) {
   31856                 :          0 :         p->error_indicator = 1;
   31857                 :            :         PyErr_NoMemory();
   31858                 :            :     }
   31859         [ -  + ]:        733 :     if (p->error_indicator) {
   31860                 :          0 :         p->level--;
   31861                 :          0 :         return NULL;
   31862                 :            :     }
   31863                 :        733 :     void * _res = NULL;
   31864                 :        733 :     int _mark = p->mark;
   31865                 :            :     { // !'*' star_target
   31866         [ -  + ]:        733 :         if (p->error_indicator) {
   31867                 :          0 :             p->level--;
   31868                 :          0 :             return NULL;
   31869                 :            :         }
   31870                 :            :         D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
   31871                 :            :         expr_ty star_target_var;
   31872         [ +  - ]:        733 :         if (
   31873                 :        733 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16)  // token='*'
   31874         [ +  + ]:        733 :             &&
   31875                 :        733 :             (star_target_var = star_target_rule(p))  // star_target
   31876                 :            :         )
   31877                 :            :         {
   31878                 :            :             D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
   31879                 :        697 :             _res = star_target_var;
   31880                 :        697 :             goto done;
   31881                 :            :         }
   31882                 :         36 :         p->mark = _mark;
   31883                 :            :         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                 :        733 :   done:
   31888                 :        733 :     p->level--;
   31889                 :        733 :     return _res;
   31890                 :            : }
   31891                 :            : 
   31892                 :            : // _loop0_134: ',' del_target
   31893                 :            : static asdl_seq *
   31894                 :       8864 : _loop0_134_rule(Parser *p)
   31895                 :            : {
   31896         [ -  + ]:       8864 :     if (p->level++ == MAXSTACK) {
   31897                 :          0 :         p->error_indicator = 1;
   31898                 :            :         PyErr_NoMemory();
   31899                 :            :     }
   31900         [ -  + ]:       8864 :     if (p->error_indicator) {
   31901                 :          0 :         p->level--;
   31902                 :          0 :         return NULL;
   31903                 :            :     }
   31904                 :       8864 :     void *_res = NULL;
   31905                 :       8864 :     int _mark = p->mark;
   31906                 :       8864 :     int _start_mark = p->mark;
   31907                 :       8864 :     void **_children = PyMem_Malloc(sizeof(void *));
   31908         [ -  + ]:       8864 :     if (!_children) {
   31909                 :          0 :         p->error_indicator = 1;
   31910                 :            :         PyErr_NoMemory();
   31911                 :          0 :         p->level--;
   31912                 :          0 :         return NULL;
   31913                 :            :     }
   31914                 :       8864 :     Py_ssize_t _children_capacity = 1;
   31915                 :       8864 :     Py_ssize_t _n = 0;
   31916                 :            :     { // ',' del_target
   31917         [ -  + ]:       8864 :         if (p->error_indicator) {
   31918                 :          0 :             p->level--;
   31919                 :          0 :             return NULL;
   31920                 :            :         }
   31921                 :            :         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                 :       8864 :         while (
   31925                 :      10616 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   31926   [ +  +  +  + ]:      12381 :             &&
   31927                 :       1765 :             (elem = del_target_rule(p))  // del_target
   31928                 :            :         )
   31929                 :            :         {
   31930                 :       1752 :             _res = elem;
   31931   [ -  +  -  - ]:       1752 :             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         [ +  + ]:       1752 :             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                 :            :                     PyErr_NoMemory();
   31943                 :          0 :                     p->level--;
   31944                 :          0 :                     return NULL;
   31945                 :            :                 }
   31946                 :        546 :                 _children = _new_children;
   31947                 :            :             }
   31948                 :       1752 :             _children[_n++] = _res;
   31949                 :       1752 :             _mark = p->mark;
   31950                 :            :         }
   31951                 :       8864 :         p->mark = _mark;
   31952                 :            :         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                 :       8864 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   31956         [ -  + ]:       8864 :     if (!_seq) {
   31957                 :          0 :         PyMem_Free(_children);
   31958                 :          0 :         p->error_indicator = 1;
   31959                 :            :         PyErr_NoMemory();
   31960                 :          0 :         p->level--;
   31961                 :          0 :         return NULL;
   31962                 :            :     }
   31963         [ +  + ]:      10616 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   31964                 :       8864 :     PyMem_Free(_children);
   31965                 :       8864 :     _PyPegen_insert_memo(p, _start_mark, _loop0_134_type, _seq);
   31966                 :       8864 :     p->level--;
   31967                 :       8864 :     return _seq;
   31968                 :            : }
   31969                 :            : 
   31970                 :            : // _gather_133: del_target _loop0_134
   31971                 :            : static asdl_seq *
   31972                 :       8930 : _gather_133_rule(Parser *p)
   31973                 :            : {
   31974         [ -  + ]:       8930 :     if (p->level++ == MAXSTACK) {
   31975                 :          0 :         p->error_indicator = 1;
   31976                 :            :         PyErr_NoMemory();
   31977                 :            :     }
   31978         [ -  + ]:       8930 :     if (p->error_indicator) {
   31979                 :          0 :         p->level--;
   31980                 :          0 :         return NULL;
   31981                 :            :     }
   31982                 :       8930 :     asdl_seq * _res = NULL;
   31983                 :       8930 :     int _mark = p->mark;
   31984                 :            :     { // del_target _loop0_134
   31985         [ -  + ]:       8930 :         if (p->error_indicator) {
   31986                 :          0 :             p->level--;
   31987                 :          0 :             return NULL;
   31988                 :            :         }
   31989                 :            :         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         [ +  + ]:       8930 :         if (
   31993                 :       8930 :             (elem = del_target_rule(p))  // del_target
   31994         [ +  - ]:       8864 :             &&
   31995                 :       8864 :             (seq = _loop0_134_rule(p))  // _loop0_134
   31996                 :            :         )
   31997                 :            :         {
   31998                 :            :             D(fprintf(stderr, "%*c+ _gather_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_134"));
   31999                 :       8864 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   32000                 :       8864 :             goto done;
   32001                 :            :         }
   32002                 :         66 :         p->mark = _mark;
   32003                 :            :         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                 :       8930 :   done:
   32008                 :       8930 :     p->level--;
   32009                 :       8930 :     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                 :            :         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                 :            :         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                 :            :         D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
   32042                 :            :         Token * _literal;
   32043                 :            :         expr_ty elem;
   32044                 :         10 :         while (
   32045                 :         14 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   32046   [ +  +  +  + ]:         23 :             &&
   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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         D(fprintf(stderr, "%*c> _loop0_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
   32162                 :            :         Token * _literal;
   32163                 :            :         expr_ty elem;
   32164                 :          9 :         while (
   32165                 :         13 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   32166   [ +  +  +  + ]:         21 :             &&
   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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         D(fprintf(stderr, "%*c> _loop0_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
   32282                 :            :         Token * _literal;
   32283                 :            :         expr_ty elem;
   32284                 :          7 :         while (
   32285                 :         11 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   32286   [ +  +  +  + ]:         17 :             &&
   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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         D(fprintf(stderr, "%*c> _loop0_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
   32402                 :            :         Token * _literal;
   32403                 :            :         expr_ty elem;
   32404                 :          5 :         while (
   32405                 :          9 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   32406   [ +  +  +  - ]:         13 :             &&
   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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :          5 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :         D(fprintf(stderr, "%*c> _loop0_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
   33182                 :            :         void *_tmp_233_var;
   33183                 :        796 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :         D(fprintf(stderr, "%*c> _loop0_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
   33251                 :            :         void *_tmp_234_var;
   33252                 :        774 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :        302 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :        284 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :          4 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :         14 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :        265 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :         33 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :        253 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :         19 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :        288 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :         52 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :         47 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :          4 :         while (
   34834                 :         12 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   34835   [ +  +  +  - ]:         20 :             &&
   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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :         10 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :         33 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :         15 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :         26 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :         47 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :          8 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :          7 :         while (
   35883                 :         10 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   35884   [ +  +  +  - ]:         13 :             &&
   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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :          3 :         while (
   36003                 :          4 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   36004   [ +  +  +  - ]:          5 :             &&
   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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :         22 :         while (
   36123                 :         28 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   36124   [ +  +  +  - ]:         34 :             &&
   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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :          6 :         while (
   36243                 :          9 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   36244   [ +  +  +  - ]:         12 :             &&
   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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         D(fprintf(stderr, "%*c> _loop0_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block"));
   36418                 :            :         asdl_stmt_seq* block_var;
   36419                 :         49 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         D(fprintf(stderr, "%*c> _loop0_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block"));
   36545                 :            :         asdl_stmt_seq* block_var;
   36546                 :         11 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :       3792 : _loop0_216_rule(Parser *p)
   36989                 :            : {
   36990         [ -  + ]:       3792 :     if (p->level++ == MAXSTACK) {
   36991                 :          0 :         p->error_indicator = 1;
   36992                 :            :         PyErr_NoMemory();
   36993                 :            :     }
   36994         [ -  + ]:       3792 :     if (p->error_indicator) {
   36995                 :          0 :         p->level--;
   36996                 :          0 :         return NULL;
   36997                 :            :     }
   36998                 :       3792 :     void *_res = NULL;
   36999                 :       3792 :     int _mark = p->mark;
   37000                 :       3792 :     int _start_mark = p->mark;
   37001                 :       3792 :     void **_children = PyMem_Malloc(sizeof(void *));
   37002         [ -  + ]:       3792 :     if (!_children) {
   37003                 :          0 :         p->error_indicator = 1;
   37004                 :            :         PyErr_NoMemory();
   37005                 :          0 :         p->level--;
   37006                 :          0 :         return NULL;
   37007                 :            :     }
   37008                 :       3792 :     Py_ssize_t _children_capacity = 1;
   37009                 :       3792 :     Py_ssize_t _n = 0;
   37010                 :            :     { // ',' double_starred_kvpair
   37011         [ -  + ]:       3792 :         if (p->error_indicator) {
   37012                 :          0 :             p->level--;
   37013                 :          0 :             return NULL;
   37014                 :            :         }
   37015                 :            :         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                 :       3792 :         while (
   37019                 :       3800 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   37020   [ +  +  +  + ]:       3811 :             &&
   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                 :            :                     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                 :       3792 :         p->mark = _mark;
   37046                 :            :         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                 :       3792 :     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
   37050         [ -  + ]:       3792 :     if (!_seq) {
   37051                 :          0 :         PyMem_Free(_children);
   37052                 :          0 :         p->error_indicator = 1;
   37053                 :            :         PyErr_NoMemory();
   37054                 :          0 :         p->level--;
   37055                 :          0 :         return NULL;
   37056                 :            :     }
   37057         [ +  + ]:       3800 :     for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
   37058                 :       3792 :     PyMem_Free(_children);
   37059                 :       3792 :     _PyPegen_insert_memo(p, _start_mark, _loop0_216_type, _seq);
   37060                 :       3792 :     p->level--;
   37061                 :       3792 :     return _seq;
   37062                 :            : }
   37063                 :            : 
   37064                 :            : // _gather_215: double_starred_kvpair _loop0_216
   37065                 :            : static asdl_seq *
   37066                 :      13769 : _gather_215_rule(Parser *p)
   37067                 :            : {
   37068         [ -  + ]:      13769 :     if (p->level++ == MAXSTACK) {
   37069                 :          0 :         p->error_indicator = 1;
   37070                 :            :         PyErr_NoMemory();
   37071                 :            :     }
   37072         [ -  + ]:      13769 :     if (p->error_indicator) {
   37073                 :          0 :         p->level--;
   37074                 :          0 :         return NULL;
   37075                 :            :     }
   37076                 :      13769 :     asdl_seq * _res = NULL;
   37077                 :      13769 :     int _mark = p->mark;
   37078                 :            :     { // double_starred_kvpair _loop0_216
   37079         [ -  + ]:      13769 :         if (p->error_indicator) {
   37080                 :          0 :             p->level--;
   37081                 :          0 :             return NULL;
   37082                 :            :         }
   37083                 :            :         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         [ +  + ]:      13769 :         if (
   37087                 :      13769 :             (elem = double_starred_kvpair_rule(p))  // double_starred_kvpair
   37088         [ +  - ]:       3792 :             &&
   37089                 :       3792 :             (seq = _loop0_216_rule(p))  // _loop0_216
   37090                 :            :         )
   37091                 :            :         {
   37092                 :            :             D(fprintf(stderr, "%*c+ _gather_215[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_216"));
   37093                 :       3792 :             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
   37094                 :       3792 :             goto done;
   37095                 :            :         }
   37096                 :       9977 :         p->mark = _mark;
   37097                 :            :         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                 :       9977 :     _res = NULL;
   37101                 :      13769 :   done:
   37102                 :      13769 :     p->level--;
   37103                 :      13769 :     return _res;
   37104                 :            : }
   37105                 :            : 
   37106                 :            : // _tmp_217: '}' | ','
   37107                 :            : static void *
   37108                 :       3799 : _tmp_217_rule(Parser *p)
   37109                 :            : {
   37110         [ -  + ]:       3799 :     if (p->level++ == MAXSTACK) {
   37111                 :          0 :         p->error_indicator = 1;
   37112                 :            :         PyErr_NoMemory();
   37113                 :            :     }
   37114         [ -  + ]:       3799 :     if (p->error_indicator) {
   37115                 :          0 :         p->level--;
   37116                 :          0 :         return NULL;
   37117                 :            :     }
   37118                 :       3799 :     void * _res = NULL;
   37119                 :       3799 :     int _mark = p->mark;
   37120                 :            :     { // '}'
   37121         [ -  + ]:       3799 :         if (p->error_indicator) {
   37122                 :          0 :             p->level--;
   37123                 :          0 :             return NULL;
   37124                 :            :         }
   37125                 :            :         D(fprintf(stderr, "%*c> _tmp_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
   37126                 :            :         Token * _literal;
   37127         [ +  + ]:       3799 :         if (
   37128                 :       3799 :             (_literal = _PyPegen_expect_token(p, 26))  // token='}'
   37129                 :            :         )
   37130                 :            :         {
   37131                 :            :             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                 :       3798 :         p->mark = _mark;
   37136                 :            :         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         [ -  + ]:       3798 :         if (p->error_indicator) {
   37141                 :          0 :             p->level--;
   37142                 :          0 :             return NULL;
   37143                 :            :         }
   37144                 :            :         D(fprintf(stderr, "%*c> _tmp_217[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
   37145                 :            :         Token * _literal;
   37146         [ -  + ]:       3798 :         if (
   37147                 :       3798 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   37148                 :            :         )
   37149                 :            :         {
   37150                 :            :             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                 :       3798 :         p->mark = _mark;
   37155                 :            :         D(fprintf(stderr, "%*c%s _tmp_217[%d-%d]: %s failed!\n", p->level, ' ',
   37156                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
   37157                 :            :     }
   37158                 :       3798 :     _res = NULL;
   37159                 :       3799 :   done:
   37160                 :       3799 :     p->level--;
   37161                 :       3799 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :    4011463 : _tmp_219_rule(Parser *p)
   37225                 :            : {
   37226         [ -  + ]:    4011463 :     if (p->level++ == MAXSTACK) {
   37227                 :          0 :         p->error_indicator = 1;
   37228                 :            :         PyErr_NoMemory();
   37229                 :            :     }
   37230         [ -  + ]:    4011463 :     if (p->error_indicator) {
   37231                 :          0 :         p->level--;
   37232                 :          0 :         return NULL;
   37233                 :            :     }
   37234                 :    4011463 :     void * _res = NULL;
   37235                 :    4011463 :     int _mark = p->mark;
   37236                 :            :     { // star_targets '='
   37237         [ -  + ]:    4011463 :         if (p->error_indicator) {
   37238                 :          0 :             p->level--;
   37239                 :          0 :             return NULL;
   37240                 :            :         }
   37241                 :            :         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         [ +  + ]:    4011463 :         if (
   37245                 :    4011463 :             (z = star_targets_rule(p))  // star_targets
   37246         [ +  + ]:    2158638 :             &&
   37247                 :    2158638 :             (_literal = _PyPegen_expect_token(p, 22))  // token='='
   37248                 :            :         )
   37249                 :            :         {
   37250                 :            :             D(fprintf(stderr, "%*c+ _tmp_219[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
   37251                 :     812283 :             _res = z;
   37252   [ -  +  -  - ]:     812283 :             if (_res == NULL && PyErr_Occurred()) {
   37253                 :          0 :                 p->error_indicator = 1;
   37254                 :          0 :                 p->level--;
   37255                 :          0 :                 return NULL;
   37256                 :            :             }
   37257                 :     812283 :             goto done;
   37258                 :            :         }
   37259                 :    3199180 :         p->mark = _mark;
   37260                 :            :         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                 :    3199180 :     _res = NULL;
   37264                 :    4011463 :   done:
   37265                 :    4011463 :     p->level--;
   37266                 :    4011463 :     return _res;
   37267                 :            : }
   37268                 :            : 
   37269                 :            : // _tmp_220: '.' | '...'
   37270                 :            : static void *
   37271                 :      57387 : _tmp_220_rule(Parser *p)
   37272                 :            : {
   37273         [ -  + ]:      57387 :     if (p->level++ == MAXSTACK) {
   37274                 :          0 :         p->error_indicator = 1;
   37275                 :            :         PyErr_NoMemory();
   37276                 :            :     }
   37277         [ -  + ]:      57387 :     if (p->error_indicator) {
   37278                 :          0 :         p->level--;
   37279                 :          0 :         return NULL;
   37280                 :            :     }
   37281                 :      57387 :     void * _res = NULL;
   37282                 :      57387 :     int _mark = p->mark;
   37283                 :            :     { // '.'
   37284         [ -  + ]:      57387 :         if (p->error_indicator) {
   37285                 :          0 :             p->level--;
   37286                 :          0 :             return NULL;
   37287                 :            :         }
   37288                 :            :         D(fprintf(stderr, "%*c> _tmp_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
   37289                 :            :         Token * _literal;
   37290         [ +  + ]:      57387 :         if (
   37291                 :      57387 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   37292                 :            :         )
   37293                 :            :         {
   37294                 :            :             D(fprintf(stderr, "%*c+ _tmp_220[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
   37295                 :      11591 :             _res = _literal;
   37296                 :      11591 :             goto done;
   37297                 :            :         }
   37298                 :      45796 :         p->mark = _mark;
   37299                 :            :         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         [ -  + ]:      45796 :         if (p->error_indicator) {
   37304                 :          0 :             p->level--;
   37305                 :          0 :             return NULL;
   37306                 :            :         }
   37307                 :            :         D(fprintf(stderr, "%*c> _tmp_220[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
   37308                 :            :         Token * _literal;
   37309         [ +  + ]:      45796 :         if (
   37310                 :      45796 :             (_literal = _PyPegen_expect_token(p, 52))  // token='...'
   37311                 :            :         )
   37312                 :            :         {
   37313                 :            :             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                 :      45790 :         p->mark = _mark;
   37318                 :            :         D(fprintf(stderr, "%*c%s _tmp_220[%d-%d]: %s failed!\n", p->level, ' ',
   37319                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
   37320                 :            :     }
   37321                 :      45790 :     _res = NULL;
   37322                 :      57387 :   done:
   37323                 :      57387 :     p->level--;
   37324                 :      57387 :     return _res;
   37325                 :            : }
   37326                 :            : 
   37327                 :            : // _tmp_221: '.' | '...'
   37328                 :            : static void *
   37329                 :       2650 : _tmp_221_rule(Parser *p)
   37330                 :            : {
   37331         [ -  + ]:       2650 :     if (p->level++ == MAXSTACK) {
   37332                 :          0 :         p->error_indicator = 1;
   37333                 :            :         PyErr_NoMemory();
   37334                 :            :     }
   37335         [ -  + ]:       2650 :     if (p->error_indicator) {
   37336                 :          0 :         p->level--;
   37337                 :          0 :         return NULL;
   37338                 :            :     }
   37339                 :       2650 :     void * _res = NULL;
   37340                 :       2650 :     int _mark = p->mark;
   37341                 :            :     { // '.'
   37342         [ -  + ]:       2650 :         if (p->error_indicator) {
   37343                 :          0 :             p->level--;
   37344                 :          0 :             return NULL;
   37345                 :            :         }
   37346                 :            :         D(fprintf(stderr, "%*c> _tmp_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
   37347                 :            :         Token * _literal;
   37348         [ +  + ]:       2650 :         if (
   37349                 :       2650 :             (_literal = _PyPegen_expect_token(p, 23))  // token='.'
   37350                 :            :         )
   37351                 :            :         {
   37352                 :            :             D(fprintf(stderr, "%*c+ _tmp_221[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
   37353                 :       1372 :             _res = _literal;
   37354                 :       1372 :             goto done;
   37355                 :            :         }
   37356                 :       1278 :         p->mark = _mark;
   37357                 :            :         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         [ -  + ]:       1278 :         if (p->error_indicator) {
   37362                 :          0 :             p->level--;
   37363                 :          0 :             return NULL;
   37364                 :            :         }
   37365                 :            :         D(fprintf(stderr, "%*c> _tmp_221[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
   37366                 :            :         Token * _literal;
   37367         [ +  + ]:       1278 :         if (
   37368                 :       1278 :             (_literal = _PyPegen_expect_token(p, 52))  // token='...'
   37369                 :            :         )
   37370                 :            :         {
   37371                 :            :             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                 :       1277 :         p->mark = _mark;
   37376                 :            :         D(fprintf(stderr, "%*c%s _tmp_221[%d-%d]: %s failed!\n", p->level, ' ',
   37377                 :            :                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
   37378                 :            :     }
   37379                 :       1277 :     _res = NULL;
   37380                 :       2650 :   done:
   37381                 :       2650 :     p->level--;
   37382                 :       2650 :     return _res;
   37383                 :            : }
   37384                 :            : 
   37385                 :            : // _tmp_222: '@' named_expression NEWLINE
   37386                 :            : static void *
   37387                 :     440979 : _tmp_222_rule(Parser *p)
   37388                 :            : {
   37389         [ -  + ]:     440979 :     if (p->level++ == MAXSTACK) {
   37390                 :          0 :         p->error_indicator = 1;
   37391                 :            :         PyErr_NoMemory();
   37392                 :            :     }
   37393         [ -  + ]:     440979 :     if (p->error_indicator) {
   37394                 :          0 :         p->level--;
   37395                 :          0 :         return NULL;
   37396                 :            :     }
   37397                 :     440979 :     void * _res = NULL;
   37398                 :     440979 :     int _mark = p->mark;
   37399                 :            :     { // '@' named_expression NEWLINE
   37400         [ -  + ]:     440979 :         if (p->error_indicator) {
   37401                 :          0 :             p->level--;
   37402                 :          0 :             return NULL;
   37403                 :            :         }
   37404                 :            :         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         [ +  + ]:     440979 :         if (
   37409                 :     440979 :             (_literal = _PyPegen_expect_token(p, 49))  // token='@'
   37410         [ +  + ]:      40159 :             &&
   37411                 :      40159 :             (f = named_expression_rule(p))  // named_expression
   37412         [ +  + ]:      40140 :             &&
   37413                 :      40140 :             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
   37414                 :            :         )
   37415                 :            :         {
   37416                 :            :             D(fprintf(stderr, "%*c+ _tmp_222[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
   37417                 :      40130 :             _res = f;
   37418   [ -  +  -  - ]:      40130 :             if (_res == NULL && PyErr_Occurred()) {
   37419                 :          0 :                 p->error_indicator = 1;
   37420                 :          0 :                 p->level--;
   37421                 :          0 :                 return NULL;
   37422                 :            :             }
   37423                 :      40130 :             goto done;
   37424                 :            :         }
   37425                 :     400849 :         p->mark = _mark;
   37426                 :            :         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                 :     400849 :     _res = NULL;
   37430                 :     440979 :   done:
   37431                 :     440979 :     p->level--;
   37432                 :     440979 :     return _res;
   37433                 :            : }
   37434                 :            : 
   37435                 :            : // _tmp_223: ',' expression
   37436                 :            : static void *
   37437                 :     513299 : _tmp_223_rule(Parser *p)
   37438                 :            : {
   37439         [ -  + ]:     513299 :     if (p->level++ == MAXSTACK) {
   37440                 :          0 :         p->error_indicator = 1;
   37441                 :            :         PyErr_NoMemory();
   37442                 :            :     }
   37443         [ -  + ]:     513299 :     if (p->error_indicator) {
   37444                 :          0 :         p->level--;
   37445                 :          0 :         return NULL;
   37446                 :            :     }
   37447                 :     513299 :     void * _res = NULL;
   37448                 :     513299 :     int _mark = p->mark;
   37449                 :            :     { // ',' expression
   37450         [ -  + ]:     513299 :         if (p->error_indicator) {
   37451                 :          0 :             p->level--;
   37452                 :          0 :             return NULL;
   37453                 :            :         }
   37454                 :            :         D(fprintf(stderr, "%*c> _tmp_223[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
   37455                 :            :         Token * _literal;
   37456                 :            :         expr_ty c;
   37457         [ +  + ]:     513299 :         if (
   37458                 :     513299 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   37459         [ +  + ]:     441233 :             &&
   37460                 :     441233 :             (c = expression_rule(p))  // expression
   37461                 :            :         )
   37462                 :            :         {
   37463                 :            :             D(fprintf(stderr, "%*c+ _tmp_223[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
   37464                 :     441210 :             _res = c;
   37465   [ -  +  -  - ]:     441210 :             if (_res == NULL && PyErr_Occurred()) {
   37466                 :          0 :                 p->error_indicator = 1;
   37467                 :          0 :                 p->level--;
   37468                 :          0 :                 return NULL;
   37469                 :            :             }
   37470                 :     441210 :             goto done;
   37471                 :            :         }
   37472                 :      72089 :         p->mark = _mark;
   37473                 :            :         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                 :      72089 :     _res = NULL;
   37477                 :     513299 :   done:
   37478                 :     513299 :     p->level--;
   37479                 :     513299 :     return _res;
   37480                 :            : }
   37481                 :            : 
   37482                 :            : // _tmp_224: ',' star_expression
   37483                 :            : static void *
   37484                 :    2122843 : _tmp_224_rule(Parser *p)
   37485                 :            : {
   37486         [ -  + ]:    2122843 :     if (p->level++ == MAXSTACK) {
   37487                 :          0 :         p->error_indicator = 1;
   37488                 :            :         PyErr_NoMemory();
   37489                 :            :     }
   37490         [ -  + ]:    2122843 :     if (p->error_indicator) {
   37491                 :          0 :         p->level--;
   37492                 :          0 :         return NULL;
   37493                 :            :     }
   37494                 :    2122843 :     void * _res = NULL;
   37495                 :    2122843 :     int _mark = p->mark;
   37496                 :            :     { // ',' star_expression
   37497         [ -  + ]:    2122843 :         if (p->error_indicator) {
   37498                 :          0 :             p->level--;
   37499                 :          0 :             return NULL;
   37500                 :            :         }
   37501                 :            :         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         [ +  + ]:    2122843 :         if (
   37505                 :    2122843 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   37506         [ +  + ]:      28232 :             &&
   37507                 :      28232 :             (c = star_expression_rule(p))  // star_expression
   37508                 :            :         )
   37509                 :            :         {
   37510                 :            :             D(fprintf(stderr, "%*c+ _tmp_224[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
   37511                 :      27947 :             _res = c;
   37512   [ -  +  -  - ]:      27947 :             if (_res == NULL && PyErr_Occurred()) {
   37513                 :          0 :                 p->error_indicator = 1;
   37514                 :          0 :                 p->level--;
   37515                 :          0 :                 return NULL;
   37516                 :            :             }
   37517                 :      27947 :             goto done;
   37518                 :            :         }
   37519                 :    2094896 :         p->mark = _mark;
   37520                 :            :         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                 :    2094896 :     _res = NULL;
   37524                 :    2122843 :   done:
   37525                 :    2122843 :     p->level--;
   37526                 :    2122843 :     return _res;
   37527                 :            : }
   37528                 :            : 
   37529                 :            : // _tmp_225: 'or' conjunction
   37530                 :            : static void *
   37531                 :    9746242 : _tmp_225_rule(Parser *p)
   37532                 :            : {
   37533         [ -  + ]:    9746242 :     if (p->level++ == MAXSTACK) {
   37534                 :          0 :         p->error_indicator = 1;
   37535                 :            :         PyErr_NoMemory();
   37536                 :            :     }
   37537         [ -  + ]:    9746242 :     if (p->error_indicator) {
   37538                 :          0 :         p->level--;
   37539                 :          0 :         return NULL;
   37540                 :            :     }
   37541                 :    9746242 :     void * _res = NULL;
   37542                 :    9746242 :     int _mark = p->mark;
   37543                 :            :     { // 'or' conjunction
   37544         [ -  + ]:    9746242 :         if (p->error_indicator) {
   37545                 :          0 :             p->level--;
   37546                 :          0 :             return NULL;
   37547                 :            :         }
   37548                 :            :         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         [ +  + ]:    9746242 :         if (
   37552                 :    9746242 :             (_keyword = _PyPegen_expect_token(p, 574))  // token='or'
   37553         [ +  - ]:      28865 :             &&
   37554                 :      28865 :             (c = conjunction_rule(p))  // conjunction
   37555                 :            :         )
   37556                 :            :         {
   37557                 :            :             D(fprintf(stderr, "%*c+ _tmp_225[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
   37558                 :      28865 :             _res = c;
   37559   [ -  +  -  - ]:      28865 :             if (_res == NULL && PyErr_Occurred()) {
   37560                 :          0 :                 p->error_indicator = 1;
   37561                 :          0 :                 p->level--;
   37562                 :          0 :                 return NULL;
   37563                 :            :             }
   37564                 :      28865 :             goto done;
   37565                 :            :         }
   37566                 :    9717377 :         p->mark = _mark;
   37567                 :            :         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                 :    9717377 :     _res = NULL;
   37571                 :    9746242 :   done:
   37572                 :    9746242 :     p->level--;
   37573                 :    9746242 :     return _res;
   37574                 :            : }
   37575                 :            : 
   37576                 :            : // _tmp_226: 'and' inversion
   37577                 :            : static void *
   37578                 :    9792135 : _tmp_226_rule(Parser *p)
   37579                 :            : {
   37580         [ -  + ]:    9792135 :     if (p->level++ == MAXSTACK) {
   37581                 :          0 :         p->error_indicator = 1;
   37582                 :            :         PyErr_NoMemory();
   37583                 :            :     }
   37584         [ -  + ]:    9792135 :     if (p->error_indicator) {
   37585                 :          0 :         p->level--;
   37586                 :          0 :         return NULL;
   37587                 :            :     }
   37588                 :    9792135 :     void * _res = NULL;
   37589                 :    9792135 :     int _mark = p->mark;
   37590                 :            :     { // 'and' inversion
   37591         [ -  + ]:    9792135 :         if (p->error_indicator) {
   37592                 :          0 :             p->level--;
   37593                 :          0 :             return NULL;
   37594                 :            :         }
   37595                 :            :         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         [ +  + ]:    9792135 :         if (
   37599                 :    9792135 :             (_keyword = _PyPegen_expect_token(p, 575))  // token='and'
   37600         [ +  - ]:      45893 :             &&
   37601                 :      45893 :             (c = inversion_rule(p))  // inversion
   37602                 :            :         )
   37603                 :            :         {
   37604                 :            :             D(fprintf(stderr, "%*c+ _tmp_226[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
   37605                 :      45893 :             _res = c;
   37606   [ -  +  -  - ]:      45893 :             if (_res == NULL && PyErr_Occurred()) {
   37607                 :          0 :                 p->error_indicator = 1;
   37608                 :          0 :                 p->level--;
   37609                 :          0 :                 return NULL;
   37610                 :            :             }
   37611                 :      45893 :             goto done;
   37612                 :            :         }
   37613                 :    9746242 :         p->mark = _mark;
   37614                 :            :         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                 :    9746242 :     _res = NULL;
   37618                 :    9792135 :   done:
   37619                 :    9792135 :     p->level--;
   37620                 :    9792135 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :      63504 : _tmp_229_rule(Parser *p)
   37731                 :            : {
   37732         [ -  + ]:      63504 :     if (p->level++ == MAXSTACK) {
   37733                 :          0 :         p->error_indicator = 1;
   37734                 :            :         PyErr_NoMemory();
   37735                 :            :     }
   37736         [ -  + ]:      63504 :     if (p->error_indicator) {
   37737                 :          0 :         p->level--;
   37738                 :          0 :         return NULL;
   37739                 :            :     }
   37740                 :      63504 :     void * _res = NULL;
   37741                 :      63504 :     int _mark = p->mark;
   37742                 :            :     { // 'if' disjunction
   37743         [ -  + ]:      63504 :         if (p->error_indicator) {
   37744                 :          0 :             p->level--;
   37745                 :          0 :             return NULL;
   37746                 :            :         }
   37747                 :            :         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         [ +  + ]:      63504 :         if (
   37751                 :      63504 :             (_keyword = _PyPegen_expect_token(p, 634))  // token='if'
   37752         [ +  - ]:      12432 :             &&
   37753                 :      12432 :             (z = disjunction_rule(p))  // disjunction
   37754                 :            :         )
   37755                 :            :         {
   37756                 :            :             D(fprintf(stderr, "%*c+ _tmp_229[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
   37757                 :      12432 :             _res = z;
   37758   [ -  +  -  - ]:      12432 :             if (_res == NULL && PyErr_Occurred()) {
   37759                 :          0 :                 p->error_indicator = 1;
   37760                 :          0 :                 p->level--;
   37761                 :          0 :                 return NULL;
   37762                 :            :             }
   37763                 :      12432 :             goto done;
   37764                 :            :         }
   37765                 :      51072 :         p->mark = _mark;
   37766                 :            :         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                 :      51072 :     _res = NULL;
   37770                 :      63504 :   done:
   37771                 :      63504 :     p->level--;
   37772                 :      63504 :     return _res;
   37773                 :            : }
   37774                 :            : 
   37775                 :            : // _tmp_230: starred_expression | (assignment_expression | expression !':=') !'='
   37776                 :            : static void *
   37777                 :    2751931 : _tmp_230_rule(Parser *p)
   37778                 :            : {
   37779         [ -  + ]:    2751931 :     if (p->level++ == MAXSTACK) {
   37780                 :          0 :         p->error_indicator = 1;
   37781                 :            :         PyErr_NoMemory();
   37782                 :            :     }
   37783         [ -  + ]:    2751931 :     if (p->error_indicator) {
   37784                 :          0 :         p->level--;
   37785                 :          0 :         return NULL;
   37786                 :            :     }
   37787                 :    2751931 :     void * _res = NULL;
   37788                 :    2751931 :     int _mark = p->mark;
   37789                 :            :     { // starred_expression
   37790         [ -  + ]:    2751931 :         if (p->error_indicator) {
   37791                 :          0 :             p->level--;
   37792                 :          0 :             return NULL;
   37793                 :            :         }
   37794                 :            :         D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
   37795                 :            :         expr_ty starred_expression_var;
   37796         [ +  + ]:    2751931 :         if (
   37797                 :    2751931 :             (starred_expression_var = starred_expression_rule(p))  // starred_expression
   37798                 :            :         )
   37799                 :            :         {
   37800                 :            :             D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
   37801                 :      10827 :             _res = starred_expression_var;
   37802                 :      10827 :             goto done;
   37803                 :            :         }
   37804                 :    2741104 :         p->mark = _mark;
   37805                 :            :         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         [ +  + ]:    2741104 :         if (p->error_indicator) {
   37810                 :         10 :             p->level--;
   37811                 :         10 :             return NULL;
   37812                 :            :         }
   37813                 :            :         D(fprintf(stderr, "%*c> _tmp_230[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
   37814                 :            :         void *_tmp_243_var;
   37815         [ +  + ]:    2741094 :         if (
   37816                 :    2741094 :             (_tmp_243_var = _tmp_243_rule(p))  // assignment_expression | expression !':='
   37817         [ +  + ]:    2183067 :             &&
   37818                 :    2183067 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22)  // token='='
   37819                 :            :         )
   37820                 :            :         {
   37821                 :            :             D(fprintf(stderr, "%*c+ _tmp_230[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
   37822                 :    2084321 :             _res = _tmp_243_var;
   37823                 :    2084321 :             goto done;
   37824                 :            :         }
   37825                 :     656773 :         p->mark = _mark;
   37826                 :            :         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                 :     656773 :     _res = NULL;
   37830                 :    2751921 :   done:
   37831                 :    2751921 :     p->level--;
   37832                 :    2751921 :     return _res;
   37833                 :            : }
   37834                 :            : 
   37835                 :            : // _tmp_231: ',' star_target
   37836                 :            : static void *
   37837                 :     135571 : _tmp_231_rule(Parser *p)
   37838                 :            : {
   37839         [ -  + ]:     135571 :     if (p->level++ == MAXSTACK) {
   37840                 :          0 :         p->error_indicator = 1;
   37841                 :            :         PyErr_NoMemory();
   37842                 :            :     }
   37843         [ -  + ]:     135571 :     if (p->error_indicator) {
   37844                 :          0 :         p->level--;
   37845                 :          0 :         return NULL;
   37846                 :            :     }
   37847                 :     135571 :     void * _res = NULL;
   37848                 :     135571 :     int _mark = p->mark;
   37849                 :            :     { // ',' star_target
   37850         [ -  + ]:     135571 :         if (p->error_indicator) {
   37851                 :          0 :             p->level--;
   37852                 :          0 :             return NULL;
   37853                 :            :         }
   37854                 :            :         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         [ +  + ]:     135571 :         if (
   37858                 :     135571 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   37859         [ +  + ]:      79982 :             &&
   37860                 :      79982 :             (c = star_target_rule(p))  // star_target
   37861                 :            :         )
   37862                 :            :         {
   37863                 :            :             D(fprintf(stderr, "%*c+ _tmp_231[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
   37864                 :      78819 :             _res = c;
   37865   [ -  +  -  - ]:      78819 :             if (_res == NULL && PyErr_Occurred()) {
   37866                 :          0 :                 p->error_indicator = 1;
   37867                 :          0 :                 p->level--;
   37868                 :          0 :                 return NULL;
   37869                 :            :             }
   37870                 :      78819 :             goto done;
   37871                 :            :         }
   37872                 :      56752 :         p->mark = _mark;
   37873                 :            :         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                 :      56752 :     _res = NULL;
   37877                 :     135571 :   done:
   37878                 :     135571 :     p->level--;
   37879                 :     135571 :     return _res;
   37880                 :            : }
   37881                 :            : 
   37882                 :            : // _tmp_232: ',' star_target
   37883                 :            : static void *
   37884                 :      32920 : _tmp_232_rule(Parser *p)
   37885                 :            : {
   37886         [ -  + ]:      32920 :     if (p->level++ == MAXSTACK) {
   37887                 :          0 :         p->error_indicator = 1;
   37888                 :            :         PyErr_NoMemory();
   37889                 :            :     }
   37890         [ -  + ]:      32920 :     if (p->error_indicator) {
   37891                 :          0 :         p->level--;
   37892                 :          0 :         return NULL;
   37893                 :            :     }
   37894                 :      32920 :     void * _res = NULL;
   37895                 :      32920 :     int _mark = p->mark;
   37896                 :            :     { // ',' star_target
   37897         [ -  + ]:      32920 :         if (p->error_indicator) {
   37898                 :          0 :             p->level--;
   37899                 :          0 :             return NULL;
   37900                 :            :         }
   37901                 :            :         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         [ +  + ]:      32920 :         if (
   37905                 :      32920 :             (_literal = _PyPegen_expect_token(p, 12))  // token=','
   37906         [ +  + ]:      18696 :             &&
   37907                 :      18696 :             (c = star_target_rule(p))  // star_target
   37908                 :            :         )
   37909                 :            :         {
   37910                 :            :             D(fprintf(stderr, "%*c+ _tmp_232[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
   37911                 :      16420 :             _res = c;
   37912   [ -  +  -  - ]:      16420 :             if (_res == NULL && PyErr_Occurred()) {
   37913                 :          0 :                 p->error_indicator = 1;
   37914                 :          0 :                 p->level--;
   37915                 :          0 :                 return NULL;
   37916                 :            :             }
   37917                 :      16420 :             goto done;
   37918                 :            :         }
   37919                 :      16500 :         p->mark = _mark;
   37920                 :            :         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                 :      16500 :     _res = NULL;
   37924                 :      32920 :   done:
   37925                 :      32920 :     p->level--;
   37926                 :      32920 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :    2741094 : _tmp_243_rule(Parser *p)
   38388                 :            : {
   38389         [ -  + ]:    2741094 :     if (p->level++ == MAXSTACK) {
   38390                 :          0 :         p->error_indicator = 1;
   38391                 :            :         PyErr_NoMemory();
   38392                 :            :     }
   38393         [ -  + ]:    2741094 :     if (p->error_indicator) {
   38394                 :          0 :         p->level--;
   38395                 :          0 :         return NULL;
   38396                 :            :     }
   38397                 :    2741094 :     void * _res = NULL;
   38398                 :    2741094 :     int _mark = p->mark;
   38399                 :            :     { // assignment_expression
   38400         [ -  + ]:    2741094 :         if (p->error_indicator) {
   38401                 :          0 :             p->level--;
   38402                 :          0 :             return NULL;
   38403                 :            :         }
   38404                 :            :         D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
   38405                 :            :         expr_ty assignment_expression_var;
   38406         [ +  + ]:    2741094 :         if (
   38407                 :    2741094 :             (assignment_expression_var = assignment_expression_rule(p))  // assignment_expression
   38408                 :            :         )
   38409                 :            :         {
   38410                 :            :             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                 :    2741061 :         p->mark = _mark;
   38415                 :            :         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         [ +  + ]:    2741061 :         if (p->error_indicator) {
   38420                 :          6 :             p->level--;
   38421                 :          6 :             return NULL;
   38422                 :            :         }
   38423                 :            :         D(fprintf(stderr, "%*c> _tmp_243[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
   38424                 :            :         expr_ty expression_var;
   38425         [ +  + ]:    2741055 :         if (
   38426                 :    2741055 :             (expression_var = expression_rule(p))  // expression
   38427         [ +  - ]:    2183034 :             &&
   38428                 :    2183034 :             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53)  // token=':='
   38429                 :            :         )
   38430                 :            :         {
   38431                 :            :             D(fprintf(stderr, "%*c+ _tmp_243[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
   38432                 :    2183034 :             _res = expression_var;
   38433                 :    2183034 :             goto done;
   38434                 :            :         }
   38435                 :     558021 :         p->mark = _mark;
   38436                 :            :         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                 :     558021 :     _res = NULL;
   38440                 :    2741088 :   done:
   38441                 :    2741088 :     p->level--;
   38442                 :    2741088 :     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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :             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                 :            :         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                 :            :         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                 :            :         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                 :            :         D(fprintf(stderr, "%*c> _loop1_248[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
   38643                 :            :         excepthandler_ty except_block_var;
   38644                 :         49 :         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                 :            :                     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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :            :         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                 :         30 :         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                 :            :                     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                 :            :         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                 :            :         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                 :     224226 : _PyPegen_parse(Parser *p)
   38763                 :            : {
   38764                 :            :     // Initialize keywords
   38765                 :     224226 :     p->keywords = reserved_keywords;
   38766                 :     224226 :     p->n_keyword_lists = n_keyword_lists;
   38767                 :     224226 :     p->soft_keywords = soft_keywords;
   38768                 :            : 
   38769                 :            :     // Run parser
   38770                 :     224226 :     void *result = NULL;
   38771         [ +  + ]:     224226 :     if (p->start_rule == Py_file_input) {
   38772                 :      49245 :         result = file_rule(p);
   38773         [ +  + ]:     174981 :     } else if (p->start_rule == Py_single_input) {
   38774                 :       5077 :         result = interactive_rule(p);
   38775         [ +  + ]:     169904 :     } else if (p->start_rule == Py_eval_input) {
   38776                 :      73802 :         result = eval_rule(p);
   38777         [ +  + ]:      96102 :     } else if (p->start_rule == Py_func_type_input) {
   38778                 :         18 :         result = func_type_rule(p);
   38779         [ +  - ]:      96084 :     } else if (p->start_rule == Py_fstring_input) {
   38780                 :      96084 :         result = fstring_rule(p);
   38781                 :            :     }
   38782                 :            : 
   38783                 :     224226 :     return result;
   38784                 :            : }

Generated by: LCOV version 1.14