Coverage Report

Created: 2026-10-31 06:21

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/cpython/Parser/parser_invalid.c
Line
Count
Source
1
// @generated by pegen from invalid.gram
2
#include "pegen.h"
3
#include "pycore_ceval.h"
4
5
#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
6
#  define D(x) if (p->debug) { x; }
7
#else
8
#  define D(x)
9
#endif
10
11
#ifdef __wasi__
12
#  ifdef Py_DEBUG
13
#    define MAXSTACK 1000
14
#  else
15
#    define MAXSTACK 4000
16
#  endif
17
#else
18
18.8M
#  define MAXSTACK 6000
19
#endif
20
#define invalid_arguments_type 1193
21
#define invalid_kwarg_type 1194
22
#define expression_without_invalid_type 1195
23
#define invalid_legacy_expression_type 1196
24
#define invalid_type_param_type 1197
25
#define invalid_expression_type 1198
26
#define invalid_if_expression_type 1199
27
445k
#define invalid_named_expression_type 1200
28
#define invalid_assignment_type 1201
29
#define invalid_ann_assign_target_type 1202
30
#define invalid_raise_stmt_type 1203
31
#define invalid_del_stmt_type 1204
32
#define invalid_assert_stmt_type 1205
33
#define invalid_block_type 1206
34
#define invalid_comprehension_type 1207
35
#define invalid_parameters_type 1208
36
#define invalid_default_type 1209
37
#define invalid_star_etc_type 1210
38
#define invalid_kwds_type 1211
39
#define invalid_parameters_helper_type 1212
40
#define invalid_lambda_parameters_type 1213
41
#define invalid_lambda_parameters_helper_type 1214
42
#define invalid_lambda_star_etc_type 1215
43
#define invalid_lambda_kwds_type 1216
44
#define invalid_double_type_comments_type 1217
45
#define invalid_with_item_type 1218
46
#define invalid_for_if_clause_type 1219
47
#define invalid_for_target_type 1220
48
#define invalid_group_type 1221
49
#define invalid_import_type 1222
50
#define invalid_dotted_as_name_type 1223
51
#define invalid_import_from_as_name_type 1224
52
#define invalid_import_from_type 1225
53
#define invalid_import_from_targets_type 1226
54
#define invalid_with_stmt_type 1227
55
#define invalid_with_stmt_indent_type 1228
56
#define invalid_try_stmt_type 1229
57
#define invalid_except_stmt_type 1230
58
#define invalid_except_star_stmt_type 1231
59
#define invalid_finally_stmt_type 1232
60
#define invalid_except_stmt_indent_type 1233
61
#define invalid_except_star_stmt_indent_type 1234
62
#define invalid_match_stmt_type 1235
63
#define invalid_case_block_type 1236
64
#define invalid_as_pattern_type 1237
65
#define invalid_class_pattern_type 1238
66
#define invalid_mapping_pattern_type 1239
67
#define invalid_class_argument_pattern_type 1240
68
#define invalid_if_stmt_type 1241
69
#define invalid_elif_stmt_type 1242
70
#define invalid_else_stmt_type 1243
71
#define invalid_while_stmt_type 1244
72
#define invalid_for_stmt_type 1245
73
#define invalid_def_raw_type 1246
74
#define invalid_class_def_raw_type 1247
75
#define invalid_double_starred_kvpairs_type 1248
76
#define invalid_kvpair_unpacking_type 1249
77
#define invalid_kvpair_type 1250
78
#define invalid_starred_expression_unpacking_type 1251
79
#define invalid_starred_expression_unpacking_sequence_type 1252
80
#define invalid_starred_expression_type 1253
81
#define invalid_fstring_replacement_field_type 1254
82
#define invalid_fstring_conversion_character_type 1255
83
#define invalid_tstring_replacement_field_type 1256
84
#define invalid_tstring_conversion_character_type 1257
85
#define invalid_string_tstring_concat_type 1258
86
#define invalid_arithmetic_type 1259  // Left-recursive
87
#define invalid_factor_type 1260
88
#define invalid_type_params_type 1261
89
#define invalid_bitwise_and_type 1262  // Left-recursive
90
#define invalid_bitwise_or_type 1263  // Left-recursive
91
#define invalid_noteq_type 1264
92
#define _tmp_106_type 1370
93
#define _loop0_107_type 1371
94
#define _gather_108_type 1372
95
#define _tmp_109_type 1373
96
#define _tmp_110_type 1374
97
#define _tmp_111_type 1375
98
#define _tmp_112_type 1376
99
#define _loop1_113_type 1377
100
#define _tmp_114_type 1378
101
#define _tmp_115_type 1379
102
#define _tmp_116_type 1380
103
#define _tmp_117_type 1381
104
#define _tmp_118_type 1382
105
#define _loop0_119_type 1383
106
#define _loop0_120_type 1384
107
#define _tmp_121_type 1385
108
#define _tmp_122_type 1386
109
#define _loop0_123_type 1387
110
#define _loop0_124_type 1388
111
#define _loop1_125_type 1389
112
#define _tmp_126_type 1390
113
#define _loop1_127_type 1391
114
#define _tmp_128_type 1392
115
#define _tmp_129_type 1393
116
#define _tmp_130_type 1394
117
#define _tmp_131_type 1395
118
#define _loop1_132_type 1396
119
#define _tmp_133_type 1397
120
#define _loop0_134_type 1398
121
#define _loop0_135_type 1399
122
#define _loop0_136_type 1400
123
#define _gather_137_type 1401
124
#define _tmp_138_type 1402
125
#define _loop1_139_type 1403
126
#define _loop1_140_type 1404
127
#define _tmp_141_type 1405
128
#define _tmp_142_type 1406
129
#define _tmp_143_type 1407
130
#define _tmp_144_type 1408
131
#define _loop0_145_type 1409
132
#define _gather_146_type 1410
133
#define _tmp_147_type 1411
134
#define _loop0_148_type 1412
135
#define _loop0_149_type 1413
136
#define _gather_150_type 1414
137
#define _loop0_151_type 1415
138
#define _gather_152_type 1416
139
#define _tmp_153_type 1417
140
#define _loop0_154_type 1418
141
#define _loop1_155_type 1419
142
#define _tmp_156_type 1420
143
#define _loop1_157_type 1421
144
#define _tmp_158_type 1422
145
#define _tmp_159_type 1423
146
#define _tmp_160_type 1424
147
#define _tmp_161_type 1425
148
#define _tmp_162_type 1426
149
#define _tmp_163_type 1427
150
#define _loop0_164_type 1428
151
#define _gather_165_type 1429
152
#define _tmp_166_type 1430
153
#define _tmp_167_type 1431
154
#define _tmp_168_type 1432
155
#define _tmp_169_type 1433
156
#define _tmp_170_type 1434
157
#define _tmp_171_type 1435
158
#define _loop0_172_type 1436
159
#define _loop1_173_type 1437
160
#define _loop1_174_type 1438
161
#define _tmp_175_type 1439
162
#define _tmp_176_type 1440
163
#define _tmp_177_type 1441
164
#define _tmp_189_type 1453
165
#define _tmp_190_type 1454
166
#define _tmp_191_type 1455
167
#define _tmp_192_type 1456
168
#define _tmp_193_type 1457
169
#define _tmp_194_type 1458
170
#define _loop0_195_type 1459
171
#define _tmp_196_type 1460
172
#define _tmp_197_type 1461
173
#define _tmp_198_type 1462
174
#define _tmp_199_type 1463
175
#define _loop0_201_type 1465
176
#define _gather_202_type 1466
177
#define _tmp_203_type 1467
178
#define _tmp_204_type 1468
179
#define _tmp_205_type 1469
180
#define _tmp_206_type 1470
181
182
// Rules shared between the C files of this parser
183
2.33k
#define simple_stmt_rule _PyPegen_simple_stmt_rule
184
Py_LOCAL_SYMBOL stmt_ty simple_stmt_rule(Parser *p);
185
1.17k
#define annotated_rhs_rule _PyPegen_annotated_rhs_rule
186
Py_LOCAL_SYMBOL expr_ty annotated_rhs_rule(Parser *p);
187
32.5k
#define augassign_rule _PyPegen_augassign_rule
188
Py_LOCAL_SYMBOL AugOperator* augassign_rule(Parser *p);
189
336k
#define pass_stmt_rule _PyPegen_pass_stmt_rule
190
Py_LOCAL_SYMBOL stmt_ty pass_stmt_rule(Parser *p);
191
336k
#define break_stmt_rule _PyPegen_break_stmt_rule
192
Py_LOCAL_SYMBOL stmt_ty break_stmt_rule(Parser *p);
193
336k
#define continue_stmt_rule _PyPegen_continue_stmt_rule
194
Py_LOCAL_SYMBOL stmt_ty continue_stmt_rule(Parser *p);
195
3
#define import_from_targets_rule _PyPegen_import_from_targets_rule
196
Py_LOCAL_SYMBOL asdl_alias_seq* import_from_targets_rule(Parser *p);
197
148
#define import_from_as_names_rule _PyPegen_import_from_as_names_rule
198
Py_LOCAL_SYMBOL asdl_alias_seq* import_from_as_names_rule(Parser *p);
199
7.17k
#define dotted_name_rule _PyPegen_dotted_name_rule
200
Py_LOCAL_SYMBOL expr_ty dotted_name_rule(Parser *p);
201
11.2k
#define block_rule _PyPegen_block_rule
202
Py_LOCAL_SYMBOL asdl_stmt_seq* block_rule(Parser *p);
203
4.65k
#define params_rule _PyPegen_params_rule
204
Py_LOCAL_SYMBOL arguments_ty params_rule(Parser *p);
205
14.5k
#define slash_no_default_rule _PyPegen_slash_no_default_rule
206
Py_LOCAL_SYMBOL asdl_arg_seq* slash_no_default_rule(Parser *p);
207
14.0k
#define slash_with_default_rule _PyPegen_slash_with_default_rule
208
Py_LOCAL_SYMBOL SlashWithDefault* slash_with_default_rule(Parser *p);
209
16.6k
#define param_no_default_rule _PyPegen_param_no_default_rule
210
Py_LOCAL_SYMBOL arg_ty param_no_default_rule(Parser *p);
211
5.68k
#define param_with_default_rule _PyPegen_param_with_default_rule
212
Py_LOCAL_SYMBOL NameDefaultPair* param_with_default_rule(Parser *p);
213
26.1k
#define param_maybe_default_rule _PyPegen_param_maybe_default_rule
214
Py_LOCAL_SYMBOL NameDefaultPair* param_maybe_default_rule(Parser *p);
215
2.83k
#define param_rule _PyPegen_param_rule
216
Py_LOCAL_SYMBOL arg_ty param_rule(Parser *p);
217
3.49k
#define except_block_rule _PyPegen_except_block_rule
218
Py_LOCAL_SYMBOL excepthandler_ty except_block_rule(Parser *p);
219
3.04k
#define except_star_block_rule _PyPegen_except_star_block_rule
220
Py_LOCAL_SYMBOL excepthandler_ty except_star_block_rule(Parser *p);
221
2.55k
#define subject_expr_rule _PyPegen_subject_expr_rule
222
Py_LOCAL_SYMBOL expr_ty subject_expr_rule(Parser *p);
223
2.65k
#define guard_rule _PyPegen_guard_rule
224
Py_LOCAL_SYMBOL expr_ty guard_rule(Parser *p);
225
4.24k
#define patterns_rule _PyPegen_patterns_rule
226
Py_LOCAL_SYMBOL pattern_ty patterns_rule(Parser *p);
227
93.6k
#define or_pattern_rule _PyPegen_or_pattern_rule
228
Py_LOCAL_SYMBOL pattern_ty or_pattern_rule(Parser *p);
229
9.90k
#define name_or_attr_rule _PyPegen_name_or_attr_rule
230
Py_LOCAL_SYMBOL expr_ty name_or_attr_rule(Parser *p);
231
3.04k
#define items_pattern_rule _PyPegen_items_pattern_rule
232
Py_LOCAL_SYMBOL asdl_seq* items_pattern_rule(Parser *p);
233
2.31k
#define double_star_pattern_rule _PyPegen_double_star_pattern_rule
234
Py_LOCAL_SYMBOL expr_ty double_star_pattern_rule(Parser *p);
235
3.19k
#define positional_patterns_rule _PyPegen_positional_patterns_rule
236
Py_LOCAL_SYMBOL asdl_pattern_seq* positional_patterns_rule(Parser *p);
237
2.85k
#define keyword_patterns_rule _PyPegen_keyword_patterns_rule
238
Py_LOCAL_SYMBOL asdl_seq* keyword_patterns_rule(Parser *p);
239
6.70k
#define type_params_rule _PyPegen_type_params_rule
240
Py_LOCAL_SYMBOL asdl_type_param_seq* type_params_rule(Parser *p);
241
3.16k
#define expressions_rule _PyPegen_expressions_rule
242
Py_LOCAL_SYMBOL expr_ty expressions_rule(Parser *p);
243
462k
#define expression_rule _PyPegen_expression_rule
244
Py_LOCAL_SYMBOL expr_ty expression_rule(Parser *p);
245
14.9k
#define if_expression_rule _PyPegen_if_expression_rule
246
Py_LOCAL_SYMBOL expr_ty if_expression_rule(Parser *p);
247
98.4k
#define yield_expr_rule _PyPegen_yield_expr_rule
248
Py_LOCAL_SYMBOL expr_ty yield_expr_rule(Parser *p);
249
273k
#define star_expressions_rule _PyPegen_star_expressions_rule
250
Py_LOCAL_SYMBOL expr_ty star_expressions_rule(Parser *p);
251
7.51k
#define star_named_expressions_rule _PyPegen_star_named_expressions_rule
252
Py_LOCAL_SYMBOL asdl_expr_seq* star_named_expressions_rule(Parser *p);
253
158k
#define star_named_expression_rule _PyPegen_star_named_expression_rule
254
Py_LOCAL_SYMBOL expr_ty star_named_expression_rule(Parser *p);
255
10.1k
#define assignment_expression_rule _PyPegen_assignment_expression_rule
256
Py_LOCAL_SYMBOL expr_ty assignment_expression_rule(Parser *p);
257
3.49k
#define named_expression_rule _PyPegen_named_expression_rule
258
Py_LOCAL_SYMBOL expr_ty named_expression_rule(Parser *p);
259
1.85M
#define disjunction_rule _PyPegen_disjunction_rule
260
Py_LOCAL_SYMBOL expr_ty disjunction_rule(Parser *p);
261
68
#define inversion_rule _PyPegen_inversion_rule
262
Py_LOCAL_SYMBOL expr_ty inversion_rule(Parser *p);
263
556k
#define bitwise_or_rule _PyPegen_bitwise_or_rule
264
Py_LOCAL_SYMBOL expr_ty bitwise_or_rule(Parser *p);
265
404k
#define bitwise_and_rule _PyPegen_bitwise_and_rule
266
Py_LOCAL_SYMBOL expr_ty bitwise_and_rule(Parser *p);
267
409k
#define sum_rule _PyPegen_sum_rule
268
Py_LOCAL_SYMBOL expr_ty sum_rule(Parser *p);
269
69
#define factor_rule _PyPegen_factor_rule
270
Py_LOCAL_SYMBOL expr_ty factor_rule(Parser *p);
271
106k
#define lambdef_rule _PyPegen_lambdef_rule
272
Py_LOCAL_SYMBOL expr_ty lambdef_rule(Parser *p);
273
111k
#define lambda_params_rule _PyPegen_lambda_params_rule
274
Py_LOCAL_SYMBOL arguments_ty lambda_params_rule(Parser *p);
275
498k
#define lambda_slash_no_default_rule _PyPegen_lambda_slash_no_default_rule
276
Py_LOCAL_SYMBOL asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
277
497k
#define lambda_slash_with_default_rule _PyPegen_lambda_slash_with_default_rule
278
Py_LOCAL_SYMBOL SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
279
663k
#define lambda_param_no_default_rule _PyPegen_lambda_param_no_default_rule
280
Py_LOCAL_SYMBOL arg_ty lambda_param_no_default_rule(Parser *p);
281
166k
#define lambda_param_with_default_rule _PyPegen_lambda_param_with_default_rule
282
Py_LOCAL_SYMBOL NameDefaultPair* lambda_param_with_default_rule(Parser *p);
283
671k
#define lambda_param_maybe_default_rule _PyPegen_lambda_param_maybe_default_rule
284
Py_LOCAL_SYMBOL NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
285
7.01k
#define lambda_param_rule _PyPegen_lambda_param_rule
286
Py_LOCAL_SYMBOL arg_ty lambda_param_rule(Parser *p);
287
872
#define fstring_format_spec_rule _PyPegen_fstring_format_spec_rule
288
Py_LOCAL_SYMBOL expr_ty fstring_format_spec_rule(Parser *p);
289
46.0k
#define fstring_rule _PyPegen_fstring_rule
290
Py_LOCAL_SYMBOL expr_ty fstring_rule(Parser *p);
291
37.4k
#define tstring_rule _PyPegen_tstring_rule
292
Py_LOCAL_SYMBOL expr_ty tstring_rule(Parser *p);
293
39.2k
#define string_rule _PyPegen_string_rule
294
Py_LOCAL_SYMBOL expr_ty string_rule(Parser *p);
295
252k
#define list_rule _PyPegen_list_rule
296
Py_LOCAL_SYMBOL expr_ty list_rule(Parser *p);
297
251k
#define tuple_rule _PyPegen_tuple_rule
298
Py_LOCAL_SYMBOL expr_ty tuple_rule(Parser *p);
299
15.8k
#define double_starred_kvpair_rule _PyPegen_double_starred_kvpair_rule
300
Py_LOCAL_SYMBOL KeyValuePair* double_starred_kvpair_rule(Parser *p);
301
25.3k
#define for_if_clauses_rule _PyPegen_for_if_clauses_rule
302
Py_LOCAL_SYMBOL asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
303
146k
#define genexp_rule _PyPegen_genexp_rule
304
Py_LOCAL_SYMBOL expr_ty genexp_rule(Parser *p);
305
428
#define arguments_rule _PyPegen_arguments_rule
306
Py_LOCAL_SYMBOL expr_ty arguments_rule(Parser *p);
307
30.5k
#define args_rule _PyPegen_args_rule
308
Py_LOCAL_SYMBOL expr_ty args_rule(Parser *p);
309
8.97k
#define kwargs_rule _PyPegen_kwargs_rule
310
Py_LOCAL_SYMBOL asdl_seq* kwargs_rule(Parser *p);
311
18.9k
#define starred_expression_rule _PyPegen_starred_expression_rule
312
Py_LOCAL_SYMBOL expr_ty starred_expression_rule(Parser *p);
313
198k
#define star_targets_rule _PyPegen_star_targets_rule
314
Py_LOCAL_SYMBOL expr_ty star_targets_rule(Parser *p);
315
895
#define star_target_rule _PyPegen_star_target_rule
316
Py_LOCAL_SYMBOL expr_ty star_target_rule(Parser *p);
317
2.08k
#define func_type_comment_rule _PyPegen_func_type_comment_rule
318
Py_LOCAL_SYMBOL Token* func_type_comment_rule(Parser *p);
319
#define invalid_arguments_rule _PyPegen_invalid_arguments_rule
320
Py_LOCAL_SYMBOL void *invalid_arguments_rule(Parser *p);
321
#define invalid_kwarg_rule _PyPegen_invalid_kwarg_rule
322
Py_LOCAL_SYMBOL void *invalid_kwarg_rule(Parser *p);
323
#define invalid_legacy_expression_rule _PyPegen_invalid_legacy_expression_rule
324
Py_LOCAL_SYMBOL void *invalid_legacy_expression_rule(Parser *p);
325
#define invalid_type_param_rule _PyPegen_invalid_type_param_rule
326
Py_LOCAL_SYMBOL void *invalid_type_param_rule(Parser *p);
327
#define invalid_expression_rule _PyPegen_invalid_expression_rule
328
Py_LOCAL_SYMBOL void *invalid_expression_rule(Parser *p);
329
#define invalid_if_expression_rule _PyPegen_invalid_if_expression_rule
330
Py_LOCAL_SYMBOL void *invalid_if_expression_rule(Parser *p);
331
#define invalid_named_expression_rule _PyPegen_invalid_named_expression_rule
332
Py_LOCAL_SYMBOL void *invalid_named_expression_rule(Parser *p);
333
#define invalid_assignment_rule _PyPegen_invalid_assignment_rule
334
Py_LOCAL_SYMBOL void *invalid_assignment_rule(Parser *p);
335
#define invalid_raise_stmt_rule _PyPegen_invalid_raise_stmt_rule
336
Py_LOCAL_SYMBOL void *invalid_raise_stmt_rule(Parser *p);
337
#define invalid_del_stmt_rule _PyPegen_invalid_del_stmt_rule
338
Py_LOCAL_SYMBOL void *invalid_del_stmt_rule(Parser *p);
339
#define invalid_assert_stmt_rule _PyPegen_invalid_assert_stmt_rule
340
Py_LOCAL_SYMBOL void *invalid_assert_stmt_rule(Parser *p);
341
#define invalid_block_rule _PyPegen_invalid_block_rule
342
Py_LOCAL_SYMBOL void *invalid_block_rule(Parser *p);
343
#define invalid_comprehension_rule _PyPegen_invalid_comprehension_rule
344
Py_LOCAL_SYMBOL void *invalid_comprehension_rule(Parser *p);
345
#define invalid_parameters_rule _PyPegen_invalid_parameters_rule
346
Py_LOCAL_SYMBOL void *invalid_parameters_rule(Parser *p);
347
#define invalid_default_rule _PyPegen_invalid_default_rule
348
Py_LOCAL_SYMBOL void *invalid_default_rule(Parser *p);
349
#define invalid_star_etc_rule _PyPegen_invalid_star_etc_rule
350
Py_LOCAL_SYMBOL void *invalid_star_etc_rule(Parser *p);
351
#define invalid_kwds_rule _PyPegen_invalid_kwds_rule
352
Py_LOCAL_SYMBOL void *invalid_kwds_rule(Parser *p);
353
#define invalid_lambda_parameters_rule _PyPegen_invalid_lambda_parameters_rule
354
Py_LOCAL_SYMBOL void *invalid_lambda_parameters_rule(Parser *p);
355
#define invalid_lambda_star_etc_rule _PyPegen_invalid_lambda_star_etc_rule
356
Py_LOCAL_SYMBOL void *invalid_lambda_star_etc_rule(Parser *p);
357
#define invalid_lambda_kwds_rule _PyPegen_invalid_lambda_kwds_rule
358
Py_LOCAL_SYMBOL void *invalid_lambda_kwds_rule(Parser *p);
359
#define invalid_double_type_comments_rule _PyPegen_invalid_double_type_comments_rule
360
Py_LOCAL_SYMBOL void *invalid_double_type_comments_rule(Parser *p);
361
#define invalid_with_item_rule _PyPegen_invalid_with_item_rule
362
Py_LOCAL_SYMBOL void *invalid_with_item_rule(Parser *p);
363
#define invalid_for_if_clause_rule _PyPegen_invalid_for_if_clause_rule
364
Py_LOCAL_SYMBOL void *invalid_for_if_clause_rule(Parser *p);
365
#define invalid_for_target_rule _PyPegen_invalid_for_target_rule
366
Py_LOCAL_SYMBOL void *invalid_for_target_rule(Parser *p);
367
#define invalid_group_rule _PyPegen_invalid_group_rule
368
Py_LOCAL_SYMBOL void *invalid_group_rule(Parser *p);
369
#define invalid_import_rule _PyPegen_invalid_import_rule
370
Py_LOCAL_SYMBOL void *invalid_import_rule(Parser *p);
371
#define invalid_dotted_as_name_rule _PyPegen_invalid_dotted_as_name_rule
372
Py_LOCAL_SYMBOL void *invalid_dotted_as_name_rule(Parser *p);
373
#define invalid_import_from_as_name_rule _PyPegen_invalid_import_from_as_name_rule
374
Py_LOCAL_SYMBOL void *invalid_import_from_as_name_rule(Parser *p);
375
#define invalid_import_from_rule _PyPegen_invalid_import_from_rule
376
Py_LOCAL_SYMBOL void *invalid_import_from_rule(Parser *p);
377
#define invalid_import_from_targets_rule _PyPegen_invalid_import_from_targets_rule
378
Py_LOCAL_SYMBOL void *invalid_import_from_targets_rule(Parser *p);
379
#define invalid_with_stmt_rule _PyPegen_invalid_with_stmt_rule
380
Py_LOCAL_SYMBOL void *invalid_with_stmt_rule(Parser *p);
381
#define invalid_with_stmt_indent_rule _PyPegen_invalid_with_stmt_indent_rule
382
Py_LOCAL_SYMBOL void *invalid_with_stmt_indent_rule(Parser *p);
383
#define invalid_try_stmt_rule _PyPegen_invalid_try_stmt_rule
384
Py_LOCAL_SYMBOL void *invalid_try_stmt_rule(Parser *p);
385
#define invalid_except_stmt_rule _PyPegen_invalid_except_stmt_rule
386
Py_LOCAL_SYMBOL void *invalid_except_stmt_rule(Parser *p);
387
#define invalid_except_star_stmt_rule _PyPegen_invalid_except_star_stmt_rule
388
Py_LOCAL_SYMBOL void *invalid_except_star_stmt_rule(Parser *p);
389
#define invalid_finally_stmt_rule _PyPegen_invalid_finally_stmt_rule
390
Py_LOCAL_SYMBOL void *invalid_finally_stmt_rule(Parser *p);
391
#define invalid_except_stmt_indent_rule _PyPegen_invalid_except_stmt_indent_rule
392
Py_LOCAL_SYMBOL void *invalid_except_stmt_indent_rule(Parser *p);
393
#define invalid_except_star_stmt_indent_rule _PyPegen_invalid_except_star_stmt_indent_rule
394
Py_LOCAL_SYMBOL void *invalid_except_star_stmt_indent_rule(Parser *p);
395
#define invalid_match_stmt_rule _PyPegen_invalid_match_stmt_rule
396
Py_LOCAL_SYMBOL void *invalid_match_stmt_rule(Parser *p);
397
#define invalid_case_block_rule _PyPegen_invalid_case_block_rule
398
Py_LOCAL_SYMBOL void *invalid_case_block_rule(Parser *p);
399
#define invalid_as_pattern_rule _PyPegen_invalid_as_pattern_rule
400
Py_LOCAL_SYMBOL void *invalid_as_pattern_rule(Parser *p);
401
#define invalid_class_pattern_rule _PyPegen_invalid_class_pattern_rule
402
Py_LOCAL_SYMBOL void *invalid_class_pattern_rule(Parser *p);
403
#define invalid_mapping_pattern_rule _PyPegen_invalid_mapping_pattern_rule
404
Py_LOCAL_SYMBOL void *invalid_mapping_pattern_rule(Parser *p);
405
#define invalid_if_stmt_rule _PyPegen_invalid_if_stmt_rule
406
Py_LOCAL_SYMBOL void *invalid_if_stmt_rule(Parser *p);
407
#define invalid_elif_stmt_rule _PyPegen_invalid_elif_stmt_rule
408
Py_LOCAL_SYMBOL void *invalid_elif_stmt_rule(Parser *p);
409
#define invalid_else_stmt_rule _PyPegen_invalid_else_stmt_rule
410
Py_LOCAL_SYMBOL void *invalid_else_stmt_rule(Parser *p);
411
#define invalid_while_stmt_rule _PyPegen_invalid_while_stmt_rule
412
Py_LOCAL_SYMBOL void *invalid_while_stmt_rule(Parser *p);
413
#define invalid_for_stmt_rule _PyPegen_invalid_for_stmt_rule
414
Py_LOCAL_SYMBOL void *invalid_for_stmt_rule(Parser *p);
415
#define invalid_def_raw_rule _PyPegen_invalid_def_raw_rule
416
Py_LOCAL_SYMBOL void *invalid_def_raw_rule(Parser *p);
417
#define invalid_class_def_raw_rule _PyPegen_invalid_class_def_raw_rule
418
Py_LOCAL_SYMBOL void *invalid_class_def_raw_rule(Parser *p);
419
#define invalid_double_starred_kvpairs_rule _PyPegen_invalid_double_starred_kvpairs_rule
420
Py_LOCAL_SYMBOL void *invalid_double_starred_kvpairs_rule(Parser *p);
421
66.5k
#define invalid_starred_expression_unpacking_rule _PyPegen_invalid_starred_expression_unpacking_rule
422
Py_LOCAL_SYMBOL void *invalid_starred_expression_unpacking_rule(Parser *p);
423
#define invalid_starred_expression_unpacking_sequence_rule _PyPegen_invalid_starred_expression_unpacking_sequence_rule
424
Py_LOCAL_SYMBOL void *invalid_starred_expression_unpacking_sequence_rule(Parser *p);
425
#define invalid_starred_expression_rule _PyPegen_invalid_starred_expression_rule
426
Py_LOCAL_SYMBOL void *invalid_starred_expression_rule(Parser *p);
427
#define invalid_fstring_replacement_field_rule _PyPegen_invalid_fstring_replacement_field_rule
428
Py_LOCAL_SYMBOL void *invalid_fstring_replacement_field_rule(Parser *p);
429
#define invalid_tstring_replacement_field_rule _PyPegen_invalid_tstring_replacement_field_rule
430
Py_LOCAL_SYMBOL void *invalid_tstring_replacement_field_rule(Parser *p);
431
#define invalid_string_tstring_concat_rule _PyPegen_invalid_string_tstring_concat_rule
432
Py_LOCAL_SYMBOL void *invalid_string_tstring_concat_rule(Parser *p);
433
#define invalid_arithmetic_rule _PyPegen_invalid_arithmetic_rule
434
Py_LOCAL_SYMBOL void *invalid_arithmetic_rule(Parser *p);
435
#define invalid_factor_rule _PyPegen_invalid_factor_rule
436
Py_LOCAL_SYMBOL void *invalid_factor_rule(Parser *p);
437
#define invalid_type_params_rule _PyPegen_invalid_type_params_rule
438
Py_LOCAL_SYMBOL void *invalid_type_params_rule(Parser *p);
439
#define invalid_bitwise_and_rule _PyPegen_invalid_bitwise_and_rule
440
Py_LOCAL_SYMBOL void *invalid_bitwise_and_rule(Parser *p);
441
#define invalid_bitwise_or_rule _PyPegen_invalid_bitwise_or_rule
442
Py_LOCAL_SYMBOL void *invalid_bitwise_or_rule(Parser *p);
443
#define invalid_noteq_rule _PyPegen_invalid_noteq_rule
444
Py_LOCAL_SYMBOL void *invalid_noteq_rule(Parser *p);
445
446
static expr_ty expression_without_invalid_rule(Parser *p);
447
static expr_ty invalid_ann_assign_target_rule(Parser *p);
448
static void *invalid_parameters_helper_rule(Parser *p);
449
static void *invalid_lambda_parameters_helper_rule(Parser *p);
450
static asdl_pattern_seq* invalid_class_argument_pattern_rule(Parser *p);
451
static void *invalid_kvpair_unpacking_rule(Parser *p);
452
static void *invalid_kvpair_rule(Parser *p);
453
static void *invalid_fstring_conversion_character_rule(Parser *p);
454
static void *invalid_tstring_conversion_character_rule(Parser *p);
455
static void *_tmp_106_rule(Parser *p);
456
static asdl_seq *_loop0_107_rule(Parser *p);
457
static asdl_seq *_gather_108_rule(Parser *p);
458
static void *_tmp_109_rule(Parser *p);
459
static void *_tmp_110_rule(Parser *p);
460
static void *_tmp_111_rule(Parser *p);
461
static void *_tmp_112_rule(Parser *p);
462
static asdl_seq *_loop1_113_rule(Parser *p);
463
static void *_tmp_114_rule(Parser *p);
464
static void *_tmp_115_rule(Parser *p);
465
static void *_tmp_116_rule(Parser *p);
466
static void *_tmp_117_rule(Parser *p);
467
static void *_tmp_118_rule(Parser *p);
468
static asdl_seq *_loop0_119_rule(Parser *p);
469
static asdl_seq *_loop0_120_rule(Parser *p);
470
static void *_tmp_121_rule(Parser *p);
471
static void *_tmp_122_rule(Parser *p);
472
static asdl_seq *_loop0_123_rule(Parser *p);
473
static asdl_seq *_loop0_124_rule(Parser *p);
474
static asdl_seq *_loop1_125_rule(Parser *p);
475
static void *_tmp_126_rule(Parser *p);
476
static asdl_seq *_loop1_127_rule(Parser *p);
477
static void *_tmp_128_rule(Parser *p);
478
static void *_tmp_129_rule(Parser *p);
479
static void *_tmp_130_rule(Parser *p);
480
static void *_tmp_131_rule(Parser *p);
481
static asdl_seq *_loop1_132_rule(Parser *p);
482
static void *_tmp_133_rule(Parser *p);
483
static asdl_seq *_loop0_134_rule(Parser *p);
484
static asdl_seq *_loop0_135_rule(Parser *p);
485
static asdl_seq *_loop0_136_rule(Parser *p);
486
static asdl_seq *_gather_137_rule(Parser *p);
487
static void *_tmp_138_rule(Parser *p);
488
static asdl_seq *_loop1_139_rule(Parser *p);
489
static asdl_seq *_loop1_140_rule(Parser *p);
490
static void *_tmp_141_rule(Parser *p);
491
static void *_tmp_142_rule(Parser *p);
492
static void *_tmp_143_rule(Parser *p);
493
static void *_tmp_144_rule(Parser *p);
494
static asdl_seq *_loop0_145_rule(Parser *p);
495
static asdl_seq *_gather_146_rule(Parser *p);
496
static void *_tmp_147_rule(Parser *p);
497
static asdl_seq *_loop0_148_rule(Parser *p);
498
static asdl_seq *_loop0_149_rule(Parser *p);
499
static asdl_seq *_gather_150_rule(Parser *p);
500
static asdl_seq *_loop0_151_rule(Parser *p);
501
static asdl_seq *_gather_152_rule(Parser *p);
502
static void *_tmp_153_rule(Parser *p);
503
static asdl_seq *_loop0_154_rule(Parser *p);
504
static asdl_seq *_loop1_155_rule(Parser *p);
505
static void *_tmp_156_rule(Parser *p);
506
static asdl_seq *_loop1_157_rule(Parser *p);
507
static void *_tmp_158_rule(Parser *p);
508
static void *_tmp_159_rule(Parser *p);
509
static void *_tmp_160_rule(Parser *p);
510
static void *_tmp_161_rule(Parser *p);
511
static void *_tmp_162_rule(Parser *p);
512
static void *_tmp_163_rule(Parser *p);
513
static asdl_seq *_loop0_164_rule(Parser *p);
514
static asdl_seq *_gather_165_rule(Parser *p);
515
static void *_tmp_166_rule(Parser *p);
516
static void *_tmp_167_rule(Parser *p);
517
static void *_tmp_168_rule(Parser *p);
518
static void *_tmp_169_rule(Parser *p);
519
static void *_tmp_170_rule(Parser *p);
520
static void *_tmp_171_rule(Parser *p);
521
static asdl_seq *_loop0_172_rule(Parser *p);
522
static asdl_seq *_loop1_173_rule(Parser *p);
523
static asdl_seq *_loop1_174_rule(Parser *p);
524
static void *_tmp_175_rule(Parser *p);
525
static void *_tmp_176_rule(Parser *p);
526
static void *_tmp_177_rule(Parser *p);
527
static void *_tmp_189_rule(Parser *p);
528
static void *_tmp_190_rule(Parser *p);
529
static void *_tmp_191_rule(Parser *p);
530
static void *_tmp_192_rule(Parser *p);
531
static void *_tmp_193_rule(Parser *p);
532
static void *_tmp_194_rule(Parser *p);
533
static asdl_seq *_loop0_195_rule(Parser *p);
534
static void *_tmp_196_rule(Parser *p);
535
static void *_tmp_197_rule(Parser *p);
536
static void *_tmp_198_rule(Parser *p);
537
static void *_tmp_199_rule(Parser *p);
538
static asdl_seq *_loop0_201_rule(Parser *p);
539
static asdl_seq *_gather_202_rule(Parser *p);
540
static void *_tmp_203_rule(Parser *p);
541
static void *_tmp_204_rule(Parser *p);
542
static void *_tmp_205_rule(Parser *p);
543
static void *_tmp_206_rule(Parser *p);
544
545
546
// invalid_arguments:
547
//     | ((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' ','.(starred_expression !'=')+
548
//     | expression for_if_clauses ',' [args | expression for_if_clauses]
549
//     | NAME '=' expression for_if_clauses
550
//     | [(args ',')] NAME '=' &(',' | ')')
551
//     | args for_if_clauses
552
//     | args ',' expression for_if_clauses
553
//     | args ',' args
554
Py_LOCAL_SYMBOL void *
555
invalid_arguments_rule(Parser *p)
556
8.66k
{
557
8.66k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
558
0
        _Pypegen_stack_overflow(p);
559
0
    }
560
8.66k
    if (p->error_indicator) {
561
0
        p->level--;
562
0
        return NULL;
563
0
    }
564
8.66k
    void * _res = NULL;
565
8.66k
    int _mark = p->mark;
566
8.66k
    { // ((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' ','.(starred_expression !'=')+
567
8.66k
        if (p->error_indicator) {
568
0
            p->level--;
569
0
            return NULL;
570
0
        }
571
8.66k
        D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' ','.(starred_expression !'=')+"));
572
8.66k
        asdl_seq * _gather_108_var;
573
8.66k
        void *_tmp_106_var;
574
8.66k
        Token * a;
575
8.66k
        if (
576
8.66k
            (_tmp_106_var = _tmp_106_rule(p))  // (','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs
577
2.87k
            &&
578
2.87k
            (a = _PyPegen_expect_token(p, 12))  // token=','
579
1.47k
            &&
580
1.47k
            (_gather_108_var = _gather_108_rule(p))  // ','.(starred_expression !'=')+
581
8.66k
        )
582
632
        {
583
632
            D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' ','.(starred_expression !'=')+"));
584
632
            _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "iterable argument unpacking follows keyword argument unpacking" );
585
632
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
586
632
                p->error_indicator = 1;
587
632
                p->level--;
588
632
                return NULL;
589
632
            }
590
0
            goto done;
591
632
        }
592
8.03k
        p->mark = _mark;
593
8.03k
        D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
594
8.03k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' ','.(starred_expression !'=')+"));
595
8.03k
    }
596
0
    { // expression for_if_clauses ',' [args | expression for_if_clauses]
597
8.03k
        if (p->error_indicator) {
598
251
            p->level--;
599
251
            return NULL;
600
251
        }
601
7.78k
        D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
602
7.78k
        Token * _literal;
603
7.78k
        void *_opt_var;
604
7.78k
        UNUSED(_opt_var); // Silence compiler warnings
605
7.78k
        expr_ty a;
606
7.78k
        asdl_comprehension_seq* b;
607
7.78k
        if (
608
7.78k
            (a = expression_rule(p))  // expression
609
4.01k
            &&
610
4.01k
            (b = for_if_clauses_rule(p))  // for_if_clauses
611
267
            &&
612
267
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
613
74
            &&
614
74
            (_opt_var = _tmp_109_rule(p), !p->error_indicator)  // [args | expression for_if_clauses]
615
7.78k
        )
616
5
        {
617
5
            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]"));
618
5
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , _PyPegen_get_last_comprehension_item ( PyPegen_last_item ( b , comprehension_ty ) ) , "Generator expression must be parenthesized" );
619
5
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
620
5
                p->error_indicator = 1;
621
5
                p->level--;
622
5
                return NULL;
623
5
            }
624
0
            goto done;
625
5
        }
626
7.77k
        p->mark = _mark;
627
7.77k
        D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
628
7.77k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
629
7.77k
    }
630
0
    { // NAME '=' expression for_if_clauses
631
7.77k
        if (p->error_indicator) {
632
69
            p->level--;
633
69
            return NULL;
634
69
        }
635
7.71k
        D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
636
7.71k
        expr_ty a;
637
7.71k
        Token * b;
638
7.71k
        expr_ty expression_var;
639
7.71k
        asdl_comprehension_seq* for_if_clauses_var;
640
7.71k
        if (
641
7.71k
            (a = _PyPegen_name_token(p))  // NAME
642
3.45k
            &&
643
3.45k
            (b = _PyPegen_expect_token(p, 22))  // token='='
644
1.09k
            &&
645
1.09k
            (expression_var = expression_rule(p))  // expression
646
925
            &&
647
925
            (for_if_clauses_var = for_if_clauses_rule(p))  // for_if_clauses
648
7.71k
        )
649
0
        {
650
0
            D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
651
0
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
652
0
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
653
0
                p->error_indicator = 1;
654
0
                p->level--;
655
0
                return NULL;
656
0
            }
657
0
            goto done;
658
0
        }
659
7.71k
        p->mark = _mark;
660
7.71k
        D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
661
7.71k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
662
7.71k
    }
663
0
    { // [(args ',')] NAME '=' &(',' | ')')
664
7.71k
        if (p->error_indicator) {
665
0
            p->level--;
666
0
            return NULL;
667
0
        }
668
7.71k
        D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[(args ',')] NAME '=' &(',' | ')')"));
669
7.71k
        void *_opt_var;
670
7.71k
        UNUSED(_opt_var); // Silence compiler warnings
671
7.71k
        expr_ty a;
672
7.71k
        Token * b;
673
7.71k
        if (
674
7.71k
            (_opt_var = _tmp_110_rule(p), !p->error_indicator)  // [(args ',')]
675
7.71k
            &&
676
7.71k
            (a = _PyPegen_name_token(p))  // NAME
677
3.20k
            &&
678
3.20k
            (b = _PyPegen_expect_token(p, 22))  // token='='
679
725
            &&
680
725
            _PyPegen_lookahead(1, _tmp_111_rule, p)
681
7.71k
        )
682
15
        {
683
15
            D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "[(args ',')] NAME '=' &(',' | ')')"));
684
15
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expected argument value expression" );
685
15
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
686
15
                p->error_indicator = 1;
687
15
                p->level--;
688
15
                return NULL;
689
15
            }
690
0
            goto done;
691
15
        }
692
7.69k
        p->mark = _mark;
693
7.69k
        D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
694
7.69k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[(args ',')] NAME '=' &(',' | ')')"));
695
7.69k
    }
696
0
    { // args for_if_clauses
697
7.69k
        if (p->error_indicator) {
698
0
            p->level--;
699
0
            return NULL;
700
0
        }
701
7.69k
        D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
702
7.69k
        expr_ty a;
703
7.69k
        asdl_comprehension_seq* b;
704
7.69k
        if (
705
7.69k
            (a = args_rule(p))  // args
706
4.42k
            &&
707
4.42k
            (b = for_if_clauses_rule(p))  // for_if_clauses
708
7.69k
        )
709
261
        {
710
261
            D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
711
261
            _res = _PyPegen_nonparen_genexp_in_call ( p , a , b );
712
261
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
713
2
                p->error_indicator = 1;
714
2
                p->level--;
715
2
                return NULL;
716
2
            }
717
259
            goto done;
718
261
        }
719
7.43k
        p->mark = _mark;
720
7.43k
        D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
721
7.43k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
722
7.43k
    }
723
0
    { // args ',' expression for_if_clauses
724
7.43k
        if (p->error_indicator) {
725
199
            p->level--;
726
199
            return NULL;
727
199
        }
728
7.23k
        D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
729
7.23k
        Token * _literal;
730
7.23k
        expr_ty a;
731
7.23k
        expr_ty args_var;
732
7.23k
        asdl_comprehension_seq* b;
733
7.23k
        if (
734
7.23k
            (args_var = args_rule(p))  // args
735
3.96k
            &&
736
3.96k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
737
725
            &&
738
725
            (a = expression_rule(p))  // expression
739
387
            &&
740
387
            (b = for_if_clauses_rule(p))  // for_if_clauses
741
7.23k
        )
742
1
        {
743
1
            D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
744
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , _PyPegen_get_last_comprehension_item ( PyPegen_last_item ( b , comprehension_ty ) ) , "Generator expression must be parenthesized" );
745
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
746
1
                p->error_indicator = 1;
747
1
                p->level--;
748
1
                return NULL;
749
1
            }
750
0
            goto done;
751
1
        }
752
7.23k
        p->mark = _mark;
753
7.23k
        D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
754
7.23k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
755
7.23k
    }
756
0
    { // args ',' args
757
7.23k
        if (p->error_indicator) {
758
66
            p->level--;
759
66
            return NULL;
760
66
        }
761
7.16k
        D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
762
7.16k
        Token * _literal;
763
7.16k
        expr_ty a;
764
7.16k
        expr_ty args_var;
765
7.16k
        if (
766
7.16k
            (a = args_rule(p))  // args
767
3.89k
            &&
768
3.89k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
769
658
            &&
770
658
            (args_var = args_rule(p))  // args
771
7.16k
        )
772
31
        {
773
31
            D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' args"));
774
31
            _res = _PyPegen_arguments_parsing_error ( p , a );
775
31
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
776
31
                p->error_indicator = 1;
777
31
                p->level--;
778
31
                return NULL;
779
31
            }
780
0
            goto done;
781
31
        }
782
7.13k
        p->mark = _mark;
783
7.13k
        D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
784
7.13k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
785
7.13k
    }
786
7.13k
    _res = NULL;
787
7.39k
  done:
788
7.39k
    p->level--;
789
7.39k
    return _res;
790
7.13k
}
791
792
// invalid_kwarg:
793
//     | 'True' '='
794
//     | 'False' '='
795
//     | 'None' '='
796
//     | NAME '=' expression for_if_clauses
797
//     | !(NAME '=') expression '='
798
//     | '**' expression '=' expression
799
Py_LOCAL_SYMBOL void *
800
invalid_kwarg_rule(Parser *p)
801
82.5k
{
802
82.5k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
803
0
        _Pypegen_stack_overflow(p);
804
0
    }
805
82.5k
    if (p->error_indicator) {
806
0
        p->level--;
807
0
        return NULL;
808
0
    }
809
82.5k
    void * _res = NULL;
810
82.5k
    int _mark = p->mark;
811
82.5k
    { // 'True' '='
812
82.5k
        if (p->error_indicator) {
813
0
            p->level--;
814
0
            return NULL;
815
0
        }
816
82.5k
        D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True' '='"));
817
82.5k
        Token * a;
818
82.5k
        Token * b;
819
82.5k
        if (
820
82.5k
            (a = _PyPegen_expect_token(p, 527))  // token='True'
821
94
            &&
822
94
            (b = _PyPegen_expect_token(p, 22))  // token='='
823
82.5k
        )
824
1
        {
825
1
            D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True' '='"));
826
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot assign to True" );
827
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
828
1
                p->error_indicator = 1;
829
1
                p->level--;
830
1
                return NULL;
831
1
            }
832
0
            goto done;
833
1
        }
834
82.5k
        p->mark = _mark;
835
82.5k
        D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
836
82.5k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True' '='"));
837
82.5k
    }
838
0
    { // 'False' '='
839
82.5k
        if (p->error_indicator) {
840
1
            p->level--;
841
1
            return NULL;
842
1
        }
843
82.5k
        D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False' '='"));
844
82.5k
        Token * a;
845
82.5k
        Token * b;
846
82.5k
        if (
847
82.5k
            (a = _PyPegen_expect_token(p, 528))  // token='False'
848
217
            &&
849
217
            (b = _PyPegen_expect_token(p, 22))  // token='='
850
82.5k
        )
851
1
        {
852
1
            D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False' '='"));
853
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot assign to False" );
854
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
855
1
                p->error_indicator = 1;
856
1
                p->level--;
857
1
                return NULL;
858
1
            }
859
0
            goto done;
860
1
        }
861
82.5k
        p->mark = _mark;
862
82.5k
        D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
863
82.5k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False' '='"));
864
82.5k
    }
865
0
    { // 'None' '='
866
82.5k
        if (p->error_indicator) {
867
1
            p->level--;
868
1
            return NULL;
869
1
        }
870
82.5k
        D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None' '='"));
871
82.5k
        Token * a;
872
82.5k
        Token * b;
873
82.5k
        if (
874
82.5k
            (a = _PyPegen_expect_token(p, 526))  // token='None'
875
235
            &&
876
235
            (b = _PyPegen_expect_token(p, 22))  // token='='
877
82.5k
        )
878
1
        {
879
1
            D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None' '='"));
880
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot assign to None" );
881
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
882
1
                p->error_indicator = 1;
883
1
                p->level--;
884
1
                return NULL;
885
1
            }
886
0
            goto done;
887
1
        }
888
82.5k
        p->mark = _mark;
889
82.5k
        D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
890
82.5k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None' '='"));
891
82.5k
    }
892
0
    { // NAME '=' expression for_if_clauses
893
82.5k
        if (p->error_indicator) {
894
1
            p->level--;
895
1
            return NULL;
896
1
        }
897
82.5k
        D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
898
82.5k
        expr_ty a;
899
82.5k
        Token * b;
900
82.5k
        expr_ty expression_var;
901
82.5k
        asdl_comprehension_seq* for_if_clauses_var;
902
82.5k
        if (
903
82.5k
            (a = _PyPegen_name_token(p))  // NAME
904
22.2k
            &&
905
22.2k
            (b = _PyPegen_expect_token(p, 22))  // token='='
906
13.2k
            &&
907
13.2k
            (expression_var = expression_rule(p))  // expression
908
10.8k
            &&
909
10.8k
            (for_if_clauses_var = for_if_clauses_rule(p))  // for_if_clauses
910
82.5k
        )
911
1
        {
912
1
            D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
913
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
914
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
915
1
                p->error_indicator = 1;
916
1
                p->level--;
917
1
                return NULL;
918
1
            }
919
0
            goto done;
920
1
        }
921
82.5k
        p->mark = _mark;
922
82.5k
        D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
923
82.5k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
924
82.5k
    }
925
0
    { // !(NAME '=') expression '='
926
82.5k
        if (p->error_indicator) {
927
354
            p->level--;
928
354
            return NULL;
929
354
        }
930
82.2k
        D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
931
82.2k
        expr_ty a;
932
82.2k
        Token * b;
933
82.2k
        if (
934
82.2k
            _PyPegen_lookahead(0, _tmp_112_rule, p)
935
69.3k
            &&
936
69.3k
            (a = expression_rule(p))  // expression
937
10.5k
            &&
938
10.5k
            (b = _PyPegen_expect_token(p, 22))  // token='='
939
82.2k
        )
940
4
        {
941
4
            D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
942
4
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
943
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
944
4
                p->error_indicator = 1;
945
4
                p->level--;
946
4
                return NULL;
947
4
            }
948
0
            goto done;
949
4
        }
950
82.2k
        p->mark = _mark;
951
82.2k
        D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
952
82.2k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='"));
953
82.2k
    }
954
0
    { // '**' expression '=' expression
955
82.2k
        if (p->error_indicator) {
956
729
            p->level--;
957
729
            return NULL;
958
729
        }
959
81.4k
        D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression '=' expression"));
960
81.4k
        Token * _literal;
961
81.4k
        Token * a;
962
81.4k
        expr_ty b;
963
81.4k
        expr_ty expression_var;
964
81.4k
        if (
965
81.4k
            (a = _PyPegen_expect_token(p, 35))  // token='**'
966
12.4k
            &&
967
12.4k
            (expression_var = expression_rule(p))  // expression
968
11.8k
            &&
969
11.8k
            (_literal = _PyPegen_expect_token(p, 22))  // token='='
970
123
            &&
971
123
            (b = expression_rule(p))  // expression
972
81.4k
        )
973
1
        {
974
1
            D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression '=' expression"));
975
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot assign to keyword argument unpacking" );
976
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
977
1
                p->error_indicator = 1;
978
1
                p->level--;
979
1
                return NULL;
980
1
            }
981
0
            goto done;
982
1
        }
983
81.4k
        p->mark = _mark;
984
81.4k
        D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
985
81.4k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression '=' expression"));
986
81.4k
    }
987
81.4k
    _res = NULL;
988
81.4k
  done:
989
81.4k
    p->level--;
990
81.4k
    return _res;
991
81.4k
}
992
993
// expression_without_invalid:
994
//     | disjunction 'if' disjunction 'else' expression
995
//     | disjunction
996
//     | lambdef
997
static expr_ty
998
expression_without_invalid_rule(Parser *p)
999
115k
{
1000
115k
    int _prev_call_invalid = p->call_invalid_rules;
1001
115k
    p->call_invalid_rules = 0;
1002
115k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
1003
0
        _Pypegen_stack_overflow(p);
1004
0
    }
1005
115k
    if (p->error_indicator) {
1006
0
        p->call_invalid_rules = _prev_call_invalid;
1007
0
        p->level--;
1008
0
        return NULL;
1009
0
    }
1010
115k
    expr_ty _res = NULL;
1011
115k
    int _mark = p->mark;
1012
115k
    expr_ty _prefix_11_result = NULL;
1013
115k
    int _prefix_11_end = 0, _prefix_11_valid = 0;
1014
115k
    if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1015
0
        p->error_indicator = 1;
1016
0
        p->call_invalid_rules = _prev_call_invalid;
1017
0
        p->level--;
1018
0
        return NULL;
1019
0
    }
1020
115k
    int _start_lineno = p->tokens[_mark]->lineno;
1021
115k
    UNUSED(_start_lineno); // Only used by EXTRA macro
1022
115k
    int _start_col_offset = p->tokens[_mark]->col_offset;
1023
115k
    UNUSED(_start_col_offset); // Only used by EXTRA macro
1024
115k
    { // disjunction 'if' disjunction 'else' expression
1025
115k
        if (p->error_indicator) {
1026
0
            p->call_invalid_rules = _prev_call_invalid;
1027
0
            p->level--;
1028
0
            return NULL;
1029
0
        }
1030
115k
        D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
1031
115k
        Token * _keyword;
1032
115k
        Token * _keyword_1;
1033
115k
        expr_ty a;
1034
115k
        expr_ty b;
1035
115k
        expr_ty c;
1036
115k
        if (
1037
115k
            (a = ((!p->call_invalid_rules && _prefix_11_valid) ? (p->mark = _prefix_11_end, _prefix_11_result) : (_prefix_11_result = disjunction_rule(p), _prefix_11_end = p->mark, _prefix_11_valid = 1, _prefix_11_result)))  // disjunction
1038
8.79k
            &&
1039
8.79k
            (_keyword = _PyPegen_expect_token(p, 514))  // token='if'
1040
105
            &&
1041
105
            (b = disjunction_rule(p))  // disjunction
1042
95
            &&
1043
95
            (_keyword_1 = _PyPegen_expect_token(p, 522))  // token='else'
1044
83
            &&
1045
83
            (c = expression_rule(p))  // expression
1046
115k
        )
1047
72
        {
1048
72
            D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
1049
72
            Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1050
72
            if (_token == NULL) {
1051
0
                p->call_invalid_rules = _prev_call_invalid;
1052
0
                p->level--;
1053
0
                return NULL;
1054
0
            }
1055
72
            int _end_lineno = _token->end_lineno;
1056
72
            UNUSED(_end_lineno); // Only used by EXTRA macro
1057
72
            int _end_col_offset = _token->end_col_offset;
1058
72
            UNUSED(_end_col_offset); // Only used by EXTRA macro
1059
72
            _res = _PyAST_IfExp ( b , a , c , EXTRA );
1060
72
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1061
0
                p->error_indicator = 1;
1062
0
                p->call_invalid_rules = _prev_call_invalid;
1063
0
                p->level--;
1064
0
                return NULL;
1065
0
            }
1066
72
            goto done;
1067
72
        }
1068
115k
        p->mark = _mark;
1069
115k
        D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
1070
115k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
1071
115k
    }
1072
0
    { // disjunction
1073
115k
        if (p->error_indicator) {
1074
332
            p->call_invalid_rules = _prev_call_invalid;
1075
332
            p->level--;
1076
332
            return NULL;
1077
332
        }
1078
115k
        D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
1079
115k
        expr_ty disjunction_var;
1080
115k
        if (
1081
115k
            (disjunction_var = ((!p->call_invalid_rules && _prefix_11_valid) ? (p->mark = _prefix_11_end, _prefix_11_result) : (_prefix_11_result = disjunction_rule(p), _prefix_11_end = p->mark, _prefix_11_valid = 1, _prefix_11_result)))  // disjunction
1082
115k
        )
1083
8.71k
        {
1084
8.71k
            D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
1085
8.71k
            _res = disjunction_var;
1086
8.71k
            goto done;
1087
8.71k
        }
1088
106k
        p->mark = _mark;
1089
106k
        D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
1090
106k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
1091
106k
    }
1092
0
    { // lambdef
1093
106k
        if (p->error_indicator) {
1094
0
            p->call_invalid_rules = _prev_call_invalid;
1095
0
            p->level--;
1096
0
            return NULL;
1097
0
        }
1098
106k
        D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
1099
106k
        expr_ty lambdef_var;
1100
106k
        if (
1101
106k
            (lambdef_var = lambdef_rule(p))  // lambdef
1102
106k
        )
1103
203
        {
1104
203
            D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
1105
203
            _res = lambdef_var;
1106
203
            goto done;
1107
203
        }
1108
106k
        p->mark = _mark;
1109
106k
        D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
1110
106k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
1111
106k
    }
1112
106k
    _res = NULL;
1113
115k
  done:
1114
115k
    p->call_invalid_rules = _prev_call_invalid;
1115
115k
    p->level--;
1116
115k
    return _res;
1117
106k
}
1118
1119
// invalid_legacy_expression: NAME !'(' star_expressions
1120
Py_LOCAL_SYMBOL void *
1121
invalid_legacy_expression_rule(Parser *p)
1122
339k
{
1123
339k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
1124
0
        _Pypegen_stack_overflow(p);
1125
0
    }
1126
339k
    if (p->error_indicator) {
1127
0
        p->level--;
1128
0
        return NULL;
1129
0
    }
1130
339k
    void * _res = NULL;
1131
339k
    int _mark = p->mark;
1132
339k
    { // NAME !'(' star_expressions
1133
339k
        if (p->error_indicator) {
1134
0
            p->level--;
1135
0
            return NULL;
1136
0
        }
1137
339k
        D(fprintf(stderr, "%*c> invalid_legacy_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));
1138
339k
        expr_ty a;
1139
339k
        expr_ty b;
1140
339k
        if (
1141
339k
            (a = _PyPegen_name_token(p))  // NAME
1142
78.6k
            &&
1143
78.6k
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 7)  // token='('
1144
73.9k
            &&
1145
73.9k
            (b = star_expressions_rule(p))  // star_expressions
1146
339k
        )
1147
6.40k
        {
1148
6.40k
            D(fprintf(stderr, "%*c+ invalid_legacy_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));
1149
6.40k
            _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;
1150
6.40k
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1151
11
                p->error_indicator = 1;
1152
11
                p->level--;
1153
11
                return NULL;
1154
11
            }
1155
6.39k
            goto done;
1156
6.40k
        }
1157
333k
        p->mark = _mark;
1158
333k
        D(fprintf(stderr, "%*c%s invalid_legacy_expression[%d-%d]: %s failed!\n", p->level, ' ',
1159
333k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME !'(' star_expressions"));
1160
333k
    }
1161
333k
    _res = NULL;
1162
339k
  done:
1163
339k
    p->level--;
1164
339k
    return _res;
1165
333k
}
1166
1167
// invalid_type_param: '*' NAME ':' expression | '**' NAME ':' expression
1168
Py_LOCAL_SYMBOL void *
1169
invalid_type_param_rule(Parser *p)
1170
1.25k
{
1171
1.25k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
1172
0
        _Pypegen_stack_overflow(p);
1173
0
    }
1174
1.25k
    if (p->error_indicator) {
1175
0
        p->level--;
1176
0
        return NULL;
1177
0
    }
1178
1.25k
    void * _res = NULL;
1179
1.25k
    int _mark = p->mark;
1180
1.25k
    { // '*' NAME ':' expression
1181
1.25k
        if (p->error_indicator) {
1182
0
            p->level--;
1183
0
            return NULL;
1184
0
        }
1185
1.25k
        D(fprintf(stderr, "%*c> invalid_type_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' NAME ':' expression"));
1186
1.25k
        Token * _literal;
1187
1.25k
        expr_ty a;
1188
1.25k
        Token * colon;
1189
1.25k
        expr_ty e;
1190
1.25k
        if (
1191
1.25k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
1192
593
            &&
1193
593
            (a = _PyPegen_name_token(p))  // NAME
1194
591
            &&
1195
591
            (colon = _PyPegen_expect_token(p, 11))  // token=':'
1196
68
            &&
1197
68
            (e = expression_rule(p))  // expression
1198
1.25k
        )
1199
1
        {
1200
1
            D(fprintf(stderr, "%*c+ invalid_type_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' NAME ':' expression"));
1201
1
            _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( colon , e -> kind == Tuple_kind ? "cannot use constraints with TypeVarTuple" : "cannot use bound with TypeVarTuple" );
1202
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1203
1
                p->error_indicator = 1;
1204
1
                p->level--;
1205
1
                return NULL;
1206
1
            }
1207
0
            goto done;
1208
1
        }
1209
1.25k
        p->mark = _mark;
1210
1.25k
        D(fprintf(stderr, "%*c%s invalid_type_param[%d-%d]: %s failed!\n", p->level, ' ',
1211
1.25k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' NAME ':' expression"));
1212
1.25k
    }
1213
0
    { // '**' NAME ':' expression
1214
1.25k
        if (p->error_indicator) {
1215
67
            p->level--;
1216
67
            return NULL;
1217
67
        }
1218
1.18k
        D(fprintf(stderr, "%*c> invalid_type_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' NAME ':' expression"));
1219
1.18k
        Token * _literal;
1220
1.18k
        expr_ty a;
1221
1.18k
        Token * colon;
1222
1.18k
        expr_ty e;
1223
1.18k
        if (
1224
1.18k
            (_literal = _PyPegen_expect_token(p, 35))  // token='**'
1225
453
            &&
1226
453
            (a = _PyPegen_name_token(p))  // NAME
1227
452
            &&
1228
452
            (colon = _PyPegen_expect_token(p, 11))  // token=':'
1229
68
            &&
1230
68
            (e = expression_rule(p))  // expression
1231
1.18k
        )
1232
1
        {
1233
1
            D(fprintf(stderr, "%*c+ invalid_type_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' NAME ':' expression"));
1234
1
            _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( colon , e -> kind == Tuple_kind ? "cannot use constraints with ParamSpec" : "cannot use bound with ParamSpec" );
1235
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1236
1
                p->error_indicator = 1;
1237
1
                p->level--;
1238
1
                return NULL;
1239
1
            }
1240
0
            goto done;
1241
1
        }
1242
1.18k
        p->mark = _mark;
1243
1.18k
        D(fprintf(stderr, "%*c%s invalid_type_param[%d-%d]: %s failed!\n", p->level, ' ',
1244
1.18k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' NAME ':' expression"));
1245
1.18k
    }
1246
1.18k
    _res = NULL;
1247
1.18k
  done:
1248
1.18k
    p->level--;
1249
1.18k
    return _res;
1250
1.18k
}
1251
1252
// invalid_expression:
1253
//     | STRING ((!STRING expression_without_invalid))+ STRING
1254
//     | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
1255
//     | disjunction 'if' disjunction !('else' | ':')
1256
//     | disjunction 'if' disjunction 'else' !expression
1257
//     | (pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt
1258
//     | 'lambda' lambda_params? ':' &FSTRING_MIDDLE
1259
//     | 'lambda' lambda_params? ':' &TSTRING_MIDDLE
1260
Py_LOCAL_SYMBOL void *
1261
invalid_expression_rule(Parser *p)
1262
343k
{
1263
343k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
1264
0
        _Pypegen_stack_overflow(p);
1265
0
    }
1266
343k
    if (p->error_indicator) {
1267
0
        p->level--;
1268
0
        return NULL;
1269
0
    }
1270
343k
    void * _res = NULL;
1271
343k
    int _mark = p->mark;
1272
343k
    expr_ty _prefix_12_result = NULL;
1273
343k
    int _prefix_12_end = 0, _prefix_12_valid = 0;
1274
343k
    { // STRING ((!STRING expression_without_invalid))+ STRING
1275
343k
        if (p->error_indicator) {
1276
0
            p->level--;
1277
0
            return NULL;
1278
0
        }
1279
343k
        D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING ((!STRING expression_without_invalid))+ STRING"));
1280
343k
        asdl_seq * a;
1281
343k
        expr_ty string_var;
1282
343k
        expr_ty string_var_1;
1283
343k
        if (
1284
343k
            (string_var = _PyPegen_string_token(p))  // STRING
1285
2.96k
            &&
1286
2.96k
            (a = _loop1_113_rule(p))  // ((!STRING expression_without_invalid))+
1287
1.01k
            &&
1288
1.01k
            (string_var_1 = _PyPegen_string_token(p))  // STRING
1289
343k
        )
1290
13
        {
1291
13
            D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING ((!STRING expression_without_invalid))+ STRING"));
1292
13
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( PyPegen_first_item ( a , expr_ty ) , PyPegen_last_item ( a , expr_ty ) , "invalid syntax. Is this intended to be part of the string?" );
1293
13
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1294
13
                p->error_indicator = 1;
1295
13
                p->level--;
1296
13
                return NULL;
1297
13
            }
1298
0
            goto done;
1299
13
        }
1300
343k
        p->mark = _mark;
1301
343k
        D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
1302
343k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING ((!STRING expression_without_invalid))+ STRING"));
1303
343k
    }
1304
0
    { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
1305
343k
        if (p->error_indicator) {
1306
52
            p->level--;
1307
52
            return NULL;
1308
52
        }
1309
343k
        D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
1310
343k
        expr_ty a;
1311
343k
        expr_ty b;
1312
343k
        if (
1313
343k
            _PyPegen_lookahead(0, _tmp_114_rule, p)
1314
336k
            &&
1315
336k
            (a = disjunction_rule(p))  // disjunction
1316
110k
            &&
1317
110k
            (b = expression_without_invalid_rule(p))  // expression_without_invalid
1318
343k
        )
1319
6.11k
        {
1320
6.11k
            D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
1321
6.11k
            _res = _PyPegen_raise_error_for_missing_comma ( p , a , b );
1322
6.11k
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1323
141
                p->error_indicator = 1;
1324
141
                p->level--;
1325
141
                return NULL;
1326
141
            }
1327
5.97k
            goto done;
1328
6.11k
        }
1329
337k
        p->mark = _mark;
1330
337k
        D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
1331
337k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
1332
337k
    }
1333
0
    { // disjunction 'if' disjunction !('else' | ':')
1334
337k
        if (p->error_indicator) {
1335
280
            p->level--;
1336
280
            return NULL;
1337
280
        }
1338
337k
        D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
1339
337k
        Token * _keyword;
1340
337k
        expr_ty a;
1341
337k
        expr_ty b;
1342
337k
        if (
1343
337k
            (a = ((!p->call_invalid_rules && _prefix_12_valid) ? (p->mark = _prefix_12_end, _prefix_12_result) : (_prefix_12_result = disjunction_rule(p), _prefix_12_end = p->mark, _prefix_12_valid = 1, _prefix_12_result)))  // disjunction
1344
110k
            &&
1345
110k
            (_keyword = _PyPegen_expect_token(p, 514))  // token='if'
1346
988
            &&
1347
988
            (b = disjunction_rule(p))  // disjunction
1348
678
            &&
1349
678
            _PyPegen_lookahead(0, _tmp_115_rule, p)
1350
337k
        )
1351
20
        {
1352
20
            D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
1353
20
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expected 'else' after 'if' expression" );
1354
20
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1355
20
                p->error_indicator = 1;
1356
20
                p->level--;
1357
20
                return NULL;
1358
20
            }
1359
0
            goto done;
1360
20
        }
1361
337k
        p->mark = _mark;
1362
337k
        D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
1363
337k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
1364
337k
    }
1365
0
    { // disjunction 'if' disjunction 'else' !expression
1366
337k
        if (p->error_indicator) {
1367
0
            p->level--;
1368
0
            return NULL;
1369
0
        }
1370
337k
        D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' !expression"));
1371
337k
        Token * _keyword;
1372
337k
        Token * _keyword_1;
1373
337k
        expr_ty a;
1374
337k
        expr_ty b;
1375
337k
        if (
1376
337k
            (a = ((!p->call_invalid_rules && _prefix_12_valid) ? (p->mark = _prefix_12_end, _prefix_12_result) : (_prefix_12_result = disjunction_rule(p), _prefix_12_end = p->mark, _prefix_12_valid = 1, _prefix_12_result)))  // disjunction
1377
110k
            &&
1378
110k
            (_keyword = _PyPegen_expect_token(p, 514))  // token='if'
1379
968
            &&
1380
968
            (b = disjunction_rule(p))  // disjunction
1381
658
            &&
1382
658
            (_keyword_1 = _PyPegen_expect_token(p, 522))  // token='else'
1383
643
            &&
1384
643
            _PyPegen_lookahead_for_expr(0, expression_rule, p)
1385
337k
        )
1386
251
        {
1387
251
            D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' !expression"));
1388
251
            _res = RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "expected expression after 'else', but statement is given" );
1389
251
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1390
251
                p->error_indicator = 1;
1391
251
                p->level--;
1392
251
                return NULL;
1393
251
            }
1394
0
            goto done;
1395
251
        }
1396
336k
        p->mark = _mark;
1397
336k
        D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
1398
336k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' !expression"));
1399
336k
    }
1400
0
    { // (pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt
1401
336k
        if (p->error_indicator) {
1402
0
            p->level--;
1403
0
            return NULL;
1404
0
        }
1405
336k
        D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt"));
1406
336k
        Token * _keyword;
1407
336k
        Token * _keyword_1;
1408
336k
        stmt_ty a;
1409
336k
        expr_ty b;
1410
336k
        stmt_ty c;
1411
336k
        if (
1412
336k
            (a = (stmt_ty)_tmp_116_rule(p))  // pass_stmt | break_stmt | continue_stmt
1413
3.66k
            &&
1414
3.66k
            (_keyword = _PyPegen_expect_token(p, 514))  // token='if'
1415
2.66k
            &&
1416
2.66k
            (b = disjunction_rule(p))  // disjunction
1417
2.40k
            &&
1418
2.40k
            (_keyword_1 = _PyPegen_expect_token(p, 522))  // token='else'
1419
2.33k
            &&
1420
2.33k
            (c = simple_stmt_rule(p))  // simple_stmt
1421
336k
        )
1422
24
        {
1423
24
            D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt"));
1424
24
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expected expression before 'if', but statement is given" );
1425
24
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1426
24
                p->error_indicator = 1;
1427
24
                p->level--;
1428
24
                return NULL;
1429
24
            }
1430
0
            goto done;
1431
24
        }
1432
336k
        p->mark = _mark;
1433
336k
        D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
1434
336k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt"));
1435
336k
    }
1436
0
    { // 'lambda' lambda_params? ':' &FSTRING_MIDDLE
1437
336k
        if (p->error_indicator) {
1438
2.33k
            p->level--;
1439
2.33k
            return NULL;
1440
2.33k
        }
1441
334k
        D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' &FSTRING_MIDDLE"));
1442
334k
        void *_opt_var;
1443
334k
        UNUSED(_opt_var); // Silence compiler warnings
1444
334k
        Token * a;
1445
334k
        Token * b;
1446
334k
        if (
1447
334k
            (a = _PyPegen_expect_token(p, 534))  // token='lambda'
1448
56.1k
            &&
1449
56.1k
            (_opt_var = lambda_params_rule(p), !p->error_indicator)  // lambda_params?
1450
55.1k
            &&
1451
55.1k
            (b = _PyPegen_expect_token(p, 11))  // token=':'
1452
54.1k
            &&
1453
54.1k
            _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, FSTRING_MIDDLE)  // token=FSTRING_MIDDLE
1454
334k
        )
1455
3
        {
1456
3
            D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' &FSTRING_MIDDLE"));
1457
3
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "f-string: lambda expressions are not allowed without parentheses" );
1458
3
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1459
3
                p->error_indicator = 1;
1460
3
                p->level--;
1461
3
                return NULL;
1462
3
            }
1463
0
            goto done;
1464
3
        }
1465
334k
        p->mark = _mark;
1466
334k
        D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
1467
334k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' &FSTRING_MIDDLE"));
1468
334k
    }
1469
0
    { // 'lambda' lambda_params? ':' &TSTRING_MIDDLE
1470
334k
        if (p->error_indicator) {
1471
962
            p->level--;
1472
962
            return NULL;
1473
962
        }
1474
333k
        D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' &TSTRING_MIDDLE"));
1475
333k
        void *_opt_var;
1476
333k
        UNUSED(_opt_var); // Silence compiler warnings
1477
333k
        Token * a;
1478
333k
        Token * b;
1479
333k
        if (
1480
333k
            (a = _PyPegen_expect_token(p, 534))  // token='lambda'
1481
55.1k
            &&
1482
55.1k
            (_opt_var = lambda_params_rule(p), !p->error_indicator)  // lambda_params?
1483
55.1k
            &&
1484
55.1k
            (b = _PyPegen_expect_token(p, 11))  // token=':'
1485
54.1k
            &&
1486
54.1k
            _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, TSTRING_MIDDLE)  // token=TSTRING_MIDDLE
1487
333k
        )
1488
8
        {
1489
8
            D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' &TSTRING_MIDDLE"));
1490
8
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "t-string: lambda expressions are not allowed without parentheses" );
1491
8
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1492
8
                p->error_indicator = 1;
1493
8
                p->level--;
1494
8
                return NULL;
1495
8
            }
1496
0
            goto done;
1497
8
        }
1498
333k
        p->mark = _mark;
1499
333k
        D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
1500
333k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' &TSTRING_MIDDLE"));
1501
333k
    }
1502
333k
    _res = NULL;
1503
339k
  done:
1504
339k
    p->level--;
1505
339k
    return _res;
1506
333k
}
1507
1508
// invalid_if_expression:
1509
//     | disjunction 'if' disjunction 'else' '*'
1510
//     | disjunction 'if' disjunction 'else' '**'
1511
Py_LOCAL_SYMBOL void *
1512
invalid_if_expression_rule(Parser *p)
1513
376k
{
1514
376k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
1515
1
        _Pypegen_stack_overflow(p);
1516
1
    }
1517
376k
    if (p->error_indicator) {
1518
1
        p->level--;
1519
1
        return NULL;
1520
1
    }
1521
376k
    void * _res = NULL;
1522
376k
    int _mark = p->mark;
1523
376k
    expr_ty _prefix_13_result = NULL;
1524
376k
    int _prefix_13_end = 0, _prefix_13_valid = 0;
1525
376k
    { // disjunction 'if' disjunction 'else' '*'
1526
376k
        if (p->error_indicator) {
1527
0
            p->level--;
1528
0
            return NULL;
1529
0
        }
1530
376k
        D(fprintf(stderr, "%*c> invalid_if_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' '*'"));
1531
376k
        Token * _keyword;
1532
376k
        Token * _keyword_1;
1533
376k
        Token * a;
1534
376k
        expr_ty b;
1535
376k
        expr_ty disjunction_var;
1536
376k
        if (
1537
376k
            (disjunction_var = ((!p->call_invalid_rules && _prefix_13_valid) ? (p->mark = _prefix_13_end, _prefix_13_result) : (_prefix_13_result = disjunction_rule(p), _prefix_13_end = p->mark, _prefix_13_valid = 1, _prefix_13_result)))  // disjunction
1538
117k
            &&
1539
117k
            (_keyword = _PyPegen_expect_token(p, 514))  // token='if'
1540
1.25k
            &&
1541
1.25k
            (b = disjunction_rule(p))  // disjunction
1542
680
            &&
1543
680
            (_keyword_1 = _PyPegen_expect_token(p, 522))  // token='else'
1544
645
            &&
1545
645
            (a = _PyPegen_expect_token(p, 16))  // token='*'
1546
376k
        )
1547
1
        {
1548
1
            D(fprintf(stderr, "%*c+ invalid_if_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' '*'"));
1549
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot unpack only part of a conditional expression" );
1550
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1551
1
                p->error_indicator = 1;
1552
1
                p->level--;
1553
1
                return NULL;
1554
1
            }
1555
0
            goto done;
1556
1
        }
1557
376k
        p->mark = _mark;
1558
376k
        D(fprintf(stderr, "%*c%s invalid_if_expression[%d-%d]: %s failed!\n", p->level, ' ',
1559
376k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' '*'"));
1560
376k
    }
1561
0
    { // disjunction 'if' disjunction 'else' '**'
1562
376k
        if (p->error_indicator) {
1563
32.4k
            p->level--;
1564
32.4k
            return NULL;
1565
32.4k
        }
1566
343k
        D(fprintf(stderr, "%*c> invalid_if_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' '**'"));
1567
343k
        Token * _keyword;
1568
343k
        Token * _keyword_1;
1569
343k
        Token * a;
1570
343k
        expr_ty b;
1571
343k
        expr_ty disjunction_var;
1572
343k
        if (
1573
343k
            (disjunction_var = ((!p->call_invalid_rules && _prefix_13_valid) ? (p->mark = _prefix_13_end, _prefix_13_result) : (_prefix_13_result = disjunction_rule(p), _prefix_13_end = p->mark, _prefix_13_valid = 1, _prefix_13_result)))  // disjunction
1574
117k
            &&
1575
117k
            (_keyword = _PyPegen_expect_token(p, 514))  // token='if'
1576
989
            &&
1577
989
            (b = disjunction_rule(p))  // disjunction
1578
679
            &&
1579
679
            (_keyword_1 = _PyPegen_expect_token(p, 522))  // token='else'
1580
644
            &&
1581
644
            (a = _PyPegen_expect_token(p, 35))  // token='**'
1582
343k
        )
1583
1
        {
1584
1
            D(fprintf(stderr, "%*c+ invalid_if_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' '**'"));
1585
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use dict unpacking on only part of a conditional expression" );
1586
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1587
1
                p->error_indicator = 1;
1588
1
                p->level--;
1589
1
                return NULL;
1590
1
            }
1591
0
            goto done;
1592
1
        }
1593
343k
        p->mark = _mark;
1594
343k
        D(fprintf(stderr, "%*c%s invalid_if_expression[%d-%d]: %s failed!\n", p->level, ' ',
1595
343k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' '**'"));
1596
343k
    }
1597
343k
    _res = NULL;
1598
343k
  done:
1599
343k
    p->level--;
1600
343k
    return _res;
1601
343k
}
1602
1603
// invalid_named_expression:
1604
//     | expression ':=' expression
1605
//     | NAME '=' bitwise_or !('=' | ':=')
1606
//     | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
1607
Py_LOCAL_SYMBOL void *
1608
invalid_named_expression_rule(Parser *p)
1609
294k
{
1610
294k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
1611
0
        _Pypegen_stack_overflow(p);
1612
0
    }
1613
294k
    if (p->error_indicator) {
1614
0
        p->level--;
1615
0
        return NULL;
1616
0
    }
1617
294k
    void * _res = NULL;
1618
294k
    if (_PyPegen_is_memoized(p, invalid_named_expression_type, &_res)) {
1619
125k
        p->level--;
1620
125k
        return _res;
1621
125k
    }
1622
168k
    int _mark = p->mark;
1623
168k
    { // expression ':=' expression
1624
168k
        if (p->error_indicator) {
1625
0
            p->level--;
1626
0
            return NULL;
1627
0
        }
1628
168k
        D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
1629
168k
        Token * _literal;
1630
168k
        expr_ty a;
1631
168k
        expr_ty expression_var;
1632
168k
        if (
1633
168k
            (a = expression_rule(p))  // expression
1634
64.8k
            &&
1635
64.8k
            (_literal = _PyPegen_expect_token(p, 53))  // token=':='
1636
228
            &&
1637
228
            (expression_var = expression_rule(p))  // expression
1638
168k
        )
1639
6
        {
1640
6
            D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
1641
6
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
1642
6
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1643
6
                p->error_indicator = 1;
1644
6
                p->level--;
1645
6
                return NULL;
1646
6
            }
1647
0
            goto done;
1648
6
        }
1649
168k
        p->mark = _mark;
1650
168k
        D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
1651
168k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
1652
168k
    }
1653
0
    { // NAME '=' bitwise_or !('=' | ':=')
1654
168k
        if (p->error_indicator) {
1655
17.1k
            p->level--;
1656
17.1k
            return NULL;
1657
17.1k
        }
1658
151k
        D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
1659
151k
        Token * _literal;
1660
151k
        expr_ty a;
1661
151k
        expr_ty b;
1662
151k
        if (
1663
151k
            (a = _PyPegen_name_token(p))  // NAME
1664
40.8k
            &&
1665
40.8k
            (_literal = _PyPegen_expect_token(p, 22))  // token='='
1666
609
            &&
1667
609
            (b = bitwise_or_rule(p))  // bitwise_or
1668
41
            &&
1669
41
            _PyPegen_lookahead(0, _tmp_117_rule, p)
1670
151k
        )
1671
12
        {
1672
12
            D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
1673
12
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
1674
12
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1675
12
                p->error_indicator = 1;
1676
12
                p->level--;
1677
12
                return NULL;
1678
12
            }
1679
0
            goto done;
1680
12
        }
1681
151k
        p->mark = _mark;
1682
151k
        D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
1683
151k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
1684
151k
    }
1685
0
    { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
1686
151k
        if (p->error_indicator) {
1687
290
            p->level--;
1688
290
            return NULL;
1689
290
        }
1690
151k
        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 !('=' | ':=')"));
1691
151k
        expr_ty a;
1692
151k
        Token * b;
1693
151k
        expr_ty bitwise_or_var;
1694
151k
        if (
1695
151k
            _PyPegen_lookahead(0, _tmp_118_rule, p)
1696
146k
            &&
1697
146k
            (a = bitwise_or_rule(p))  // bitwise_or
1698
59.0k
            &&
1699
59.0k
            (b = _PyPegen_expect_token(p, 22))  // token='='
1700
486
            &&
1701
486
            (bitwise_or_var = bitwise_or_rule(p))  // bitwise_or
1702
65
            &&
1703
65
            _PyPegen_lookahead(0, _tmp_117_rule, p)
1704
151k
        )
1705
29
        {
1706
29
            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 !('=' | ':=')"));
1707
29
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
1708
29
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1709
29
                p->error_indicator = 1;
1710
29
                p->level--;
1711
29
                return NULL;
1712
29
            }
1713
0
            goto done;
1714
29
        }
1715
151k
        p->mark = _mark;
1716
151k
        D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
1717
151k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
1718
151k
    }
1719
151k
    _res = NULL;
1720
151k
  done:
1721
151k
    _PyPegen_insert_memo(p, _mark, invalid_named_expression_type, _res);
1722
151k
    p->level--;
1723
151k
    return _res;
1724
151k
}
1725
1726
// invalid_assignment:
1727
//     | invalid_ann_assign_target ':' expression
1728
//     | star_named_expression ',' star_named_expressions* ':' expression
1729
//     | expression ':' expression
1730
//     | ((star_targets '='))* star_expressions '='
1731
//     | ((star_targets '='))* yield_expr '='
1732
//     | star_expressions augassign annotated_rhs
1733
Py_LOCAL_SYMBOL void *
1734
invalid_assignment_rule(Parser *p)
1735
99.6k
{
1736
99.6k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
1737
0
        _Pypegen_stack_overflow(p);
1738
0
    }
1739
99.6k
    if (p->error_indicator) {
1740
0
        p->level--;
1741
0
        return NULL;
1742
0
    }
1743
99.6k
    void * _res = NULL;
1744
99.6k
    int _mark = p->mark;
1745
99.6k
    { // invalid_ann_assign_target ':' expression
1746
99.6k
        if (p->error_indicator) {
1747
0
            p->level--;
1748
0
            return NULL;
1749
0
        }
1750
99.6k
        D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
1751
99.6k
        Token * _literal;
1752
99.6k
        expr_ty a;
1753
99.6k
        expr_ty expression_var;
1754
99.6k
        if (
1755
99.6k
            (a = invalid_ann_assign_target_rule(p))  // invalid_ann_assign_target
1756
1.28k
            &&
1757
1.28k
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
1758
76
            &&
1759
76
            (expression_var = expression_rule(p))  // expression
1760
99.6k
        )
1761
4
        {
1762
4
            D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
1763
4
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not %s) can be annotated" , _PyPegen_get_expr_name ( a ) );
1764
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1765
4
                p->error_indicator = 1;
1766
4
                p->level--;
1767
4
                return NULL;
1768
4
            }
1769
0
            goto done;
1770
4
        }
1771
99.6k
        p->mark = _mark;
1772
99.6k
        D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
1773
99.6k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
1774
99.6k
    }
1775
0
    { // star_named_expression ',' star_named_expressions* ':' expression
1776
99.6k
        if (p->error_indicator) {
1777
67
            p->level--;
1778
67
            return NULL;
1779
67
        }
1780
99.6k
        D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
1781
99.6k
        Token * _literal;
1782
99.6k
        Token * _literal_1;
1783
99.6k
        asdl_seq * _loop0_119_var;
1784
99.6k
        expr_ty a;
1785
99.6k
        expr_ty expression_var;
1786
99.6k
        if (
1787
99.6k
            (a = star_named_expression_rule(p))  // star_named_expression
1788
32.9k
            &&
1789
32.9k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
1790
1.57k
            &&
1791
1.57k
            (_loop0_119_var = _loop0_119_rule(p))  // star_named_expressions*
1792
1.57k
            &&
1793
1.57k
            (_literal_1 = _PyPegen_expect_token(p, 11))  // token=':'
1794
61
            &&
1795
61
            (expression_var = expression_rule(p))  // expression
1796
99.6k
        )
1797
12
        {
1798
12
            D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
1799
12
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
1800
12
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1801
12
                p->error_indicator = 1;
1802
12
                p->level--;
1803
12
                return NULL;
1804
12
            }
1805
0
            goto done;
1806
12
        }
1807
99.6k
        p->mark = _mark;
1808
99.6k
        D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
1809
99.6k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
1810
99.6k
    }
1811
0
    { // expression ':' expression
1812
99.6k
        if (p->error_indicator) {
1813
834
            p->level--;
1814
834
            return NULL;
1815
834
        }
1816
98.7k
        D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
1817
98.7k
        Token * _literal;
1818
98.7k
        expr_ty a;
1819
98.7k
        expr_ty expression_var;
1820
98.7k
        if (
1821
98.7k
            (a = expression_rule(p))  // expression
1822
32.7k
            &&
1823
32.7k
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
1824
545
            &&
1825
545
            (expression_var = expression_rule(p))  // expression
1826
98.7k
        )
1827
57
        {
1828
57
            D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
1829
57
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
1830
57
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1831
57
                p->error_indicator = 1;
1832
57
                p->level--;
1833
57
                return NULL;
1834
57
            }
1835
0
            goto done;
1836
57
        }
1837
98.7k
        p->mark = _mark;
1838
98.7k
        D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
1839
98.7k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
1840
98.7k
    }
1841
0
    { // ((star_targets '='))* star_expressions '='
1842
98.7k
        if (p->error_indicator) {
1843
88
            p->level--;
1844
88
            return NULL;
1845
88
        }
1846
98.6k
        D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
1847
98.6k
        Token * _literal;
1848
98.6k
        asdl_seq * _loop0_120_var;
1849
98.6k
        expr_ty a;
1850
98.6k
        if (
1851
98.6k
            (_loop0_120_var = _loop0_120_rule(p))  // ((star_targets '='))*
1852
98.6k
            &&
1853
98.6k
            (a = star_expressions_rule(p))  // star_expressions
1854
32.5k
            &&
1855
32.5k
            (_literal = _PyPegen_expect_token(p, 22))  // token='='
1856
98.6k
        )
1857
141
        {
1858
141
            D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
1859
141
            _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
1860
141
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1861
141
                p->error_indicator = 1;
1862
141
                p->level--;
1863
141
                return NULL;
1864
141
            }
1865
0
            goto done;
1866
141
        }
1867
98.4k
        p->mark = _mark;
1868
98.4k
        D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
1869
98.4k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
1870
98.4k
    }
1871
0
    { // ((star_targets '='))* yield_expr '='
1872
98.4k
        if (p->error_indicator) {
1873
0
            p->level--;
1874
0
            return NULL;
1875
0
        }
1876
98.4k
        D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
1877
98.4k
        Token * _literal;
1878
98.4k
        asdl_seq * _loop0_120_var;
1879
98.4k
        expr_ty a;
1880
98.4k
        if (
1881
98.4k
            (_loop0_120_var = _loop0_120_rule(p))  // ((star_targets '='))*
1882
98.4k
            &&
1883
98.4k
            (a = yield_expr_rule(p))  // yield_expr
1884
353
            &&
1885
353
            (_literal = _PyPegen_expect_token(p, 22))  // token='='
1886
98.4k
        )
1887
3
        {
1888
3
            D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
1889
3
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
1890
3
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1891
3
                p->error_indicator = 1;
1892
3
                p->level--;
1893
3
                return NULL;
1894
3
            }
1895
0
            goto done;
1896
3
        }
1897
98.4k
        p->mark = _mark;
1898
98.4k
        D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
1899
98.4k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
1900
98.4k
    }
1901
0
    { // star_expressions augassign annotated_rhs
1902
98.4k
        if (p->error_indicator) {
1903
35
            p->level--;
1904
35
            return NULL;
1905
35
        }
1906
98.4k
        D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign annotated_rhs"));
1907
98.4k
        expr_ty a;
1908
98.4k
        expr_ty annotated_rhs_var;
1909
98.4k
        AugOperator* augassign_var;
1910
98.4k
        if (
1911
98.4k
            (a = star_expressions_rule(p))  // star_expressions
1912
32.5k
            &&
1913
32.5k
            (augassign_var = augassign_rule(p))  // augassign
1914
94
            &&
1915
94
            (annotated_rhs_var = annotated_rhs_rule(p))  // annotated_rhs
1916
98.4k
        )
1917
17
        {
1918
17
            D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign annotated_rhs"));
1919
17
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
1920
17
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
1921
17
                p->error_indicator = 1;
1922
17
                p->level--;
1923
17
                return NULL;
1924
17
            }
1925
0
            goto done;
1926
17
        }
1927
98.4k
        p->mark = _mark;
1928
98.4k
        D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
1929
98.4k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign annotated_rhs"));
1930
98.4k
    }
1931
98.4k
    _res = NULL;
1932
98.4k
  done:
1933
98.4k
    p->level--;
1934
98.4k
    return _res;
1935
98.4k
}
1936
1937
// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
1938
static expr_ty
1939
invalid_ann_assign_target_rule(Parser *p)
1940
101k
{
1941
101k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
1942
0
        _Pypegen_stack_overflow(p);
1943
0
    }
1944
101k
    if (p->error_indicator) {
1945
0
        p->level--;
1946
0
        return NULL;
1947
0
    }
1948
101k
    expr_ty _res = NULL;
1949
101k
    int _mark = p->mark;
1950
101k
    { // list
1951
101k
        if (p->error_indicator) {
1952
0
            p->level--;
1953
0
            return NULL;
1954
0
        }
1955
101k
        D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
1956
101k
        expr_ty list_var;
1957
101k
        if (
1958
101k
            (list_var = list_rule(p))  // list
1959
101k
        )
1960
390
        {
1961
390
            D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
1962
390
            _res = list_var;
1963
390
            goto done;
1964
390
        }
1965
101k
        p->mark = _mark;
1966
101k
        D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
1967
101k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
1968
101k
    }
1969
0
    { // tuple
1970
101k
        if (p->error_indicator) {
1971
0
            p->level--;
1972
0
            return NULL;
1973
0
        }
1974
101k
        D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
1975
101k
        expr_ty tuple_var;
1976
101k
        if (
1977
101k
            (tuple_var = tuple_rule(p))  // tuple
1978
101k
        )
1979
1.00k
        {
1980
1.00k
            D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
1981
1.00k
            _res = tuple_var;
1982
1.00k
            goto done;
1983
1.00k
        }
1984
100k
        p->mark = _mark;
1985
100k
        D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
1986
100k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
1987
100k
    }
1988
0
    { // '(' invalid_ann_assign_target ')'
1989
100k
        if (p->error_indicator) {
1990
0
            p->level--;
1991
0
            return NULL;
1992
0
        }
1993
100k
        D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
1994
100k
        Token * _literal;
1995
100k
        Token * _literal_1;
1996
100k
        expr_ty a;
1997
100k
        if (
1998
100k
            (_literal = _PyPegen_expect_token(p, 7))  // token='('
1999
1.72k
            &&
2000
1.72k
            (a = invalid_ann_assign_target_rule(p))  // invalid_ann_assign_target
2001
441
            &&
2002
441
            (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
2003
100k
        )
2004
330
        {
2005
330
            D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
2006
330
            _res = a;
2007
330
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2008
0
                p->error_indicator = 1;
2009
0
                p->level--;
2010
0
                return NULL;
2011
0
            }
2012
330
            goto done;
2013
330
        }
2014
99.6k
        p->mark = _mark;
2015
99.6k
        D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
2016
99.6k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
2017
99.6k
    }
2018
99.6k
    _res = NULL;
2019
101k
  done:
2020
101k
    p->level--;
2021
101k
    return _res;
2022
99.6k
}
2023
2024
// invalid_raise_stmt: 'raise' 'from' | 'raise' expression 'from'
2025
Py_LOCAL_SYMBOL void *
2026
invalid_raise_stmt_rule(Parser *p)
2027
513
{
2028
513
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
2029
0
        _Pypegen_stack_overflow(p);
2030
0
    }
2031
513
    if (p->error_indicator) {
2032
0
        p->level--;
2033
0
        return NULL;
2034
0
    }
2035
513
    void * _res = NULL;
2036
513
    int _mark = p->mark;
2037
513
    { // 'raise' 'from'
2038
513
        if (p->error_indicator) {
2039
0
            p->level--;
2040
0
            return NULL;
2041
0
        }
2042
513
        D(fprintf(stderr, "%*c> invalid_raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' 'from'"));
2043
513
        Token * a;
2044
513
        Token * b;
2045
513
        if (
2046
513
            (a = _PyPegen_expect_token(p, 503))  // token='raise'
2047
513
            &&
2048
513
            (b = _PyPegen_expect_token(p, 501))  // token='from'
2049
513
        )
2050
1
        {
2051
1
            D(fprintf(stderr, "%*c+ invalid_raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' 'from'"));
2052
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget an expression between 'raise' and 'from'?" );
2053
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2054
1
                p->error_indicator = 1;
2055
1
                p->level--;
2056
1
                return NULL;
2057
1
            }
2058
0
            goto done;
2059
1
        }
2060
512
        p->mark = _mark;
2061
512
        D(fprintf(stderr, "%*c%s invalid_raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2062
512
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' 'from'"));
2063
512
    }
2064
0
    { // 'raise' expression 'from'
2065
512
        if (p->error_indicator) {
2066
0
            p->level--;
2067
0
            return NULL;
2068
0
        }
2069
512
        D(fprintf(stderr, "%*c> invalid_raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression 'from'"));
2070
512
        Token * _keyword;
2071
512
        Token * a;
2072
512
        expr_ty expression_var;
2073
512
        if (
2074
512
            (_keyword = _PyPegen_expect_token(p, 503))  // token='raise'
2075
512
            &&
2076
512
            (expression_var = expression_rule(p))  // expression
2077
248
            &&
2078
248
            (a = _PyPegen_expect_token(p, 501))  // token='from'
2079
512
        )
2080
1
        {
2081
1
            D(fprintf(stderr, "%*c+ invalid_raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression 'from'"));
2082
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "did you forget an expression after 'from'?" );
2083
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2084
1
                p->error_indicator = 1;
2085
1
                p->level--;
2086
1
                return NULL;
2087
1
            }
2088
0
            goto done;
2089
1
        }
2090
511
        p->mark = _mark;
2091
511
        D(fprintf(stderr, "%*c%s invalid_raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2092
511
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression 'from'"));
2093
511
    }
2094
511
    _res = NULL;
2095
511
  done:
2096
511
    p->level--;
2097
511
    return _res;
2098
511
}
2099
2100
// invalid_del_stmt: 'del' star_expressions
2101
Py_LOCAL_SYMBOL void *
2102
invalid_del_stmt_rule(Parser *p)
2103
198
{
2104
198
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
2105
0
        _Pypegen_stack_overflow(p);
2106
0
    }
2107
198
    if (p->error_indicator) {
2108
0
        p->level--;
2109
0
        return NULL;
2110
0
    }
2111
198
    void * _res = NULL;
2112
198
    int _mark = p->mark;
2113
198
    { // 'del' star_expressions
2114
198
        if (p->error_indicator) {
2115
0
            p->level--;
2116
0
            return NULL;
2117
0
        }
2118
198
        D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
2119
198
        Token * _keyword;
2120
198
        expr_ty a;
2121
198
        if (
2122
198
            (_keyword = _PyPegen_expect_token(p, 505))  // token='del'
2123
198
            &&
2124
198
            (a = star_expressions_rule(p))  // star_expressions
2125
198
        )
2126
110
        {
2127
110
            D(fprintf(stderr, "%*c+ invalid_del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
2128
110
            _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
2129
110
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2130
9
                p->error_indicator = 1;
2131
9
                p->level--;
2132
9
                return NULL;
2133
9
            }
2134
101
            goto done;
2135
110
        }
2136
88
        p->mark = _mark;
2137
88
        D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2138
88
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
2139
88
    }
2140
88
    _res = NULL;
2141
189
  done:
2142
189
    p->level--;
2143
189
    return _res;
2144
88
}
2145
2146
// invalid_assert_stmt:
2147
//     | 'assert' expression '=' expression
2148
//     | 'assert' expression ',' expression '=' expression
2149
//     | 'assert' expression ':=' expression
2150
//     | 'assert' expression ',' expression ':=' expression
2151
Py_LOCAL_SYMBOL void *
2152
invalid_assert_stmt_rule(Parser *p)
2153
812
{
2154
812
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
2155
0
        _Pypegen_stack_overflow(p);
2156
0
    }
2157
812
    if (p->error_indicator) {
2158
0
        p->level--;
2159
0
        return NULL;
2160
0
    }
2161
812
    void * _res = NULL;
2162
812
    int _mark = p->mark;
2163
812
    { // 'assert' expression '=' expression
2164
812
        if (p->error_indicator) {
2165
0
            p->level--;
2166
0
            return NULL;
2167
0
        }
2168
812
        D(fprintf(stderr, "%*c> invalid_assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression '=' expression"));
2169
812
        Token * _keyword;
2170
812
        Token * _literal;
2171
812
        expr_ty a;
2172
812
        expr_ty b;
2173
812
        if (
2174
812
            (_keyword = _PyPegen_expect_token(p, 507))  // token='assert'
2175
812
            &&
2176
812
            (a = expression_rule(p))  // expression
2177
661
            &&
2178
661
            (_literal = _PyPegen_expect_token(p, 22))  // token='='
2179
67
            &&
2180
67
            (b = expression_rule(p))  // expression
2181
812
        )
2182
1
        {
2183
1
            D(fprintf(stderr, "%*c+ invalid_assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression '=' expression"));
2184
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
2185
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2186
1
                p->error_indicator = 1;
2187
1
                p->level--;
2188
1
                return NULL;
2189
1
            }
2190
0
            goto done;
2191
1
        }
2192
811
        p->mark = _mark;
2193
811
        D(fprintf(stderr, "%*c%s invalid_assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2194
811
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression '=' expression"));
2195
811
    }
2196
0
    { // 'assert' expression ',' expression '=' expression
2197
811
        if (p->error_indicator) {
2198
178
            p->level--;
2199
178
            return NULL;
2200
178
        }
2201
633
        D(fprintf(stderr, "%*c> invalid_assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression ',' expression '=' expression"));
2202
633
        Token * _keyword;
2203
633
        Token * _literal;
2204
633
        Token * _literal_1;
2205
633
        expr_ty a;
2206
633
        expr_ty b;
2207
633
        expr_ty expression_var;
2208
633
        if (
2209
633
            (_keyword = _PyPegen_expect_token(p, 507))  // token='assert'
2210
633
            &&
2211
633
            (expression_var = expression_rule(p))  // expression
2212
596
            &&
2213
596
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
2214
141
            &&
2215
141
            (a = expression_rule(p))  // expression
2216
106
            &&
2217
106
            (_literal_1 = _PyPegen_expect_token(p, 22))  // token='='
2218
36
            &&
2219
36
            (b = expression_rule(p))  // expression
2220
633
        )
2221
1
        {
2222
1
            D(fprintf(stderr, "%*c+ invalid_assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression ',' expression '=' expression"));
2223
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
2224
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2225
1
                p->error_indicator = 1;
2226
1
                p->level--;
2227
1
                return NULL;
2228
1
            }
2229
0
            goto done;
2230
1
        }
2231
632
        p->mark = _mark;
2232
632
        D(fprintf(stderr, "%*c%s invalid_assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2233
632
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression ',' expression '=' expression"));
2234
632
    }
2235
0
    { // 'assert' expression ':=' expression
2236
632
        if (p->error_indicator) {
2237
67
            p->level--;
2238
67
            return NULL;
2239
67
        }
2240
565
        D(fprintf(stderr, "%*c> invalid_assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression ':=' expression"));
2241
565
        Token * _keyword;
2242
565
        Token * _literal;
2243
565
        expr_ty a;
2244
565
        expr_ty b;
2245
565
        if (
2246
565
            (_keyword = _PyPegen_expect_token(p, 507))  // token='assert'
2247
565
            &&
2248
565
            (a = expression_rule(p))  // expression
2249
528
            &&
2250
528
            (_literal = _PyPegen_expect_token(p, 53))  // token=':='
2251
67
            &&
2252
67
            (b = expression_rule(p))  // expression
2253
565
        )
2254
1
        {
2255
1
            D(fprintf(stderr, "%*c+ invalid_assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression ':=' expression"));
2256
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot use named expression without parentheses here" );
2257
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2258
1
                p->error_indicator = 1;
2259
1
                p->level--;
2260
1
                return NULL;
2261
1
            }
2262
0
            goto done;
2263
1
        }
2264
564
        p->mark = _mark;
2265
564
        D(fprintf(stderr, "%*c%s invalid_assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2266
564
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression ':=' expression"));
2267
564
    }
2268
0
    { // 'assert' expression ',' expression ':=' expression
2269
564
        if (p->error_indicator) {
2270
66
            p->level--;
2271
66
            return NULL;
2272
66
        }
2273
498
        D(fprintf(stderr, "%*c> invalid_assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression ',' expression ':=' expression"));
2274
498
        Token * _keyword;
2275
498
        Token * _literal;
2276
498
        Token * _literal_1;
2277
498
        expr_ty a;
2278
498
        expr_ty b;
2279
498
        expr_ty expression_var;
2280
498
        if (
2281
498
            (_keyword = _PyPegen_expect_token(p, 507))  // token='assert'
2282
498
            &&
2283
498
            (expression_var = expression_rule(p))  // expression
2284
461
            &&
2285
461
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
2286
73
            &&
2287
73
            (a = expression_rule(p))  // expression
2288
71
            &&
2289
71
            (_literal_1 = _PyPegen_expect_token(p, 53))  // token=':='
2290
2
            &&
2291
2
            (b = expression_rule(p))  // expression
2292
498
        )
2293
1
        {
2294
1
            D(fprintf(stderr, "%*c+ invalid_assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression ',' expression ':=' expression"));
2295
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot use named expression without parentheses here" );
2296
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2297
1
                p->error_indicator = 1;
2298
1
                p->level--;
2299
1
                return NULL;
2300
1
            }
2301
0
            goto done;
2302
1
        }
2303
497
        p->mark = _mark;
2304
497
        D(fprintf(stderr, "%*c%s invalid_assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2305
497
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression ',' expression ':=' expression"));
2306
497
    }
2307
497
    _res = NULL;
2308
497
  done:
2309
497
    p->level--;
2310
497
    return _res;
2311
497
}
2312
2313
// invalid_block: NEWLINE !INDENT
2314
Py_LOCAL_SYMBOL void *
2315
invalid_block_rule(Parser *p)
2316
2.15k
{
2317
2.15k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
2318
0
        _Pypegen_stack_overflow(p);
2319
0
    }
2320
2.15k
    if (p->error_indicator) {
2321
0
        p->level--;
2322
0
        return NULL;
2323
0
    }
2324
2.15k
    void * _res = NULL;
2325
2.15k
    int _mark = p->mark;
2326
2.15k
    { // NEWLINE !INDENT
2327
2.15k
        if (p->error_indicator) {
2328
0
            p->level--;
2329
0
            return NULL;
2330
0
        }
2331
2.15k
        D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
2332
2.15k
        Token * newline_var;
2333
2.15k
        if (
2334
2.15k
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
2335
199
            &&
2336
199
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
2337
2.15k
        )
2338
10
        {
2339
10
            D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
2340
10
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
2341
10
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2342
10
                p->error_indicator = 1;
2343
10
                p->level--;
2344
10
                return NULL;
2345
10
            }
2346
0
            goto done;
2347
10
        }
2348
2.14k
        p->mark = _mark;
2349
2.14k
        D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
2350
2.14k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
2351
2.14k
    }
2352
2.14k
    _res = NULL;
2353
2.14k
  done:
2354
2.14k
    p->level--;
2355
2.14k
    return _res;
2356
2.14k
}
2357
2358
// invalid_comprehension:
2359
//     | '[' '**' expression for_if_clauses
2360
//     | '(' '**' expression for_if_clauses
2361
//     | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
2362
//     | ('[' | '{') star_named_expression ',' for_if_clauses
2363
Py_LOCAL_SYMBOL void *
2364
invalid_comprehension_rule(Parser *p)
2365
317k
{
2366
317k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
2367
1
        _Pypegen_stack_overflow(p);
2368
1
    }
2369
317k
    if (p->error_indicator) {
2370
1
        p->level--;
2371
1
        return NULL;
2372
1
    }
2373
317k
    void * _res = NULL;
2374
317k
    int _mark = p->mark;
2375
317k
    { // '[' '**' expression for_if_clauses
2376
317k
        if (p->error_indicator) {
2377
0
            p->level--;
2378
0
            return NULL;
2379
0
        }
2380
317k
        D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' '**' expression for_if_clauses"));
2381
317k
        Token * _literal;
2382
317k
        Token * a;
2383
317k
        expr_ty b;
2384
317k
        asdl_comprehension_seq* for_if_clauses_var;
2385
317k
        if (
2386
317k
            (_literal = _PyPegen_expect_token(p, 9))  // token='['
2387
20.1k
            &&
2388
20.1k
            (a = _PyPegen_expect_token(p, 35))  // token='**'
2389
434
            &&
2390
434
            (b = expression_rule(p))  // expression
2391
197
            &&
2392
197
            (for_if_clauses_var = for_if_clauses_rule(p))  // for_if_clauses
2393
317k
        )
2394
1
        {
2395
1
            D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' '**' expression for_if_clauses"));
2396
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot use dict unpacking in list comprehension" );
2397
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2398
1
                p->error_indicator = 1;
2399
1
                p->level--;
2400
1
                return NULL;
2401
1
            }
2402
0
            goto done;
2403
1
        }
2404
317k
        p->mark = _mark;
2405
317k
        D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
2406
317k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' '**' expression for_if_clauses"));
2407
317k
    }
2408
0
    { // '(' '**' expression for_if_clauses
2409
317k
        if (p->error_indicator) {
2410
228
            p->level--;
2411
228
            return NULL;
2412
228
        }
2413
317k
        D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression for_if_clauses"));
2414
317k
        Token * _literal;
2415
317k
        Token * a;
2416
317k
        expr_ty b;
2417
317k
        asdl_comprehension_seq* for_if_clauses_var;
2418
317k
        if (
2419
317k
            (_literal = _PyPegen_expect_token(p, 7))  // token='('
2420
36.2k
            &&
2421
36.2k
            (a = _PyPegen_expect_token(p, 35))  // token='**'
2422
2.22k
            &&
2423
2.22k
            (b = expression_rule(p))  // expression
2424
1.45k
            &&
2425
1.45k
            (for_if_clauses_var = for_if_clauses_rule(p))  // for_if_clauses
2426
317k
        )
2427
1
        {
2428
1
            D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression for_if_clauses"));
2429
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot use dict unpacking in generator expression" );
2430
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2431
1
                p->error_indicator = 1;
2432
1
                p->level--;
2433
1
                return NULL;
2434
1
            }
2435
0
            goto done;
2436
1
        }
2437
317k
        p->mark = _mark;
2438
317k
        D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
2439
317k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression for_if_clauses"));
2440
317k
    }
2441
0
    { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
2442
317k
        if (p->error_indicator) {
2443
361
            p->level--;
2444
361
            return NULL;
2445
361
        }
2446
317k
        D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
2447
317k
        Token * _literal;
2448
317k
        void *_tmp_121_var;
2449
317k
        expr_ty a;
2450
317k
        asdl_expr_seq* b;
2451
317k
        asdl_comprehension_seq* for_if_clauses_var;
2452
317k
        if (
2453
317k
            (_tmp_121_var = _tmp_121_rule(p))  // '[' | '{'
2454
31.6k
            &&
2455
31.6k
            (a = star_named_expression_rule(p))  // star_named_expression
2456
12.8k
            &&
2457
12.8k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
2458
2.05k
            &&
2459
2.05k
            (b = star_named_expressions_rule(p))  // star_named_expressions
2460
1.35k
            &&
2461
1.35k
            (for_if_clauses_var = for_if_clauses_rule(p))  // for_if_clauses
2462
317k
        )
2463
1
        {
2464
1
            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"));
2465
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , PyPegen_last_item ( b , expr_ty ) , "did you forget parentheses around the comprehension target?" );
2466
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2467
1
                p->error_indicator = 1;
2468
1
                p->level--;
2469
1
                return NULL;
2470
1
            }
2471
0
            goto done;
2472
1
        }
2473
317k
        p->mark = _mark;
2474
317k
        D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
2475
317k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
2476
317k
    }
2477
0
    { // ('[' | '{') star_named_expression ',' for_if_clauses
2478
317k
        if (p->error_indicator) {
2479
4.43k
            p->level--;
2480
4.43k
            return NULL;
2481
4.43k
        }
2482
312k
        D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
2483
312k
        void *_tmp_121_var;
2484
312k
        expr_ty a;
2485
312k
        Token * b;
2486
312k
        asdl_comprehension_seq* for_if_clauses_var;
2487
312k
        if (
2488
312k
            (_tmp_121_var = _tmp_121_rule(p))  // '[' | '{'
2489
27.2k
            &&
2490
27.2k
            (a = star_named_expression_rule(p))  // star_named_expression
2491
12.5k
            &&
2492
12.5k
            (b = _PyPegen_expect_token(p, 12))  // token=','
2493
1.76k
            &&
2494
1.76k
            (for_if_clauses_var = for_if_clauses_rule(p))  // for_if_clauses
2495
312k
        )
2496
1
        {
2497
1
            D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
2498
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
2499
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2500
1
                p->error_indicator = 1;
2501
1
                p->level--;
2502
1
                return NULL;
2503
1
            }
2504
0
            goto done;
2505
1
        }
2506
312k
        p->mark = _mark;
2507
312k
        D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
2508
312k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
2509
312k
    }
2510
312k
    _res = NULL;
2511
312k
  done:
2512
312k
    p->level--;
2513
312k
    return _res;
2514
312k
}
2515
2516
// invalid_parameters:
2517
//     | "/" ','
2518
//     | (slash_no_default | slash_with_default) param_maybe_default* '/'
2519
//     | slash_no_default? param_no_default* invalid_parameters_helper param_no_default
2520
//     | param_no_default* '(' param_no_default+ ','? ')'
2521
//     | [(slash_no_default | slash_with_default)] param_maybe_default* '*' (',' | param_no_default) param_maybe_default* '/'
2522
//     | param_maybe_default+ '/' '*'
2523
Py_LOCAL_SYMBOL void *
2524
invalid_parameters_rule(Parser *p)
2525
4.85k
{
2526
4.85k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
2527
0
        _Pypegen_stack_overflow(p);
2528
0
    }
2529
4.85k
    if (p->error_indicator) {
2530
0
        p->level--;
2531
0
        return NULL;
2532
0
    }
2533
4.85k
    void * _res = NULL;
2534
4.85k
    int _mark = p->mark;
2535
4.85k
    { // "/" ','
2536
4.85k
        if (p->error_indicator) {
2537
0
            p->level--;
2538
0
            return NULL;
2539
0
        }
2540
4.85k
        D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"/\" ','"));
2541
4.85k
        Token * _literal;
2542
4.85k
        Token * a;
2543
4.85k
        if (
2544
4.85k
            (a = _PyPegen_expect_token(p, 17))  // token='/'
2545
6
            &&
2546
6
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
2547
4.85k
        )
2548
1
        {
2549
1
            D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"/\" ','"));
2550
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "at least one parameter must precede /" );
2551
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2552
1
                p->error_indicator = 1;
2553
1
                p->level--;
2554
1
                return NULL;
2555
1
            }
2556
0
            goto done;
2557
1
        }
2558
4.85k
        p->mark = _mark;
2559
4.85k
        D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
2560
4.85k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"/\" ','"));
2561
4.85k
    }
2562
0
    { // (slash_no_default | slash_with_default) param_maybe_default* '/'
2563
4.85k
        if (p->error_indicator) {
2564
2
            p->level--;
2565
2
            return NULL;
2566
2
        }
2567
4.85k
        D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(slash_no_default | slash_with_default) param_maybe_default* '/'"));
2568
4.85k
        asdl_seq * _loop0_123_var;
2569
4.85k
        void *_tmp_122_var;
2570
4.85k
        Token * a;
2571
4.85k
        if (
2572
4.85k
            (_tmp_122_var = _tmp_122_rule(p))  // slash_no_default | slash_with_default
2573
609
            &&
2574
609
            (_loop0_123_var = _loop0_123_rule(p))  // param_maybe_default*
2575
609
            &&
2576
609
            (a = _PyPegen_expect_token(p, 17))  // token='/'
2577
4.85k
        )
2578
2
        {
2579
2
            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* '/'"));
2580
2
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "/ may appear only once" );
2581
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2582
2
                p->error_indicator = 1;
2583
2
                p->level--;
2584
2
                return NULL;
2585
2
            }
2586
0
            goto done;
2587
2
        }
2588
4.85k
        p->mark = _mark;
2589
4.85k
        D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
2590
4.85k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(slash_no_default | slash_with_default) param_maybe_default* '/'"));
2591
4.85k
    }
2592
0
    { // slash_no_default? param_no_default* invalid_parameters_helper param_no_default
2593
4.85k
        if (p->error_indicator) {
2594
7
            p->level--;
2595
7
            return NULL;
2596
7
        }
2597
4.84k
        D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default? param_no_default* invalid_parameters_helper param_no_default"));
2598
4.84k
        asdl_seq * _loop0_124_var;
2599
4.84k
        void *_opt_var;
2600
4.84k
        UNUSED(_opt_var); // Silence compiler warnings
2601
4.84k
        arg_ty a;
2602
4.84k
        void *invalid_parameters_helper_var;
2603
4.84k
        if (
2604
4.84k
            (_opt_var = slash_no_default_rule(p), !p->error_indicator)  // slash_no_default?
2605
4.84k
            &&
2606
4.84k
            (_loop0_124_var = _loop0_124_rule(p))  // param_no_default*
2607
4.84k
            &&
2608
4.84k
            (invalid_parameters_helper_var = invalid_parameters_helper_rule(p))  // invalid_parameters_helper
2609
953
            &&
2610
953
            (a = param_no_default_rule(p))  // param_no_default
2611
4.84k
        )
2612
6
        {
2613
6
            D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default? param_no_default* invalid_parameters_helper param_no_default"));
2614
6
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "parameter without a default follows parameter with a default" );
2615
6
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2616
6
                p->error_indicator = 1;
2617
6
                p->level--;
2618
6
                return NULL;
2619
6
            }
2620
0
            goto done;
2621
6
        }
2622
4.83k
        p->mark = _mark;
2623
4.83k
        D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
2624
4.83k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default? param_no_default* invalid_parameters_helper param_no_default"));
2625
4.83k
    }
2626
0
    { // param_no_default* '(' param_no_default+ ','? ')'
2627
4.83k
        if (p->error_indicator) {
2628
3
            p->level--;
2629
3
            return NULL;
2630
3
        }
2631
4.83k
        D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* '(' param_no_default+ ','? ')'"));
2632
4.83k
        asdl_seq * _loop0_124_var;
2633
4.83k
        asdl_seq * _loop1_125_var;
2634
4.83k
        void *_opt_var;
2635
4.83k
        UNUSED(_opt_var); // Silence compiler warnings
2636
4.83k
        Token * a;
2637
4.83k
        Token * b;
2638
4.83k
        if (
2639
4.83k
            (_loop0_124_var = _loop0_124_rule(p))  // param_no_default*
2640
4.83k
            &&
2641
4.83k
            (a = _PyPegen_expect_token(p, 7))  // token='('
2642
46
            &&
2643
46
            (_loop1_125_var = _loop1_125_rule(p))  // param_no_default+
2644
35
            &&
2645
35
            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
2646
35
            &&
2647
35
            (b = _PyPegen_expect_token(p, 8))  // token=')'
2648
4.83k
        )
2649
3
        {
2650
3
            D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* '(' param_no_default+ ','? ')'"));
2651
3
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "Function parameters cannot be parenthesized" );
2652
3
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2653
3
                p->error_indicator = 1;
2654
3
                p->level--;
2655
3
                return NULL;
2656
3
            }
2657
0
            goto done;
2658
3
        }
2659
4.83k
        p->mark = _mark;
2660
4.83k
        D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
2661
4.83k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* '(' param_no_default+ ','? ')'"));
2662
4.83k
    }
2663
0
    { // [(slash_no_default | slash_with_default)] param_maybe_default* '*' (',' | param_no_default) param_maybe_default* '/'
2664
4.83k
        if (p->error_indicator) {
2665
7
            p->level--;
2666
7
            return NULL;
2667
7
        }
2668
4.82k
        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* '/'"));
2669
4.82k
        Token * _literal;
2670
4.82k
        asdl_seq * _loop0_123_var;
2671
4.82k
        asdl_seq * _loop0_123_var_1;
2672
4.82k
        void *_opt_var;
2673
4.82k
        UNUSED(_opt_var); // Silence compiler warnings
2674
4.82k
        void *_tmp_126_var;
2675
4.82k
        Token * a;
2676
4.82k
        if (
2677
4.82k
            (_opt_var = _tmp_122_rule(p), !p->error_indicator)  // [(slash_no_default | slash_with_default)]
2678
4.82k
            &&
2679
4.82k
            (_loop0_123_var = _loop0_123_rule(p))  // param_maybe_default*
2680
4.82k
            &&
2681
4.82k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
2682
1.61k
            &&
2683
1.61k
            (_tmp_126_var = _tmp_126_rule(p))  // ',' | param_no_default
2684
916
            &&
2685
916
            (_loop0_123_var_1 = _loop0_123_rule(p))  // param_maybe_default*
2686
916
            &&
2687
916
            (a = _PyPegen_expect_token(p, 17))  // token='/'
2688
4.82k
        )
2689
2
        {
2690
2
            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* '/'"));
2691
2
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "/ must be ahead of *" );
2692
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2693
2
                p->error_indicator = 1;
2694
2
                p->level--;
2695
2
                return NULL;
2696
2
            }
2697
0
            goto done;
2698
2
        }
2699
4.82k
        p->mark = _mark;
2700
4.82k
        D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
2701
4.82k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[(slash_no_default | slash_with_default)] param_maybe_default* '*' (',' | param_no_default) param_maybe_default* '/'"));
2702
4.82k
    }
2703
0
    { // param_maybe_default+ '/' '*'
2704
4.82k
        if (p->error_indicator) {
2705
4
            p->level--;
2706
4
            return NULL;
2707
4
        }
2708
4.82k
        D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default+ '/' '*'"));
2709
4.82k
        Token * _literal;
2710
4.82k
        asdl_seq * _loop1_127_var;
2711
4.82k
        Token * a;
2712
4.82k
        if (
2713
4.82k
            (_loop1_127_var = _loop1_127_rule(p))  // param_maybe_default+
2714
1.69k
            &&
2715
1.69k
            (_literal = _PyPegen_expect_token(p, 17))  // token='/'
2716
615
            &&
2717
615
            (a = _PyPegen_expect_token(p, 16))  // token='*'
2718
4.82k
        )
2719
2
        {
2720
2
            D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_maybe_default+ '/' '*'"));
2721
2
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expected comma between / and *" );
2722
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2723
2
                p->error_indicator = 1;
2724
2
                p->level--;
2725
2
                return NULL;
2726
2
            }
2727
0
            goto done;
2728
2
        }
2729
4.81k
        p->mark = _mark;
2730
4.81k
        D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
2731
4.81k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default+ '/' '*'"));
2732
4.81k
    }
2733
4.81k
    _res = NULL;
2734
4.81k
  done:
2735
4.81k
    p->level--;
2736
4.81k
    return _res;
2737
4.81k
}
2738
2739
// invalid_default: '=' &(')' | ',')
2740
Py_LOCAL_SYMBOL void *
2741
invalid_default_rule(Parser *p)
2742
680k
{
2743
680k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
2744
0
        _Pypegen_stack_overflow(p);
2745
0
    }
2746
680k
    if (p->error_indicator) {
2747
0
        p->level--;
2748
0
        return NULL;
2749
0
    }
2750
680k
    void * _res = NULL;
2751
680k
    int _mark = p->mark;
2752
680k
    { // '=' &(')' | ',')
2753
680k
        if (p->error_indicator) {
2754
0
            p->level--;
2755
0
            return NULL;
2756
0
        }
2757
680k
        D(fprintf(stderr, "%*c> invalid_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' &(')' | ',')"));
2758
680k
        Token * a;
2759
680k
        if (
2760
680k
            (a = _PyPegen_expect_token(p, 22))  // token='='
2761
14.4k
            &&
2762
14.4k
            _PyPegen_lookahead(1, _tmp_128_rule, p)
2763
680k
        )
2764
18
        {
2765
18
            D(fprintf(stderr, "%*c+ invalid_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' &(')' | ',')"));
2766
18
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expected default value expression" );
2767
18
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2768
18
                p->error_indicator = 1;
2769
18
                p->level--;
2770
18
                return NULL;
2771
18
            }
2772
0
            goto done;
2773
18
        }
2774
680k
        p->mark = _mark;
2775
680k
        D(fprintf(stderr, "%*c%s invalid_default[%d-%d]: %s failed!\n", p->level, ' ',
2776
680k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' &(')' | ',')"));
2777
680k
    }
2778
680k
    _res = NULL;
2779
680k
  done:
2780
680k
    p->level--;
2781
680k
    return _res;
2782
680k
}
2783
2784
// invalid_star_etc:
2785
//     | '*' (')' | ',' (')' | '**'))
2786
//     | '*' ',' TYPE_COMMENT
2787
//     | '*' param '='
2788
//     | '*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')
2789
Py_LOCAL_SYMBOL void *
2790
invalid_star_etc_rule(Parser *p)
2791
4.81k
{
2792
4.81k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
2793
0
        _Pypegen_stack_overflow(p);
2794
0
    }
2795
4.81k
    if (p->error_indicator) {
2796
0
        p->level--;
2797
0
        return NULL;
2798
0
    }
2799
4.81k
    void * _res = NULL;
2800
4.81k
    int _mark = p->mark;
2801
4.81k
    { // '*' (')' | ',' (')' | '**'))
2802
4.81k
        if (p->error_indicator) {
2803
0
            p->level--;
2804
0
            return NULL;
2805
0
        }
2806
4.81k
        D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
2807
4.81k
        void *_tmp_129_var;
2808
4.81k
        Token * a;
2809
4.81k
        if (
2810
4.81k
            (a = _PyPegen_expect_token(p, 16))  // token='*'
2811
1.60k
            &&
2812
1.60k
            (_tmp_129_var = _tmp_129_rule(p))  // ')' | ',' (')' | '**')
2813
4.81k
        )
2814
4
        {
2815
4
            D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
2816
4
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named parameters must follow bare *" );
2817
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2818
4
                p->error_indicator = 1;
2819
4
                p->level--;
2820
4
                return NULL;
2821
4
            }
2822
0
            goto done;
2823
4
        }
2824
4.81k
        p->mark = _mark;
2825
4.81k
        D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
2826
4.81k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
2827
4.81k
    }
2828
0
    { // '*' ',' TYPE_COMMENT
2829
4.81k
        if (p->error_indicator) {
2830
0
            p->level--;
2831
0
            return NULL;
2832
0
        }
2833
4.81k
        D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
2834
4.81k
        Token * _literal;
2835
4.81k
        Token * _literal_1;
2836
4.81k
        Token * type_comment_var;
2837
4.81k
        if (
2838
4.81k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
2839
1.60k
            &&
2840
1.60k
            (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
2841
493
            &&
2842
493
            (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT))  // token='TYPE_COMMENT'
2843
4.81k
        )
2844
0
        {
2845
0
            D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
2846
0
            _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
2847
0
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2848
0
                p->error_indicator = 1;
2849
0
                p->level--;
2850
0
                return NULL;
2851
0
            }
2852
0
            goto done;
2853
0
        }
2854
4.81k
        p->mark = _mark;
2855
4.81k
        D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
2856
4.81k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
2857
4.81k
    }
2858
0
    { // '*' param '='
2859
4.81k
        if (p->error_indicator) {
2860
0
            p->level--;
2861
0
            return NULL;
2862
0
        }
2863
4.81k
        D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param '='"));
2864
4.81k
        Token * _literal;
2865
4.81k
        Token * a;
2866
4.81k
        arg_ty param_var;
2867
4.81k
        if (
2868
4.81k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
2869
1.60k
            &&
2870
1.60k
            (param_var = param_rule(p))  // param
2871
1.09k
            &&
2872
1.09k
            (a = _PyPegen_expect_token(p, 22))  // token='='
2873
4.81k
        )
2874
1
        {
2875
1
            D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param '='"));
2876
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "var-positional parameter cannot have default value" );
2877
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2878
1
                p->error_indicator = 1;
2879
1
                p->level--;
2880
1
                return NULL;
2881
1
            }
2882
0
            goto done;
2883
1
        }
2884
4.81k
        p->mark = _mark;
2885
4.81k
        D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
2886
4.81k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param '='"));
2887
4.81k
    }
2888
0
    { // '*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')
2889
4.81k
        if (p->error_indicator) {
2890
0
            p->level--;
2891
0
            return NULL;
2892
0
        }
2893
4.81k
        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 | ',')"));
2894
4.81k
        Token * _literal;
2895
4.81k
        asdl_seq * _loop0_123_var;
2896
4.81k
        void *_tmp_130_var;
2897
4.81k
        void *_tmp_130_var_1;
2898
4.81k
        Token * a;
2899
4.81k
        if (
2900
4.81k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
2901
1.60k
            &&
2902
1.60k
            (_tmp_130_var = _tmp_130_rule(p))  // param_no_default | ','
2903
911
            &&
2904
911
            (_loop0_123_var = _loop0_123_rule(p))  // param_maybe_default*
2905
911
            &&
2906
911
            (a = _PyPegen_expect_token(p, 16))  // token='*'
2907
17
            &&
2908
17
            (_tmp_130_var_1 = _tmp_130_rule(p))  // param_no_default | ','
2909
4.81k
        )
2910
3
        {
2911
3
            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 | ',')"));
2912
3
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "* may appear only once" );
2913
3
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2914
3
                p->error_indicator = 1;
2915
3
                p->level--;
2916
3
                return NULL;
2917
3
            }
2918
0
            goto done;
2919
3
        }
2920
4.81k
        p->mark = _mark;
2921
4.81k
        D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
2922
4.81k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')"));
2923
4.81k
    }
2924
4.81k
    _res = NULL;
2925
4.81k
  done:
2926
4.81k
    p->level--;
2927
4.81k
    return _res;
2928
4.81k
}
2929
2930
// invalid_kwds: '**' param '=' | '**' param ',' param | '**' param ',' ('*' | '**' | '/')
2931
Py_LOCAL_SYMBOL void *
2932
invalid_kwds_rule(Parser *p)
2933
4.80k
{
2934
4.80k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
2935
0
        _Pypegen_stack_overflow(p);
2936
0
    }
2937
4.80k
    if (p->error_indicator) {
2938
0
        p->level--;
2939
0
        return NULL;
2940
0
    }
2941
4.80k
    void * _res = NULL;
2942
4.80k
    int _mark = p->mark;
2943
4.80k
    { // '**' param '='
2944
4.80k
        if (p->error_indicator) {
2945
0
            p->level--;
2946
0
            return NULL;
2947
0
        }
2948
4.80k
        D(fprintf(stderr, "%*c> invalid_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param '='"));
2949
4.80k
        Token * _literal;
2950
4.80k
        Token * a;
2951
4.80k
        arg_ty param_var;
2952
4.80k
        if (
2953
4.80k
            (_literal = _PyPegen_expect_token(p, 35))  // token='**'
2954
390
            &&
2955
390
            (param_var = param_rule(p))  // param
2956
383
            &&
2957
383
            (a = _PyPegen_expect_token(p, 22))  // token='='
2958
4.80k
        )
2959
2
        {
2960
2
            D(fprintf(stderr, "%*c+ invalid_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param '='"));
2961
2
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "var-keyword parameter cannot have default value" );
2962
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2963
2
                p->error_indicator = 1;
2964
2
                p->level--;
2965
2
                return NULL;
2966
2
            }
2967
0
            goto done;
2968
2
        }
2969
4.80k
        p->mark = _mark;
2970
4.80k
        D(fprintf(stderr, "%*c%s invalid_kwds[%d-%d]: %s failed!\n", p->level, ' ',
2971
4.80k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param '='"));
2972
4.80k
    }
2973
0
    { // '**' param ',' param
2974
4.80k
        if (p->error_indicator) {
2975
1
            p->level--;
2976
1
            return NULL;
2977
1
        }
2978
4.80k
        D(fprintf(stderr, "%*c> invalid_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param ',' param"));
2979
4.80k
        Token * _literal;
2980
4.80k
        Token * _literal_1;
2981
4.80k
        arg_ty a;
2982
4.80k
        arg_ty param_var;
2983
4.80k
        if (
2984
4.80k
            (_literal = _PyPegen_expect_token(p, 35))  // token='**'
2985
387
            &&
2986
387
            (param_var = param_rule(p))  // param
2987
381
            &&
2988
381
            (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
2989
75
            &&
2990
75
            (a = param_rule(p))  // param
2991
4.80k
        )
2992
1
        {
2993
1
            D(fprintf(stderr, "%*c+ invalid_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param ',' param"));
2994
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "parameters cannot follow var-keyword parameter" );
2995
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
2996
1
                p->error_indicator = 1;
2997
1
                p->level--;
2998
1
                return NULL;
2999
1
            }
3000
0
            goto done;
3001
1
        }
3002
4.80k
        p->mark = _mark;
3003
4.80k
        D(fprintf(stderr, "%*c%s invalid_kwds[%d-%d]: %s failed!\n", p->level, ' ',
3004
4.80k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param ',' param"));
3005
4.80k
    }
3006
0
    { // '**' param ',' ('*' | '**' | '/')
3007
4.80k
        if (p->error_indicator) {
3008
2
            p->level--;
3009
2
            return NULL;
3010
2
        }
3011
4.80k
        D(fprintf(stderr, "%*c> invalid_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param ',' ('*' | '**' | '/')"));
3012
4.80k
        Token * _literal;
3013
4.80k
        Token * _literal_1;
3014
4.80k
        Token* a;
3015
4.80k
        arg_ty param_var;
3016
4.80k
        if (
3017
4.80k
            (_literal = _PyPegen_expect_token(p, 35))  // token='**'
3018
384
            &&
3019
384
            (param_var = param_rule(p))  // param
3020
378
            &&
3021
378
            (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
3022
72
            &&
3023
72
            (a = (Token*)_tmp_131_rule(p))  // '*' | '**' | '/'
3024
4.80k
        )
3025
2
        {
3026
2
            D(fprintf(stderr, "%*c+ invalid_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param ',' ('*' | '**' | '/')"));
3027
2
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "parameters cannot follow var-keyword parameter" );
3028
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3029
2
                p->error_indicator = 1;
3030
2
                p->level--;
3031
2
                return NULL;
3032
2
            }
3033
0
            goto done;
3034
2
        }
3035
4.79k
        p->mark = _mark;
3036
4.79k
        D(fprintf(stderr, "%*c%s invalid_kwds[%d-%d]: %s failed!\n", p->level, ' ',
3037
4.79k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param ',' ('*' | '**' | '/')"));
3038
4.79k
    }
3039
4.79k
    _res = NULL;
3040
4.79k
  done:
3041
4.79k
    p->level--;
3042
4.79k
    return _res;
3043
4.79k
}
3044
3045
// invalid_parameters_helper: slash_with_default | param_with_default+
3046
static void *
3047
invalid_parameters_helper_rule(Parser *p)
3048
4.84k
{
3049
4.84k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
3050
0
        _Pypegen_stack_overflow(p);
3051
0
    }
3052
4.84k
    if (p->error_indicator) {
3053
0
        p->level--;
3054
0
        return NULL;
3055
0
    }
3056
4.84k
    void * _res = NULL;
3057
4.84k
    int _mark = p->mark;
3058
4.84k
    { // slash_with_default
3059
4.84k
        if (p->error_indicator) {
3060
0
            p->level--;
3061
0
            return NULL;
3062
0
        }
3063
4.84k
        D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
3064
4.84k
        SlashWithDefault* a;
3065
4.84k
        if (
3066
4.84k
            (a = slash_with_default_rule(p))  // slash_with_default
3067
4.84k
        )
3068
345
        {
3069
345
            D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
3070
345
            _res = _PyPegen_singleton_seq ( p , a );
3071
345
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3072
0
                p->error_indicator = 1;
3073
0
                p->level--;
3074
0
                return NULL;
3075
0
            }
3076
345
            goto done;
3077
345
        }
3078
4.50k
        p->mark = _mark;
3079
4.50k
        D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
3080
4.50k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
3081
4.50k
    }
3082
0
    { // param_with_default+
3083
4.50k
        if (p->error_indicator) {
3084
0
            p->level--;
3085
0
            return NULL;
3086
0
        }
3087
4.50k
        D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
3088
4.50k
        asdl_seq * _loop1_132_var;
3089
4.50k
        if (
3090
4.50k
            (_loop1_132_var = _loop1_132_rule(p))  // param_with_default+
3091
4.50k
        )
3092
608
        {
3093
608
            D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
3094
608
            _res = _loop1_132_var;
3095
608
            goto done;
3096
608
        }
3097
3.89k
        p->mark = _mark;
3098
3.89k
        D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
3099
3.89k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
3100
3.89k
    }
3101
3.89k
    _res = NULL;
3102
4.84k
  done:
3103
4.84k
    p->level--;
3104
4.84k
    return _res;
3105
3.89k
}
3106
3107
// invalid_lambda_parameters:
3108
//     | "/" ','
3109
//     | (lambda_slash_no_default | lambda_slash_with_default) lambda_param_maybe_default* '/'
3110
//     | lambda_slash_no_default? lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
3111
//     | lambda_param_no_default* '(' ','.lambda_param+ ','? ')'
3112
//     | [(lambda_slash_no_default | lambda_slash_with_default)] lambda_param_maybe_default* '*' (',' | lambda_param_no_default) lambda_param_maybe_default* '/'
3113
//     | lambda_param_maybe_default+ '/' '*'
3114
Py_LOCAL_SYMBOL void *
3115
invalid_lambda_parameters_rule(Parser *p)
3116
166k
{
3117
166k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
3118
0
        _Pypegen_stack_overflow(p);
3119
0
    }
3120
166k
    if (p->error_indicator) {
3121
0
        p->level--;
3122
0
        return NULL;
3123
0
    }
3124
166k
    void * _res = NULL;
3125
166k
    int _mark = p->mark;
3126
166k
    { // "/" ','
3127
166k
        if (p->error_indicator) {
3128
0
            p->level--;
3129
0
            return NULL;
3130
0
        }
3131
166k
        D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"/\" ','"));
3132
166k
        Token * _literal;
3133
166k
        Token * a;
3134
166k
        if (
3135
166k
            (a = _PyPegen_expect_token(p, 17))  // token='/'
3136
5
            &&
3137
5
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
3138
166k
        )
3139
1
        {
3140
1
            D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"/\" ','"));
3141
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "at least one parameter must precede /" );
3142
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3143
1
                p->error_indicator = 1;
3144
1
                p->level--;
3145
1
                return NULL;
3146
1
            }
3147
0
            goto done;
3148
1
        }
3149
166k
        p->mark = _mark;
3150
166k
        D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
3151
166k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"/\" ','"));
3152
166k
    }
3153
0
    { // (lambda_slash_no_default | lambda_slash_with_default) lambda_param_maybe_default* '/'
3154
166k
        if (p->error_indicator) {
3155
1
            p->level--;
3156
1
            return NULL;
3157
1
        }
3158
166k
        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* '/'"));
3159
166k
        asdl_seq * _loop0_134_var;
3160
166k
        void *_tmp_133_var;
3161
166k
        Token * a;
3162
166k
        if (
3163
166k
            (_tmp_133_var = _tmp_133_rule(p))  // lambda_slash_no_default | lambda_slash_with_default
3164
1.48k
            &&
3165
1.48k
            (_loop0_134_var = _loop0_134_rule(p))  // lambda_param_maybe_default*
3166
1.48k
            &&
3167
1.48k
            (a = _PyPegen_expect_token(p, 17))  // token='/'
3168
166k
        )
3169
4
        {
3170
4
            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* '/'"));
3171
4
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "/ may appear only once" );
3172
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3173
4
                p->error_indicator = 1;
3174
4
                p->level--;
3175
4
                return NULL;
3176
4
            }
3177
0
            goto done;
3178
4
        }
3179
166k
        p->mark = _mark;
3180
166k
        D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
3181
166k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(lambda_slash_no_default | lambda_slash_with_default) lambda_param_maybe_default* '/'"));
3182
166k
    }
3183
0
    { // lambda_slash_no_default? lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
3184
166k
        if (p->error_indicator) {
3185
670
            p->level--;
3186
670
            return NULL;
3187
670
        }
3188
165k
        D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default? lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
3189
165k
        asdl_seq * _loop0_135_var;
3190
165k
        void *_opt_var;
3191
165k
        UNUSED(_opt_var); // Silence compiler warnings
3192
165k
        arg_ty a;
3193
165k
        void *invalid_lambda_parameters_helper_var;
3194
165k
        if (
3195
165k
            (_opt_var = lambda_slash_no_default_rule(p), !p->error_indicator)  // lambda_slash_no_default?
3196
165k
            &&
3197
165k
            (_loop0_135_var = _loop0_135_rule(p))  // lambda_param_no_default*
3198
165k
            &&
3199
165k
            (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p))  // invalid_lambda_parameters_helper
3200
1.88k
            &&
3201
1.88k
            (a = lambda_param_no_default_rule(p))  // lambda_param_no_default
3202
165k
        )
3203
12
        {
3204
12
            D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default? lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
3205
12
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "parameter without a default follows parameter with a default" );
3206
12
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3207
12
                p->error_indicator = 1;
3208
12
                p->level--;
3209
12
                return NULL;
3210
12
            }
3211
0
            goto done;
3212
12
        }
3213
165k
        p->mark = _mark;
3214
165k
        D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
3215
165k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default? lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
3216
165k
    }
3217
0
    { // lambda_param_no_default* '(' ','.lambda_param+ ','? ')'
3218
165k
        if (p->error_indicator) {
3219
0
            p->level--;
3220
0
            return NULL;
3221
0
        }
3222
165k
        D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* '(' ','.lambda_param+ ','? ')'"));
3223
165k
        asdl_seq * _gather_137_var;
3224
165k
        asdl_seq * _loop0_135_var;
3225
165k
        void *_opt_var;
3226
165k
        UNUSED(_opt_var); // Silence compiler warnings
3227
165k
        Token * a;
3228
165k
        Token * b;
3229
165k
        if (
3230
165k
            (_loop0_135_var = _loop0_135_rule(p))  // lambda_param_no_default*
3231
165k
            &&
3232
165k
            (a = _PyPegen_expect_token(p, 7))  // token='('
3233
83
            &&
3234
83
            (_gather_137_var = _gather_137_rule(p))  // ','.lambda_param+
3235
64
            &&
3236
64
            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
3237
55
            &&
3238
55
            (b = _PyPegen_expect_token(p, 8))  // token=')'
3239
165k
        )
3240
1
        {
3241
1
            D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* '(' ','.lambda_param+ ','? ')'"));
3242
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "Lambda expression parameters cannot be parenthesized" );
3243
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3244
1
                p->error_indicator = 1;
3245
1
                p->level--;
3246
1
                return NULL;
3247
1
            }
3248
0
            goto done;
3249
1
        }
3250
165k
        p->mark = _mark;
3251
165k
        D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
3252
165k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* '(' ','.lambda_param+ ','? ')'"));
3253
165k
    }
3254
0
    { // [(lambda_slash_no_default | lambda_slash_with_default)] lambda_param_maybe_default* '*' (',' | lambda_param_no_default) lambda_param_maybe_default* '/'
3255
165k
        if (p->error_indicator) {
3256
13
            p->level--;
3257
13
            return NULL;
3258
13
        }
3259
165k
        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* '/'"));
3260
165k
        Token * _literal;
3261
165k
        asdl_seq * _loop0_134_var;
3262
165k
        asdl_seq * _loop0_134_var_1;
3263
165k
        void *_opt_var;
3264
165k
        UNUSED(_opt_var); // Silence compiler warnings
3265
165k
        void *_tmp_138_var;
3266
165k
        Token * a;
3267
165k
        if (
3268
165k
            (_opt_var = _tmp_133_rule(p), !p->error_indicator)  // [(lambda_slash_no_default | lambda_slash_with_default)]
3269
165k
            &&
3270
165k
            (_loop0_134_var = _loop0_134_rule(p))  // lambda_param_maybe_default*
3271
165k
            &&
3272
165k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
3273
3.12k
            &&
3274
3.12k
            (_tmp_138_var = _tmp_138_rule(p))  // ',' | lambda_param_no_default
3275
2.60k
            &&
3276
2.60k
            (_loop0_134_var_1 = _loop0_134_rule(p))  // lambda_param_maybe_default*
3277
2.60k
            &&
3278
2.60k
            (a = _PyPegen_expect_token(p, 17))  // token='/'
3279
165k
        )
3280
3
        {
3281
3
            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* '/'"));
3282
3
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "/ must be ahead of *" );
3283
3
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3284
3
                p->error_indicator = 1;
3285
3
                p->level--;
3286
3
                return NULL;
3287
3
            }
3288
0
            goto done;
3289
3
        }
3290
165k
        p->mark = _mark;
3291
165k
        D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
3292
165k
                  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* '/'"));
3293
165k
    }
3294
0
    { // lambda_param_maybe_default+ '/' '*'
3295
165k
        if (p->error_indicator) {
3296
219
            p->level--;
3297
219
            return NULL;
3298
219
        }
3299
165k
        D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default+ '/' '*'"));
3300
165k
        Token * _literal;
3301
165k
        asdl_seq * _loop1_139_var;
3302
165k
        Token * a;
3303
165k
        if (
3304
165k
            (_loop1_139_var = _loop1_139_rule(p))  // lambda_param_maybe_default+
3305
160k
            &&
3306
160k
            (_literal = _PyPegen_expect_token(p, 17))  // token='/'
3307
1.28k
            &&
3308
1.28k
            (a = _PyPegen_expect_token(p, 16))  // token='*'
3309
165k
        )
3310
4
        {
3311
4
            D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default+ '/' '*'"));
3312
4
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expected comma between / and *" );
3313
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3314
4
                p->error_indicator = 1;
3315
4
                p->level--;
3316
4
                return NULL;
3317
4
            }
3318
0
            goto done;
3319
4
        }
3320
165k
        p->mark = _mark;
3321
165k
        D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
3322
165k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default+ '/' '*'"));
3323
165k
    }
3324
165k
    _res = NULL;
3325
165k
  done:
3326
165k
    p->level--;
3327
165k
    return _res;
3328
165k
}
3329
3330
// invalid_lambda_parameters_helper:
3331
//     | lambda_slash_with_default
3332
//     | lambda_param_with_default+
3333
static void *
3334
invalid_lambda_parameters_helper_rule(Parser *p)
3335
165k
{
3336
165k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
3337
0
        _Pypegen_stack_overflow(p);
3338
0
    }
3339
165k
    if (p->error_indicator) {
3340
0
        p->level--;
3341
0
        return NULL;
3342
0
    }
3343
165k
    void * _res = NULL;
3344
165k
    int _mark = p->mark;
3345
165k
    { // lambda_slash_with_default
3346
165k
        if (p->error_indicator) {
3347
0
            p->level--;
3348
0
            return NULL;
3349
0
        }
3350
165k
        D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
3351
165k
        SlashWithDefault* a;
3352
165k
        if (
3353
165k
            (a = lambda_slash_with_default_rule(p))  // lambda_slash_with_default
3354
165k
        )
3355
823
        {
3356
823
            D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
3357
823
            _res = _PyPegen_singleton_seq ( p , a );
3358
823
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3359
0
                p->error_indicator = 1;
3360
0
                p->level--;
3361
0
                return NULL;
3362
0
            }
3363
823
            goto done;
3364
823
        }
3365
164k
        p->mark = _mark;
3366
164k
        D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
3367
164k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
3368
164k
    }
3369
0
    { // lambda_param_with_default+
3370
164k
        if (p->error_indicator) {
3371
0
            p->level--;
3372
0
            return NULL;
3373
0
        }
3374
164k
        D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
3375
164k
        asdl_seq * _loop1_140_var;
3376
164k
        if (
3377
164k
            (_loop1_140_var = _loop1_140_rule(p))  // lambda_param_with_default+
3378
164k
        )
3379
1.06k
        {
3380
1.06k
            D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
3381
1.06k
            _res = _loop1_140_var;
3382
1.06k
            goto done;
3383
1.06k
        }
3384
163k
        p->mark = _mark;
3385
163k
        D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
3386
163k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
3387
163k
    }
3388
163k
    _res = NULL;
3389
165k
  done:
3390
165k
    p->level--;
3391
165k
    return _res;
3392
163k
}
3393
3394
// invalid_lambda_star_etc:
3395
//     | '*' (':' | ',' (':' | '**'))
3396
//     | '*' lambda_param '='
3397
//     | '*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')
3398
Py_LOCAL_SYMBOL void *
3399
invalid_lambda_star_etc_rule(Parser *p)
3400
165k
{
3401
165k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
3402
0
        _Pypegen_stack_overflow(p);
3403
0
    }
3404
165k
    if (p->error_indicator) {
3405
0
        p->level--;
3406
0
        return NULL;
3407
0
    }
3408
165k
    void * _res = NULL;
3409
165k
    int _mark = p->mark;
3410
165k
    { // '*' (':' | ',' (':' | '**'))
3411
165k
        if (p->error_indicator) {
3412
0
            p->level--;
3413
0
            return NULL;
3414
0
        }
3415
165k
        D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
3416
165k
        Token * _literal;
3417
165k
        void *_tmp_141_var;
3418
165k
        if (
3419
165k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
3420
2.90k
            &&
3421
2.90k
            (_tmp_141_var = _tmp_141_rule(p))  // ':' | ',' (':' | '**')
3422
165k
        )
3423
5
        {
3424
5
            D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
3425
5
            _res = RAISE_SYNTAX_ERROR ( "named parameters must follow bare *" );
3426
5
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3427
5
                p->error_indicator = 1;
3428
5
                p->level--;
3429
5
                return NULL;
3430
5
            }
3431
0
            goto done;
3432
5
        }
3433
165k
        p->mark = _mark;
3434
165k
        D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
3435
165k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
3436
165k
    }
3437
0
    { // '*' lambda_param '='
3438
165k
        if (p->error_indicator) {
3439
0
            p->level--;
3440
0
            return NULL;
3441
0
        }
3442
165k
        D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' lambda_param '='"));
3443
165k
        Token * _literal;
3444
165k
        Token * a;
3445
165k
        arg_ty lambda_param_var;
3446
165k
        if (
3447
165k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
3448
2.89k
            &&
3449
2.89k
            (lambda_param_var = lambda_param_rule(p))  // lambda_param
3450
1.59k
            &&
3451
1.59k
            (a = _PyPegen_expect_token(p, 22))  // token='='
3452
165k
        )
3453
10
        {
3454
10
            D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' lambda_param '='"));
3455
10
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "var-positional parameter cannot have default value" );
3456
10
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3457
10
                p->error_indicator = 1;
3458
10
                p->level--;
3459
10
                return NULL;
3460
10
            }
3461
0
            goto done;
3462
10
        }
3463
165k
        p->mark = _mark;
3464
165k
        D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
3465
165k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param '='"));
3466
165k
    }
3467
0
    { // '*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')
3468
165k
        if (p->error_indicator) {
3469
0
            p->level--;
3470
0
            return NULL;
3471
0
        }
3472
165k
        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 | ',')"));
3473
165k
        Token * _literal;
3474
165k
        asdl_seq * _loop0_134_var;
3475
165k
        void *_tmp_142_var;
3476
165k
        void *_tmp_142_var_1;
3477
165k
        Token * a;
3478
165k
        if (
3479
165k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
3480
2.88k
            &&
3481
2.88k
            (_tmp_142_var = _tmp_142_rule(p))  // lambda_param_no_default | ','
3482
2.38k
            &&
3483
2.38k
            (_loop0_134_var = _loop0_134_rule(p))  // lambda_param_maybe_default*
3484
2.38k
            &&
3485
2.38k
            (a = _PyPegen_expect_token(p, 16))  // token='*'
3486
76
            &&
3487
76
            (_tmp_142_var_1 = _tmp_142_rule(p))  // lambda_param_no_default | ','
3488
165k
        )
3489
1
        {
3490
1
            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 | ',')"));
3491
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "* may appear only once" );
3492
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3493
1
                p->error_indicator = 1;
3494
1
                p->level--;
3495
1
                return NULL;
3496
1
            }
3497
0
            goto done;
3498
1
        }
3499
165k
        p->mark = _mark;
3500
165k
        D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
3501
165k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')"));
3502
165k
    }
3503
165k
    _res = NULL;
3504
165k
  done:
3505
165k
    p->level--;
3506
165k
    return _res;
3507
165k
}
3508
3509
// invalid_lambda_kwds:
3510
//     | '**' lambda_param '='
3511
//     | '**' lambda_param ',' lambda_param
3512
//     | '**' lambda_param ',' ('*' | '**' | '/')
3513
Py_LOCAL_SYMBOL void *
3514
invalid_lambda_kwds_rule(Parser *p)
3515
165k
{
3516
165k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
3517
0
        _Pypegen_stack_overflow(p);
3518
0
    }
3519
165k
    if (p->error_indicator) {
3520
0
        p->level--;
3521
0
        return NULL;
3522
0
    }
3523
165k
    void * _res = NULL;
3524
165k
    int _mark = p->mark;
3525
165k
    { // '**' lambda_param '='
3526
165k
        if (p->error_indicator) {
3527
0
            p->level--;
3528
0
            return NULL;
3529
0
        }
3530
165k
        D(fprintf(stderr, "%*c> invalid_lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param '='"));
3531
165k
        Token * _literal;
3532
165k
        Token * a;
3533
165k
        arg_ty lambda_param_var;
3534
165k
        if (
3535
165k
            (_literal = _PyPegen_expect_token(p, 35))  // token='**'
3536
474
            &&
3537
474
            (lambda_param_var = lambda_param_rule(p))  // lambda_param
3538
464
            &&
3539
464
            (a = _PyPegen_expect_token(p, 22))  // token='='
3540
165k
        )
3541
2
        {
3542
2
            D(fprintf(stderr, "%*c+ invalid_lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param '='"));
3543
2
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "var-keyword parameter cannot have default value" );
3544
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3545
2
                p->error_indicator = 1;
3546
2
                p->level--;
3547
2
                return NULL;
3548
2
            }
3549
0
            goto done;
3550
2
        }
3551
165k
        p->mark = _mark;
3552
165k
        D(fprintf(stderr, "%*c%s invalid_lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
3553
165k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param '='"));
3554
165k
    }
3555
0
    { // '**' lambda_param ',' lambda_param
3556
165k
        if (p->error_indicator) {
3557
1
            p->level--;
3558
1
            return NULL;
3559
1
        }
3560
165k
        D(fprintf(stderr, "%*c> invalid_lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param ',' lambda_param"));
3561
165k
        Token * _literal;
3562
165k
        Token * _literal_1;
3563
165k
        arg_ty a;
3564
165k
        arg_ty lambda_param_var;
3565
165k
        if (
3566
165k
            (_literal = _PyPegen_expect_token(p, 35))  // token='**'
3567
471
            &&
3568
471
            (lambda_param_var = lambda_param_rule(p))  // lambda_param
3569
462
            &&
3570
462
            (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
3571
207
            &&
3572
207
            (a = lambda_param_rule(p))  // lambda_param
3573
165k
        )
3574
3
        {
3575
3
            D(fprintf(stderr, "%*c+ invalid_lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param ',' lambda_param"));
3576
3
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "parameters cannot follow var-keyword parameter" );
3577
3
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3578
3
                p->error_indicator = 1;
3579
3
                p->level--;
3580
3
                return NULL;
3581
3
            }
3582
0
            goto done;
3583
3
        }
3584
165k
        p->mark = _mark;
3585
165k
        D(fprintf(stderr, "%*c%s invalid_lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
3586
165k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param ',' lambda_param"));
3587
165k
    }
3588
0
    { // '**' lambda_param ',' ('*' | '**' | '/')
3589
165k
        if (p->error_indicator) {
3590
1
            p->level--;
3591
1
            return NULL;
3592
1
        }
3593
165k
        D(fprintf(stderr, "%*c> invalid_lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param ',' ('*' | '**' | '/')"));
3594
165k
        Token * _literal;
3595
165k
        Token * _literal_1;
3596
165k
        Token* a;
3597
165k
        arg_ty lambda_param_var;
3598
165k
        if (
3599
165k
            (_literal = _PyPegen_expect_token(p, 35))  // token='**'
3600
467
            &&
3601
467
            (lambda_param_var = lambda_param_rule(p))  // lambda_param
3602
458
            &&
3603
458
            (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
3604
203
            &&
3605
203
            (a = (Token*)_tmp_131_rule(p))  // '*' | '**' | '/'
3606
165k
        )
3607
2
        {
3608
2
            D(fprintf(stderr, "%*c+ invalid_lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param ',' ('*' | '**' | '/')"));
3609
2
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "parameters cannot follow var-keyword parameter" );
3610
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3611
2
                p->error_indicator = 1;
3612
2
                p->level--;
3613
2
                return NULL;
3614
2
            }
3615
0
            goto done;
3616
2
        }
3617
165k
        p->mark = _mark;
3618
165k
        D(fprintf(stderr, "%*c%s invalid_lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
3619
165k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param ',' ('*' | '**' | '/')"));
3620
165k
    }
3621
165k
    _res = NULL;
3622
165k
  done:
3623
165k
    p->level--;
3624
165k
    return _res;
3625
165k
}
3626
3627
// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
3628
Py_LOCAL_SYMBOL void *
3629
invalid_double_type_comments_rule(Parser *p)
3630
2.14k
{
3631
2.14k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
3632
0
        _Pypegen_stack_overflow(p);
3633
0
    }
3634
2.14k
    if (p->error_indicator) {
3635
0
        p->level--;
3636
0
        return NULL;
3637
0
    }
3638
2.14k
    void * _res = NULL;
3639
2.14k
    int _mark = p->mark;
3640
2.14k
    { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
3641
2.14k
        if (p->error_indicator) {
3642
0
            p->level--;
3643
0
            return NULL;
3644
0
        }
3645
2.14k
        D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
3646
2.14k
        Token * indent_var;
3647
2.14k
        Token * newline_var;
3648
2.14k
        Token * newline_var_1;
3649
2.14k
        Token * type_comment_var;
3650
2.14k
        Token * type_comment_var_1;
3651
2.14k
        if (
3652
2.14k
            (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT))  // token='TYPE_COMMENT'
3653
0
            &&
3654
0
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
3655
0
            &&
3656
0
            (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT))  // token='TYPE_COMMENT'
3657
0
            &&
3658
0
            (newline_var_1 = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
3659
0
            &&
3660
0
            (indent_var = _PyPegen_expect_token(p, INDENT))  // token='INDENT'
3661
2.14k
        )
3662
0
        {
3663
0
            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"));
3664
0
            _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
3665
0
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3666
0
                p->error_indicator = 1;
3667
0
                p->level--;
3668
0
                return NULL;
3669
0
            }
3670
0
            goto done;
3671
0
        }
3672
2.14k
        p->mark = _mark;
3673
2.14k
        D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
3674
2.14k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
3675
2.14k
    }
3676
2.14k
    _res = NULL;
3677
2.14k
  done:
3678
2.14k
    p->level--;
3679
2.14k
    return _res;
3680
2.14k
}
3681
3682
// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
3683
Py_LOCAL_SYMBOL void *
3684
invalid_with_item_rule(Parser *p)
3685
6.75k
{
3686
6.75k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
3687
0
        _Pypegen_stack_overflow(p);
3688
0
    }
3689
6.75k
    if (p->error_indicator) {
3690
0
        p->level--;
3691
0
        return NULL;
3692
0
    }
3693
6.75k
    void * _res = NULL;
3694
6.75k
    int _mark = p->mark;
3695
6.75k
    { // expression 'as' expression &(',' | ')' | ':')
3696
6.75k
        if (p->error_indicator) {
3697
0
            p->level--;
3698
0
            return NULL;
3699
0
        }
3700
6.75k
        D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
3701
6.75k
        Token * _keyword;
3702
6.75k
        expr_ty a;
3703
6.75k
        expr_ty expression_var;
3704
6.75k
        if (
3705
6.75k
            (expression_var = expression_rule(p))  // expression
3706
5.82k
            &&
3707
5.82k
            (_keyword = _PyPegen_expect_token(p, 520))  // token='as'
3708
10
            &&
3709
10
            (a = expression_rule(p))  // expression
3710
5
            &&
3711
5
            _PyPegen_lookahead(1, _tmp_143_rule, p)
3712
6.75k
        )
3713
3
        {
3714
3
            D(fprintf(stderr, "%*c+ invalid_with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
3715
3
            _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
3716
3
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3717
3
                p->error_indicator = 1;
3718
3
                p->level--;
3719
3
                return NULL;
3720
3
            }
3721
0
            goto done;
3722
3
        }
3723
6.75k
        p->mark = _mark;
3724
6.75k
        D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
3725
6.75k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
3726
6.75k
    }
3727
6.75k
    _res = NULL;
3728
6.75k
  done:
3729
6.75k
    p->level--;
3730
6.75k
    return _res;
3731
6.75k
}
3732
3733
// invalid_for_if_clause: 'async'? 'for' (bitwise_or ((',' bitwise_or))* ','?) !'in'
3734
Py_LOCAL_SYMBOL void *
3735
invalid_for_if_clause_rule(Parser *p)
3736
55.3k
{
3737
55.3k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
3738
0
        _Pypegen_stack_overflow(p);
3739
0
    }
3740
55.3k
    if (p->error_indicator) {
3741
0
        p->level--;
3742
0
        return NULL;
3743
0
    }
3744
55.3k
    void * _res = NULL;
3745
55.3k
    int _mark = p->mark;
3746
55.3k
    { // 'async'? 'for' (bitwise_or ((',' bitwise_or))* ','?) !'in'
3747
55.3k
        if (p->error_indicator) {
3748
0
            p->level--;
3749
0
            return NULL;
3750
0
        }
3751
55.3k
        D(fprintf(stderr, "%*c> invalid_for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'for' (bitwise_or ((',' bitwise_or))* ','?) !'in'"));
3752
55.3k
        Token * _keyword;
3753
55.3k
        void *_opt_var;
3754
55.3k
        UNUSED(_opt_var); // Silence compiler warnings
3755
55.3k
        void *_tmp_144_var;
3756
55.3k
        if (
3757
55.3k
            (_opt_var = _PyPegen_expect_token(p, 513), !p->error_indicator)  // 'async'?
3758
55.3k
            &&
3759
55.3k
            (_keyword = _PyPegen_expect_token(p, 517))  // token='for'
3760
2.09k
            &&
3761
2.09k
            (_tmp_144_var = _tmp_144_rule(p))  // bitwise_or ((',' bitwise_or))* ','?
3762
309
            &&
3763
309
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 523)  // token='in'
3764
55.3k
        )
3765
20
        {
3766
20
            D(fprintf(stderr, "%*c+ invalid_for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'? 'for' (bitwise_or ((',' bitwise_or))* ','?) !'in'"));
3767
20
            _res = RAISE_SYNTAX_ERROR ( "'in' expected after for-loop variables" );
3768
20
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3769
20
                p->error_indicator = 1;
3770
20
                p->level--;
3771
20
                return NULL;
3772
20
            }
3773
0
            goto done;
3774
20
        }
3775
55.3k
        p->mark = _mark;
3776
55.3k
        D(fprintf(stderr, "%*c%s invalid_for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
3777
55.3k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'for' (bitwise_or ((',' bitwise_or))* ','?) !'in'"));
3778
55.3k
    }
3779
55.3k
    _res = NULL;
3780
55.3k
  done:
3781
55.3k
    p->level--;
3782
55.3k
    return _res;
3783
55.3k
}
3784
3785
// invalid_for_target: 'async'? 'for' star_expressions
3786
Py_LOCAL_SYMBOL void *
3787
invalid_for_target_rule(Parser *p)
3788
54.8k
{
3789
54.8k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
3790
0
        _Pypegen_stack_overflow(p);
3791
0
    }
3792
54.8k
    if (p->error_indicator) {
3793
0
        p->level--;
3794
0
        return NULL;
3795
0
    }
3796
54.8k
    void * _res = NULL;
3797
54.8k
    int _mark = p->mark;
3798
54.8k
    { // 'async'? 'for' star_expressions
3799
54.8k
        if (p->error_indicator) {
3800
0
            p->level--;
3801
0
            return NULL;
3802
0
        }
3803
54.8k
        D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'for' star_expressions"));
3804
54.8k
        Token * _keyword;
3805
54.8k
        void *_opt_var;
3806
54.8k
        UNUSED(_opt_var); // Silence compiler warnings
3807
54.8k
        expr_ty a;
3808
54.8k
        if (
3809
54.8k
            (_opt_var = _PyPegen_expect_token(p, 513), !p->error_indicator)  // 'async'?
3810
54.8k
            &&
3811
54.8k
            (_keyword = _PyPegen_expect_token(p, 517))  // token='for'
3812
1.53k
            &&
3813
1.53k
            (a = star_expressions_rule(p))  // star_expressions
3814
54.8k
        )
3815
1.07k
        {
3816
1.07k
            D(fprintf(stderr, "%*c+ invalid_for_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'? 'for' star_expressions"));
3817
1.07k
            _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
3818
1.07k
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3819
7
                p->error_indicator = 1;
3820
7
                p->level--;
3821
7
                return NULL;
3822
7
            }
3823
1.06k
            goto done;
3824
1.07k
        }
3825
53.7k
        p->mark = _mark;
3826
53.7k
        D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
3827
53.7k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'for' star_expressions"));
3828
53.7k
    }
3829
53.7k
    _res = NULL;
3830
54.8k
  done:
3831
54.8k
    p->level--;
3832
54.8k
    return _res;
3833
53.7k
}
3834
3835
// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
3836
Py_LOCAL_SYMBOL void *
3837
invalid_group_rule(Parser *p)
3838
5.05k
{
3839
5.05k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
3840
0
        _Pypegen_stack_overflow(p);
3841
0
    }
3842
5.05k
    if (p->error_indicator) {
3843
0
        p->level--;
3844
0
        return NULL;
3845
0
    }
3846
5.05k
    void * _res = NULL;
3847
5.05k
    int _mark = p->mark;
3848
5.05k
    { // '(' starred_expression ')'
3849
5.05k
        if (p->error_indicator) {
3850
0
            p->level--;
3851
0
            return NULL;
3852
0
        }
3853
5.05k
        D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
3854
5.05k
        Token * _literal;
3855
5.05k
        Token * _literal_1;
3856
5.05k
        expr_ty a;
3857
5.05k
        if (
3858
5.05k
            (_literal = _PyPegen_expect_token(p, 7))  // token='('
3859
5.05k
            &&
3860
5.05k
            (a = starred_expression_rule(p))  // starred_expression
3861
240
            &&
3862
240
            (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
3863
5.05k
        )
3864
2
        {
3865
2
            D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
3866
2
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
3867
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3868
2
                p->error_indicator = 1;
3869
2
                p->level--;
3870
2
                return NULL;
3871
2
            }
3872
0
            goto done;
3873
2
        }
3874
5.05k
        p->mark = _mark;
3875
5.05k
        D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
3876
5.05k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
3877
5.05k
    }
3878
0
    { // '(' '**' expression ')'
3879
5.05k
        if (p->error_indicator) {
3880
0
            p->level--;
3881
0
            return NULL;
3882
0
        }
3883
5.05k
        D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
3884
5.05k
        Token * _literal;
3885
5.05k
        Token * _literal_1;
3886
5.05k
        Token * a;
3887
5.05k
        expr_ty expression_var;
3888
5.05k
        if (
3889
5.05k
            (_literal = _PyPegen_expect_token(p, 7))  // token='('
3890
5.05k
            &&
3891
5.05k
            (a = _PyPegen_expect_token(p, 35))  // token='**'
3892
405
            &&
3893
405
            (expression_var = expression_rule(p))  // expression
3894
67
            &&
3895
67
            (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
3896
5.05k
        )
3897
1
        {
3898
1
            D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
3899
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
3900
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3901
1
                p->error_indicator = 1;
3902
1
                p->level--;
3903
1
                return NULL;
3904
1
            }
3905
0
            goto done;
3906
1
        }
3907
5.05k
        p->mark = _mark;
3908
5.05k
        D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
3909
5.05k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
3910
5.05k
    }
3911
5.05k
    _res = NULL;
3912
5.05k
  done:
3913
5.05k
    p->level--;
3914
5.05k
    return _res;
3915
5.05k
}
3916
3917
// invalid_import: 'import' ','.dotted_name+ 'from' dotted_name | 'import' NEWLINE
3918
Py_LOCAL_SYMBOL void *
3919
invalid_import_rule(Parser *p)
3920
3.50k
{
3921
3.50k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
3922
0
        _Pypegen_stack_overflow(p);
3923
0
    }
3924
3.50k
    if (p->error_indicator) {
3925
0
        p->level--;
3926
0
        return NULL;
3927
0
    }
3928
3.50k
    void * _res = NULL;
3929
3.50k
    int _mark = p->mark;
3930
3.50k
    { // 'import' ','.dotted_name+ 'from' dotted_name
3931
3.50k
        if (p->error_indicator) {
3932
0
            p->level--;
3933
0
            return NULL;
3934
0
        }
3935
3.50k
        D(fprintf(stderr, "%*c> invalid_import[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' ','.dotted_name+ 'from' dotted_name"));
3936
3.50k
        asdl_seq * _gather_146_var;
3937
3.50k
        Token * _keyword;
3938
3.50k
        Token * a;
3939
3.50k
        expr_ty dotted_name_var;
3940
3.50k
        if (
3941
3.50k
            (a = _PyPegen_expect_token(p, 500))  // token='import'
3942
868
            &&
3943
868
            (_gather_146_var = _gather_146_rule(p))  // ','.dotted_name+
3944
856
            &&
3945
856
            (_keyword = _PyPegen_expect_token(p, 501))  // token='from'
3946
2
            &&
3947
2
            (dotted_name_var = dotted_name_rule(p))  // dotted_name
3948
3.50k
        )
3949
1
        {
3950
1
            D(fprintf(stderr, "%*c+ invalid_import[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' ','.dotted_name+ 'from' dotted_name"));
3951
1
            _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "Did you mean to use 'from ... import ...' instead?" );
3952
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3953
1
                p->error_indicator = 1;
3954
1
                p->level--;
3955
1
                return NULL;
3956
1
            }
3957
0
            goto done;
3958
1
        }
3959
3.50k
        p->mark = _mark;
3960
3.50k
        D(fprintf(stderr, "%*c%s invalid_import[%d-%d]: %s failed!\n", p->level, ' ',
3961
3.50k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' ','.dotted_name+ 'from' dotted_name"));
3962
3.50k
    }
3963
0
    { // 'import' NEWLINE
3964
3.50k
        if (p->error_indicator) {
3965
5
            p->level--;
3966
5
            return NULL;
3967
5
        }
3968
3.50k
        D(fprintf(stderr, "%*c> invalid_import[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' NEWLINE"));
3969
3.50k
        Token * _keyword;
3970
3.50k
        Token * token;
3971
3.50k
        if (
3972
3.50k
            (_keyword = _PyPegen_expect_token(p, 500))  // token='import'
3973
862
            &&
3974
862
            (token = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
3975
3.50k
        )
3976
4
        {
3977
4
            D(fprintf(stderr, "%*c+ invalid_import[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' NEWLINE"));
3978
4
            _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( token , "Expected one or more names after 'import'" );
3979
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
3980
4
                p->error_indicator = 1;
3981
4
                p->level--;
3982
4
                return NULL;
3983
4
            }
3984
0
            goto done;
3985
4
        }
3986
3.49k
        p->mark = _mark;
3987
3.49k
        D(fprintf(stderr, "%*c%s invalid_import[%d-%d]: %s failed!\n", p->level, ' ',
3988
3.49k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' NEWLINE"));
3989
3.49k
    }
3990
3.49k
    _res = NULL;
3991
3.49k
  done:
3992
3.49k
    p->level--;
3993
3.49k
    return _res;
3994
3.49k
}
3995
3996
// invalid_dotted_as_name: dotted_name 'as' !(NAME (',' | ')' | ';' | NEWLINE)) expression
3997
Py_LOCAL_SYMBOL void *
3998
invalid_dotted_as_name_rule(Parser *p)
3999
2.54k
{
4000
2.54k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
4001
0
        _Pypegen_stack_overflow(p);
4002
0
    }
4003
2.54k
    if (p->error_indicator) {
4004
0
        p->level--;
4005
0
        return NULL;
4006
0
    }
4007
2.54k
    void * _res = NULL;
4008
2.54k
    int _mark = p->mark;
4009
2.54k
    { // dotted_name 'as' !(NAME (',' | ')' | ';' | NEWLINE)) expression
4010
2.54k
        if (p->error_indicator) {
4011
0
            p->level--;
4012
0
            return NULL;
4013
0
        }
4014
2.54k
        D(fprintf(stderr, "%*c> invalid_dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name 'as' !(NAME (',' | ')' | ';' | NEWLINE)) expression"));
4015
2.54k
        Token * _keyword;
4016
2.54k
        expr_ty a;
4017
2.54k
        expr_ty dotted_name_var;
4018
2.54k
        if (
4019
2.54k
            (dotted_name_var = dotted_name_rule(p))  // dotted_name
4020
2.50k
            &&
4021
2.50k
            (_keyword = _PyPegen_expect_token(p, 520))  // token='as'
4022
455
            &&
4023
455
            _PyPegen_lookahead(0, _tmp_147_rule, p)
4024
170
            &&
4025
170
            (a = expression_rule(p))  // expression
4026
2.54k
        )
4027
4
        {
4028
4
            D(fprintf(stderr, "%*c+ invalid_dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name 'as' !(NAME (',' | ')' | ';' | NEWLINE)) expression"));
4029
4
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use %s as import target" , _PyPegen_get_expr_name ( a ) );
4030
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4031
4
                p->error_indicator = 1;
4032
4
                p->level--;
4033
4
                return NULL;
4034
4
            }
4035
0
            goto done;
4036
4
        }
4037
2.53k
        p->mark = _mark;
4038
2.53k
        D(fprintf(stderr, "%*c%s invalid_dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
4039
2.53k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name 'as' !(NAME (',' | ')' | ';' | NEWLINE)) expression"));
4040
2.53k
    }
4041
2.53k
    _res = NULL;
4042
2.53k
  done:
4043
2.53k
    p->level--;
4044
2.53k
    return _res;
4045
2.53k
}
4046
4047
// invalid_import_from_as_name: NAME 'as' !(NAME (',' | ')' | ';' | NEWLINE)) expression
4048
Py_LOCAL_SYMBOL void *
4049
invalid_import_from_as_name_rule(Parser *p)
4050
3.79k
{
4051
3.79k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
4052
0
        _Pypegen_stack_overflow(p);
4053
0
    }
4054
3.79k
    if (p->error_indicator) {
4055
0
        p->level--;
4056
0
        return NULL;
4057
0
    }
4058
3.79k
    void * _res = NULL;
4059
3.79k
    int _mark = p->mark;
4060
3.79k
    { // NAME 'as' !(NAME (',' | ')' | ';' | NEWLINE)) expression
4061
3.79k
        if (p->error_indicator) {
4062
0
            p->level--;
4063
0
            return NULL;
4064
0
        }
4065
3.79k
        D(fprintf(stderr, "%*c> invalid_import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME 'as' !(NAME (',' | ')' | ';' | NEWLINE)) expression"));
4066
3.79k
        Token * _keyword;
4067
3.79k
        expr_ty a;
4068
3.79k
        expr_ty name_var;
4069
3.79k
        if (
4070
3.79k
            (name_var = _PyPegen_name_token(p))  // NAME
4071
2.78k
            &&
4072
2.78k
            (_keyword = _PyPegen_expect_token(p, 520))  // token='as'
4073
617
            &&
4074
617
            _PyPegen_lookahead(0, _tmp_147_rule, p)
4075
204
            &&
4076
204
            (a = expression_rule(p))  // expression
4077
3.79k
        )
4078
3
        {
4079
3
            D(fprintf(stderr, "%*c+ invalid_import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME 'as' !(NAME (',' | ')' | ';' | NEWLINE)) expression"));
4080
3
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use %s as import target" , _PyPegen_get_expr_name ( a ) );
4081
3
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4082
3
                p->error_indicator = 1;
4083
3
                p->level--;
4084
3
                return NULL;
4085
3
            }
4086
0
            goto done;
4087
3
        }
4088
3.79k
        p->mark = _mark;
4089
3.79k
        D(fprintf(stderr, "%*c%s invalid_import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
4090
3.79k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME 'as' !(NAME (',' | ')' | ';' | NEWLINE)) expression"));
4091
3.79k
    }
4092
3.79k
    _res = NULL;
4093
3.79k
  done:
4094
3.79k
    p->level--;
4095
3.79k
    return _res;
4096
3.79k
}
4097
4098
// invalid_import_from:
4099
//     | 'from' (('.' | '...'))* dotted_name "lazy" 'import' import_from_targets
4100
Py_LOCAL_SYMBOL void *
4101
invalid_import_from_rule(Parser *p)
4102
2.63k
{
4103
2.63k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
4104
0
        _Pypegen_stack_overflow(p);
4105
0
    }
4106
2.63k
    if (p->error_indicator) {
4107
0
        p->level--;
4108
0
        return NULL;
4109
0
    }
4110
2.63k
    void * _res = NULL;
4111
2.63k
    int _mark = p->mark;
4112
2.63k
    { // 'from' (('.' | '...'))* dotted_name "lazy" 'import' import_from_targets
4113
2.63k
        if (p->error_indicator) {
4114
0
            p->level--;
4115
0
            return NULL;
4116
0
        }
4117
2.63k
        D(fprintf(stderr, "%*c> invalid_import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name \"lazy\" 'import' import_from_targets"));
4118
2.63k
        Token * _keyword;
4119
2.63k
        Token * _keyword_1;
4120
2.63k
        asdl_seq * _loop0_148_var;
4121
2.63k
        expr_ty a;
4122
2.63k
        expr_ty dotted_name_var;
4123
2.63k
        asdl_alias_seq* import_from_targets_var;
4124
2.63k
        if (
4125
2.63k
            (_keyword = _PyPegen_expect_token(p, 501))  // token='from'
4126
2.34k
            &&
4127
2.34k
            (_loop0_148_var = _loop0_148_rule(p))  // (('.' | '...'))*
4128
2.34k
            &&
4129
2.34k
            (dotted_name_var = dotted_name_rule(p))  // dotted_name
4130
1.37k
            &&
4131
1.37k
            (a = _PyPegen_expect_soft_keyword(p, "lazy"))  // soft_keyword='"lazy"'
4132
5
            &&
4133
5
            (_keyword_1 = _PyPegen_expect_token(p, 500))  // token='import'
4134
3
            &&
4135
3
            (import_from_targets_var = import_from_targets_rule(p))  // import_from_targets
4136
2.63k
        )
4137
2
        {
4138
2
            D(fprintf(stderr, "%*c+ invalid_import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name \"lazy\" 'import' import_from_targets"));
4139
2
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "use 'lazy from ... ' instead of 'from ... lazy import'" );
4140
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4141
2
                p->error_indicator = 1;
4142
2
                p->level--;
4143
2
                return NULL;
4144
2
            }
4145
0
            goto done;
4146
2
        }
4147
2.63k
        p->mark = _mark;
4148
2.63k
        D(fprintf(stderr, "%*c%s invalid_import_from[%d-%d]: %s failed!\n", p->level, ' ',
4149
2.63k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name \"lazy\" 'import' import_from_targets"));
4150
2.63k
    }
4151
2.63k
    _res = NULL;
4152
2.63k
  done:
4153
2.63k
    p->level--;
4154
2.63k
    return _res;
4155
2.63k
}
4156
4157
// invalid_import_from_targets: import_from_as_names ',' NEWLINE | NEWLINE
4158
Py_LOCAL_SYMBOL void *
4159
invalid_import_from_targets_rule(Parser *p)
4160
148
{
4161
148
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
4162
0
        _Pypegen_stack_overflow(p);
4163
0
    }
4164
148
    if (p->error_indicator) {
4165
0
        p->level--;
4166
0
        return NULL;
4167
0
    }
4168
148
    void * _res = NULL;
4169
148
    int _mark = p->mark;
4170
148
    { // import_from_as_names ',' NEWLINE
4171
148
        if (p->error_indicator) {
4172
0
            p->level--;
4173
0
            return NULL;
4174
0
        }
4175
148
        D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
4176
148
        Token * _literal;
4177
148
        asdl_alias_seq* import_from_as_names_var;
4178
148
        Token * newline_var;
4179
148
        if (
4180
148
            (import_from_as_names_var = import_from_as_names_rule(p))  // import_from_as_names
4181
22
            &&
4182
22
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
4183
22
            &&
4184
22
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
4185
148
        )
4186
15
        {
4187
15
            D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
4188
15
            _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
4189
15
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4190
15
                p->error_indicator = 1;
4191
15
                p->level--;
4192
15
                return NULL;
4193
15
            }
4194
0
            goto done;
4195
15
        }
4196
133
        p->mark = _mark;
4197
133
        D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
4198
133
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ',' NEWLINE"));
4199
133
    }
4200
0
    { // NEWLINE
4201
133
        if (p->error_indicator) {
4202
0
            p->level--;
4203
0
            return NULL;
4204
0
        }
4205
133
        D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
4206
133
        Token * token;
4207
133
        if (
4208
133
            (token = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
4209
133
        )
4210
10
        {
4211
10
            D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
4212
10
            _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( token , "Expected one or more names after 'import'" );
4213
10
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4214
10
                p->error_indicator = 1;
4215
10
                p->level--;
4216
10
                return NULL;
4217
10
            }
4218
0
            goto done;
4219
10
        }
4220
123
        p->mark = _mark;
4221
123
        D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
4222
123
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
4223
123
    }
4224
123
    _res = NULL;
4225
123
  done:
4226
123
    p->level--;
4227
123
    return _res;
4228
123
}
4229
4230
// invalid_with_stmt:
4231
//     | 'async'? 'with' ','.(expression ['as' star_target])+ ',' ':'
4232
//     | 'async'? 'with' ','.(expression ['as' star_target])+ NEWLINE
4233
//     | 'async'? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE
4234
Py_LOCAL_SYMBOL void *
4235
invalid_with_stmt_rule(Parser *p)
4236
301
{
4237
301
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
4238
0
        _Pypegen_stack_overflow(p);
4239
0
    }
4240
301
    if (p->error_indicator) {
4241
0
        p->level--;
4242
0
        return NULL;
4243
0
    }
4244
301
    void * _res = NULL;
4245
301
    int _mark = p->mark;
4246
301
    { // 'async'? 'with' ','.(expression ['as' star_target])+ ',' ':'
4247
301
        if (p->error_indicator) {
4248
0
            p->level--;
4249
0
            return NULL;
4250
0
        }
4251
301
        D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'with' ','.(expression ['as' star_target])+ ',' ':'"));
4252
301
        asdl_seq * _gather_150_var;
4253
301
        Token * _keyword;
4254
301
        Token * _literal;
4255
301
        void *_opt_var;
4256
301
        UNUSED(_opt_var); // Silence compiler warnings
4257
301
        Token * trailing;
4258
301
        if (
4259
301
            (_opt_var = _PyPegen_expect_token(p, 513), !p->error_indicator)  // 'async'?
4260
301
            &&
4261
301
            (_keyword = _PyPegen_expect_token(p, 516))  // token='with'
4262
190
            &&
4263
190
            (_gather_150_var = _gather_150_rule(p))  // ','.(expression ['as' star_target])+
4264
116
            &&
4265
116
            (trailing = _PyPegen_expect_token(p, 12))  // token=','
4266
19
            &&
4267
19
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
4268
301
        )
4269
2
        {
4270
2
            D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'? 'with' ','.(expression ['as' star_target])+ ',' ':'"));
4271
2
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( trailing , "the last 'with' item has a trailing comma" );
4272
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4273
2
                p->error_indicator = 1;
4274
2
                p->level--;
4275
2
                return NULL;
4276
2
            }
4277
0
            goto done;
4278
2
        }
4279
299
        p->mark = _mark;
4280
299
        D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4281
299
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'with' ','.(expression ['as' star_target])+ ',' ':'"));
4282
299
    }
4283
0
    { // 'async'? 'with' ','.(expression ['as' star_target])+ NEWLINE
4284
299
        if (p->error_indicator) {
4285
0
            p->level--;
4286
0
            return NULL;
4287
0
        }
4288
299
        D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'with' ','.(expression ['as' star_target])+ NEWLINE"));
4289
299
        asdl_seq * _gather_150_var;
4290
299
        Token * _keyword;
4291
299
        void *_opt_var;
4292
299
        UNUSED(_opt_var); // Silence compiler warnings
4293
299
        Token * newline_var;
4294
299
        if (
4295
299
            (_opt_var = _PyPegen_expect_token(p, 513), !p->error_indicator)  // 'async'?
4296
299
            &&
4297
299
            (_keyword = _PyPegen_expect_token(p, 516))  // token='with'
4298
188
            &&
4299
188
            (_gather_150_var = _gather_150_rule(p))  // ','.(expression ['as' star_target])+
4300
114
            &&
4301
114
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
4302
299
        )
4303
39
        {
4304
39
            D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'? 'with' ','.(expression ['as' star_target])+ NEWLINE"));
4305
39
            _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
4306
39
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4307
39
                p->error_indicator = 1;
4308
39
                p->level--;
4309
39
                return NULL;
4310
39
            }
4311
0
            goto done;
4312
39
        }
4313
260
        p->mark = _mark;
4314
260
        D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4315
260
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'with' ','.(expression ['as' star_target])+ NEWLINE"));
4316
260
    }
4317
0
    { // 'async'? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE
4318
260
        if (p->error_indicator) {
4319
0
            p->level--;
4320
0
            return NULL;
4321
0
        }
4322
260
        D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE"));
4323
260
        asdl_seq * _gather_152_var;
4324
260
        Token * _keyword;
4325
260
        Token * _literal;
4326
260
        Token * _literal_1;
4327
260
        void *_opt_var;
4328
260
        UNUSED(_opt_var); // Silence compiler warnings
4329
260
        void *_opt_var_1;
4330
260
        UNUSED(_opt_var_1); // Silence compiler warnings
4331
260
        Token * newline_var;
4332
260
        if (
4333
260
            (_opt_var = _PyPegen_expect_token(p, 513), !p->error_indicator)  // 'async'?
4334
260
            &&
4335
260
            (_keyword = _PyPegen_expect_token(p, 516))  // token='with'
4336
149
            &&
4337
149
            (_literal = _PyPegen_expect_token(p, 7))  // token='('
4338
105
            &&
4339
105
            (_gather_152_var = _gather_152_rule(p))  // ','.(expressions ['as' star_target])+
4340
80
            &&
4341
80
            (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
4342
80
            &&
4343
80
            (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
4344
30
            &&
4345
30
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
4346
260
        )
4347
4
        {
4348
4
            D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE"));
4349
4
            _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
4350
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4351
4
                p->error_indicator = 1;
4352
4
                p->level--;
4353
4
                return NULL;
4354
4
            }
4355
0
            goto done;
4356
4
        }
4357
256
        p->mark = _mark;
4358
256
        D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4359
256
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE"));
4360
256
    }
4361
256
    _res = NULL;
4362
256
  done:
4363
256
    p->level--;
4364
256
    return _res;
4365
256
}
4366
4367
// invalid_with_stmt_indent:
4368
//     | 'async'? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
4369
//     | 'async'? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
4370
Py_LOCAL_SYMBOL void *
4371
invalid_with_stmt_indent_rule(Parser *p)
4372
2.30k
{
4373
2.30k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
4374
0
        _Pypegen_stack_overflow(p);
4375
0
    }
4376
2.30k
    if (p->error_indicator) {
4377
0
        p->level--;
4378
0
        return NULL;
4379
0
    }
4380
2.30k
    void * _res = NULL;
4381
2.30k
    int _mark = p->mark;
4382
2.30k
    { // 'async'? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
4383
2.30k
        if (p->error_indicator) {
4384
0
            p->level--;
4385
0
            return NULL;
4386
0
        }
4387
2.30k
        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"));
4388
2.30k
        asdl_seq * _gather_150_var;
4389
2.30k
        Token * _literal;
4390
2.30k
        void *_opt_var;
4391
2.30k
        UNUSED(_opt_var); // Silence compiler warnings
4392
2.30k
        Token * a;
4393
2.30k
        Token * newline_var;
4394
2.30k
        if (
4395
2.30k
            (_opt_var = _PyPegen_expect_token(p, 513), !p->error_indicator)  // 'async'?
4396
2.30k
            &&
4397
2.30k
            (a = _PyPegen_expect_token(p, 516))  // token='with'
4398
2.19k
            &&
4399
2.19k
            (_gather_150_var = _gather_150_rule(p))  // ','.(expression ['as' star_target])+
4400
1.95k
            &&
4401
1.95k
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
4402
1.86k
            &&
4403
1.86k
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
4404
84
            &&
4405
84
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
4406
2.30k
        )
4407
16
        {
4408
16
            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"));
4409
16
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
4410
16
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4411
16
                p->error_indicator = 1;
4412
16
                p->level--;
4413
16
                return NULL;
4414
16
            }
4415
0
            goto done;
4416
16
        }
4417
2.28k
        p->mark = _mark;
4418
2.28k
        D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
4419
2.28k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
4420
2.28k
    }
4421
0
    { // 'async'? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
4422
2.28k
        if (p->error_indicator) {
4423
14
            p->level--;
4424
14
            return NULL;
4425
14
        }
4426
2.27k
        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"));
4427
2.27k
        asdl_seq * _gather_152_var;
4428
2.27k
        Token * _literal;
4429
2.27k
        Token * _literal_1;
4430
2.27k
        Token * _literal_2;
4431
2.27k
        void *_opt_var;
4432
2.27k
        UNUSED(_opt_var); // Silence compiler warnings
4433
2.27k
        void *_opt_var_1;
4434
2.27k
        UNUSED(_opt_var_1); // Silence compiler warnings
4435
2.27k
        Token * a;
4436
2.27k
        Token * newline_var;
4437
2.27k
        if (
4438
2.27k
            (_opt_var = _PyPegen_expect_token(p, 513), !p->error_indicator)  // 'async'?
4439
2.27k
            &&
4440
2.27k
            (a = _PyPegen_expect_token(p, 516))  // token='with'
4441
2.16k
            &&
4442
2.16k
            (_literal = _PyPegen_expect_token(p, 7))  // token='('
4443
1.78k
            &&
4444
1.78k
            (_gather_152_var = _gather_152_rule(p))  // ','.(expressions ['as' star_target])+
4445
1.36k
            &&
4446
1.36k
            (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
4447
1.35k
            &&
4448
1.35k
            (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
4449
1.00k
            &&
4450
1.00k
            (_literal_2 = _PyPegen_expect_token(p, 11))  // token=':'
4451
597
            &&
4452
597
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
4453
40
            &&
4454
40
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
4455
2.27k
        )
4456
1
        {
4457
1
            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"));
4458
1
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
4459
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4460
1
                p->error_indicator = 1;
4461
1
                p->level--;
4462
1
                return NULL;
4463
1
            }
4464
0
            goto done;
4465
1
        }
4466
2.27k
        p->mark = _mark;
4467
2.27k
        D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
4468
2.27k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
4469
2.27k
    }
4470
2.27k
    _res = NULL;
4471
2.27k
  done:
4472
2.27k
    p->level--;
4473
2.27k
    return _res;
4474
2.27k
}
4475
4476
// invalid_try_stmt:
4477
//     | 'try' ':' NEWLINE !INDENT
4478
//     | 'try' ':' block !('except' | 'finally')
4479
//     | 'try' ':' block* except_block+ 'except' '*' expression ['as' NAME] ':'
4480
//     | 'try' ':' block* except_star_block+ 'except' [expression ['as' NAME]] ':'
4481
Py_LOCAL_SYMBOL void *
4482
invalid_try_stmt_rule(Parser *p)
4483
1.90k
{
4484
1.90k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
4485
0
        _Pypegen_stack_overflow(p);
4486
0
    }
4487
1.90k
    if (p->error_indicator) {
4488
0
        p->level--;
4489
0
        return NULL;
4490
0
    }
4491
1.90k
    void * _res = NULL;
4492
1.90k
    int _mark = p->mark;
4493
1.90k
    { // 'try' ':' NEWLINE !INDENT
4494
1.90k
        if (p->error_indicator) {
4495
0
            p->level--;
4496
0
            return NULL;
4497
0
        }
4498
1.90k
        D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
4499
1.90k
        Token * _literal;
4500
1.90k
        Token * a;
4501
1.90k
        Token * newline_var;
4502
1.90k
        if (
4503
1.90k
            (a = _PyPegen_expect_token(p, 518))  // token='try'
4504
1.90k
            &&
4505
1.90k
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
4506
1.90k
            &&
4507
1.90k
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
4508
191
            &&
4509
191
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
4510
1.90k
        )
4511
6
        {
4512
6
            D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
4513
6
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
4514
6
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4515
6
                p->error_indicator = 1;
4516
6
                p->level--;
4517
6
                return NULL;
4518
6
            }
4519
0
            goto done;
4520
6
        }
4521
1.90k
        p->mark = _mark;
4522
1.90k
        D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4523
1.90k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
4524
1.90k
    }
4525
0
    { // 'try' ':' block !('except' | 'finally')
4526
1.90k
        if (p->error_indicator) {
4527
1
            p->level--;
4528
1
            return NULL;
4529
1
        }
4530
1.90k
        D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
4531
1.90k
        Token * _keyword;
4532
1.90k
        Token * _literal;
4533
1.90k
        asdl_stmt_seq* block_var;
4534
1.90k
        if (
4535
1.90k
            (_keyword = _PyPegen_expect_token(p, 518))  // token='try'
4536
1.90k
            &&
4537
1.90k
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
4538
1.89k
            &&
4539
1.89k
            (block_var = block_rule(p))  // block
4540
1.76k
            &&
4541
1.76k
            _PyPegen_lookahead(0, _tmp_153_rule, p)
4542
1.90k
        )
4543
32
        {
4544
32
            D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
4545
32
            _res = RAISE_SYNTAX_ERROR ( "expected 'except' or 'finally' block" );
4546
32
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4547
32
                p->error_indicator = 1;
4548
32
                p->level--;
4549
32
                return NULL;
4550
32
            }
4551
0
            goto done;
4552
32
        }
4553
1.86k
        p->mark = _mark;
4554
1.86k
        D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4555
1.86k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
4556
1.86k
    }
4557
0
    { // 'try' ':' block* except_block+ 'except' '*' expression ['as' NAME] ':'
4558
1.86k
        if (p->error_indicator) {
4559
19
            p->level--;
4560
19
            return NULL;
4561
19
        }
4562
1.84k
        D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block* except_block+ 'except' '*' expression ['as' NAME] ':'"));
4563
1.84k
        Token * _keyword;
4564
1.84k
        Token * _literal;
4565
1.84k
        Token * _literal_1;
4566
1.84k
        asdl_seq * _loop0_154_var;
4567
1.84k
        asdl_seq * _loop1_155_var;
4568
1.84k
        void *_opt_var;
4569
1.84k
        UNUSED(_opt_var); // Silence compiler warnings
4570
1.84k
        Token * a;
4571
1.84k
        Token * b;
4572
1.84k
        expr_ty expression_var;
4573
1.84k
        if (
4574
1.84k
            (_keyword = _PyPegen_expect_token(p, 518))  // token='try'
4575
1.84k
            &&
4576
1.84k
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
4577
1.84k
            &&
4578
1.84k
            (_loop0_154_var = _loop0_154_rule(p))  // block*
4579
1.84k
            &&
4580
1.84k
            (_loop1_155_var = _loop1_155_rule(p))  // except_block+
4581
842
            &&
4582
842
            (a = _PyPegen_expect_token(p, 524))  // token='except'
4583
29
            &&
4584
29
            (b = _PyPegen_expect_token(p, 16))  // token='*'
4585
7
            &&
4586
7
            (expression_var = expression_rule(p))  // expression
4587
4
            &&
4588
4
            (_opt_var = _tmp_156_rule(p), !p->error_indicator)  // ['as' NAME]
4589
3
            &&
4590
3
            (_literal_1 = _PyPegen_expect_token(p, 11))  // token=':'
4591
1.84k
        )
4592
1
        {
4593
1
            D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block* except_block+ 'except' '*' expression ['as' NAME] ':'"));
4594
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot have both 'except' and 'except*' on the same 'try'" );
4595
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4596
1
                p->error_indicator = 1;
4597
1
                p->level--;
4598
1
                return NULL;
4599
1
            }
4600
0
            goto done;
4601
1
        }
4602
1.84k
        p->mark = _mark;
4603
1.84k
        D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4604
1.84k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block* except_block+ 'except' '*' expression ['as' NAME] ':'"));
4605
1.84k
    }
4606
0
    { // 'try' ':' block* except_star_block+ 'except' [expression ['as' NAME]] ':'
4607
1.84k
        if (p->error_indicator) {
4608
52
            p->level--;
4609
52
            return NULL;
4610
52
        }
4611
1.79k
        D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block* except_star_block+ 'except' [expression ['as' NAME]] ':'"));
4612
1.79k
        Token * _keyword;
4613
1.79k
        Token * _literal;
4614
1.79k
        Token * _literal_1;
4615
1.79k
        asdl_seq * _loop0_154_var;
4616
1.79k
        asdl_seq * _loop1_157_var;
4617
1.79k
        void *_opt_var;
4618
1.79k
        UNUSED(_opt_var); // Silence compiler warnings
4619
1.79k
        Token * a;
4620
1.79k
        if (
4621
1.79k
            (_keyword = _PyPegen_expect_token(p, 518))  // token='try'
4622
1.79k
            &&
4623
1.79k
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
4624
1.79k
            &&
4625
1.79k
            (_loop0_154_var = _loop0_154_rule(p))  // block*
4626
1.79k
            &&
4627
1.79k
            (_loop1_157_var = _loop1_157_rule(p))  // except_star_block+
4628
462
            &&
4629
462
            (a = _PyPegen_expect_token(p, 524))  // token='except'
4630
18
            &&
4631
18
            (_opt_var = _tmp_158_rule(p), !p->error_indicator)  // [expression ['as' NAME]]
4632
16
            &&
4633
16
            (_literal_1 = _PyPegen_expect_token(p, 11))  // token=':'
4634
1.79k
        )
4635
2
        {
4636
2
            D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block* except_star_block+ 'except' [expression ['as' NAME]] ':'"));
4637
2
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot have both 'except' and 'except*' on the same 'try'" );
4638
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4639
2
                p->error_indicator = 1;
4640
2
                p->level--;
4641
2
                return NULL;
4642
2
            }
4643
0
            goto done;
4644
2
        }
4645
1.79k
        p->mark = _mark;
4646
1.79k
        D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4647
1.79k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block* except_star_block+ 'except' [expression ['as' NAME]] ':'"));
4648
1.79k
    }
4649
1.79k
    _res = NULL;
4650
1.79k
  done:
4651
1.79k
    p->level--;
4652
1.79k
    return _res;
4653
1.79k
}
4654
4655
// invalid_except_stmt:
4656
//     | 'except' expression ',' expressions 'as' NAME ':'
4657
//     | 'except' expression ['as' NAME] NEWLINE
4658
//     | 'except' NEWLINE
4659
//     | 'except' expression 'as' expression ':' block
4660
Py_LOCAL_SYMBOL void *
4661
invalid_except_stmt_rule(Parser *p)
4662
3.17k
{
4663
3.17k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
4664
0
        _Pypegen_stack_overflow(p);
4665
0
    }
4666
3.17k
    if (p->error_indicator) {
4667
0
        p->level--;
4668
0
        return NULL;
4669
0
    }
4670
3.17k
    void * _res = NULL;
4671
3.17k
    int _mark = p->mark;
4672
3.17k
    { // 'except' expression ',' expressions 'as' NAME ':'
4673
3.17k
        if (p->error_indicator) {
4674
0
            p->level--;
4675
0
            return NULL;
4676
0
        }
4677
3.17k
        D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions 'as' NAME ':'"));
4678
3.17k
        Token * _keyword;
4679
3.17k
        Token * _keyword_1;
4680
3.17k
        Token * _literal;
4681
3.17k
        Token * _literal_1;
4682
3.17k
        expr_ty a;
4683
3.17k
        expr_ty expressions_var;
4684
3.17k
        expr_ty name_var;
4685
3.17k
        if (
4686
3.17k
            (_keyword = _PyPegen_expect_token(p, 524))  // token='except'
4687
1.18k
            &&
4688
1.18k
            (a = expression_rule(p))  // expression
4689
103
            &&
4690
103
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
4691
31
            &&
4692
31
            (expressions_var = expressions_rule(p))  // expressions
4693
21
            &&
4694
21
            (_keyword_1 = _PyPegen_expect_token(p, 520))  // token='as'
4695
7
            &&
4696
7
            (name_var = _PyPegen_name_token(p))  // NAME
4697
4
            &&
4698
4
            (_literal_1 = _PyPegen_expect_token(p, 11))  // token=':'
4699
3.17k
        )
4700
1
        {
4701
1
            D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions 'as' NAME ':'"));
4702
1
            _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized when using 'as'" );
4703
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4704
1
                p->error_indicator = 1;
4705
1
                p->level--;
4706
1
                return NULL;
4707
1
            }
4708
0
            goto done;
4709
1
        }
4710
3.17k
        p->mark = _mark;
4711
3.17k
        D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4712
3.17k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions 'as' NAME ':'"));
4713
3.17k
    }
4714
0
    { // 'except' expression ['as' NAME] NEWLINE
4715
3.17k
        if (p->error_indicator) {
4716
1
            p->level--;
4717
1
            return NULL;
4718
1
        }
4719
3.17k
        D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
4720
3.17k
        void *_opt_var;
4721
3.17k
        UNUSED(_opt_var); // Silence compiler warnings
4722
3.17k
        Token * a;
4723
3.17k
        expr_ty expression_var;
4724
3.17k
        Token * newline_var;
4725
3.17k
        if (
4726
3.17k
            (a = _PyPegen_expect_token(p, 524))  // token='except'
4727
1.18k
            &&
4728
1.18k
            (expression_var = expression_rule(p))  // expression
4729
101
            &&
4730
101
            (_opt_var = _tmp_156_rule(p), !p->error_indicator)  // ['as' NAME]
4731
101
            &&
4732
101
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
4733
3.17k
        )
4734
7
        {
4735
7
            D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
4736
7
            _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
4737
7
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4738
7
                p->error_indicator = 1;
4739
7
                p->level--;
4740
7
                return NULL;
4741
7
            }
4742
0
            goto done;
4743
7
        }
4744
3.16k
        p->mark = _mark;
4745
3.16k
        D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4746
3.16k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
4747
3.16k
    }
4748
0
    { // 'except' NEWLINE
4749
3.16k
        if (p->error_indicator) {
4750
0
            p->level--;
4751
0
            return NULL;
4752
0
        }
4753
3.16k
        D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
4754
3.16k
        Token * a;
4755
3.16k
        Token * newline_var;
4756
3.16k
        if (
4757
3.16k
            (a = _PyPegen_expect_token(p, 524))  // token='except'
4758
1.17k
            &&
4759
1.17k
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
4760
3.16k
        )
4761
7
        {
4762
7
            D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
4763
7
            _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
4764
7
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4765
7
                p->error_indicator = 1;
4766
7
                p->level--;
4767
7
                return NULL;
4768
7
            }
4769
0
            goto done;
4770
7
        }
4771
3.16k
        p->mark = _mark;
4772
3.16k
        D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4773
3.16k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
4774
3.16k
    }
4775
0
    { // 'except' expression 'as' expression ':' block
4776
3.16k
        if (p->error_indicator) {
4777
0
            p->level--;
4778
0
            return NULL;
4779
0
        }
4780
3.16k
        D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression 'as' expression ':' block"));
4781
3.16k
        Token * _keyword;
4782
3.16k
        Token * _keyword_1;
4783
3.16k
        Token * _literal;
4784
3.16k
        expr_ty a;
4785
3.16k
        asdl_stmt_seq* block_var;
4786
3.16k
        expr_ty expression_var;
4787
3.16k
        if (
4788
3.16k
            (_keyword = _PyPegen_expect_token(p, 524))  // token='except'
4789
1.16k
            &&
4790
1.16k
            (expression_var = expression_rule(p))  // expression
4791
94
            &&
4792
94
            (_keyword_1 = _PyPegen_expect_token(p, 520))  // token='as'
4793
18
            &&
4794
18
            (a = expression_rule(p))  // expression
4795
15
            &&
4796
15
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
4797
10
            &&
4798
10
            (block_var = block_rule(p))  // block
4799
3.16k
        )
4800
1
        {
4801
1
            D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression 'as' expression ':' block"));
4802
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use except statement with %s" , _PyPegen_get_expr_name ( a ) );
4803
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4804
1
                p->error_indicator = 1;
4805
1
                p->level--;
4806
1
                return NULL;
4807
1
            }
4808
0
            goto done;
4809
1
        }
4810
3.16k
        p->mark = _mark;
4811
3.16k
        D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4812
3.16k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression 'as' expression ':' block"));
4813
3.16k
    }
4814
3.16k
    _res = NULL;
4815
3.16k
  done:
4816
3.16k
    p->level--;
4817
3.16k
    return _res;
4818
3.16k
}
4819
4820
// invalid_except_star_stmt:
4821
//     | 'except' '*' expression ',' expressions 'as' NAME ':'
4822
//     | 'except' '*' expression ['as' NAME] NEWLINE
4823
//     | 'except' '*' (NEWLINE | ':')
4824
//     | 'except' '*' expression 'as' expression ':' block
4825
Py_LOCAL_SYMBOL void *
4826
invalid_except_star_stmt_rule(Parser *p)
4827
2.30k
{
4828
2.30k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
4829
0
        _Pypegen_stack_overflow(p);
4830
0
    }
4831
2.30k
    if (p->error_indicator) {
4832
0
        p->level--;
4833
0
        return NULL;
4834
0
    }
4835
2.30k
    void * _res = NULL;
4836
2.30k
    int _mark = p->mark;
4837
2.30k
    { // 'except' '*' expression ',' expressions 'as' NAME ':'
4838
2.30k
        if (p->error_indicator) {
4839
0
            p->level--;
4840
0
            return NULL;
4841
0
        }
4842
2.30k
        D(fprintf(stderr, "%*c> invalid_except_star_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ',' expressions 'as' NAME ':'"));
4843
2.30k
        Token * _keyword;
4844
2.30k
        Token * _keyword_1;
4845
2.30k
        Token * _literal;
4846
2.30k
        Token * _literal_1;
4847
2.30k
        Token * _literal_2;
4848
2.30k
        expr_ty a;
4849
2.30k
        expr_ty expressions_var;
4850
2.30k
        expr_ty name_var;
4851
2.30k
        if (
4852
2.30k
            (_keyword = _PyPegen_expect_token(p, 524))  // token='except'
4853
1.04k
            &&
4854
1.04k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
4855
102
            &&
4856
102
            (a = expression_rule(p))  // expression
4857
91
            &&
4858
91
            (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
4859
48
            &&
4860
48
            (expressions_var = expressions_rule(p))  // expressions
4861
35
            &&
4862
35
            (_keyword_1 = _PyPegen_expect_token(p, 520))  // token='as'
4863
7
            &&
4864
7
            (name_var = _PyPegen_name_token(p))  // NAME
4865
4
            &&
4866
4
            (_literal_2 = _PyPegen_expect_token(p, 11))  // token=':'
4867
2.30k
        )
4868
1
        {
4869
1
            D(fprintf(stderr, "%*c+ invalid_except_star_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ',' expressions 'as' NAME ':'"));
4870
1
            _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized when using 'as'" );
4871
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4872
1
                p->error_indicator = 1;
4873
1
                p->level--;
4874
1
                return NULL;
4875
1
            }
4876
0
            goto done;
4877
1
        }
4878
2.30k
        p->mark = _mark;
4879
2.30k
        D(fprintf(stderr, "%*c%s invalid_except_star_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4880
2.30k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expression ',' expressions 'as' NAME ':'"));
4881
2.30k
    }
4882
0
    { // 'except' '*' expression ['as' NAME] NEWLINE
4883
2.30k
        if (p->error_indicator) {
4884
1
            p->level--;
4885
1
            return NULL;
4886
1
        }
4887
2.30k
        D(fprintf(stderr, "%*c> invalid_except_star_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ['as' NAME] NEWLINE"));
4888
2.30k
        Token * _literal;
4889
2.30k
        void *_opt_var;
4890
2.30k
        UNUSED(_opt_var); // Silence compiler warnings
4891
2.30k
        Token * a;
4892
2.30k
        expr_ty expression_var;
4893
2.30k
        Token * newline_var;
4894
2.30k
        if (
4895
2.30k
            (a = _PyPegen_expect_token(p, 524))  // token='except'
4896
1.04k
            &&
4897
1.04k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
4898
100
            &&
4899
100
            (expression_var = expression_rule(p))  // expression
4900
89
            &&
4901
89
            (_opt_var = _tmp_156_rule(p), !p->error_indicator)  // ['as' NAME]
4902
89
            &&
4903
89
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
4904
2.30k
        )
4905
7
        {
4906
7
            D(fprintf(stderr, "%*c+ invalid_except_star_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ['as' NAME] NEWLINE"));
4907
7
            _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
4908
7
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4909
7
                p->error_indicator = 1;
4910
7
                p->level--;
4911
7
                return NULL;
4912
7
            }
4913
0
            goto done;
4914
7
        }
4915
2.29k
        p->mark = _mark;
4916
2.29k
        D(fprintf(stderr, "%*c%s invalid_except_star_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4917
2.29k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expression ['as' NAME] NEWLINE"));
4918
2.29k
    }
4919
0
    { // 'except' '*' (NEWLINE | ':')
4920
2.29k
        if (p->error_indicator) {
4921
0
            p->level--;
4922
0
            return NULL;
4923
0
        }
4924
2.29k
        D(fprintf(stderr, "%*c> invalid_except_star_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')"));
4925
2.29k
        Token * _literal;
4926
2.29k
        void *_tmp_159_var;
4927
2.29k
        Token * a;
4928
2.29k
        if (
4929
2.29k
            (a = _PyPegen_expect_token(p, 524))  // token='except'
4930
1.03k
            &&
4931
1.03k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
4932
93
            &&
4933
93
            (_tmp_159_var = _tmp_159_rule(p))  // NEWLINE | ':'
4934
2.29k
        )
4935
4
        {
4936
4
            D(fprintf(stderr, "%*c+ invalid_except_star_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')"));
4937
4
            _res = RAISE_SYNTAX_ERROR ( "expected one or more exception types" );
4938
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4939
4
                p->error_indicator = 1;
4940
4
                p->level--;
4941
4
                return NULL;
4942
4
            }
4943
0
            goto done;
4944
4
        }
4945
2.29k
        p->mark = _mark;
4946
2.29k
        D(fprintf(stderr, "%*c%s invalid_except_star_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4947
2.29k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' (NEWLINE | ':')"));
4948
2.29k
    }
4949
0
    { // 'except' '*' expression 'as' expression ':' block
4950
2.29k
        if (p->error_indicator) {
4951
0
            p->level--;
4952
0
            return NULL;
4953
0
        }
4954
2.29k
        D(fprintf(stderr, "%*c> invalid_except_star_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' expression 'as' expression ':' block"));
4955
2.29k
        Token * _keyword;
4956
2.29k
        Token * _keyword_1;
4957
2.29k
        Token * _literal;
4958
2.29k
        Token * _literal_1;
4959
2.29k
        expr_ty a;
4960
2.29k
        asdl_stmt_seq* block_var;
4961
2.29k
        expr_ty expression_var;
4962
2.29k
        if (
4963
2.29k
            (_keyword = _PyPegen_expect_token(p, 524))  // token='except'
4964
1.03k
            &&
4965
1.03k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
4966
89
            &&
4967
89
            (expression_var = expression_rule(p))  // expression
4968
82
            &&
4969
82
            (_keyword_1 = _PyPegen_expect_token(p, 520))  // token='as'
4970
18
            &&
4971
18
            (a = expression_rule(p))  // expression
4972
13
            &&
4973
13
            (_literal_1 = _PyPegen_expect_token(p, 11))  // token=':'
4974
10
            &&
4975
10
            (block_var = block_rule(p))  // block
4976
2.29k
        )
4977
1
        {
4978
1
            D(fprintf(stderr, "%*c+ invalid_except_star_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' expression 'as' expression ':' block"));
4979
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use except* statement with %s" , _PyPegen_get_expr_name ( a ) );
4980
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
4981
1
                p->error_indicator = 1;
4982
1
                p->level--;
4983
1
                return NULL;
4984
1
            }
4985
0
            goto done;
4986
1
        }
4987
2.29k
        p->mark = _mark;
4988
2.29k
        D(fprintf(stderr, "%*c%s invalid_except_star_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4989
2.29k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expression 'as' expression ':' block"));
4990
2.29k
    }
4991
2.29k
    _res = NULL;
4992
2.29k
  done:
4993
2.29k
    p->level--;
4994
2.29k
    return _res;
4995
2.29k
}
4996
4997
// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
4998
Py_LOCAL_SYMBOL void *
4999
invalid_finally_stmt_rule(Parser *p)
5000
2.96k
{
5001
2.96k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
5002
0
        _Pypegen_stack_overflow(p);
5003
0
    }
5004
2.96k
    if (p->error_indicator) {
5005
0
        p->level--;
5006
0
        return NULL;
5007
0
    }
5008
2.96k
    void * _res = NULL;
5009
2.96k
    int _mark = p->mark;
5010
2.96k
    { // 'finally' ':' NEWLINE !INDENT
5011
2.96k
        if (p->error_indicator) {
5012
0
            p->level--;
5013
0
            return NULL;
5014
0
        }
5015
2.96k
        D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
5016
2.96k
        Token * _literal;
5017
2.96k
        Token * a;
5018
2.96k
        Token * newline_var;
5019
2.96k
        if (
5020
2.96k
            (a = _PyPegen_expect_token(p, 525))  // token='finally'
5021
333
            &&
5022
333
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
5023
333
            &&
5024
333
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
5025
68
            &&
5026
68
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
5027
2.96k
        )
5028
2
        {
5029
2
            D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
5030
2
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
5031
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5032
2
                p->error_indicator = 1;
5033
2
                p->level--;
5034
2
                return NULL;
5035
2
            }
5036
0
            goto done;
5037
2
        }
5038
2.96k
        p->mark = _mark;
5039
2.96k
        D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5040
2.96k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
5041
2.96k
    }
5042
2.96k
    _res = NULL;
5043
2.96k
  done:
5044
2.96k
    p->level--;
5045
2.96k
    return _res;
5046
2.96k
}
5047
5048
// invalid_except_stmt_indent:
5049
//     | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
5050
//     | 'except' ':' NEWLINE !INDENT
5051
Py_LOCAL_SYMBOL void *
5052
invalid_except_stmt_indent_rule(Parser *p)
5053
6.44k
{
5054
6.44k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
5055
0
        _Pypegen_stack_overflow(p);
5056
0
    }
5057
6.44k
    if (p->error_indicator) {
5058
0
        p->level--;
5059
0
        return NULL;
5060
0
    }
5061
6.44k
    void * _res = NULL;
5062
6.44k
    int _mark = p->mark;
5063
6.44k
    { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
5064
6.44k
        if (p->error_indicator) {
5065
0
            p->level--;
5066
0
            return NULL;
5067
0
        }
5068
6.44k
        D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
5069
6.44k
        Token * _literal;
5070
6.44k
        void *_opt_var;
5071
6.44k
        UNUSED(_opt_var); // Silence compiler warnings
5072
6.44k
        Token * a;
5073
6.44k
        expr_ty expression_var;
5074
6.44k
        Token * newline_var;
5075
6.44k
        if (
5076
6.44k
            (a = _PyPegen_expect_token(p, 524))  // token='except'
5077
4.45k
            &&
5078
4.45k
            (expression_var = expression_rule(p))  // expression
5079
1.49k
            &&
5080
1.49k
            (_opt_var = _tmp_156_rule(p), !p->error_indicator)  // ['as' NAME]
5081
1.48k
            &&
5082
1.48k
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
5083
898
            &&
5084
898
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
5085
455
            &&
5086
455
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
5087
6.44k
        )
5088
1
        {
5089
1
            D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
5090
1
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
5091
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5092
1
                p->error_indicator = 1;
5093
1
                p->level--;
5094
1
                return NULL;
5095
1
            }
5096
0
            goto done;
5097
1
        }
5098
6.44k
        p->mark = _mark;
5099
6.44k
        D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
5100
6.44k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
5101
6.44k
    }
5102
0
    { // 'except' ':' NEWLINE !INDENT
5103
6.44k
        if (p->error_indicator) {
5104
3
            p->level--;
5105
3
            return NULL;
5106
3
        }
5107
6.44k
        D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
5108
6.44k
        Token * _literal;
5109
6.44k
        Token * a;
5110
6.44k
        Token * newline_var;
5111
6.44k
        if (
5112
6.44k
            (a = _PyPegen_expect_token(p, 524))  // token='except'
5113
4.45k
            &&
5114
4.45k
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
5115
1.91k
            &&
5116
1.91k
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
5117
211
            &&
5118
211
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
5119
6.44k
        )
5120
4
        {
5121
4
            D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
5122
4
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
5123
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5124
4
                p->error_indicator = 1;
5125
4
                p->level--;
5126
4
                return NULL;
5127
4
            }
5128
0
            goto done;
5129
4
        }
5130
6.44k
        p->mark = _mark;
5131
6.44k
        D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
5132
6.44k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
5133
6.44k
    }
5134
6.44k
    _res = NULL;
5135
6.44k
  done:
5136
6.44k
    p->level--;
5137
6.44k
    return _res;
5138
6.44k
}
5139
5140
// invalid_except_star_stmt_indent:
5141
//     | 'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT
5142
Py_LOCAL_SYMBOL void *
5143
invalid_except_star_stmt_indent_rule(Parser *p)
5144
4.76k
{
5145
4.76k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
5146
0
        _Pypegen_stack_overflow(p);
5147
0
    }
5148
4.76k
    if (p->error_indicator) {
5149
0
        p->level--;
5150
0
        return NULL;
5151
0
    }
5152
4.76k
    void * _res = NULL;
5153
4.76k
    int _mark = p->mark;
5154
4.76k
    { // 'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT
5155
4.76k
        if (p->error_indicator) {
5156
0
            p->level--;
5157
0
            return NULL;
5158
0
        }
5159
4.76k
        D(fprintf(stderr, "%*c> invalid_except_star_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT"));
5160
4.76k
        Token * _literal;
5161
4.76k
        Token * _literal_1;
5162
4.76k
        void *_opt_var;
5163
4.76k
        UNUSED(_opt_var); // Silence compiler warnings
5164
4.76k
        Token * a;
5165
4.76k
        expr_ty expression_var;
5166
4.76k
        Token * newline_var;
5167
4.76k
        if (
5168
4.76k
            (a = _PyPegen_expect_token(p, 524))  // token='except'
5169
3.50k
            &&
5170
3.50k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
5171
2.56k
            &&
5172
2.56k
            (expression_var = expression_rule(p))  // expression
5173
2.55k
            &&
5174
2.55k
            (_opt_var = _tmp_156_rule(p), !p->error_indicator)  // ['as' NAME]
5175
2.55k
            &&
5176
2.55k
            (_literal_1 = _PyPegen_expect_token(p, 11))  // token=':'
5177
2.37k
            &&
5178
2.37k
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
5179
142
            &&
5180
142
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
5181
4.76k
        )
5182
2
        {
5183
2
            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"));
5184
2
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except*' statement on line %d" , a -> lineno );
5185
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5186
2
                p->error_indicator = 1;
5187
2
                p->level--;
5188
2
                return NULL;
5189
2
            }
5190
0
            goto done;
5191
2
        }
5192
4.76k
        p->mark = _mark;
5193
4.76k
        D(fprintf(stderr, "%*c%s invalid_except_star_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
5194
4.76k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expression ['as' NAME] ':' NEWLINE !INDENT"));
5195
4.76k
    }
5196
4.76k
    _res = NULL;
5197
4.76k
  done:
5198
4.76k
    p->level--;
5199
4.76k
    return _res;
5200
4.76k
}
5201
5202
// invalid_match_stmt:
5203
//     | "match" subject_expr NEWLINE
5204
//     | "match" subject_expr ':' NEWLINE !INDENT
5205
//     | "case" patterns guard? ':' block
5206
Py_LOCAL_SYMBOL void *
5207
invalid_match_stmt_rule(Parser *p)
5208
80.3k
{
5209
80.3k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
5210
0
        _Pypegen_stack_overflow(p);
5211
0
    }
5212
80.3k
    if (p->error_indicator) {
5213
0
        p->level--;
5214
0
        return NULL;
5215
0
    }
5216
80.3k
    void * _res = NULL;
5217
80.3k
    int _mark = p->mark;
5218
80.3k
    { // "match" subject_expr NEWLINE
5219
80.3k
        if (p->error_indicator) {
5220
0
            p->level--;
5221
0
            return NULL;
5222
0
        }
5223
80.3k
        D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr NEWLINE"));
5224
80.3k
        expr_ty _keyword;
5225
80.3k
        Token * newline_var;
5226
80.3k
        expr_ty subject_expr_var;
5227
80.3k
        if (
5228
80.3k
            (_keyword = _PyPegen_expect_soft_keyword(p, "match"))  // soft_keyword='"match"'
5229
1.27k
            &&
5230
1.27k
            (subject_expr_var = subject_expr_rule(p))  // subject_expr
5231
947
            &&
5232
947
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
5233
80.3k
        )
5234
6
        {
5235
6
            D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr NEWLINE"));
5236
6
            _res = CHECK_VERSION ( void* , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
5237
6
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5238
6
                p->error_indicator = 1;
5239
6
                p->level--;
5240
6
                return NULL;
5241
6
            }
5242
0
            goto done;
5243
6
        }
5244
80.3k
        p->mark = _mark;
5245
80.3k
        D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5246
80.3k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr NEWLINE"));
5247
80.3k
    }
5248
0
    { // "match" subject_expr ':' NEWLINE !INDENT
5249
80.3k
        if (p->error_indicator) {
5250
0
            p->level--;
5251
0
            return NULL;
5252
0
        }
5253
80.3k
        D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
5254
80.3k
        Token * _literal;
5255
80.3k
        expr_ty a;
5256
80.3k
        Token * newline_var;
5257
80.3k
        expr_ty subject;
5258
80.3k
        if (
5259
80.3k
            (a = _PyPegen_expect_soft_keyword(p, "match"))  // soft_keyword='"match"'
5260
1.27k
            &&
5261
1.27k
            (subject = subject_expr_rule(p))  // subject_expr
5262
941
            &&
5263
941
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
5264
607
            &&
5265
607
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
5266
346
            &&
5267
346
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
5268
80.3k
        )
5269
3
        {
5270
3
            D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
5271
3
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
5272
3
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5273
3
                p->error_indicator = 1;
5274
3
                p->level--;
5275
3
                return NULL;
5276
3
            }
5277
0
            goto done;
5278
3
        }
5279
80.3k
        p->mark = _mark;
5280
80.3k
        D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5281
80.3k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
5282
80.3k
    }
5283
0
    { // "case" patterns guard? ':' block
5284
80.3k
        if (p->error_indicator) {
5285
0
            p->level--;
5286
0
            return NULL;
5287
0
        }
5288
80.3k
        D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5289
80.3k
        void *_opt_var;
5290
80.3k
        UNUSED(_opt_var); // Silence compiler warnings
5291
80.3k
        expr_ty a;
5292
80.3k
        Token * b;
5293
80.3k
        asdl_stmt_seq* block_var;
5294
80.3k
        pattern_ty patterns_var;
5295
80.3k
        if (
5296
80.3k
            (a = _PyPegen_expect_soft_keyword(p, "case"))  // soft_keyword='"case"'
5297
1.35k
            &&
5298
1.35k
            (patterns_var = patterns_rule(p))  // patterns
5299
188
            &&
5300
188
            (_opt_var = guard_rule(p), !p->error_indicator)  // guard?
5301
187
            &&
5302
187
            (b = _PyPegen_expect_token(p, 11))  // token=':'
5303
29
            &&
5304
29
            (block_var = block_rule(p))  // block
5305
80.3k
        )
5306
2
        {
5307
2
            D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5308
2
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "case statement must be inside match statement" );
5309
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5310
2
                p->error_indicator = 1;
5311
2
                p->level--;
5312
2
                return NULL;
5313
2
            }
5314
0
            goto done;
5315
2
        }
5316
80.3k
        p->mark = _mark;
5317
80.3k
        D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5318
80.3k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5319
80.3k
    }
5320
80.3k
    _res = NULL;
5321
80.3k
  done:
5322
80.3k
    p->level--;
5323
80.3k
    return _res;
5324
80.3k
}
5325
5326
// invalid_case_block:
5327
//     | "case" patterns guard? NEWLINE
5328
//     | "case" patterns guard? ':' NEWLINE !INDENT
5329
Py_LOCAL_SYMBOL void *
5330
invalid_case_block_rule(Parser *p)
5331
1.75k
{
5332
1.75k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
5333
0
        _Pypegen_stack_overflow(p);
5334
0
    }
5335
1.75k
    if (p->error_indicator) {
5336
0
        p->level--;
5337
0
        return NULL;
5338
0
    }
5339
1.75k
    void * _res = NULL;
5340
1.75k
    int _mark = p->mark;
5341
1.75k
    { // "case" patterns guard? NEWLINE
5342
1.75k
        if (p->error_indicator) {
5343
0
            p->level--;
5344
0
            return NULL;
5345
0
        }
5346
1.75k
        D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? NEWLINE"));
5347
1.75k
        expr_ty _keyword;
5348
1.75k
        void *_opt_var;
5349
1.75k
        UNUSED(_opt_var); // Silence compiler warnings
5350
1.75k
        Token * newline_var;
5351
1.75k
        pattern_ty patterns_var;
5352
1.75k
        if (
5353
1.75k
            (_keyword = _PyPegen_expect_soft_keyword(p, "case"))  // soft_keyword='"case"'
5354
1.49k
            &&
5355
1.49k
            (patterns_var = patterns_rule(p))  // patterns
5356
1.26k
            &&
5357
1.26k
            (_opt_var = guard_rule(p), !p->error_indicator)  // guard?
5358
1.26k
            &&
5359
1.26k
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
5360
1.75k
        )
5361
56
        {
5362
56
            D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? NEWLINE"));
5363
56
            _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
5364
56
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5365
56
                p->error_indicator = 1;
5366
56
                p->level--;
5367
56
                return NULL;
5368
56
            }
5369
0
            goto done;
5370
56
        }
5371
1.69k
        p->mark = _mark;
5372
1.69k
        D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
5373
1.69k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? NEWLINE"));
5374
1.69k
    }
5375
0
    { // "case" patterns guard? ':' NEWLINE !INDENT
5376
1.69k
        if (p->error_indicator) {
5377
34
            p->level--;
5378
34
            return NULL;
5379
34
        }
5380
1.66k
        D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
5381
1.66k
        Token * _literal;
5382
1.66k
        void *_opt_var;
5383
1.66k
        UNUSED(_opt_var); // Silence compiler warnings
5384
1.66k
        expr_ty a;
5385
1.66k
        Token * newline_var;
5386
1.66k
        pattern_ty patterns_var;
5387
1.66k
        if (
5388
1.66k
            (a = _PyPegen_expect_soft_keyword(p, "case"))  // soft_keyword='"case"'
5389
1.40k
            &&
5390
1.40k
            (patterns_var = patterns_rule(p))  // patterns
5391
1.20k
            &&
5392
1.20k
            (_opt_var = guard_rule(p), !p->error_indicator)  // guard?
5393
1.20k
            &&
5394
1.20k
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
5395
1.10k
            &&
5396
1.10k
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
5397
49
            &&
5398
49
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
5399
1.66k
        )
5400
10
        {
5401
10
            D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
5402
10
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
5403
10
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5404
10
                p->error_indicator = 1;
5405
10
                p->level--;
5406
10
                return NULL;
5407
10
            }
5408
0
            goto done;
5409
10
        }
5410
1.65k
        p->mark = _mark;
5411
1.65k
        D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
5412
1.65k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
5413
1.65k
    }
5414
1.65k
    _res = NULL;
5415
1.65k
  done:
5416
1.65k
    p->level--;
5417
1.65k
    return _res;
5418
1.65k
}
5419
5420
// invalid_as_pattern: or_pattern 'as' "_" | or_pattern 'as' expression
5421
Py_LOCAL_SYMBOL void *
5422
invalid_as_pattern_rule(Parser *p)
5423
46.8k
{
5424
46.8k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
5425
0
        _Pypegen_stack_overflow(p);
5426
0
    }
5427
46.8k
    if (p->error_indicator) {
5428
0
        p->level--;
5429
0
        return NULL;
5430
0
    }
5431
46.8k
    void * _res = NULL;
5432
46.8k
    int _mark = p->mark;
5433
46.8k
    { // or_pattern 'as' "_"
5434
46.8k
        if (p->error_indicator) {
5435
0
            p->level--;
5436
0
            return NULL;
5437
0
        }
5438
46.8k
        D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
5439
46.8k
        Token * _keyword;
5440
46.8k
        expr_ty a;
5441
46.8k
        pattern_ty or_pattern_var;
5442
46.8k
        if (
5443
46.8k
            (or_pattern_var = or_pattern_rule(p))  // or_pattern
5444
26.1k
            &&
5445
26.1k
            (_keyword = _PyPegen_expect_token(p, 520))  // token='as'
5446
18
            &&
5447
18
            (a = _PyPegen_expect_soft_keyword(p, "_"))  // soft_keyword='"_"'
5448
46.8k
        )
5449
1
        {
5450
1
            D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
5451
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use '_' as a target" );
5452
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5453
1
                p->error_indicator = 1;
5454
1
                p->level--;
5455
1
                return NULL;
5456
1
            }
5457
0
            goto done;
5458
1
        }
5459
46.8k
        p->mark = _mark;
5460
46.8k
        D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5461
46.8k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' \"_\""));
5462
46.8k
    }
5463
0
    { // or_pattern 'as' expression
5464
46.8k
        if (p->error_indicator) {
5465
0
            p->level--;
5466
0
            return NULL;
5467
0
        }
5468
46.8k
        D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' expression"));
5469
46.8k
        Token * _keyword;
5470
46.8k
        expr_ty a;
5471
46.8k
        pattern_ty or_pattern_var;
5472
46.8k
        if (
5473
46.8k
            (or_pattern_var = or_pattern_rule(p))  // or_pattern
5474
26.1k
            &&
5475
26.1k
            (_keyword = _PyPegen_expect_token(p, 520))  // token='as'
5476
17
            &&
5477
17
            (a = expression_rule(p))  // expression
5478
46.8k
        )
5479
1
        {
5480
1
            D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' expression"));
5481
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use %s as pattern target" , _PyPegen_get_expr_name ( a ) );
5482
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5483
1
                p->error_indicator = 1;
5484
1
                p->level--;
5485
1
                return NULL;
5486
1
            }
5487
0
            goto done;
5488
1
        }
5489
46.8k
        p->mark = _mark;
5490
46.8k
        D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5491
46.8k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' expression"));
5492
46.8k
    }
5493
46.8k
    _res = NULL;
5494
46.8k
  done:
5495
46.8k
    p->level--;
5496
46.8k
    return _res;
5497
46.8k
}
5498
5499
// invalid_class_pattern: name_or_attr '(' invalid_class_argument_pattern
5500
Py_LOCAL_SYMBOL void *
5501
invalid_class_pattern_rule(Parser *p)
5502
9.90k
{
5503
9.90k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
5504
0
        _Pypegen_stack_overflow(p);
5505
0
    }
5506
9.90k
    if (p->error_indicator) {
5507
0
        p->level--;
5508
0
        return NULL;
5509
0
    }
5510
9.90k
    void * _res = NULL;
5511
9.90k
    int _mark = p->mark;
5512
9.90k
    { // name_or_attr '(' invalid_class_argument_pattern
5513
9.90k
        if (p->error_indicator) {
5514
0
            p->level--;
5515
0
            return NULL;
5516
0
        }
5517
9.90k
        D(fprintf(stderr, "%*c> invalid_class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
5518
9.90k
        Token * _literal;
5519
9.90k
        asdl_pattern_seq* a;
5520
9.90k
        expr_ty name_or_attr_var;
5521
9.90k
        if (
5522
9.90k
            (name_or_attr_var = name_or_attr_rule(p))  // name_or_attr
5523
4.29k
            &&
5524
4.29k
            (_literal = _PyPegen_expect_token(p, 7))  // token='('
5525
2.85k
            &&
5526
2.85k
            (a = invalid_class_argument_pattern_rule(p))  // invalid_class_argument_pattern
5527
9.90k
        )
5528
4
        {
5529
4
            D(fprintf(stderr, "%*c+ invalid_class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
5530
4
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( PyPegen_first_item ( a , pattern_ty ) , PyPegen_last_item ( a , pattern_ty ) , "positional patterns follow keyword patterns" );
5531
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5532
4
                p->error_indicator = 1;
5533
4
                p->level--;
5534
4
                return NULL;
5535
4
            }
5536
0
            goto done;
5537
4
        }
5538
9.90k
        p->mark = _mark;
5539
9.90k
        D(fprintf(stderr, "%*c%s invalid_class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5540
9.90k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
5541
9.90k
    }
5542
9.90k
    _res = NULL;
5543
9.90k
  done:
5544
9.90k
    p->level--;
5545
9.90k
    return _res;
5546
9.90k
}
5547
5548
// invalid_mapping_pattern:
5549
//     | '{' [(items_pattern ',')] double_star_pattern ',' items_pattern ','? '}'
5550
Py_LOCAL_SYMBOL void *
5551
invalid_mapping_pattern_rule(Parser *p)
5552
11.6k
{
5553
11.6k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
5554
0
        _Pypegen_stack_overflow(p);
5555
0
    }
5556
11.6k
    if (p->error_indicator) {
5557
0
        p->level--;
5558
0
        return NULL;
5559
0
    }
5560
11.6k
    void * _res = NULL;
5561
11.6k
    int _mark = p->mark;
5562
11.6k
    { // '{' [(items_pattern ',')] double_star_pattern ',' items_pattern ','? '}'
5563
11.6k
        if (p->error_indicator) {
5564
0
            p->level--;
5565
0
            return NULL;
5566
0
        }
5567
11.6k
        D(fprintf(stderr, "%*c> invalid_mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' [(items_pattern ',')] double_star_pattern ',' items_pattern ','? '}'"));
5568
11.6k
        Token * _literal;
5569
11.6k
        Token * _literal_1;
5570
11.6k
        Token * _literal_2;
5571
11.6k
        void *_opt_var;
5572
11.6k
        UNUSED(_opt_var); // Silence compiler warnings
5573
11.6k
        void *_opt_var_1;
5574
11.6k
        UNUSED(_opt_var_1); // Silence compiler warnings
5575
11.6k
        asdl_seq* items_pattern_var;
5576
11.6k
        expr_ty rest;
5577
11.6k
        if (
5578
11.6k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
5579
2.31k
            &&
5580
2.31k
            (_opt_var = _tmp_160_rule(p), !p->error_indicator)  // [(items_pattern ',')]
5581
2.31k
            &&
5582
2.31k
            (rest = double_star_pattern_rule(p))  // double_star_pattern
5583
741
            &&
5584
741
            (_literal_1 = _PyPegen_expect_token(p, 12))  // token=','
5585
737
            &&
5586
737
            (items_pattern_var = items_pattern_rule(p))  // items_pattern
5587
643
            &&
5588
643
            (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
5589
256
            &&
5590
256
            (_literal_2 = _PyPegen_expect_token(p, 26))  // token='}'
5591
11.6k
        )
5592
1
        {
5593
1
            D(fprintf(stderr, "%*c+ invalid_mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' [(items_pattern ',')] double_star_pattern ',' items_pattern ','? '}'"));
5594
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( rest , "double star pattern must be the last (right-most) subpattern in the mapping pattern" );
5595
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5596
1
                p->error_indicator = 1;
5597
1
                p->level--;
5598
1
                return NULL;
5599
1
            }
5600
0
            goto done;
5601
1
        }
5602
11.6k
        p->mark = _mark;
5603
11.6k
        D(fprintf(stderr, "%*c%s invalid_mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5604
11.6k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' [(items_pattern ',')] double_star_pattern ',' items_pattern ','? '}'"));
5605
11.6k
    }
5606
11.6k
    _res = NULL;
5607
11.6k
  done:
5608
11.6k
    p->level--;
5609
11.6k
    return _res;
5610
11.6k
}
5611
5612
// invalid_class_argument_pattern:
5613
//     | [positional_patterns ','] keyword_patterns ',' positional_patterns
5614
static asdl_pattern_seq*
5615
invalid_class_argument_pattern_rule(Parser *p)
5616
2.85k
{
5617
2.85k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
5618
0
        _Pypegen_stack_overflow(p);
5619
0
    }
5620
2.85k
    if (p->error_indicator) {
5621
0
        p->level--;
5622
0
        return NULL;
5623
0
    }
5624
2.85k
    asdl_pattern_seq* _res = NULL;
5625
2.85k
    int _mark = p->mark;
5626
2.85k
    { // [positional_patterns ','] keyword_patterns ',' positional_patterns
5627
2.85k
        if (p->error_indicator) {
5628
0
            p->level--;
5629
0
            return NULL;
5630
0
        }
5631
2.85k
        D(fprintf(stderr, "%*c> invalid_class_argument_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
5632
2.85k
        Token * _literal;
5633
2.85k
        void *_opt_var;
5634
2.85k
        UNUSED(_opt_var); // Silence compiler warnings
5635
2.85k
        asdl_pattern_seq* a;
5636
2.85k
        asdl_seq* keyword_patterns_var;
5637
2.85k
        if (
5638
2.85k
            (_opt_var = _tmp_161_rule(p), !p->error_indicator)  // [positional_patterns ',']
5639
2.85k
            &&
5640
2.85k
            (keyword_patterns_var = keyword_patterns_rule(p))  // keyword_patterns
5641
696
            &&
5642
696
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
5643
338
            &&
5644
338
            (a = positional_patterns_rule(p))  // positional_patterns
5645
2.85k
        )
5646
4
        {
5647
4
            D(fprintf(stderr, "%*c+ invalid_class_argument_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
5648
4
            _res = a;
5649
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5650
0
                p->error_indicator = 1;
5651
0
                p->level--;
5652
0
                return NULL;
5653
0
            }
5654
4
            goto done;
5655
4
        }
5656
2.85k
        p->mark = _mark;
5657
2.85k
        D(fprintf(stderr, "%*c%s invalid_class_argument_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5658
2.85k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
5659
2.85k
    }
5660
2.85k
    _res = NULL;
5661
2.85k
  done:
5662
2.85k
    p->level--;
5663
2.85k
    return _res;
5664
2.85k
}
5665
5666
// invalid_if_stmt:
5667
//     | 'if' named_expression NEWLINE
5668
//     | 'if' named_expression ':' NEWLINE !INDENT
5669
Py_LOCAL_SYMBOL void *
5670
invalid_if_stmt_rule(Parser *p)
5671
1.02k
{
5672
1.02k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
5673
0
        _Pypegen_stack_overflow(p);
5674
0
    }
5675
1.02k
    if (p->error_indicator) {
5676
0
        p->level--;
5677
0
        return NULL;
5678
0
    }
5679
1.02k
    void * _res = NULL;
5680
1.02k
    int _mark = p->mark;
5681
1.02k
    { // 'if' named_expression NEWLINE
5682
1.02k
        if (p->error_indicator) {
5683
0
            p->level--;
5684
0
            return NULL;
5685
0
        }
5686
1.02k
        D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
5687
1.02k
        Token * _keyword;
5688
1.02k
        expr_ty named_expression_var;
5689
1.02k
        Token * newline_var;
5690
1.02k
        if (
5691
1.02k
            (_keyword = _PyPegen_expect_token(p, 514))  // token='if'
5692
1.02k
            &&
5693
1.02k
            (named_expression_var = named_expression_rule(p))  // named_expression
5694
1.01k
            &&
5695
1.01k
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
5696
1.02k
        )
5697
4
        {
5698
4
            D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
5699
4
            _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
5700
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5701
4
                p->error_indicator = 1;
5702
4
                p->level--;
5703
4
                return NULL;
5704
4
            }
5705
0
            goto done;
5706
4
        }
5707
1.02k
        p->mark = _mark;
5708
1.02k
        D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5709
1.02k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
5710
1.02k
    }
5711
0
    { // 'if' named_expression ':' NEWLINE !INDENT
5712
1.02k
        if (p->error_indicator) {
5713
1
            p->level--;
5714
1
            return NULL;
5715
1
        }
5716
1.02k
        D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
5717
1.02k
        Token * _literal;
5718
1.02k
        Token * a;
5719
1.02k
        expr_ty a_1;
5720
1.02k
        Token * newline_var;
5721
1.02k
        if (
5722
1.02k
            (a = _PyPegen_expect_token(p, 514))  // token='if'
5723
1.02k
            &&
5724
1.02k
            (a_1 = named_expression_rule(p))  // named_expression
5725
1.00k
            &&
5726
1.00k
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
5727
1.00k
            &&
5728
1.00k
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
5729
349
            &&
5730
349
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
5731
1.02k
        )
5732
6
        {
5733
6
            D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
5734
6
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
5735
6
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5736
6
                p->error_indicator = 1;
5737
6
                p->level--;
5738
6
                return NULL;
5739
6
            }
5740
0
            goto done;
5741
6
        }
5742
1.01k
        p->mark = _mark;
5743
1.01k
        D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5744
1.01k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
5745
1.01k
    }
5746
1.01k
    _res = NULL;
5747
1.01k
  done:
5748
1.01k
    p->level--;
5749
1.01k
    return _res;
5750
1.01k
}
5751
5752
// invalid_elif_stmt:
5753
//     | 'elif' named_expression NEWLINE
5754
//     | 'elif' named_expression ':' NEWLINE !INDENT
5755
Py_LOCAL_SYMBOL void *
5756
invalid_elif_stmt_rule(Parser *p)
5757
1.32k
{
5758
1.32k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
5759
0
        _Pypegen_stack_overflow(p);
5760
0
    }
5761
1.32k
    if (p->error_indicator) {
5762
0
        p->level--;
5763
0
        return NULL;
5764
0
    }
5765
1.32k
    void * _res = NULL;
5766
1.32k
    int _mark = p->mark;
5767
1.32k
    { // 'elif' named_expression NEWLINE
5768
1.32k
        if (p->error_indicator) {
5769
0
            p->level--;
5770
0
            return NULL;
5771
0
        }
5772
1.32k
        D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
5773
1.32k
        Token * _keyword;
5774
1.32k
        expr_ty named_expression_var;
5775
1.32k
        Token * newline_var;
5776
1.32k
        if (
5777
1.32k
            (_keyword = _PyPegen_expect_token(p, 521))  // token='elif'
5778
383
            &&
5779
383
            (named_expression_var = named_expression_rule(p))  // named_expression
5780
380
            &&
5781
380
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
5782
1.32k
        )
5783
3
        {
5784
3
            D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
5785
3
            _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
5786
3
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5787
3
                p->error_indicator = 1;
5788
3
                p->level--;
5789
3
                return NULL;
5790
3
            }
5791
0
            goto done;
5792
3
        }
5793
1.32k
        p->mark = _mark;
5794
1.32k
        D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5795
1.32k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
5796
1.32k
    }
5797
0
    { // 'elif' named_expression ':' NEWLINE !INDENT
5798
1.32k
        if (p->error_indicator) {
5799
2
            p->level--;
5800
2
            return NULL;
5801
2
        }
5802
1.32k
        D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
5803
1.32k
        Token * _literal;
5804
1.32k
        Token * a;
5805
1.32k
        expr_ty named_expression_var;
5806
1.32k
        Token * newline_var;
5807
1.32k
        if (
5808
1.32k
            (a = _PyPegen_expect_token(p, 521))  // token='elif'
5809
378
            &&
5810
378
            (named_expression_var = named_expression_rule(p))  // named_expression
5811
377
            &&
5812
377
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
5813
375
            &&
5814
375
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
5815
52
            &&
5816
52
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
5817
1.32k
        )
5818
5
        {
5819
5
            D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
5820
5
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
5821
5
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5822
5
                p->error_indicator = 1;
5823
5
                p->level--;
5824
5
                return NULL;
5825
5
            }
5826
0
            goto done;
5827
5
        }
5828
1.31k
        p->mark = _mark;
5829
1.31k
        D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5830
1.31k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
5831
1.31k
    }
5832
1.31k
    _res = NULL;
5833
1.31k
  done:
5834
1.31k
    p->level--;
5835
1.31k
    return _res;
5836
1.31k
}
5837
5838
// invalid_else_stmt: 'else' ':' NEWLINE !INDENT | 'else' ':' block 'elif'
5839
Py_LOCAL_SYMBOL void *
5840
invalid_else_stmt_rule(Parser *p)
5841
2.88k
{
5842
2.88k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
5843
0
        _Pypegen_stack_overflow(p);
5844
0
    }
5845
2.88k
    if (p->error_indicator) {
5846
0
        p->level--;
5847
0
        return NULL;
5848
0
    }
5849
2.88k
    void * _res = NULL;
5850
2.88k
    int _mark = p->mark;
5851
2.88k
    { // 'else' ':' NEWLINE !INDENT
5852
2.88k
        if (p->error_indicator) {
5853
0
            p->level--;
5854
0
            return NULL;
5855
0
        }
5856
2.88k
        D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
5857
2.88k
        Token * _literal;
5858
2.88k
        Token * a;
5859
2.88k
        Token * newline_var;
5860
2.88k
        if (
5861
2.88k
            (a = _PyPegen_expect_token(p, 522))  // token='else'
5862
115
            &&
5863
115
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
5864
115
            &&
5865
115
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
5866
45
            &&
5867
45
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
5868
2.88k
        )
5869
3
        {
5870
3
            D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
5871
3
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
5872
3
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5873
3
                p->error_indicator = 1;
5874
3
                p->level--;
5875
3
                return NULL;
5876
3
            }
5877
0
            goto done;
5878
3
        }
5879
2.87k
        p->mark = _mark;
5880
2.87k
        D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5881
2.87k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
5882
2.87k
    }
5883
0
    { // 'else' ':' block 'elif'
5884
2.87k
        if (p->error_indicator) {
5885
1
            p->level--;
5886
1
            return NULL;
5887
1
        }
5888
2.87k
        D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block 'elif'"));
5889
2.87k
        Token * _keyword;
5890
2.87k
        Token * _keyword_1;
5891
2.87k
        Token * _literal;
5892
2.87k
        asdl_stmt_seq* block_var;
5893
2.87k
        if (
5894
2.87k
            (_keyword = _PyPegen_expect_token(p, 522))  // token='else'
5895
112
            &&
5896
112
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
5897
112
            &&
5898
112
            (block_var = block_rule(p))  // block
5899
99
            &&
5900
99
            (_keyword_1 = _PyPegen_expect_token(p, 521))  // token='elif'
5901
2.87k
        )
5902
1
        {
5903
1
            D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' block 'elif'"));
5904
1
            _res = RAISE_SYNTAX_ERROR ( "'elif' block follows an 'else' block" );
5905
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5906
1
                p->error_indicator = 1;
5907
1
                p->level--;
5908
1
                return NULL;
5909
1
            }
5910
0
            goto done;
5911
1
        }
5912
2.87k
        p->mark = _mark;
5913
2.87k
        D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5914
2.87k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block 'elif'"));
5915
2.87k
    }
5916
2.87k
    _res = NULL;
5917
2.87k
  done:
5918
2.87k
    p->level--;
5919
2.87k
    return _res;
5920
2.87k
}
5921
5922
// invalid_while_stmt:
5923
//     | 'while' named_expression NEWLINE
5924
//     | 'while' named_expression ':' NEWLINE !INDENT
5925
Py_LOCAL_SYMBOL void *
5926
invalid_while_stmt_rule(Parser *p)
5927
348
{
5928
348
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
5929
0
        _Pypegen_stack_overflow(p);
5930
0
    }
5931
348
    if (p->error_indicator) {
5932
0
        p->level--;
5933
0
        return NULL;
5934
0
    }
5935
348
    void * _res = NULL;
5936
348
    int _mark = p->mark;
5937
348
    { // 'while' named_expression NEWLINE
5938
348
        if (p->error_indicator) {
5939
0
            p->level--;
5940
0
            return NULL;
5941
0
        }
5942
348
        D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
5943
348
        Token * _keyword;
5944
348
        expr_ty named_expression_var;
5945
348
        Token * newline_var;
5946
348
        if (
5947
348
            (_keyword = _PyPegen_expect_token(p, 519))  // token='while'
5948
348
            &&
5949
348
            (named_expression_var = named_expression_rule(p))  // named_expression
5950
344
            &&
5951
344
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
5952
348
        )
5953
1
        {
5954
1
            D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
5955
1
            _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
5956
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5957
1
                p->error_indicator = 1;
5958
1
                p->level--;
5959
1
                return NULL;
5960
1
            }
5961
0
            goto done;
5962
1
        }
5963
347
        p->mark = _mark;
5964
347
        D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5965
347
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
5966
347
    }
5967
0
    { // 'while' named_expression ':' NEWLINE !INDENT
5968
347
        if (p->error_indicator) {
5969
2
            p->level--;
5970
2
            return NULL;
5971
2
        }
5972
345
        D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
5973
345
        Token * _literal;
5974
345
        Token * a;
5975
345
        expr_ty named_expression_var;
5976
345
        Token * newline_var;
5977
345
        if (
5978
345
            (a = _PyPegen_expect_token(p, 519))  // token='while'
5979
345
            &&
5980
345
            (named_expression_var = named_expression_rule(p))  // named_expression
5981
343
            &&
5982
343
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
5983
341
            &&
5984
341
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
5985
270
            &&
5986
270
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
5987
345
        )
5988
4
        {
5989
4
            D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
5990
4
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
5991
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
5992
4
                p->error_indicator = 1;
5993
4
                p->level--;
5994
4
                return NULL;
5995
4
            }
5996
0
            goto done;
5997
4
        }
5998
341
        p->mark = _mark;
5999
341
        D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6000
341
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
6001
341
    }
6002
341
    _res = NULL;
6003
341
  done:
6004
341
    p->level--;
6005
341
    return _res;
6006
341
}
6007
6008
// invalid_for_stmt:
6009
//     | 'async'? 'for' star_targets 'in' star_expressions NEWLINE
6010
//     | 'async'? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
6011
Py_LOCAL_SYMBOL void *
6012
invalid_for_stmt_rule(Parser *p)
6013
437
{
6014
437
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
6015
0
        _Pypegen_stack_overflow(p);
6016
0
    }
6017
437
    if (p->error_indicator) {
6018
0
        p->level--;
6019
0
        return NULL;
6020
0
    }
6021
437
    void * _res = NULL;
6022
437
    int _mark = p->mark;
6023
437
    { // 'async'? 'for' star_targets 'in' star_expressions NEWLINE
6024
437
        if (p->error_indicator) {
6025
0
            p->level--;
6026
0
            return NULL;
6027
0
        }
6028
437
        D(fprintf(stderr, "%*c> invalid_for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'for' star_targets 'in' star_expressions NEWLINE"));
6029
437
        Token * _keyword;
6030
437
        Token * _keyword_1;
6031
437
        void *_opt_var;
6032
437
        UNUSED(_opt_var); // Silence compiler warnings
6033
437
        Token * newline_var;
6034
437
        expr_ty star_expressions_var;
6035
437
        expr_ty star_targets_var;
6036
437
        if (
6037
437
            (_opt_var = _PyPegen_expect_token(p, 513), !p->error_indicator)  // 'async'?
6038
437
            &&
6039
437
            (_keyword = _PyPegen_expect_token(p, 517))  // token='for'
6040
390
            &&
6041
390
            (star_targets_var = star_targets_rule(p))  // star_targets
6042
369
            &&
6043
369
            (_keyword_1 = _PyPegen_expect_token(p, 523))  // token='in'
6044
362
            &&
6045
362
            (star_expressions_var = star_expressions_rule(p))  // star_expressions
6046
359
            &&
6047
359
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
6048
437
        )
6049
3
        {
6050
3
            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"));
6051
3
            _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
6052
3
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6053
3
                p->error_indicator = 1;
6054
3
                p->level--;
6055
3
                return NULL;
6056
3
            }
6057
0
            goto done;
6058
3
        }
6059
434
        p->mark = _mark;
6060
434
        D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6061
434
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'for' star_targets 'in' star_expressions NEWLINE"));
6062
434
    }
6063
0
    { // 'async'? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
6064
434
        if (p->error_indicator) {
6065
2
            p->level--;
6066
2
            return NULL;
6067
2
        }
6068
432
        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"));
6069
432
        Token * _keyword;
6070
432
        Token * _literal;
6071
432
        void *_opt_var;
6072
432
        UNUSED(_opt_var); // Silence compiler warnings
6073
432
        Token * a;
6074
432
        Token * newline_var;
6075
432
        expr_ty star_expressions_var;
6076
432
        expr_ty star_targets_var;
6077
432
        if (
6078
432
            (_opt_var = _PyPegen_expect_token(p, 513), !p->error_indicator)  // 'async'?
6079
432
            &&
6080
432
            (a = _PyPegen_expect_token(p, 517))  // token='for'
6081
385
            &&
6082
385
            (star_targets_var = star_targets_rule(p))  // star_targets
6083
366
            &&
6084
366
            (_keyword = _PyPegen_expect_token(p, 523))  // token='in'
6085
359
            &&
6086
359
            (star_expressions_var = star_expressions_rule(p))  // star_expressions
6087
356
            &&
6088
356
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
6089
354
            &&
6090
354
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
6091
83
            &&
6092
83
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
6093
432
        )
6094
4
        {
6095
4
            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"));
6096
4
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
6097
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6098
4
                p->error_indicator = 1;
6099
4
                p->level--;
6100
4
                return NULL;
6101
4
            }
6102
0
            goto done;
6103
4
        }
6104
428
        p->mark = _mark;
6105
428
        D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
6106
428
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
6107
428
    }
6108
428
    _res = NULL;
6109
428
  done:
6110
428
    p->level--;
6111
428
    return _res;
6112
428
}
6113
6114
// invalid_def_raw:
6115
//     | 'async'? 'def' NAME type_params? '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
6116
//     | 'async'? 'def' NAME type_params? &&'(' params? ')' ['->' expression] &&':' func_type_comment? block
6117
Py_LOCAL_SYMBOL void *
6118
invalid_def_raw_rule(Parser *p)
6119
3.29k
{
6120
3.29k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
6121
0
        _Pypegen_stack_overflow(p);
6122
0
    }
6123
3.29k
    if (p->error_indicator) {
6124
0
        p->level--;
6125
0
        return NULL;
6126
0
    }
6127
3.29k
    void * _res = NULL;
6128
3.29k
    int _mark = p->mark;
6129
3.29k
    { // 'async'? 'def' NAME type_params? '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
6130
3.29k
        if (p->error_indicator) {
6131
0
            p->level--;
6132
0
            return NULL;
6133
0
        }
6134
3.29k
        D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'def' NAME type_params? '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
6135
3.29k
        Token * _literal;
6136
3.29k
        Token * _literal_1;
6137
3.29k
        Token * _literal_2;
6138
3.29k
        void *_opt_var;
6139
3.29k
        UNUSED(_opt_var); // Silence compiler warnings
6140
3.29k
        void *_opt_var_1;
6141
3.29k
        UNUSED(_opt_var_1); // Silence compiler warnings
6142
3.29k
        void *_opt_var_2;
6143
3.29k
        UNUSED(_opt_var_2); // Silence compiler warnings
6144
3.29k
        void *_opt_var_3;
6145
3.29k
        UNUSED(_opt_var_3); // Silence compiler warnings
6146
3.29k
        Token * a;
6147
3.29k
        expr_ty name_var;
6148
3.29k
        Token * newline_var;
6149
3.29k
        if (
6150
3.29k
            (_opt_var = _PyPegen_expect_token(p, 513), !p->error_indicator)  // 'async'?
6151
3.29k
            &&
6152
3.29k
            (a = _PyPegen_expect_token(p, 512))  // token='def'
6153
2.45k
            &&
6154
2.45k
            (name_var = _PyPegen_name_token(p))  // NAME
6155
2.44k
            &&
6156
2.44k
            (_opt_var_1 = type_params_rule(p), !p->error_indicator)  // type_params?
6157
2.43k
            &&
6158
2.43k
            (_literal = _PyPegen_expect_token(p, 7))  // token='('
6159
2.36k
            &&
6160
2.36k
            (_opt_var_2 = params_rule(p), !p->error_indicator)  // params?
6161
2.30k
            &&
6162
2.30k
            (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
6163
2.16k
            &&
6164
2.16k
            (_opt_var_3 = _tmp_162_rule(p), !p->error_indicator)  // ['->' expression]
6165
2.16k
            &&
6166
2.16k
            (_literal_2 = _PyPegen_expect_token(p, 11))  // token=':'
6167
2.10k
            &&
6168
2.10k
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
6169
150
            &&
6170
150
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
6171
3.29k
        )
6172
16
        {
6173
16
            D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'? 'def' NAME type_params? '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
6174
16
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
6175
16
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6176
16
                p->error_indicator = 1;
6177
16
                p->level--;
6178
16
                return NULL;
6179
16
            }
6180
0
            goto done;
6181
16
        }
6182
3.27k
        p->mark = _mark;
6183
3.27k
        D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6184
3.27k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'def' NAME type_params? '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
6185
3.27k
    }
6186
0
    { // 'async'? 'def' NAME type_params? &&'(' params? ')' ['->' expression] &&':' func_type_comment? block
6187
3.27k
        if (p->error_indicator) {
6188
72
            p->level--;
6189
72
            return NULL;
6190
72
        }
6191
3.20k
        D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'def' NAME type_params? &&'(' params? ')' ['->' expression] &&':' func_type_comment? block"));
6192
3.20k
        Token * _keyword;
6193
3.20k
        Token * _literal;
6194
3.20k
        Token * _literal_1;
6195
3.20k
        Token * _literal_2;
6196
3.20k
        void *_opt_var;
6197
3.20k
        UNUSED(_opt_var); // Silence compiler warnings
6198
3.20k
        void *_opt_var_1;
6199
3.20k
        UNUSED(_opt_var_1); // Silence compiler warnings
6200
3.20k
        void *_opt_var_2;
6201
3.20k
        UNUSED(_opt_var_2); // Silence compiler warnings
6202
3.20k
        void *_opt_var_3;
6203
3.20k
        UNUSED(_opt_var_3); // Silence compiler warnings
6204
3.20k
        void *_opt_var_4;
6205
3.20k
        UNUSED(_opt_var_4); // Silence compiler warnings
6206
3.20k
        asdl_stmt_seq* block_var;
6207
3.20k
        expr_ty name_var;
6208
3.20k
        if (
6209
3.20k
            (_opt_var = _PyPegen_expect_token(p, 513), !p->error_indicator)  // 'async'?
6210
3.20k
            &&
6211
3.20k
            (_keyword = _PyPegen_expect_token(p, 512))  // token='def'
6212
2.36k
            &&
6213
2.36k
            (name_var = _PyPegen_name_token(p))  // NAME
6214
2.35k
            &&
6215
2.35k
            (_opt_var_1 = type_params_rule(p), !p->error_indicator)  // type_params?
6216
2.35k
            &&
6217
2.35k
            (_literal = _PyPegen_expect_forced_token(p, 7, "("))  // forced_token='('
6218
2.29k
            &&
6219
2.29k
            (_opt_var_2 = params_rule(p), !p->error_indicator)  // params?
6220
2.29k
            &&
6221
2.29k
            (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
6222
2.15k
            &&
6223
2.15k
            (_opt_var_3 = _tmp_162_rule(p), !p->error_indicator)  // ['->' expression]
6224
2.15k
            &&
6225
2.15k
            (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":"))  // forced_token=':'
6226
2.08k
            &&
6227
2.08k
            (_opt_var_4 = func_type_comment_rule(p), !p->error_indicator)  // func_type_comment?
6228
2.08k
            &&
6229
2.08k
            (block_var = block_rule(p))  // block
6230
3.20k
        )
6231
2.00k
        {
6232
2.00k
            D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'? 'def' NAME type_params? &&'(' params? ')' ['->' expression] &&':' func_type_comment? block"));
6233
2.00k
            _res = _PyPegen_dummy_name(p, _opt_var, _keyword, name_var, _opt_var_1, _literal, _opt_var_2, _literal_1, _opt_var_3, _literal_2, _opt_var_4, block_var);
6234
2.00k
            goto done;
6235
2.00k
        }
6236
1.20k
        p->mark = _mark;
6237
1.20k
        D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6238
1.20k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'def' NAME type_params? &&'(' params? ')' ['->' expression] &&':' func_type_comment? block"));
6239
1.20k
    }
6240
1.20k
    _res = NULL;
6241
3.20k
  done:
6242
3.20k
    p->level--;
6243
3.20k
    return _res;
6244
1.20k
}
6245
6246
// invalid_class_def_raw:
6247
//     | 'class' NAME type_params? ['(' arguments? ')'] NEWLINE
6248
//     | 'class' NAME type_params? ['(' arguments? ')'] ':' NEWLINE !INDENT
6249
Py_LOCAL_SYMBOL void *
6250
invalid_class_def_raw_rule(Parser *p)
6251
1.12k
{
6252
1.12k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
6253
0
        _Pypegen_stack_overflow(p);
6254
0
    }
6255
1.12k
    if (p->error_indicator) {
6256
0
        p->level--;
6257
0
        return NULL;
6258
0
    }
6259
1.12k
    void * _res = NULL;
6260
1.12k
    int _mark = p->mark;
6261
1.12k
    { // 'class' NAME type_params? ['(' arguments? ')'] NEWLINE
6262
1.12k
        if (p->error_indicator) {
6263
0
            p->level--;
6264
0
            return NULL;
6265
0
        }
6266
1.12k
        D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME type_params? ['(' arguments? ')'] NEWLINE"));
6267
1.12k
        Token * _keyword;
6268
1.12k
        void *_opt_var;
6269
1.12k
        UNUSED(_opt_var); // Silence compiler warnings
6270
1.12k
        void *_opt_var_1;
6271
1.12k
        UNUSED(_opt_var_1); // Silence compiler warnings
6272
1.12k
        expr_ty name_var;
6273
1.12k
        Token * newline_var;
6274
1.12k
        if (
6275
1.12k
            (_keyword = _PyPegen_expect_token(p, 515))  // token='class'
6276
961
            &&
6277
961
            (name_var = _PyPegen_name_token(p))  // NAME
6278
958
            &&
6279
958
            (_opt_var = type_params_rule(p), !p->error_indicator)  // type_params?
6280
956
            &&
6281
956
            (_opt_var_1 = _tmp_163_rule(p), !p->error_indicator)  // ['(' arguments? ')']
6282
955
            &&
6283
955
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
6284
1.12k
        )
6285
10
        {
6286
10
            D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME type_params? ['(' arguments? ')'] NEWLINE"));
6287
10
            _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
6288
10
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6289
10
                p->error_indicator = 1;
6290
10
                p->level--;
6291
10
                return NULL;
6292
10
            }
6293
0
            goto done;
6294
10
        }
6295
1.11k
        p->mark = _mark;
6296
1.11k
        D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6297
1.11k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME type_params? ['(' arguments? ')'] NEWLINE"));
6298
1.11k
    }
6299
0
    { // 'class' NAME type_params? ['(' arguments? ')'] ':' NEWLINE !INDENT
6300
1.11k
        if (p->error_indicator) {
6301
3
            p->level--;
6302
3
            return NULL;
6303
3
        }
6304
1.10k
        D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME type_params? ['(' arguments? ')'] ':' NEWLINE !INDENT"));
6305
1.10k
        Token * _literal;
6306
1.10k
        void *_opt_var;
6307
1.10k
        UNUSED(_opt_var); // Silence compiler warnings
6308
1.10k
        void *_opt_var_1;
6309
1.10k
        UNUSED(_opt_var_1); // Silence compiler warnings
6310
1.10k
        Token * a;
6311
1.10k
        expr_ty name_var;
6312
1.10k
        Token * newline_var;
6313
1.10k
        if (
6314
1.10k
            (a = _PyPegen_expect_token(p, 515))  // token='class'
6315
948
            &&
6316
948
            (name_var = _PyPegen_name_token(p))  // NAME
6317
945
            &&
6318
945
            (_opt_var = type_params_rule(p), !p->error_indicator)  // type_params?
6319
945
            &&
6320
945
            (_opt_var_1 = _tmp_163_rule(p), !p->error_indicator)  // ['(' arguments? ')']
6321
945
            &&
6322
945
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
6323
921
            &&
6324
921
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
6325
145
            &&
6326
145
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT)  // token=INDENT
6327
1.10k
        )
6328
6
        {
6329
6
            D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME type_params? ['(' arguments? ')'] ':' NEWLINE !INDENT"));
6330
6
            _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
6331
6
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6332
6
                p->error_indicator = 1;
6333
6
                p->level--;
6334
6
                return NULL;
6335
6
            }
6336
0
            goto done;
6337
6
        }
6338
1.10k
        p->mark = _mark;
6339
1.10k
        D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6340
1.10k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME type_params? ['(' arguments? ')'] ':' NEWLINE !INDENT"));
6341
1.10k
    }
6342
1.10k
    _res = NULL;
6343
1.10k
  done:
6344
1.10k
    p->level--;
6345
1.10k
    return _res;
6346
1.10k
}
6347
6348
// invalid_double_starred_kvpairs:
6349
//     | invalid_kvpair_unpacking ','?
6350
//     | ','.double_starred_kvpair+ ',' (invalid_kvpair | invalid_kvpair_unpacking)
6351
//     | expression ':' &('}' | ',')
6352
Py_LOCAL_SYMBOL void *
6353
invalid_double_starred_kvpairs_rule(Parser *p)
6354
13.5k
{
6355
13.5k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
6356
0
        _Pypegen_stack_overflow(p);
6357
0
    }
6358
13.5k
    if (p->error_indicator) {
6359
0
        p->level--;
6360
0
        return NULL;
6361
0
    }
6362
13.5k
    void * _res = NULL;
6363
13.5k
    int _mark = p->mark;
6364
13.5k
    { // invalid_kvpair_unpacking ','?
6365
13.5k
        if (p->error_indicator) {
6366
0
            p->level--;
6367
0
            return NULL;
6368
0
        }
6369
13.5k
        D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kvpair_unpacking ','?"));
6370
13.5k
        void *_opt_var;
6371
13.5k
        UNUSED(_opt_var); // Silence compiler warnings
6372
13.5k
        void *invalid_kvpair_unpacking_var;
6373
13.5k
        if (
6374
13.5k
            (invalid_kvpair_unpacking_var = invalid_kvpair_unpacking_rule(p))  // invalid_kvpair_unpacking
6375
0
            &&
6376
0
            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
6377
13.5k
        )
6378
0
        {
6379
0
            D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kvpair_unpacking ','?"));
6380
0
            _res = _PyPegen_dummy_name(p, invalid_kvpair_unpacking_var, _opt_var);
6381
0
            goto done;
6382
0
        }
6383
13.5k
        p->mark = _mark;
6384
13.5k
        D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
6385
13.5k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kvpair_unpacking ','?"));
6386
13.5k
    }
6387
0
    { // ','.double_starred_kvpair+ ',' (invalid_kvpair | invalid_kvpair_unpacking)
6388
13.5k
        if (p->error_indicator) {
6389
683
            p->level--;
6390
683
            return NULL;
6391
683
        }
6392
12.8k
        D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' (invalid_kvpair | invalid_kvpair_unpacking)"));
6393
12.8k
        asdl_seq * _gather_165_var;
6394
12.8k
        Token * _literal;
6395
12.8k
        void *_tmp_166_var;
6396
12.8k
        if (
6397
12.8k
            (_gather_165_var = _gather_165_rule(p))  // ','.double_starred_kvpair+
6398
2.55k
            &&
6399
2.55k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
6400
1.86k
            &&
6401
1.86k
            (_tmp_166_var = _tmp_166_rule(p))  // invalid_kvpair | invalid_kvpair_unpacking
6402
12.8k
        )
6403
0
        {
6404
0
            D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' (invalid_kvpair | invalid_kvpair_unpacking)"));
6405
0
            _res = _PyPegen_dummy_name(p, _gather_165_var, _literal, _tmp_166_var);
6406
0
            goto done;
6407
0
        }
6408
12.8k
        p->mark = _mark;
6409
12.8k
        D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
6410
12.8k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' (invalid_kvpair | invalid_kvpair_unpacking)"));
6411
12.8k
    }
6412
0
    { // expression ':' &('}' | ',')
6413
12.8k
        if (p->error_indicator) {
6414
370
            p->level--;
6415
370
            return NULL;
6416
370
        }
6417
12.5k
        D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
6418
12.5k
        Token * a;
6419
12.5k
        expr_ty expression_var;
6420
12.5k
        if (
6421
12.5k
            (expression_var = expression_rule(p))  // expression
6422
7.62k
            &&
6423
7.62k
            (a = _PyPegen_expect_token(p, 11))  // token=':'
6424
2.27k
            &&
6425
2.27k
            _PyPegen_lookahead(1, _tmp_167_rule, p)
6426
12.5k
        )
6427
6
        {
6428
6
            D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
6429
6
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
6430
6
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6431
6
                p->error_indicator = 1;
6432
6
                p->level--;
6433
6
                return NULL;
6434
6
            }
6435
0
            goto done;
6436
6
        }
6437
12.5k
        p->mark = _mark;
6438
12.5k
        D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
6439
12.5k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
6440
12.5k
    }
6441
12.5k
    _res = NULL;
6442
12.5k
  done:
6443
12.5k
    p->level--;
6444
12.5k
    return _res;
6445
12.5k
}
6446
6447
// invalid_kvpair_unpacking:
6448
//     | '**' if_expression
6449
//     | '*' bitwise_or ':' expression
6450
//     | '**' bitwise_or ':' expression
6451
//     | expression ':' '*' bitwise_or
6452
//     | expression ':' '**' bitwise_or
6453
static void *
6454
invalid_kvpair_unpacking_rule(Parser *p)
6455
14.2k
{
6456
14.2k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
6457
0
        _Pypegen_stack_overflow(p);
6458
0
    }
6459
14.2k
    if (p->error_indicator) {
6460
0
        p->level--;
6461
0
        return NULL;
6462
0
    }
6463
14.2k
    void * _res = NULL;
6464
14.2k
    int _mark = p->mark;
6465
14.2k
    expr_ty _prefix_14_result = NULL;
6466
14.2k
    int _prefix_14_end = 0, _prefix_14_valid = 0;
6467
14.2k
    { // '**' if_expression
6468
14.2k
        if (p->error_indicator) {
6469
0
            p->level--;
6470
0
            return NULL;
6471
0
        }
6472
14.2k
        D(fprintf(stderr, "%*c> invalid_kvpair_unpacking[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' if_expression"));
6473
14.2k
        Token * a;
6474
14.2k
        expr_ty b;
6475
14.2k
        if (
6476
14.2k
            (a = _PyPegen_expect_token(p, 35))  // token='**'
6477
1.58k
            &&
6478
1.58k
            (b = if_expression_rule(p))  // if_expression
6479
14.2k
        )
6480
1
        {
6481
1
            D(fprintf(stderr, "%*c+ invalid_kvpair_unpacking[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' if_expression"));
6482
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid double starred expression. Did you forget to wrap the conditional expression in parentheses?" );
6483
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6484
1
                p->error_indicator = 1;
6485
1
                p->level--;
6486
1
                return NULL;
6487
1
            }
6488
0
            goto done;
6489
1
        }
6490
14.2k
        p->mark = _mark;
6491
14.2k
        D(fprintf(stderr, "%*c%s invalid_kvpair_unpacking[%d-%d]: %s failed!\n", p->level, ' ',
6492
14.2k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' if_expression"));
6493
14.2k
    }
6494
0
    { // '*' bitwise_or ':' expression
6495
14.2k
        if (p->error_indicator) {
6496
67
            p->level--;
6497
67
            return NULL;
6498
67
        }
6499
14.2k
        D(fprintf(stderr, "%*c> invalid_kvpair_unpacking[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or ':' expression"));
6500
14.2k
        Token * _literal;
6501
14.2k
        Token * a;
6502
14.2k
        expr_ty b;
6503
14.2k
        expr_ty expression_var;
6504
14.2k
        if (
6505
14.2k
            (a = _PyPegen_expect_token(p, 16))  // token='*'
6506
1.51k
            &&
6507
1.51k
            (b = bitwise_or_rule(p))  // bitwise_or
6508
705
            &&
6509
705
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
6510
407
            &&
6511
407
            (expression_var = expression_rule(p))  // expression
6512
14.2k
        )
6513
2
        {
6514
2
            D(fprintf(stderr, "%*c+ invalid_kvpair_unpacking[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or ':' expression"));
6515
2
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot use a starred expression in a dictionary key" );
6516
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6517
2
                p->error_indicator = 1;
6518
2
                p->level--;
6519
2
                return NULL;
6520
2
            }
6521
0
            goto done;
6522
2
        }
6523
14.2k
        p->mark = _mark;
6524
14.2k
        D(fprintf(stderr, "%*c%s invalid_kvpair_unpacking[%d-%d]: %s failed!\n", p->level, ' ',
6525
14.2k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or ':' expression"));
6526
14.2k
    }
6527
0
    { // '**' bitwise_or ':' expression
6528
14.2k
        if (p->error_indicator) {
6529
292
            p->level--;
6530
292
            return NULL;
6531
292
        }
6532
13.9k
        D(fprintf(stderr, "%*c> invalid_kvpair_unpacking[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or ':' expression"));
6533
13.9k
        Token * _literal;
6534
13.9k
        Token * a;
6535
13.9k
        expr_ty b;
6536
13.9k
        expr_ty expression_var;
6537
13.9k
        if (
6538
13.9k
            (a = _PyPegen_expect_token(p, 35))  // token='**'
6539
1.51k
            &&
6540
1.51k
            (b = bitwise_or_rule(p))  // bitwise_or
6541
975
            &&
6542
975
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
6543
326
            &&
6544
326
            (expression_var = expression_rule(p))  // expression
6545
13.9k
        )
6546
1
        {
6547
1
            D(fprintf(stderr, "%*c+ invalid_kvpair_unpacking[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or ':' expression"));
6548
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot use dict unpacking in a dictionary key" );
6549
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6550
1
                p->error_indicator = 1;
6551
1
                p->level--;
6552
1
                return NULL;
6553
1
            }
6554
0
            goto done;
6555
1
        }
6556
13.9k
        p->mark = _mark;
6557
13.9k
        D(fprintf(stderr, "%*c%s invalid_kvpair_unpacking[%d-%d]: %s failed!\n", p->level, ' ',
6558
13.9k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or ':' expression"));
6559
13.9k
    }
6560
0
    { // expression ':' '*' bitwise_or
6561
13.9k
        if (p->error_indicator) {
6562
188
            p->level--;
6563
188
            return NULL;
6564
188
        }
6565
13.7k
        D(fprintf(stderr, "%*c> invalid_kvpair_unpacking[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
6566
13.7k
        Token * _literal;
6567
13.7k
        Token * a;
6568
13.7k
        expr_ty b;
6569
13.7k
        expr_ty expression_var;
6570
13.7k
        if (
6571
13.7k
            (expression_var = ((!p->call_invalid_rules && _prefix_14_valid) ? (p->mark = _prefix_14_end, _prefix_14_result) : (_prefix_14_result = expression_rule(p), _prefix_14_end = p->mark, _prefix_14_valid = 1, _prefix_14_result)))  // expression
6572
8.47k
            &&
6573
8.47k
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
6574
3.12k
            &&
6575
3.12k
            (a = _PyPegen_expect_token(p, 16))  // token='*'
6576
455
            &&
6577
455
            (b = bitwise_or_rule(p))  // bitwise_or
6578
13.7k
        )
6579
1
        {
6580
1
            D(fprintf(stderr, "%*c+ invalid_kvpair_unpacking[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
6581
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot use a starred expression in a dictionary value" );
6582
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6583
1
                p->error_indicator = 1;
6584
1
                p->level--;
6585
1
                return NULL;
6586
1
            }
6587
0
            goto done;
6588
1
        }
6589
13.7k
        p->mark = _mark;
6590
13.7k
        D(fprintf(stderr, "%*c%s invalid_kvpair_unpacking[%d-%d]: %s failed!\n", p->level, ' ',
6591
13.7k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
6592
13.7k
    }
6593
0
    { // expression ':' '**' bitwise_or
6594
13.7k
        if (p->error_indicator) {
6595
200
            p->level--;
6596
200
            return NULL;
6597
200
        }
6598
13.5k
        D(fprintf(stderr, "%*c> invalid_kvpair_unpacking[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '**' bitwise_or"));
6599
13.5k
        Token * _literal;
6600
13.5k
        Token * a;
6601
13.5k
        expr_ty b;
6602
13.5k
        expr_ty expression_var;
6603
13.5k
        if (
6604
13.5k
            (expression_var = ((!p->call_invalid_rules && _prefix_14_valid) ? (p->mark = _prefix_14_end, _prefix_14_result) : (_prefix_14_result = expression_rule(p), _prefix_14_end = p->mark, _prefix_14_valid = 1, _prefix_14_result)))  // expression
6605
8.27k
            &&
6606
8.27k
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
6607
2.92k
            &&
6608
2.92k
            (a = _PyPegen_expect_token(p, 35))  // token='**'
6609
237
            &&
6610
237
            (b = bitwise_or_rule(p))  // bitwise_or
6611
13.5k
        )
6612
1
        {
6613
1
            D(fprintf(stderr, "%*c+ invalid_kvpair_unpacking[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '**' bitwise_or"));
6614
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot use dict unpacking in a dictionary value" );
6615
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6616
1
                p->error_indicator = 1;
6617
1
                p->level--;
6618
1
                return NULL;
6619
1
            }
6620
0
            goto done;
6621
1
        }
6622
13.5k
        p->mark = _mark;
6623
13.5k
        D(fprintf(stderr, "%*c%s invalid_kvpair_unpacking[%d-%d]: %s failed!\n", p->level, ' ',
6624
13.5k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '**' bitwise_or"));
6625
13.5k
    }
6626
13.5k
    _res = NULL;
6627
13.5k
  done:
6628
13.5k
    p->level--;
6629
13.5k
    return _res;
6630
13.5k
}
6631
6632
// invalid_kvpair:
6633
//     | expression !(':')
6634
//     | expression ':' '*' bitwise_or
6635
//     | expression ':' '**' bitwise_or
6636
//     | expression ':' &('}' | ',')
6637
static void *
6638
invalid_kvpair_rule(Parser *p)
6639
974
{
6640
974
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
6641
0
        _Pypegen_stack_overflow(p);
6642
0
    }
6643
974
    if (p->error_indicator) {
6644
0
        p->level--;
6645
0
        return NULL;
6646
0
    }
6647
974
    void * _res = NULL;
6648
974
    int _mark = p->mark;
6649
974
    expr_ty _prefix_15_result = NULL;
6650
974
    int _prefix_15_end = 0, _prefix_15_valid = 0;
6651
974
    { // expression !(':')
6652
974
        if (p->error_indicator) {
6653
0
            p->level--;
6654
0
            return NULL;
6655
0
        }
6656
974
        D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
6657
974
        expr_ty a;
6658
974
        if (
6659
974
            (a = ((!p->call_invalid_rules && _prefix_15_valid) ? (p->mark = _prefix_15_end, _prefix_15_result) : (_prefix_15_result = expression_rule(p), _prefix_15_end = p->mark, _prefix_15_valid = 1, _prefix_15_result)))  // expression
6660
620
            &&
6661
620
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11)  // token=(':')
6662
974
        )
6663
10
        {
6664
10
            D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
6665
10
            _res = RAISE_ERROR_KNOWN_LOCATION ( p , PyExc_SyntaxError , a -> lineno , a -> end_col_offset - 1 , a -> end_lineno , - 1 , "':' expected after dictionary key" );
6666
10
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6667
10
                p->error_indicator = 1;
6668
10
                p->level--;
6669
10
                return NULL;
6670
10
            }
6671
0
            goto done;
6672
10
        }
6673
964
        p->mark = _mark;
6674
964
        D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
6675
964
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
6676
964
    }
6677
0
    { // expression ':' '*' bitwise_or
6678
964
        if (p->error_indicator) {
6679
0
            p->level--;
6680
0
            return NULL;
6681
0
        }
6682
964
        D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
6683
964
        Token * _literal;
6684
964
        Token * a;
6685
964
        expr_ty bitwise_or_var;
6686
964
        expr_ty expression_var;
6687
964
        if (
6688
964
            (expression_var = ((!p->call_invalid_rules && _prefix_15_valid) ? (p->mark = _prefix_15_end, _prefix_15_result) : (_prefix_15_result = expression_rule(p), _prefix_15_end = p->mark, _prefix_15_valid = 1, _prefix_15_result)))  // expression
6689
610
            &&
6690
610
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
6691
610
            &&
6692
610
            (a = _PyPegen_expect_token(p, 16))  // token='*'
6693
72
            &&
6694
72
            (bitwise_or_var = bitwise_or_rule(p))  // bitwise_or
6695
964
        )
6696
3
        {
6697
3
            D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
6698
3
            _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
6699
3
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6700
3
                p->error_indicator = 1;
6701
3
                p->level--;
6702
3
                return NULL;
6703
3
            }
6704
0
            goto done;
6705
3
        }
6706
961
        p->mark = _mark;
6707
961
        D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
6708
961
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
6709
961
    }
6710
0
    { // expression ':' '**' bitwise_or
6711
961
        if (p->error_indicator) {
6712
69
            p->level--;
6713
69
            return NULL;
6714
69
        }
6715
892
        D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '**' bitwise_or"));
6716
892
        Token * _literal;
6717
892
        Token * a;
6718
892
        expr_ty bitwise_or_var;
6719
892
        expr_ty expression_var;
6720
892
        if (
6721
892
            (expression_var = ((!p->call_invalid_rules && _prefix_15_valid) ? (p->mark = _prefix_15_end, _prefix_15_result) : (_prefix_15_result = expression_rule(p), _prefix_15_end = p->mark, _prefix_15_valid = 1, _prefix_15_result)))  // expression
6722
538
            &&
6723
538
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
6724
538
            &&
6725
538
            (a = _PyPegen_expect_token(p, 35))  // token='**'
6726
326
            &&
6727
326
            (bitwise_or_var = bitwise_or_rule(p))  // bitwise_or
6728
892
        )
6729
1
        {
6730
1
            D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '**' bitwise_or"));
6731
1
            _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use dict unpacking in a dictionary value" );
6732
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6733
1
                p->error_indicator = 1;
6734
1
                p->level--;
6735
1
                return NULL;
6736
1
            }
6737
0
            goto done;
6738
1
        }
6739
891
        p->mark = _mark;
6740
891
        D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
6741
891
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '**' bitwise_or"));
6742
891
    }
6743
0
    { // expression ':' &('}' | ',')
6744
891
        if (p->error_indicator) {
6745
196
            p->level--;
6746
196
            return NULL;
6747
196
        }
6748
695
        D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
6749
695
        Token * a;
6750
695
        expr_ty expression_var;
6751
695
        if (
6752
695
            (expression_var = ((!p->call_invalid_rules && _prefix_15_valid) ? (p->mark = _prefix_15_end, _prefix_15_result) : (_prefix_15_result = expression_rule(p), _prefix_15_end = p->mark, _prefix_15_valid = 1, _prefix_15_result)))  // expression
6753
341
            &&
6754
341
            (a = _PyPegen_expect_token(p, 11))  // token=':'
6755
341
            &&
6756
341
            _PyPegen_lookahead(1, _tmp_167_rule, p)
6757
695
        )
6758
1
        {
6759
1
            D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
6760
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
6761
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6762
1
                p->error_indicator = 1;
6763
1
                p->level--;
6764
1
                return NULL;
6765
1
            }
6766
0
            goto done;
6767
1
        }
6768
694
        p->mark = _mark;
6769
694
        D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
6770
694
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
6771
694
    }
6772
694
    _res = NULL;
6773
694
  done:
6774
694
    p->level--;
6775
694
    return _res;
6776
694
}
6777
6778
// invalid_starred_expression_unpacking: '*' if_expression | '*' expression '=' expression
6779
Py_LOCAL_SYMBOL void *
6780
invalid_starred_expression_unpacking_rule(Parser *p)
6781
193k
{
6782
193k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
6783
0
        _Pypegen_stack_overflow(p);
6784
0
    }
6785
193k
    if (p->error_indicator) {
6786
0
        p->level--;
6787
0
        return NULL;
6788
0
    }
6789
193k
    void * _res = NULL;
6790
193k
    int _mark = p->mark;
6791
193k
    { // '*' if_expression
6792
193k
        if (p->error_indicator) {
6793
0
            p->level--;
6794
0
            return NULL;
6795
0
        }
6796
193k
        D(fprintf(stderr, "%*c> invalid_starred_expression_unpacking[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' if_expression"));
6797
193k
        Token * a;
6798
193k
        expr_ty b;
6799
193k
        if (
6800
193k
            (a = _PyPegen_expect_token(p, 16))  // token='*'
6801
13.3k
            &&
6802
13.3k
            (b = if_expression_rule(p))  // if_expression
6803
193k
        )
6804
1
        {
6805
1
            D(fprintf(stderr, "%*c+ invalid_starred_expression_unpacking[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' if_expression"));
6806
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid starred expression. Did you forget to wrap the conditional expression in parentheses?" );
6807
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6808
1
                p->error_indicator = 1;
6809
1
                p->level--;
6810
1
                return NULL;
6811
1
            }
6812
0
            goto done;
6813
1
        }
6814
193k
        p->mark = _mark;
6815
193k
        D(fprintf(stderr, "%*c%s invalid_starred_expression_unpacking[%d-%d]: %s failed!\n", p->level, ' ',
6816
193k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' if_expression"));
6817
193k
    }
6818
0
    { // '*' expression '=' expression
6819
193k
        if (p->error_indicator) {
6820
1.28k
            p->level--;
6821
1.28k
            return NULL;
6822
1.28k
        }
6823
192k
        D(fprintf(stderr, "%*c> invalid_starred_expression_unpacking[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression '=' expression"));
6824
192k
        Token * _literal;
6825
192k
        Token * a;
6826
192k
        expr_ty b;
6827
192k
        expr_ty expression_var;
6828
192k
        if (
6829
192k
            (a = _PyPegen_expect_token(p, 16))  // token='*'
6830
12.0k
            &&
6831
12.0k
            (expression_var = expression_rule(p))  // expression
6832
11.6k
            &&
6833
11.6k
            (_literal = _PyPegen_expect_token(p, 22))  // token='='
6834
109
            &&
6835
109
            (b = expression_rule(p))  // expression
6836
192k
        )
6837
2
        {
6838
2
            D(fprintf(stderr, "%*c+ invalid_starred_expression_unpacking[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression '=' expression"));
6839
2
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot assign to iterable argument unpacking" );
6840
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6841
2
                p->error_indicator = 1;
6842
2
                p->level--;
6843
2
                return NULL;
6844
2
            }
6845
0
            goto done;
6846
2
        }
6847
192k
        p->mark = _mark;
6848
192k
        D(fprintf(stderr, "%*c%s invalid_starred_expression_unpacking[%d-%d]: %s failed!\n", p->level, ' ',
6849
192k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression '=' expression"));
6850
192k
    }
6851
192k
    _res = NULL;
6852
192k
  done:
6853
192k
    p->level--;
6854
192k
    return _res;
6855
192k
}
6856
6857
// invalid_starred_expression_unpacking_sequence:
6858
//     | '**' bitwise_or
6859
//     | invalid_starred_expression_unpacking
6860
Py_LOCAL_SYMBOL void *
6861
invalid_starred_expression_unpacking_sequence_rule(Parser *p)
6862
66.7k
{
6863
66.7k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
6864
0
        _Pypegen_stack_overflow(p);
6865
0
    }
6866
66.7k
    if (p->error_indicator) {
6867
0
        p->level--;
6868
0
        return NULL;
6869
0
    }
6870
66.7k
    void * _res = NULL;
6871
66.7k
    int _mark = p->mark;
6872
66.7k
    { // '**' bitwise_or
6873
66.7k
        if (p->error_indicator) {
6874
0
            p->level--;
6875
0
            return NULL;
6876
0
        }
6877
66.7k
        D(fprintf(stderr, "%*c> invalid_starred_expression_unpacking_sequence[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
6878
66.7k
        Token * a;
6879
66.7k
        expr_ty bitwise_or_var;
6880
66.7k
        if (
6881
66.7k
            (a = _PyPegen_expect_token(p, 35))  // token='**'
6882
893
            &&
6883
893
            (bitwise_or_var = bitwise_or_rule(p))  // bitwise_or
6884
66.7k
        )
6885
40
        {
6886
40
            D(fprintf(stderr, "%*c+ invalid_starred_expression_unpacking_sequence[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
6887
40
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use dict unpacking here" );
6888
40
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6889
40
                p->error_indicator = 1;
6890
40
                p->level--;
6891
40
                return NULL;
6892
40
            }
6893
0
            goto done;
6894
40
        }
6895
66.7k
        p->mark = _mark;
6896
66.7k
        D(fprintf(stderr, "%*c%s invalid_starred_expression_unpacking_sequence[%d-%d]: %s failed!\n", p->level, ' ',
6897
66.7k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
6898
66.7k
    }
6899
66.7k
    if (p->call_invalid_rules) { // invalid_starred_expression_unpacking
6900
66.7k
        if (p->error_indicator) {
6901
198
            p->level--;
6902
198
            return NULL;
6903
198
        }
6904
66.5k
        D(fprintf(stderr, "%*c> invalid_starred_expression_unpacking_sequence[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_starred_expression_unpacking"));
6905
66.5k
        void *invalid_starred_expression_unpacking_var;
6906
66.5k
        if (
6907
66.5k
            (invalid_starred_expression_unpacking_var = invalid_starred_expression_unpacking_rule(p))  // invalid_starred_expression_unpacking
6908
66.5k
        )
6909
0
        {
6910
0
            D(fprintf(stderr, "%*c+ invalid_starred_expression_unpacking_sequence[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_starred_expression_unpacking"));
6911
0
            _res = invalid_starred_expression_unpacking_var;
6912
0
            goto done;
6913
0
        }
6914
66.5k
        p->mark = _mark;
6915
66.5k
        D(fprintf(stderr, "%*c%s invalid_starred_expression_unpacking_sequence[%d-%d]: %s failed!\n", p->level, ' ',
6916
66.5k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_starred_expression_unpacking"));
6917
66.5k
    }
6918
66.5k
    _res = NULL;
6919
66.5k
  done:
6920
66.5k
    p->level--;
6921
66.5k
    return _res;
6922
66.5k
}
6923
6924
// invalid_starred_expression: '*'
6925
Py_LOCAL_SYMBOL void *
6926
invalid_starred_expression_rule(Parser *p)
6927
115k
{
6928
115k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
6929
0
        _Pypegen_stack_overflow(p);
6930
0
    }
6931
115k
    if (p->error_indicator) {
6932
0
        p->level--;
6933
0
        return NULL;
6934
0
    }
6935
115k
    void * _res = NULL;
6936
115k
    int _mark = p->mark;
6937
115k
    { // '*'
6938
115k
        if (p->error_indicator) {
6939
0
            p->level--;
6940
0
            return NULL;
6941
0
        }
6942
115k
        D(fprintf(stderr, "%*c> invalid_starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
6943
115k
        Token * _literal;
6944
115k
        if (
6945
115k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
6946
115k
        )
6947
30
        {
6948
30
            D(fprintf(stderr, "%*c+ invalid_starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
6949
30
            _res = RAISE_SYNTAX_ERROR ( "Invalid star expression" );
6950
30
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
6951
30
                p->error_indicator = 1;
6952
30
                p->level--;
6953
30
                return NULL;
6954
30
            }
6955
0
            goto done;
6956
30
        }
6957
115k
        p->mark = _mark;
6958
115k
        D(fprintf(stderr, "%*c%s invalid_starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
6959
115k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
6960
115k
    }
6961
115k
    _res = NULL;
6962
115k
  done:
6963
115k
    p->level--;
6964
115k
    return _res;
6965
115k
}
6966
6967
// invalid_fstring_replacement_field:
6968
//     | '{' '='
6969
//     | '{' '!'
6970
//     | '{' ':'
6971
//     | '{' '}'
6972
//     | '{' !annotated_rhs
6973
//     | '{' annotated_rhs !('=' | '!' | ':' | '}')
6974
//     | '{' annotated_rhs '=' !('!' | ':' | '}')
6975
//     | '{' annotated_rhs '='? invalid_fstring_conversion_character
6976
//     | '{' annotated_rhs '='? ['!' NAME] !(':' | '}')
6977
//     | '{' annotated_rhs '='? ['!' NAME] ':' fstring_format_spec* !'}'
6978
//     | '{' annotated_rhs '='? ['!' NAME] !'}'
6979
Py_LOCAL_SYMBOL void *
6980
invalid_fstring_replacement_field_rule(Parser *p)
6981
14.5k
{
6982
14.5k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
6983
1
        _Pypegen_stack_overflow(p);
6984
1
    }
6985
14.5k
    if (p->error_indicator) {
6986
1
        p->level--;
6987
1
        return NULL;
6988
1
    }
6989
14.5k
    void * _res = NULL;
6990
14.5k
    int _mark = p->mark;
6991
14.5k
    { // '{' '='
6992
14.5k
        if (p->error_indicator) {
6993
0
            p->level--;
6994
0
            return NULL;
6995
0
        }
6996
14.5k
        D(fprintf(stderr, "%*c> invalid_fstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '='"));
6997
14.5k
        Token * _literal;
6998
14.5k
        Token * a;
6999
14.5k
        if (
7000
14.5k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7001
272
            &&
7002
272
            (a = _PyPegen_expect_token(p, 22))  // token='='
7003
14.5k
        )
7004
21
        {
7005
21
            D(fprintf(stderr, "%*c+ invalid_fstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '='"));
7006
21
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "f-string: valid expression required before '='" );
7007
21
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7008
21
                p->error_indicator = 1;
7009
21
                p->level--;
7010
21
                return NULL;
7011
21
            }
7012
0
            goto done;
7013
21
        }
7014
14.4k
        p->mark = _mark;
7015
14.4k
        D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7016
14.4k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '='"));
7017
14.4k
    }
7018
0
    { // '{' '!'
7019
14.4k
        if (p->error_indicator) {
7020
0
            p->level--;
7021
0
            return NULL;
7022
0
        }
7023
14.4k
        D(fprintf(stderr, "%*c> invalid_fstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '!'"));
7024
14.4k
        Token * _literal;
7025
14.4k
        Token * a;
7026
14.4k
        if (
7027
14.4k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7028
251
            &&
7029
251
            (a = _PyPegen_expect_token(p, 54))  // token='!'
7030
14.4k
        )
7031
10
        {
7032
10
            D(fprintf(stderr, "%*c+ invalid_fstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '!'"));
7033
10
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "f-string: valid expression required before '!'" );
7034
10
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7035
10
                p->error_indicator = 1;
7036
10
                p->level--;
7037
10
                return NULL;
7038
10
            }
7039
0
            goto done;
7040
10
        }
7041
14.4k
        p->mark = _mark;
7042
14.4k
        D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7043
14.4k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '!'"));
7044
14.4k
    }
7045
0
    { // '{' ':'
7046
14.4k
        if (p->error_indicator) {
7047
0
            p->level--;
7048
0
            return NULL;
7049
0
        }
7050
14.4k
        D(fprintf(stderr, "%*c> invalid_fstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' ':'"));
7051
14.4k
        Token * _literal;
7052
14.4k
        Token * a;
7053
14.4k
        if (
7054
14.4k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7055
241
            &&
7056
241
            (a = _PyPegen_expect_token(p, 11))  // token=':'
7057
14.4k
        )
7058
35
        {
7059
35
            D(fprintf(stderr, "%*c+ invalid_fstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' ':'"));
7060
35
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "f-string: valid expression required before ':'" );
7061
35
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7062
35
                p->error_indicator = 1;
7063
35
                p->level--;
7064
35
                return NULL;
7065
35
            }
7066
0
            goto done;
7067
35
        }
7068
14.4k
        p->mark = _mark;
7069
14.4k
        D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7070
14.4k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' ':'"));
7071
14.4k
    }
7072
0
    { // '{' '}'
7073
14.4k
        if (p->error_indicator) {
7074
0
            p->level--;
7075
0
            return NULL;
7076
0
        }
7077
14.4k
        D(fprintf(stderr, "%*c> invalid_fstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
7078
14.4k
        Token * _literal;
7079
14.4k
        Token * a;
7080
14.4k
        if (
7081
14.4k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7082
206
            &&
7083
206
            (a = _PyPegen_expect_token(p, 26))  // token='}'
7084
14.4k
        )
7085
15
        {
7086
15
            D(fprintf(stderr, "%*c+ invalid_fstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
7087
15
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "f-string: valid expression required before '}'" );
7088
15
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7089
15
                p->error_indicator = 1;
7090
15
                p->level--;
7091
15
                return NULL;
7092
15
            }
7093
0
            goto done;
7094
15
        }
7095
14.4k
        p->mark = _mark;
7096
14.4k
        D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7097
14.4k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
7098
14.4k
    }
7099
0
    { // '{' !annotated_rhs
7100
14.4k
        if (p->error_indicator) {
7101
0
            p->level--;
7102
0
            return NULL;
7103
0
        }
7104
14.4k
        D(fprintf(stderr, "%*c> invalid_fstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' !annotated_rhs"));
7105
14.4k
        Token * _literal;
7106
14.4k
        if (
7107
14.4k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7108
191
            &&
7109
191
            _PyPegen_lookahead_for_expr(0, annotated_rhs_rule, p)
7110
14.4k
        )
7111
44
        {
7112
44
            D(fprintf(stderr, "%*c+ invalid_fstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' !annotated_rhs"));
7113
44
            _res = RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: expecting a valid expression after '{'" );
7114
44
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7115
44
                p->error_indicator = 1;
7116
44
                p->level--;
7117
44
                return NULL;
7118
44
            }
7119
0
            goto done;
7120
44
        }
7121
14.3k
        p->mark = _mark;
7122
14.3k
        D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7123
14.3k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' !annotated_rhs"));
7124
14.3k
    }
7125
0
    { // '{' annotated_rhs !('=' | '!' | ':' | '}')
7126
14.3k
        if (p->error_indicator) {
7127
0
            p->level--;
7128
0
            return NULL;
7129
0
        }
7130
14.3k
        D(fprintf(stderr, "%*c> invalid_fstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs !('=' | '!' | ':' | '}')"));
7131
14.3k
        Token * _literal;
7132
14.3k
        expr_ty annotated_rhs_var;
7133
14.3k
        if (
7134
14.3k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7135
147
            &&
7136
147
            (annotated_rhs_var = annotated_rhs_rule(p))  // annotated_rhs
7137
147
            &&
7138
147
            _PyPegen_lookahead(0, _tmp_168_rule, p)
7139
14.3k
        )
7140
44
        {
7141
44
            D(fprintf(stderr, "%*c+ invalid_fstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs !('=' | '!' | ':' | '}')"));
7142
44
            _res = PyErr_Occurred ( ) ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: expecting '=', or '!', or ':', or '}'" );
7143
44
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7144
44
                p->error_indicator = 1;
7145
44
                p->level--;
7146
44
                return NULL;
7147
44
            }
7148
0
            goto done;
7149
44
        }
7150
14.3k
        p->mark = _mark;
7151
14.3k
        D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7152
14.3k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs !('=' | '!' | ':' | '}')"));
7153
14.3k
    }
7154
0
    { // '{' annotated_rhs '=' !('!' | ':' | '}')
7155
14.3k
        if (p->error_indicator) {
7156
0
            p->level--;
7157
0
            return NULL;
7158
0
        }
7159
14.3k
        D(fprintf(stderr, "%*c> invalid_fstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '=' !('!' | ':' | '}')"));
7160
14.3k
        Token * _literal;
7161
14.3k
        Token * _literal_1;
7162
14.3k
        expr_ty annotated_rhs_var;
7163
14.3k
        if (
7164
14.3k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7165
103
            &&
7166
103
            (annotated_rhs_var = annotated_rhs_rule(p))  // annotated_rhs
7167
103
            &&
7168
103
            (_literal_1 = _PyPegen_expect_token(p, 22))  // token='='
7169
18
            &&
7170
18
            _PyPegen_lookahead(0, _tmp_169_rule, p)
7171
14.3k
        )
7172
16
        {
7173
16
            D(fprintf(stderr, "%*c+ invalid_fstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '=' !('!' | ':' | '}')"));
7174
16
            _res = PyErr_Occurred ( ) ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: expecting '!', or ':', or '}'" );
7175
16
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7176
16
                p->error_indicator = 1;
7177
16
                p->level--;
7178
16
                return NULL;
7179
16
            }
7180
0
            goto done;
7181
16
        }
7182
14.3k
        p->mark = _mark;
7183
14.3k
        D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7184
14.3k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '=' !('!' | ':' | '}')"));
7185
14.3k
    }
7186
0
    { // '{' annotated_rhs '='? invalid_fstring_conversion_character
7187
14.3k
        if (p->error_indicator) {
7188
0
            p->level--;
7189
0
            return NULL;
7190
0
        }
7191
14.3k
        D(fprintf(stderr, "%*c> invalid_fstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? invalid_fstring_conversion_character"));
7192
14.3k
        Token * _literal;
7193
14.3k
        void *_opt_var;
7194
14.3k
        UNUSED(_opt_var); // Silence compiler warnings
7195
14.3k
        expr_ty annotated_rhs_var;
7196
14.3k
        void *invalid_fstring_conversion_character_var;
7197
14.3k
        if (
7198
14.3k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7199
87
            &&
7200
87
            (annotated_rhs_var = annotated_rhs_rule(p))  // annotated_rhs
7201
87
            &&
7202
87
            (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator)  // '='?
7203
87
            &&
7204
87
            (invalid_fstring_conversion_character_var = invalid_fstring_conversion_character_rule(p))  // invalid_fstring_conversion_character
7205
14.3k
        )
7206
0
        {
7207
0
            D(fprintf(stderr, "%*c+ invalid_fstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? invalid_fstring_conversion_character"));
7208
0
            _res = _PyPegen_dummy_name(p, _literal, annotated_rhs_var, _opt_var, invalid_fstring_conversion_character_var);
7209
0
            goto done;
7210
0
        }
7211
14.3k
        p->mark = _mark;
7212
14.3k
        D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7213
14.3k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? invalid_fstring_conversion_character"));
7214
14.3k
    }
7215
0
    { // '{' annotated_rhs '='? ['!' NAME] !(':' | '}')
7216
14.3k
        if (p->error_indicator) {
7217
6
            p->level--;
7218
6
            return NULL;
7219
6
        }
7220
14.3k
        D(fprintf(stderr, "%*c> invalid_fstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !(':' | '}')"));
7221
14.3k
        Token * _literal;
7222
14.3k
        void *_opt_var;
7223
14.3k
        UNUSED(_opt_var); // Silence compiler warnings
7224
14.3k
        void *_opt_var_1;
7225
14.3k
        UNUSED(_opt_var_1); // Silence compiler warnings
7226
14.3k
        expr_ty annotated_rhs_var;
7227
14.3k
        if (
7228
14.3k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7229
81
            &&
7230
81
            (annotated_rhs_var = annotated_rhs_rule(p))  // annotated_rhs
7231
81
            &&
7232
81
            (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator)  // '='?
7233
81
            &&
7234
81
            (_opt_var_1 = _tmp_170_rule(p), !p->error_indicator)  // ['!' NAME]
7235
81
            &&
7236
81
            _PyPegen_lookahead(0, _tmp_171_rule, p)
7237
14.3k
        )
7238
4
        {
7239
4
            D(fprintf(stderr, "%*c+ invalid_fstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !(':' | '}')"));
7240
4
            _res = PyErr_Occurred ( ) ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: expecting ':' or '}'" );
7241
4
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7242
4
                p->error_indicator = 1;
7243
4
                p->level--;
7244
4
                return NULL;
7245
4
            }
7246
0
            goto done;
7247
4
        }
7248
14.3k
        p->mark = _mark;
7249
14.3k
        D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7250
14.3k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !(':' | '}')"));
7251
14.3k
    }
7252
0
    { // '{' annotated_rhs '='? ['!' NAME] ':' fstring_format_spec* !'}'
7253
14.3k
        if (p->error_indicator) {
7254
0
            p->level--;
7255
0
            return NULL;
7256
0
        }
7257
14.3k
        D(fprintf(stderr, "%*c> invalid_fstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] ':' fstring_format_spec* !'}'"));
7258
14.3k
        Token * _literal;
7259
14.3k
        Token * _literal_1;
7260
14.3k
        asdl_seq * _loop0_172_var;
7261
14.3k
        void *_opt_var;
7262
14.3k
        UNUSED(_opt_var); // Silence compiler warnings
7263
14.3k
        void *_opt_var_1;
7264
14.3k
        UNUSED(_opt_var_1); // Silence compiler warnings
7265
14.3k
        expr_ty annotated_rhs_var;
7266
14.3k
        if (
7267
14.3k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7268
77
            &&
7269
77
            (annotated_rhs_var = annotated_rhs_rule(p))  // annotated_rhs
7270
77
            &&
7271
77
            (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator)  // '='?
7272
77
            &&
7273
77
            (_opt_var_1 = _tmp_170_rule(p), !p->error_indicator)  // ['!' NAME]
7274
77
            &&
7275
77
            (_literal_1 = _PyPegen_expect_token(p, 11))  // token=':'
7276
77
            &&
7277
77
            (_loop0_172_var = _loop0_172_rule(p))  // fstring_format_spec*
7278
77
            &&
7279
77
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 26)  // token='}'
7280
14.3k
        )
7281
77
        {
7282
77
            D(fprintf(stderr, "%*c+ invalid_fstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] ':' fstring_format_spec* !'}'"));
7283
77
            _res = PyErr_Occurred ( ) ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: expecting '}', or format specs" );
7284
77
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7285
77
                p->error_indicator = 1;
7286
77
                p->level--;
7287
77
                return NULL;
7288
77
            }
7289
0
            goto done;
7290
77
        }
7291
14.2k
        p->mark = _mark;
7292
14.2k
        D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7293
14.2k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] ':' fstring_format_spec* !'}'"));
7294
14.2k
    }
7295
0
    { // '{' annotated_rhs '='? ['!' NAME] !'}'
7296
14.2k
        if (p->error_indicator) {
7297
0
            p->level--;
7298
0
            return NULL;
7299
0
        }
7300
14.2k
        D(fprintf(stderr, "%*c> invalid_fstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !'}'"));
7301
14.2k
        Token * _literal;
7302
14.2k
        void *_opt_var;
7303
14.2k
        UNUSED(_opt_var); // Silence compiler warnings
7304
14.2k
        void *_opt_var_1;
7305
14.2k
        UNUSED(_opt_var_1); // Silence compiler warnings
7306
14.2k
        expr_ty annotated_rhs_var;
7307
14.2k
        if (
7308
14.2k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7309
0
            &&
7310
0
            (annotated_rhs_var = annotated_rhs_rule(p))  // annotated_rhs
7311
0
            &&
7312
0
            (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator)  // '='?
7313
0
            &&
7314
0
            (_opt_var_1 = _tmp_170_rule(p), !p->error_indicator)  // ['!' NAME]
7315
0
            &&
7316
0
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 26)  // token='}'
7317
14.2k
        )
7318
0
        {
7319
0
            D(fprintf(stderr, "%*c+ invalid_fstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !'}'"));
7320
0
            _res = PyErr_Occurred ( ) ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: expecting '}'" );
7321
0
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7322
0
                p->error_indicator = 1;
7323
0
                p->level--;
7324
0
                return NULL;
7325
0
            }
7326
0
            goto done;
7327
0
        }
7328
14.2k
        p->mark = _mark;
7329
14.2k
        D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7330
14.2k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !'}'"));
7331
14.2k
    }
7332
14.2k
    _res = NULL;
7333
14.2k
  done:
7334
14.2k
    p->level--;
7335
14.2k
    return _res;
7336
14.2k
}
7337
7338
// invalid_fstring_conversion_character: '!' &(':' | '}') | '!' !NAME
7339
static void *
7340
invalid_fstring_conversion_character_rule(Parser *p)
7341
87
{
7342
87
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
7343
0
        _Pypegen_stack_overflow(p);
7344
0
    }
7345
87
    if (p->error_indicator) {
7346
0
        p->level--;
7347
0
        return NULL;
7348
0
    }
7349
87
    void * _res = NULL;
7350
87
    int _mark = p->mark;
7351
87
    { // '!' &(':' | '}')
7352
87
        if (p->error_indicator) {
7353
0
            p->level--;
7354
0
            return NULL;
7355
0
        }
7356
87
        D(fprintf(stderr, "%*c> invalid_fstring_conversion_character[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' &(':' | '}')"));
7357
87
        Token * _literal;
7358
87
        if (
7359
87
            (_literal = _PyPegen_expect_token(p, 54))  // token='!'
7360
14
            &&
7361
14
            _PyPegen_lookahead(1, _tmp_171_rule, p)
7362
87
        )
7363
1
        {
7364
1
            D(fprintf(stderr, "%*c+ invalid_fstring_conversion_character[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' &(':' | '}')"));
7365
1
            _res = RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: missing conversion character" );
7366
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7367
1
                p->error_indicator = 1;
7368
1
                p->level--;
7369
1
                return NULL;
7370
1
            }
7371
0
            goto done;
7372
1
        }
7373
86
        p->mark = _mark;
7374
86
        D(fprintf(stderr, "%*c%s invalid_fstring_conversion_character[%d-%d]: %s failed!\n", p->level, ' ',
7375
86
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' &(':' | '}')"));
7376
86
    }
7377
0
    { // '!' !NAME
7378
86
        if (p->error_indicator) {
7379
0
            p->level--;
7380
0
            return NULL;
7381
0
        }
7382
86
        D(fprintf(stderr, "%*c> invalid_fstring_conversion_character[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' !NAME"));
7383
86
        Token * _literal;
7384
86
        if (
7385
86
            (_literal = _PyPegen_expect_token(p, 54))  // token='!'
7386
13
            &&
7387
13
            _PyPegen_lookahead_for_expr(0, _PyPegen_name_token, p)
7388
86
        )
7389
5
        {
7390
5
            D(fprintf(stderr, "%*c+ invalid_fstring_conversion_character[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' !NAME"));
7391
5
            _res = RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "f-string: invalid conversion character" );
7392
5
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7393
5
                p->error_indicator = 1;
7394
5
                p->level--;
7395
5
                return NULL;
7396
5
            }
7397
0
            goto done;
7398
5
        }
7399
81
        p->mark = _mark;
7400
81
        D(fprintf(stderr, "%*c%s invalid_fstring_conversion_character[%d-%d]: %s failed!\n", p->level, ' ',
7401
81
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' !NAME"));
7402
81
    }
7403
81
    _res = NULL;
7404
81
  done:
7405
81
    p->level--;
7406
81
    return _res;
7407
81
}
7408
7409
// invalid_tstring_replacement_field:
7410
//     | '{' '='
7411
//     | '{' '!'
7412
//     | '{' ':'
7413
//     | '{' '}'
7414
//     | '{' !annotated_rhs
7415
//     | '{' annotated_rhs !('=' | '!' | ':' | '}')
7416
//     | '{' annotated_rhs '=' !('!' | ':' | '}')
7417
//     | '{' annotated_rhs '='? invalid_tstring_conversion_character
7418
//     | '{' annotated_rhs '='? ['!' NAME] !(':' | '}')
7419
//     | '{' annotated_rhs '='? ['!' NAME] ':' fstring_format_spec* !'}'
7420
//     | '{' annotated_rhs '='? ['!' NAME] !'}'
7421
Py_LOCAL_SYMBOL void *
7422
invalid_tstring_replacement_field_rule(Parser *p)
7423
4.71k
{
7424
4.71k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
7425
1
        _Pypegen_stack_overflow(p);
7426
1
    }
7427
4.71k
    if (p->error_indicator) {
7428
1
        p->level--;
7429
1
        return NULL;
7430
1
    }
7431
4.71k
    void * _res = NULL;
7432
4.71k
    int _mark = p->mark;
7433
4.71k
    { // '{' '='
7434
4.71k
        if (p->error_indicator) {
7435
0
            p->level--;
7436
0
            return NULL;
7437
0
        }
7438
4.71k
        D(fprintf(stderr, "%*c> invalid_tstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '='"));
7439
4.71k
        Token * _literal;
7440
4.71k
        Token * a;
7441
4.71k
        if (
7442
4.71k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7443
195
            &&
7444
195
            (a = _PyPegen_expect_token(p, 22))  // token='='
7445
4.71k
        )
7446
9
        {
7447
9
            D(fprintf(stderr, "%*c+ invalid_tstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '='"));
7448
9
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "t-string: valid expression required before '='" );
7449
9
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7450
9
                p->error_indicator = 1;
7451
9
                p->level--;
7452
9
                return NULL;
7453
9
            }
7454
0
            goto done;
7455
9
        }
7456
4.70k
        p->mark = _mark;
7457
4.70k
        D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7458
4.70k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '='"));
7459
4.70k
    }
7460
0
    { // '{' '!'
7461
4.70k
        if (p->error_indicator) {
7462
0
            p->level--;
7463
0
            return NULL;
7464
0
        }
7465
4.70k
        D(fprintf(stderr, "%*c> invalid_tstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '!'"));
7466
4.70k
        Token * _literal;
7467
4.70k
        Token * a;
7468
4.70k
        if (
7469
4.70k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7470
186
            &&
7471
186
            (a = _PyPegen_expect_token(p, 54))  // token='!'
7472
4.70k
        )
7473
10
        {
7474
10
            D(fprintf(stderr, "%*c+ invalid_tstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '!'"));
7475
10
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "t-string: valid expression required before '!'" );
7476
10
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7477
10
                p->error_indicator = 1;
7478
10
                p->level--;
7479
10
                return NULL;
7480
10
            }
7481
0
            goto done;
7482
10
        }
7483
4.69k
        p->mark = _mark;
7484
4.69k
        D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7485
4.69k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '!'"));
7486
4.69k
    }
7487
0
    { // '{' ':'
7488
4.69k
        if (p->error_indicator) {
7489
0
            p->level--;
7490
0
            return NULL;
7491
0
        }
7492
4.69k
        D(fprintf(stderr, "%*c> invalid_tstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' ':'"));
7493
4.69k
        Token * _literal;
7494
4.69k
        Token * a;
7495
4.69k
        if (
7496
4.69k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7497
176
            &&
7498
176
            (a = _PyPegen_expect_token(p, 11))  // token=':'
7499
4.69k
        )
7500
16
        {
7501
16
            D(fprintf(stderr, "%*c+ invalid_tstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' ':'"));
7502
16
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "t-string: valid expression required before ':'" );
7503
16
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7504
16
                p->error_indicator = 1;
7505
16
                p->level--;
7506
16
                return NULL;
7507
16
            }
7508
0
            goto done;
7509
16
        }
7510
4.68k
        p->mark = _mark;
7511
4.68k
        D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7512
4.68k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' ':'"));
7513
4.68k
    }
7514
0
    { // '{' '}'
7515
4.68k
        if (p->error_indicator) {
7516
0
            p->level--;
7517
0
            return NULL;
7518
0
        }
7519
4.68k
        D(fprintf(stderr, "%*c> invalid_tstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
7520
4.68k
        Token * _literal;
7521
4.68k
        Token * a;
7522
4.68k
        if (
7523
4.68k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7524
160
            &&
7525
160
            (a = _PyPegen_expect_token(p, 26))  // token='}'
7526
4.68k
        )
7527
29
        {
7528
29
            D(fprintf(stderr, "%*c+ invalid_tstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
7529
29
            _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "t-string: valid expression required before '}'" );
7530
29
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7531
29
                p->error_indicator = 1;
7532
29
                p->level--;
7533
29
                return NULL;
7534
29
            }
7535
0
            goto done;
7536
29
        }
7537
4.65k
        p->mark = _mark;
7538
4.65k
        D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7539
4.65k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
7540
4.65k
    }
7541
0
    { // '{' !annotated_rhs
7542
4.65k
        if (p->error_indicator) {
7543
0
            p->level--;
7544
0
            return NULL;
7545
0
        }
7546
4.65k
        D(fprintf(stderr, "%*c> invalid_tstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' !annotated_rhs"));
7547
4.65k
        Token * _literal;
7548
4.65k
        if (
7549
4.65k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7550
131
            &&
7551
131
            _PyPegen_lookahead_for_expr(0, annotated_rhs_rule, p)
7552
4.65k
        )
7553
44
        {
7554
44
            D(fprintf(stderr, "%*c+ invalid_tstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' !annotated_rhs"));
7555
44
            _res = RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "t-string: expecting a valid expression after '{'" );
7556
44
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7557
44
                p->error_indicator = 1;
7558
44
                p->level--;
7559
44
                return NULL;
7560
44
            }
7561
0
            goto done;
7562
44
        }
7563
4.60k
        p->mark = _mark;
7564
4.60k
        D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7565
4.60k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' !annotated_rhs"));
7566
4.60k
    }
7567
0
    { // '{' annotated_rhs !('=' | '!' | ':' | '}')
7568
4.60k
        if (p->error_indicator) {
7569
0
            p->level--;
7570
0
            return NULL;
7571
0
        }
7572
4.60k
        D(fprintf(stderr, "%*c> invalid_tstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs !('=' | '!' | ':' | '}')"));
7573
4.60k
        Token * _literal;
7574
4.60k
        expr_ty annotated_rhs_var;
7575
4.60k
        if (
7576
4.60k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7577
87
            &&
7578
87
            (annotated_rhs_var = annotated_rhs_rule(p))  // annotated_rhs
7579
87
            &&
7580
87
            _PyPegen_lookahead(0, _tmp_168_rule, p)
7581
4.60k
        )
7582
32
        {
7583
32
            D(fprintf(stderr, "%*c+ invalid_tstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs !('=' | '!' | ':' | '}')"));
7584
32
            _res = PyErr_Occurred ( ) ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "t-string: expecting '=', or '!', or ':', or '}'" );
7585
32
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7586
32
                p->error_indicator = 1;
7587
32
                p->level--;
7588
32
                return NULL;
7589
32
            }
7590
0
            goto done;
7591
32
        }
7592
4.57k
        p->mark = _mark;
7593
4.57k
        D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7594
4.57k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs !('=' | '!' | ':' | '}')"));
7595
4.57k
    }
7596
0
    { // '{' annotated_rhs '=' !('!' | ':' | '}')
7597
4.57k
        if (p->error_indicator) {
7598
0
            p->level--;
7599
0
            return NULL;
7600
0
        }
7601
4.57k
        D(fprintf(stderr, "%*c> invalid_tstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '=' !('!' | ':' | '}')"));
7602
4.57k
        Token * _literal;
7603
4.57k
        Token * _literal_1;
7604
4.57k
        expr_ty annotated_rhs_var;
7605
4.57k
        if (
7606
4.57k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7607
55
            &&
7608
55
            (annotated_rhs_var = annotated_rhs_rule(p))  // annotated_rhs
7609
55
            &&
7610
55
            (_literal_1 = _PyPegen_expect_token(p, 22))  // token='='
7611
16
            &&
7612
16
            _PyPegen_lookahead(0, _tmp_169_rule, p)
7613
4.57k
        )
7614
13
        {
7615
13
            D(fprintf(stderr, "%*c+ invalid_tstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '=' !('!' | ':' | '}')"));
7616
13
            _res = PyErr_Occurred ( ) ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "t-string: expecting '!', or ':', or '}'" );
7617
13
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7618
13
                p->error_indicator = 1;
7619
13
                p->level--;
7620
13
                return NULL;
7621
13
            }
7622
0
            goto done;
7623
13
        }
7624
4.56k
        p->mark = _mark;
7625
4.56k
        D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7626
4.56k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '=' !('!' | ':' | '}')"));
7627
4.56k
    }
7628
0
    { // '{' annotated_rhs '='? invalid_tstring_conversion_character
7629
4.56k
        if (p->error_indicator) {
7630
0
            p->level--;
7631
0
            return NULL;
7632
0
        }
7633
4.56k
        D(fprintf(stderr, "%*c> invalid_tstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? invalid_tstring_conversion_character"));
7634
4.56k
        Token * _literal;
7635
4.56k
        void *_opt_var;
7636
4.56k
        UNUSED(_opt_var); // Silence compiler warnings
7637
4.56k
        expr_ty annotated_rhs_var;
7638
4.56k
        void *invalid_tstring_conversion_character_var;
7639
4.56k
        if (
7640
4.56k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7641
42
            &&
7642
42
            (annotated_rhs_var = annotated_rhs_rule(p))  // annotated_rhs
7643
42
            &&
7644
42
            (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator)  // '='?
7645
42
            &&
7646
42
            (invalid_tstring_conversion_character_var = invalid_tstring_conversion_character_rule(p))  // invalid_tstring_conversion_character
7647
4.56k
        )
7648
0
        {
7649
0
            D(fprintf(stderr, "%*c+ invalid_tstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? invalid_tstring_conversion_character"));
7650
0
            _res = _PyPegen_dummy_name(p, _literal, annotated_rhs_var, _opt_var, invalid_tstring_conversion_character_var);
7651
0
            goto done;
7652
0
        }
7653
4.56k
        p->mark = _mark;
7654
4.56k
        D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7655
4.56k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? invalid_tstring_conversion_character"));
7656
4.56k
    }
7657
0
    { // '{' annotated_rhs '='? ['!' NAME] !(':' | '}')
7658
4.56k
        if (p->error_indicator) {
7659
3
            p->level--;
7660
3
            return NULL;
7661
3
        }
7662
4.56k
        D(fprintf(stderr, "%*c> invalid_tstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !(':' | '}')"));
7663
4.56k
        Token * _literal;
7664
4.56k
        void *_opt_var;
7665
4.56k
        UNUSED(_opt_var); // Silence compiler warnings
7666
4.56k
        void *_opt_var_1;
7667
4.56k
        UNUSED(_opt_var_1); // Silence compiler warnings
7668
4.56k
        expr_ty annotated_rhs_var;
7669
4.56k
        if (
7670
4.56k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7671
39
            &&
7672
39
            (annotated_rhs_var = annotated_rhs_rule(p))  // annotated_rhs
7673
39
            &&
7674
39
            (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator)  // '='?
7675
39
            &&
7676
39
            (_opt_var_1 = _tmp_170_rule(p), !p->error_indicator)  // ['!' NAME]
7677
39
            &&
7678
39
            _PyPegen_lookahead(0, _tmp_171_rule, p)
7679
4.56k
        )
7680
2
        {
7681
2
            D(fprintf(stderr, "%*c+ invalid_tstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !(':' | '}')"));
7682
2
            _res = PyErr_Occurred ( ) ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "t-string: expecting ':' or '}'" );
7683
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7684
2
                p->error_indicator = 1;
7685
2
                p->level--;
7686
2
                return NULL;
7687
2
            }
7688
0
            goto done;
7689
2
        }
7690
4.55k
        p->mark = _mark;
7691
4.55k
        D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7692
4.55k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !(':' | '}')"));
7693
4.55k
    }
7694
0
    { // '{' annotated_rhs '='? ['!' NAME] ':' fstring_format_spec* !'}'
7695
4.55k
        if (p->error_indicator) {
7696
0
            p->level--;
7697
0
            return NULL;
7698
0
        }
7699
4.55k
        D(fprintf(stderr, "%*c> invalid_tstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] ':' fstring_format_spec* !'}'"));
7700
4.55k
        Token * _literal;
7701
4.55k
        Token * _literal_1;
7702
4.55k
        asdl_seq * _loop0_172_var;
7703
4.55k
        void *_opt_var;
7704
4.55k
        UNUSED(_opt_var); // Silence compiler warnings
7705
4.55k
        void *_opt_var_1;
7706
4.55k
        UNUSED(_opt_var_1); // Silence compiler warnings
7707
4.55k
        expr_ty annotated_rhs_var;
7708
4.55k
        if (
7709
4.55k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7710
37
            &&
7711
37
            (annotated_rhs_var = annotated_rhs_rule(p))  // annotated_rhs
7712
37
            &&
7713
37
            (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator)  // '='?
7714
37
            &&
7715
37
            (_opt_var_1 = _tmp_170_rule(p), !p->error_indicator)  // ['!' NAME]
7716
37
            &&
7717
37
            (_literal_1 = _PyPegen_expect_token(p, 11))  // token=':'
7718
37
            &&
7719
37
            (_loop0_172_var = _loop0_172_rule(p))  // fstring_format_spec*
7720
37
            &&
7721
37
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 26)  // token='}'
7722
4.55k
        )
7723
37
        {
7724
37
            D(fprintf(stderr, "%*c+ invalid_tstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] ':' fstring_format_spec* !'}'"));
7725
37
            _res = PyErr_Occurred ( ) ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "t-string: expecting '}', or format specs" );
7726
37
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7727
37
                p->error_indicator = 1;
7728
37
                p->level--;
7729
37
                return NULL;
7730
37
            }
7731
0
            goto done;
7732
37
        }
7733
4.52k
        p->mark = _mark;
7734
4.52k
        D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7735
4.52k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] ':' fstring_format_spec* !'}'"));
7736
4.52k
    }
7737
0
    { // '{' annotated_rhs '='? ['!' NAME] !'}'
7738
4.52k
        if (p->error_indicator) {
7739
0
            p->level--;
7740
0
            return NULL;
7741
0
        }
7742
4.52k
        D(fprintf(stderr, "%*c> invalid_tstring_replacement_field[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !'}'"));
7743
4.52k
        Token * _literal;
7744
4.52k
        void *_opt_var;
7745
4.52k
        UNUSED(_opt_var); // Silence compiler warnings
7746
4.52k
        void *_opt_var_1;
7747
4.52k
        UNUSED(_opt_var_1); // Silence compiler warnings
7748
4.52k
        expr_ty annotated_rhs_var;
7749
4.52k
        if (
7750
4.52k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
7751
0
            &&
7752
0
            (annotated_rhs_var = annotated_rhs_rule(p))  // annotated_rhs
7753
0
            &&
7754
0
            (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator)  // '='?
7755
0
            &&
7756
0
            (_opt_var_1 = _tmp_170_rule(p), !p->error_indicator)  // ['!' NAME]
7757
0
            &&
7758
0
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 26)  // token='}'
7759
4.52k
        )
7760
0
        {
7761
0
            D(fprintf(stderr, "%*c+ invalid_tstring_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !'}'"));
7762
0
            _res = PyErr_Occurred ( ) ? NULL : RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "t-string: expecting '}'" );
7763
0
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7764
0
                p->error_indicator = 1;
7765
0
                p->level--;
7766
0
                return NULL;
7767
0
            }
7768
0
            goto done;
7769
0
        }
7770
4.52k
        p->mark = _mark;
7771
4.52k
        D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ',
7772
4.52k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !'}'"));
7773
4.52k
    }
7774
4.52k
    _res = NULL;
7775
4.52k
  done:
7776
4.52k
    p->level--;
7777
4.52k
    return _res;
7778
4.52k
}
7779
7780
// invalid_tstring_conversion_character: '!' &(':' | '}') | '!' !NAME
7781
static void *
7782
invalid_tstring_conversion_character_rule(Parser *p)
7783
42
{
7784
42
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
7785
0
        _Pypegen_stack_overflow(p);
7786
0
    }
7787
42
    if (p->error_indicator) {
7788
0
        p->level--;
7789
0
        return NULL;
7790
0
    }
7791
42
    void * _res = NULL;
7792
42
    int _mark = p->mark;
7793
42
    { // '!' &(':' | '}')
7794
42
        if (p->error_indicator) {
7795
0
            p->level--;
7796
0
            return NULL;
7797
0
        }
7798
42
        D(fprintf(stderr, "%*c> invalid_tstring_conversion_character[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' &(':' | '}')"));
7799
42
        Token * _literal;
7800
42
        if (
7801
42
            (_literal = _PyPegen_expect_token(p, 54))  // token='!'
7802
7
            &&
7803
7
            _PyPegen_lookahead(1, _tmp_171_rule, p)
7804
42
        )
7805
2
        {
7806
2
            D(fprintf(stderr, "%*c+ invalid_tstring_conversion_character[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' &(':' | '}')"));
7807
2
            _res = RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "t-string: missing conversion character" );
7808
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7809
2
                p->error_indicator = 1;
7810
2
                p->level--;
7811
2
                return NULL;
7812
2
            }
7813
0
            goto done;
7814
2
        }
7815
40
        p->mark = _mark;
7816
40
        D(fprintf(stderr, "%*c%s invalid_tstring_conversion_character[%d-%d]: %s failed!\n", p->level, ' ',
7817
40
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' &(':' | '}')"));
7818
40
    }
7819
0
    { // '!' !NAME
7820
40
        if (p->error_indicator) {
7821
0
            p->level--;
7822
0
            return NULL;
7823
0
        }
7824
40
        D(fprintf(stderr, "%*c> invalid_tstring_conversion_character[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' !NAME"));
7825
40
        Token * _literal;
7826
40
        if (
7827
40
            (_literal = _PyPegen_expect_token(p, 54))  // token='!'
7828
5
            &&
7829
5
            _PyPegen_lookahead_for_expr(0, _PyPegen_name_token, p)
7830
40
        )
7831
1
        {
7832
1
            D(fprintf(stderr, "%*c+ invalid_tstring_conversion_character[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' !NAME"));
7833
1
            _res = RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "t-string: invalid conversion character" );
7834
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7835
1
                p->error_indicator = 1;
7836
1
                p->level--;
7837
1
                return NULL;
7838
1
            }
7839
0
            goto done;
7840
1
        }
7841
39
        p->mark = _mark;
7842
39
        D(fprintf(stderr, "%*c%s invalid_tstring_conversion_character[%d-%d]: %s failed!\n", p->level, ' ',
7843
39
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' !NAME"));
7844
39
    }
7845
39
    _res = NULL;
7846
39
  done:
7847
39
    p->level--;
7848
39
    return _res;
7849
39
}
7850
7851
// invalid_string_tstring_concat:
7852
//     | ((fstring | string))+ tstring
7853
//     | tstring+ (fstring | string)
7854
Py_LOCAL_SYMBOL void *
7855
invalid_string_tstring_concat_rule(Parser *p)
7856
33.3k
{
7857
33.3k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
7858
1
        _Pypegen_stack_overflow(p);
7859
1
    }
7860
33.3k
    if (p->error_indicator) {
7861
1
        p->level--;
7862
1
        return NULL;
7863
1
    }
7864
33.3k
    void * _res = NULL;
7865
33.3k
    int _mark = p->mark;
7866
33.3k
    { // ((fstring | string))+ tstring
7867
33.3k
        if (p->error_indicator) {
7868
0
            p->level--;
7869
0
            return NULL;
7870
0
        }
7871
33.3k
        D(fprintf(stderr, "%*c> invalid_string_tstring_concat[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((fstring | string))+ tstring"));
7872
33.3k
        asdl_seq * a;
7873
33.3k
        expr_ty b;
7874
33.3k
        if (
7875
33.3k
            (a = _loop1_173_rule(p))  // ((fstring | string))+
7876
6.83k
            &&
7877
6.83k
            (b = (expr_ty)tstring_rule(p))  // tstring
7878
33.3k
        )
7879
1
        {
7880
1
            D(fprintf(stderr, "%*c+ invalid_string_tstring_concat[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((fstring | string))+ tstring"));
7881
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( PyPegen_last_item ( a , expr_ty ) , b , "cannot mix t-string literals with string or bytes literals" );
7882
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7883
1
                p->error_indicator = 1;
7884
1
                p->level--;
7885
1
                return NULL;
7886
1
            }
7887
0
            goto done;
7888
1
        }
7889
33.3k
        p->mark = _mark;
7890
33.3k
        D(fprintf(stderr, "%*c%s invalid_string_tstring_concat[%d-%d]: %s failed!\n", p->level, ' ',
7891
33.3k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((fstring | string))+ tstring"));
7892
33.3k
    }
7893
0
    { // tstring+ (fstring | string)
7894
33.3k
        if (p->error_indicator) {
7895
4.04k
            p->level--;
7896
4.04k
            return NULL;
7897
4.04k
        }
7898
29.2k
        D(fprintf(stderr, "%*c> invalid_string_tstring_concat[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tstring+ (fstring | string)"));
7899
29.2k
        asdl_seq * a;
7900
29.2k
        expr_ty b;
7901
29.2k
        if (
7902
29.2k
            (a = _loop1_174_rule(p))  // tstring+
7903
571
            &&
7904
571
            (b = (expr_ty)_tmp_175_rule(p))  // fstring | string
7905
29.2k
        )
7906
6
        {
7907
6
            D(fprintf(stderr, "%*c+ invalid_string_tstring_concat[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tstring+ (fstring | string)"));
7908
6
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( PyPegen_last_item ( a , expr_ty ) , b , "cannot mix t-string literals with string or bytes literals" );
7909
6
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7910
6
                p->error_indicator = 1;
7911
6
                p->level--;
7912
6
                return NULL;
7913
6
            }
7914
0
            goto done;
7915
6
        }
7916
29.2k
        p->mark = _mark;
7917
29.2k
        D(fprintf(stderr, "%*c%s invalid_string_tstring_concat[%d-%d]: %s failed!\n", p->level, ' ',
7918
29.2k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tstring+ (fstring | string)"));
7919
29.2k
    }
7920
29.2k
    _res = NULL;
7921
29.2k
  done:
7922
29.2k
    p->level--;
7923
29.2k
    return _res;
7924
29.2k
}
7925
7926
// Left-recursive
7927
// invalid_arithmetic: sum ('+' | '-' | '*' | '/' | '%' | '//' | '@') 'not' inversion
7928
Py_LOCAL_SYMBOL void *
7929
invalid_arithmetic_rule(Parser *p)
7930
409k
{
7931
409k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
7932
0
        _Pypegen_stack_overflow(p);
7933
0
    }
7934
409k
    if (p->error_indicator) {
7935
0
        p->level--;
7936
0
        return NULL;
7937
0
    }
7938
409k
    void * _res = NULL;
7939
409k
    int _mark = p->mark;
7940
409k
    { // sum ('+' | '-' | '*' | '/' | '%' | '//' | '@') 'not' inversion
7941
409k
        if (p->error_indicator) {
7942
0
            p->level--;
7943
0
            return NULL;
7944
0
        }
7945
409k
        D(fprintf(stderr, "%*c> invalid_arithmetic[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum ('+' | '-' | '*' | '/' | '%' | '//' | '@') 'not' inversion"));
7946
409k
        void *_tmp_176_var;
7947
409k
        Token * a;
7948
409k
        expr_ty b;
7949
409k
        expr_ty sum_var;
7950
409k
        if (
7951
409k
            (sum_var = sum_rule(p))  // sum
7952
101k
            &&
7953
101k
            (_tmp_176_var = _tmp_176_rule(p))  // '+' | '-' | '*' | '/' | '%' | '//' | '@'
7954
2.92k
            &&
7955
2.92k
            (a = _PyPegen_expect_token(p, 531))  // token='not'
7956
68
            &&
7957
68
            (b = inversion_rule(p))  // inversion
7958
409k
        )
7959
1
        {
7960
1
            D(fprintf(stderr, "%*c+ invalid_arithmetic[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum ('+' | '-' | '*' | '/' | '%' | '//' | '@') 'not' inversion"));
7961
1
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "'not' after an operator must be parenthesized" );
7962
1
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
7963
1
                p->error_indicator = 1;
7964
1
                p->level--;
7965
1
                return NULL;
7966
1
            }
7967
0
            goto done;
7968
1
        }
7969
409k
        p->mark = _mark;
7970
409k
        D(fprintf(stderr, "%*c%s invalid_arithmetic[%d-%d]: %s failed!\n", p->level, ' ',
7971
409k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum ('+' | '-' | '*' | '/' | '%' | '//' | '@') 'not' inversion"));
7972
409k
    }
7973
409k
    _res = NULL;
7974
409k
  done:
7975
409k
    p->level--;
7976
409k
    return _res;
7977
409k
}
7978
7979
// invalid_factor: ('+' | '-' | '~') 'not' factor
7980
Py_LOCAL_SYMBOL void *
7981
invalid_factor_rule(Parser *p)
7982
174k
{
7983
174k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
7984
0
        _Pypegen_stack_overflow(p);
7985
0
    }
7986
174k
    if (p->error_indicator) {
7987
0
        p->level--;
7988
0
        return NULL;
7989
0
    }
7990
174k
    void * _res = NULL;
7991
174k
    int _mark = p->mark;
7992
174k
    { // ('+' | '-' | '~') 'not' factor
7993
174k
        if (p->error_indicator) {
7994
0
            p->level--;
7995
0
            return NULL;
7996
0
        }
7997
174k
        D(fprintf(stderr, "%*c> invalid_factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('+' | '-' | '~') 'not' factor"));
7998
174k
        void *_tmp_177_var;
7999
174k
        Token * a;
8000
174k
        expr_ty b;
8001
174k
        if (
8002
174k
            (_tmp_177_var = _tmp_177_rule(p))  // '+' | '-' | '~'
8003
2.90k
            &&
8004
2.90k
            (a = _PyPegen_expect_token(p, 531))  // token='not'
8005
69
            &&
8006
69
            (b = factor_rule(p))  // factor
8007
174k
        )
8008
2
        {
8009
2
            D(fprintf(stderr, "%*c+ invalid_factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('+' | '-' | '~') 'not' factor"));
8010
2
            _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "'not' after an operator must be parenthesized" );
8011
2
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
8012
2
                p->error_indicator = 1;
8013
2
                p->level--;
8014
2
                return NULL;
8015
2
            }
8016
0
            goto done;
8017
2
        }
8018
174k
        p->mark = _mark;
8019
174k
        D(fprintf(stderr, "%*c%s invalid_factor[%d-%d]: %s failed!\n", p->level, ' ',
8020
174k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('+' | '-' | '~') 'not' factor"));
8021
174k
    }
8022
174k
    _res = NULL;
8023
174k
  done:
8024
174k
    p->level--;
8025
174k
    return _res;
8026
174k
}
8027
8028
// invalid_type_params: '[' ']'
8029
Py_LOCAL_SYMBOL void *
8030
invalid_type_params_rule(Parser *p)
8031
8.28k
{
8032
8.28k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8033
0
        _Pypegen_stack_overflow(p);
8034
0
    }
8035
8.28k
    if (p->error_indicator) {
8036
0
        p->level--;
8037
0
        return NULL;
8038
0
    }
8039
8.28k
    void * _res = NULL;
8040
8.28k
    int _mark = p->mark;
8041
8.28k
    { // '[' ']'
8042
8.28k
        if (p->error_indicator) {
8043
0
            p->level--;
8044
0
            return NULL;
8045
0
        }
8046
8.28k
        D(fprintf(stderr, "%*c> invalid_type_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' ']'"));
8047
8.28k
        Token * _literal;
8048
8.28k
        Token * token;
8049
8.28k
        if (
8050
8.28k
            (_literal = _PyPegen_expect_token(p, 9))  // token='['
8051
1.17k
            &&
8052
1.17k
            (token = _PyPegen_expect_token(p, 10))  // token=']'
8053
8.28k
        )
8054
3
        {
8055
3
            D(fprintf(stderr, "%*c+ invalid_type_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' ']'"));
8056
3
            _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( token , "Type parameter list cannot be empty" );
8057
3
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
8058
3
                p->error_indicator = 1;
8059
3
                p->level--;
8060
3
                return NULL;
8061
3
            }
8062
0
            goto done;
8063
3
        }
8064
8.28k
        p->mark = _mark;
8065
8.28k
        D(fprintf(stderr, "%*c%s invalid_type_params[%d-%d]: %s failed!\n", p->level, ' ',
8066
8.28k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' ']'"));
8067
8.28k
    }
8068
8.28k
    _res = NULL;
8069
8.28k
  done:
8070
8.28k
    p->level--;
8071
8.28k
    return _res;
8072
8.28k
}
8073
8074
// Left-recursive
8075
// invalid_bitwise_and: bitwise_and '&' '&'
8076
Py_LOCAL_SYMBOL void *
8077
invalid_bitwise_and_rule(Parser *p)
8078
404k
{
8079
404k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8080
0
        _Pypegen_stack_overflow(p);
8081
0
    }
8082
404k
    if (p->error_indicator) {
8083
0
        p->level--;
8084
0
        return NULL;
8085
0
    }
8086
404k
    void * _res = NULL;
8087
404k
    int _mark = p->mark;
8088
404k
    { // bitwise_and '&' '&'
8089
404k
        if (p->error_indicator) {
8090
0
            p->level--;
8091
0
            return NULL;
8092
0
        }
8093
404k
        D(fprintf(stderr, "%*c> invalid_bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' '&'"));
8094
404k
        expr_ty a;
8095
404k
        Token * b;
8096
404k
        Token * c;
8097
404k
        if (
8098
404k
            (a = bitwise_and_rule(p))  // bitwise_and
8099
99.9k
            &&
8100
99.9k
            (b = _PyPegen_expect_token(p, 19))  // token='&'
8101
268
            &&
8102
268
            (c = _PyPegen_expect_token(p, 19))  // token='&'
8103
404k
        )
8104
18
        {
8105
18
            D(fprintf(stderr, "%*c+ invalid_bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' '&'"));
8106
18
            _res = _PyPegen_tokens_are_adjacent ( b , c ) ? RAISE_SYNTAX_ERROR_KNOWN_RANGE ( b , c , "invalid syntax.  Maybe you meant 'and' or '&' instead of '&&'?" ) : NULL;
8107
18
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
8108
12
                p->error_indicator = 1;
8109
12
                p->level--;
8110
12
                return NULL;
8111
12
            }
8112
6
            goto done;
8113
18
        }
8114
404k
        p->mark = _mark;
8115
404k
        D(fprintf(stderr, "%*c%s invalid_bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
8116
404k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' '&'"));
8117
404k
    }
8118
404k
    _res = NULL;
8119
404k
  done:
8120
404k
    p->level--;
8121
404k
    return _res;
8122
404k
}
8123
8124
// Left-recursive
8125
// invalid_bitwise_or: bitwise_or '|' '|'
8126
Py_LOCAL_SYMBOL void *
8127
invalid_bitwise_or_rule(Parser *p)
8128
400k
{
8129
400k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8130
0
        _Pypegen_stack_overflow(p);
8131
0
    }
8132
400k
    if (p->error_indicator) {
8133
0
        p->level--;
8134
0
        return NULL;
8135
0
    }
8136
400k
    void * _res = NULL;
8137
400k
    int _mark = p->mark;
8138
400k
    { // bitwise_or '|' '|'
8139
400k
        if (p->error_indicator) {
8140
0
            p->level--;
8141
0
            return NULL;
8142
0
        }
8143
400k
        D(fprintf(stderr, "%*c> invalid_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' '|'"));
8144
400k
        expr_ty a;
8145
400k
        Token * b;
8146
400k
        Token * c;
8147
400k
        if (
8148
400k
            (a = bitwise_or_rule(p))  // bitwise_or
8149
97.9k
            &&
8150
97.9k
            (b = _PyPegen_expect_token(p, 18))  // token='|'
8151
368
            &&
8152
368
            (c = _PyPegen_expect_token(p, 18))  // token='|'
8153
400k
        )
8154
21
        {
8155
21
            D(fprintf(stderr, "%*c+ invalid_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' '|'"));
8156
21
            _res = _PyPegen_tokens_are_adjacent ( b , c ) ? RAISE_SYNTAX_ERROR_KNOWN_RANGE ( b , c , "invalid syntax.  Maybe you meant 'or' or '|' instead of '||'?" ) : NULL;
8157
21
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
8158
14
                p->error_indicator = 1;
8159
14
                p->level--;
8160
14
                return NULL;
8161
14
            }
8162
7
            goto done;
8163
21
        }
8164
400k
        p->mark = _mark;
8165
400k
        D(fprintf(stderr, "%*c%s invalid_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8166
400k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' '|'"));
8167
400k
    }
8168
400k
    _res = NULL;
8169
400k
  done:
8170
400k
    p->level--;
8171
400k
    return _res;
8172
400k
}
8173
8174
// invalid_noteq: '<' '>'
8175
Py_LOCAL_SYMBOL void *
8176
invalid_noteq_rule(Parser *p)
8177
53.7k
{
8178
53.7k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8179
0
        _Pypegen_stack_overflow(p);
8180
0
    }
8181
53.7k
    if (p->error_indicator) {
8182
0
        p->level--;
8183
0
        return NULL;
8184
0
    }
8185
53.7k
    void * _res = NULL;
8186
53.7k
    int _mark = p->mark;
8187
53.7k
    { // '<' '>'
8188
53.7k
        if (p->error_indicator) {
8189
0
            p->level--;
8190
0
            return NULL;
8191
0
        }
8192
53.7k
        D(fprintf(stderr, "%*c> invalid_noteq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' '>'"));
8193
53.7k
        Token * a;
8194
53.7k
        Token * b;
8195
53.7k
        if (
8196
53.7k
            (a = _PyPegen_expect_token(p, 20))  // token='<'
8197
1.24k
            &&
8198
1.24k
            (b = _PyPegen_expect_token(p, 21))  // token='>'
8199
53.7k
        )
8200
16
        {
8201
16
            D(fprintf(stderr, "%*c+ invalid_noteq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' '>'"));
8202
16
            _res = _PyPegen_tokens_are_adjacent ( a , b ) ? RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax.  Maybe you meant '!=' instead of '<>'?" ) : NULL;
8203
16
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
8204
10
                p->error_indicator = 1;
8205
10
                p->level--;
8206
10
                return NULL;
8207
10
            }
8208
6
            goto done;
8209
16
        }
8210
53.7k
        p->mark = _mark;
8211
53.7k
        D(fprintf(stderr, "%*c%s invalid_noteq[%d-%d]: %s failed!\n", p->level, ' ',
8212
53.7k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' '>'"));
8213
53.7k
    }
8214
53.7k
    _res = NULL;
8215
53.7k
  done:
8216
53.7k
    p->level--;
8217
53.7k
    return _res;
8218
53.7k
}
8219
8220
// _tmp_106:
8221
//     | (','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs)
8222
//     | kwargs
8223
static void *
8224
_tmp_106_rule(Parser *p)
8225
8.66k
{
8226
8.66k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8227
0
        _Pypegen_stack_overflow(p);
8228
0
    }
8229
8.66k
    if (p->error_indicator) {
8230
0
        p->level--;
8231
0
        return NULL;
8232
0
    }
8233
8.66k
    void * _res = NULL;
8234
8.66k
    int _mark = p->mark;
8235
8.66k
    { // (','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs)
8236
8.66k
        if (p->error_indicator) {
8237
0
            p->level--;
8238
0
            return NULL;
8239
0
        }
8240
8.66k
        D(fprintf(stderr, "%*c> _tmp_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs)"));
8241
8.66k
        void *_tmp_189_var;
8242
8.66k
        if (
8243
8.66k
            (_tmp_189_var = _tmp_189_rule(p))  // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs
8244
8.66k
        )
8245
312
        {
8246
312
            D(fprintf(stderr, "%*c+ _tmp_106[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs)"));
8247
312
            _res = _tmp_189_var;
8248
312
            goto done;
8249
312
        }
8250
8.35k
        p->mark = _mark;
8251
8.35k
        D(fprintf(stderr, "%*c%s _tmp_106[%d-%d]: %s failed!\n", p->level, ' ',
8252
8.35k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs)"));
8253
8.35k
    }
8254
0
    { // kwargs
8255
8.35k
        if (p->error_indicator) {
8256
0
            p->level--;
8257
0
            return NULL;
8258
0
        }
8259
8.35k
        D(fprintf(stderr, "%*c> _tmp_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
8260
8.35k
        asdl_seq* kwargs_var;
8261
8.35k
        if (
8262
8.35k
            (kwargs_var = kwargs_rule(p))  // kwargs
8263
8.35k
        )
8264
2.56k
        {
8265
2.56k
            D(fprintf(stderr, "%*c+ _tmp_106[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
8266
2.56k
            _res = kwargs_var;
8267
2.56k
            goto done;
8268
2.56k
        }
8269
5.78k
        p->mark = _mark;
8270
5.78k
        D(fprintf(stderr, "%*c%s _tmp_106[%d-%d]: %s failed!\n", p->level, ' ',
8271
5.78k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
8272
5.78k
    }
8273
5.78k
    _res = NULL;
8274
8.66k
  done:
8275
8.66k
    p->level--;
8276
8.66k
    return _res;
8277
5.78k
}
8278
8279
// _loop0_107: ',' (starred_expression !'=')
8280
static asdl_seq *
8281
_loop0_107_rule(Parser *p)
8282
632
{
8283
632
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8284
0
        _Pypegen_stack_overflow(p);
8285
0
    }
8286
632
    if (p->error_indicator) {
8287
0
        p->level--;
8288
0
        return NULL;
8289
0
    }
8290
632
    void *_res = NULL;
8291
632
    int _mark = p->mark;
8292
632
    void **_children = NULL;
8293
632
    Py_ssize_t _children_capacity = 0;
8294
632
    Py_ssize_t _n = 0;
8295
632
    { // ',' (starred_expression !'=')
8296
632
        if (p->error_indicator) {
8297
0
            p->level--;
8298
0
            return NULL;
8299
0
        }
8300
632
        D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression !'=')"));
8301
632
        Token * _literal;
8302
632
        void *elem;
8303
632
        while (
8304
1.67k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
8305
1.67k
            &&
8306
1.67k
            (elem = _tmp_190_rule(p))  // starred_expression !'='
8307
632
        )
8308
1.04k
        {
8309
1.04k
            _res = elem;
8310
1.04k
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
8311
0
                p->error_indicator = 1;
8312
0
                PyMem_Free(_children);
8313
0
                p->level--;
8314
0
                return NULL;
8315
0
            }
8316
1.04k
            if (_n == _children_capacity) {
8317
634
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
8318
0
                    p->error_indicator = 1;
8319
0
                    PyErr_NoMemory();
8320
0
                    PyMem_Free(_children);
8321
0
                    p->level--;
8322
0
                    return NULL;
8323
0
                }
8324
634
            }
8325
1.04k
            _children[_n++] = _res;
8326
1.04k
            _mark = p->mark;
8327
1.04k
        }
8328
632
        p->mark = _mark;
8329
632
        D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
8330
632
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression !'=')"));
8331
632
    }
8332
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
8333
632
    if (!_seq) {
8334
0
        p->error_indicator = 1;
8335
0
        PyErr_NoMemory();
8336
0
        PyMem_Free(_children);
8337
0
        p->level--;
8338
0
        return NULL;
8339
0
    }
8340
1.67k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
8341
632
    PyMem_Free(_children);
8342
632
    p->level--;
8343
632
    return _seq;
8344
632
}
8345
8346
// _gather_108: (starred_expression !'=') _loop0_107
8347
static asdl_seq *
8348
_gather_108_rule(Parser *p)
8349
1.47k
{
8350
1.47k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8351
0
        _Pypegen_stack_overflow(p);
8352
0
    }
8353
1.47k
    if (p->error_indicator) {
8354
0
        p->level--;
8355
0
        return NULL;
8356
0
    }
8357
1.47k
    asdl_seq * _res = NULL;
8358
1.47k
    int _mark = p->mark;
8359
1.47k
    { // (starred_expression !'=') _loop0_107
8360
1.47k
        if (p->error_indicator) {
8361
0
            p->level--;
8362
0
            return NULL;
8363
0
        }
8364
1.47k
        D(fprintf(stderr, "%*c> _gather_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression !'=') _loop0_107"));
8365
1.47k
        void *elem;
8366
1.47k
        asdl_seq * seq;
8367
1.47k
        if (
8368
1.47k
            (elem = _tmp_190_rule(p))  // starred_expression !'='
8369
632
            &&
8370
632
            (seq = _loop0_107_rule(p))  // _loop0_107
8371
1.47k
        )
8372
632
        {
8373
632
            D(fprintf(stderr, "%*c+ _gather_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression !'=') _loop0_107"));
8374
632
            _res = _PyPegen_seq_insert_in_front(p, elem, seq);
8375
632
            goto done;
8376
632
        }
8377
840
        p->mark = _mark;
8378
840
        D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
8379
840
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression !'=') _loop0_107"));
8380
840
    }
8381
840
    _res = NULL;
8382
1.47k
  done:
8383
1.47k
    p->level--;
8384
1.47k
    return _res;
8385
840
}
8386
8387
// _tmp_109: args | expression for_if_clauses
8388
static void *
8389
_tmp_109_rule(Parser *p)
8390
74
{
8391
74
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8392
0
        _Pypegen_stack_overflow(p);
8393
0
    }
8394
74
    if (p->error_indicator) {
8395
0
        p->level--;
8396
0
        return NULL;
8397
0
    }
8398
74
    void * _res = NULL;
8399
74
    int _mark = p->mark;
8400
74
    { // args
8401
74
        if (p->error_indicator) {
8402
0
            p->level--;
8403
0
            return NULL;
8404
0
        }
8405
74
        D(fprintf(stderr, "%*c> _tmp_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
8406
74
        expr_ty args_var;
8407
74
        if (
8408
74
            (args_var = args_rule(p))  // args
8409
74
        )
8410
2
        {
8411
2
            D(fprintf(stderr, "%*c+ _tmp_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
8412
2
            _res = args_var;
8413
2
            goto done;
8414
2
        }
8415
72
        p->mark = _mark;
8416
72
        D(fprintf(stderr, "%*c%s _tmp_109[%d-%d]: %s failed!\n", p->level, ' ',
8417
72
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
8418
72
    }
8419
0
    { // expression for_if_clauses
8420
72
        if (p->error_indicator) {
8421
69
            p->level--;
8422
69
            return NULL;
8423
69
        }
8424
3
        D(fprintf(stderr, "%*c> _tmp_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
8425
3
        expr_ty expression_var;
8426
3
        asdl_comprehension_seq* for_if_clauses_var;
8427
3
        if (
8428
3
            (expression_var = expression_rule(p))  // expression
8429
2
            &&
8430
2
            (for_if_clauses_var = for_if_clauses_rule(p))  // for_if_clauses
8431
3
        )
8432
0
        {
8433
0
            D(fprintf(stderr, "%*c+ _tmp_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
8434
0
            _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
8435
0
            goto done;
8436
0
        }
8437
3
        p->mark = _mark;
8438
3
        D(fprintf(stderr, "%*c%s _tmp_109[%d-%d]: %s failed!\n", p->level, ' ',
8439
3
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
8440
3
    }
8441
3
    _res = NULL;
8442
5
  done:
8443
5
    p->level--;
8444
5
    return _res;
8445
3
}
8446
8447
// _tmp_110: args ','
8448
static void *
8449
_tmp_110_rule(Parser *p)
8450
7.71k
{
8451
7.71k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8452
0
        _Pypegen_stack_overflow(p);
8453
0
    }
8454
7.71k
    if (p->error_indicator) {
8455
0
        p->level--;
8456
0
        return NULL;
8457
0
    }
8458
7.71k
    void * _res = NULL;
8459
7.71k
    int _mark = p->mark;
8460
7.71k
    { // args ','
8461
7.71k
        if (p->error_indicator) {
8462
0
            p->level--;
8463
0
            return NULL;
8464
0
        }
8465
7.71k
        D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','"));
8466
7.71k
        Token * _literal;
8467
7.71k
        expr_ty args_var;
8468
7.71k
        if (
8469
7.71k
            (args_var = args_rule(p))  // args
8470
4.43k
            &&
8471
4.43k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
8472
7.71k
        )
8473
733
        {
8474
733
            D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','"));
8475
733
            _res = _PyPegen_dummy_name(p, args_var, _literal);
8476
733
            goto done;
8477
733
        }
8478
6.97k
        p->mark = _mark;
8479
6.97k
        D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
8480
6.97k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','"));
8481
6.97k
    }
8482
6.97k
    _res = NULL;
8483
7.71k
  done:
8484
7.71k
    p->level--;
8485
7.71k
    return _res;
8486
6.97k
}
8487
8488
// _tmp_111: ',' | ')'
8489
static void *
8490
_tmp_111_rule(Parser *p)
8491
725
{
8492
725
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8493
0
        _Pypegen_stack_overflow(p);
8494
0
    }
8495
725
    if (p->error_indicator) {
8496
0
        p->level--;
8497
0
        return NULL;
8498
0
    }
8499
725
    void * _res = NULL;
8500
725
    int _mark = p->mark;
8501
725
    { // ','
8502
725
        if (p->error_indicator) {
8503
0
            p->level--;
8504
0
            return NULL;
8505
0
        }
8506
725
        D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
8507
725
        Token * _literal;
8508
725
        if (
8509
725
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
8510
725
        )
8511
11
        {
8512
11
            D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
8513
11
            _res = _literal;
8514
11
            goto done;
8515
11
        }
8516
714
        p->mark = _mark;
8517
714
        D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
8518
714
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
8519
714
    }
8520
0
    { // ')'
8521
714
        if (p->error_indicator) {
8522
0
            p->level--;
8523
0
            return NULL;
8524
0
        }
8525
714
        D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
8526
714
        Token * _literal;
8527
714
        if (
8528
714
            (_literal = _PyPegen_expect_token(p, 8))  // token=')'
8529
714
        )
8530
4
        {
8531
4
            D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
8532
4
            _res = _literal;
8533
4
            goto done;
8534
4
        }
8535
710
        p->mark = _mark;
8536
710
        D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
8537
710
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
8538
710
    }
8539
710
    _res = NULL;
8540
725
  done:
8541
725
    p->level--;
8542
725
    return _res;
8543
710
}
8544
8545
// _tmp_112: NAME '='
8546
static void *
8547
_tmp_112_rule(Parser *p)
8548
82.2k
{
8549
82.2k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8550
0
        _Pypegen_stack_overflow(p);
8551
0
    }
8552
82.2k
    if (p->error_indicator) {
8553
0
        p->level--;
8554
0
        return NULL;
8555
0
    }
8556
82.2k
    void * _res = NULL;
8557
82.2k
    int _mark = p->mark;
8558
82.2k
    { // NAME '='
8559
82.2k
        if (p->error_indicator) {
8560
0
            p->level--;
8561
0
            return NULL;
8562
0
        }
8563
82.2k
        D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
8564
82.2k
        Token * _literal;
8565
82.2k
        expr_ty name_var;
8566
82.2k
        if (
8567
82.2k
            (name_var = _PyPegen_name_token(p))  // NAME
8568
21.8k
            &&
8569
21.8k
            (_literal = _PyPegen_expect_token(p, 22))  // token='='
8570
82.2k
        )
8571
12.9k
        {
8572
12.9k
            D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
8573
12.9k
            _res = _PyPegen_dummy_name(p, name_var, _literal);
8574
12.9k
            goto done;
8575
12.9k
        }
8576
69.3k
        p->mark = _mark;
8577
69.3k
        D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
8578
69.3k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
8579
69.3k
    }
8580
69.3k
    _res = NULL;
8581
82.2k
  done:
8582
82.2k
    p->level--;
8583
82.2k
    return _res;
8584
69.3k
}
8585
8586
// _loop1_113: (!STRING expression_without_invalid)
8587
static asdl_seq *
8588
_loop1_113_rule(Parser *p)
8589
2.96k
{
8590
2.96k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8591
0
        _Pypegen_stack_overflow(p);
8592
0
    }
8593
2.96k
    if (p->error_indicator) {
8594
0
        p->level--;
8595
0
        return NULL;
8596
0
    }
8597
2.96k
    void *_res = NULL;
8598
2.96k
    int _mark = p->mark;
8599
2.96k
    void **_children = NULL;
8600
2.96k
    Py_ssize_t _children_capacity = 0;
8601
2.96k
    Py_ssize_t _n = 0;
8602
2.96k
    { // (!STRING expression_without_invalid)
8603
2.96k
        if (p->error_indicator) {
8604
0
            p->level--;
8605
0
            return NULL;
8606
0
        }
8607
2.96k
        D(fprintf(stderr, "%*c> _loop1_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(!STRING expression_without_invalid)"));
8608
2.96k
        void *_tmp_191_var;
8609
2.96k
        while (
8610
5.84k
            (_tmp_191_var = _tmp_191_rule(p))  // !STRING expression_without_invalid
8611
2.96k
        )
8612
2.87k
        {
8613
2.87k
            _res = _tmp_191_var;
8614
2.87k
            if (_n == _children_capacity) {
8615
1.87k
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
8616
0
                    p->error_indicator = 1;
8617
0
                    PyErr_NoMemory();
8618
0
                    PyMem_Free(_children);
8619
0
                    p->level--;
8620
0
                    return NULL;
8621
0
                }
8622
1.87k
            }
8623
2.87k
            _children[_n++] = _res;
8624
2.87k
            _mark = p->mark;
8625
2.87k
        }
8626
2.96k
        p->mark = _mark;
8627
2.96k
        D(fprintf(stderr, "%*c%s _loop1_113[%d-%d]: %s failed!\n", p->level, ' ',
8628
2.96k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(!STRING expression_without_invalid)"));
8629
2.96k
    }
8630
2.96k
    if (_n == 0 || p->error_indicator) {
8631
1.94k
        PyMem_Free(_children);
8632
1.94k
        p->level--;
8633
1.94k
        return NULL;
8634
1.94k
    }
8635
1.01k
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
8636
1.01k
    if (!_seq) {
8637
0
        p->error_indicator = 1;
8638
0
        PyErr_NoMemory();
8639
0
        PyMem_Free(_children);
8640
0
        p->level--;
8641
0
        return NULL;
8642
0
    }
8643
3.66k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
8644
1.01k
    PyMem_Free(_children);
8645
1.01k
    p->level--;
8646
1.01k
    return _seq;
8647
1.01k
}
8648
8649
// _tmp_114: NAME STRING | SOFT_KEYWORD
8650
static void *
8651
_tmp_114_rule(Parser *p)
8652
343k
{
8653
343k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8654
0
        _Pypegen_stack_overflow(p);
8655
0
    }
8656
343k
    if (p->error_indicator) {
8657
0
        p->level--;
8658
0
        return NULL;
8659
0
    }
8660
343k
    void * _res = NULL;
8661
343k
    int _mark = p->mark;
8662
343k
    { // NAME STRING
8663
343k
        if (p->error_indicator) {
8664
0
            p->level--;
8665
0
            return NULL;
8666
0
        }
8667
343k
        D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
8668
343k
        expr_ty name_var;
8669
343k
        expr_ty string_var;
8670
343k
        if (
8671
343k
            (name_var = _PyPegen_name_token(p))  // NAME
8672
79.1k
            &&
8673
79.1k
            (string_var = _PyPegen_string_token(p))  // STRING
8674
343k
        )
8675
624
        {
8676
624
            D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
8677
624
            _res = _PyPegen_dummy_name(p, name_var, string_var);
8678
624
            goto done;
8679
624
        }
8680
342k
        p->mark = _mark;
8681
342k
        D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ',
8682
342k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
8683
342k
    }
8684
0
    { // SOFT_KEYWORD
8685
342k
        if (p->error_indicator) {
8686
0
            p->level--;
8687
0
            return NULL;
8688
0
        }
8689
342k
        D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
8690
342k
        expr_ty soft_keyword_var;
8691
342k
        if (
8692
342k
            (soft_keyword_var = _PyPegen_soft_keyword_token(p))  // SOFT_KEYWORD
8693
342k
        )
8694
6.17k
        {
8695
6.17k
            D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
8696
6.17k
            _res = soft_keyword_var;
8697
6.17k
            goto done;
8698
6.17k
        }
8699
336k
        p->mark = _mark;
8700
336k
        D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ',
8701
336k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
8702
336k
    }
8703
336k
    _res = NULL;
8704
343k
  done:
8705
343k
    p->level--;
8706
343k
    return _res;
8707
336k
}
8708
8709
// _tmp_115: 'else' | ':'
8710
static void *
8711
_tmp_115_rule(Parser *p)
8712
678
{
8713
678
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8714
0
        _Pypegen_stack_overflow(p);
8715
0
    }
8716
678
    if (p->error_indicator) {
8717
0
        p->level--;
8718
0
        return NULL;
8719
0
    }
8720
678
    void * _res = NULL;
8721
678
    int _mark = p->mark;
8722
678
    { // 'else'
8723
678
        if (p->error_indicator) {
8724
0
            p->level--;
8725
0
            return NULL;
8726
0
        }
8727
678
        D(fprintf(stderr, "%*c> _tmp_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'"));
8728
678
        Token * _keyword;
8729
678
        if (
8730
678
            (_keyword = _PyPegen_expect_token(p, 522))  // token='else'
8731
678
        )
8732
643
        {
8733
643
            D(fprintf(stderr, "%*c+ _tmp_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'"));
8734
643
            _res = _keyword;
8735
643
            goto done;
8736
643
        }
8737
35
        p->mark = _mark;
8738
35
        D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
8739
35
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else'"));
8740
35
    }
8741
0
    { // ':'
8742
35
        if (p->error_indicator) {
8743
0
            p->level--;
8744
0
            return NULL;
8745
0
        }
8746
35
        D(fprintf(stderr, "%*c> _tmp_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
8747
35
        Token * _literal;
8748
35
        if (
8749
35
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
8750
35
        )
8751
15
        {
8752
15
            D(fprintf(stderr, "%*c+ _tmp_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
8753
15
            _res = _literal;
8754
15
            goto done;
8755
15
        }
8756
20
        p->mark = _mark;
8757
20
        D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
8758
20
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
8759
20
    }
8760
20
    _res = NULL;
8761
678
  done:
8762
678
    p->level--;
8763
678
    return _res;
8764
20
}
8765
8766
// _tmp_116: pass_stmt | break_stmt | continue_stmt
8767
static void *
8768
_tmp_116_rule(Parser *p)
8769
336k
{
8770
336k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8771
0
        _Pypegen_stack_overflow(p);
8772
0
    }
8773
336k
    if (p->error_indicator) {
8774
0
        p->level--;
8775
0
        return NULL;
8776
0
    }
8777
336k
    void * _res = NULL;
8778
336k
    int _mark = p->mark;
8779
336k
    { // pass_stmt
8780
336k
        if (p->error_indicator) {
8781
0
            p->level--;
8782
0
            return NULL;
8783
0
        }
8784
336k
        D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pass_stmt"));
8785
336k
        stmt_ty pass_stmt_var;
8786
336k
        if (
8787
336k
            (pass_stmt_var = pass_stmt_rule(p))  // pass_stmt
8788
336k
        )
8789
432
        {
8790
432
            D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pass_stmt"));
8791
432
            _res = pass_stmt_var;
8792
432
            goto done;
8793
432
        }
8794
336k
        p->mark = _mark;
8795
336k
        D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
8796
336k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pass_stmt"));
8797
336k
    }
8798
0
    { // break_stmt
8799
336k
        if (p->error_indicator) {
8800
0
            p->level--;
8801
0
            return NULL;
8802
0
        }
8803
336k
        D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "break_stmt"));
8804
336k
        stmt_ty break_stmt_var;
8805
336k
        if (
8806
336k
            (break_stmt_var = break_stmt_rule(p))  // break_stmt
8807
336k
        )
8808
384
        {
8809
384
            D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "break_stmt"));
8810
384
            _res = break_stmt_var;
8811
384
            goto done;
8812
384
        }
8813
336k
        p->mark = _mark;
8814
336k
        D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
8815
336k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "break_stmt"));
8816
336k
    }
8817
0
    { // continue_stmt
8818
336k
        if (p->error_indicator) {
8819
0
            p->level--;
8820
0
            return NULL;
8821
0
        }
8822
336k
        D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "continue_stmt"));
8823
336k
        stmt_ty continue_stmt_var;
8824
336k
        if (
8825
336k
            (continue_stmt_var = continue_stmt_rule(p))  // continue_stmt
8826
336k
        )
8827
2.85k
        {
8828
2.85k
            D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "continue_stmt"));
8829
2.85k
            _res = continue_stmt_var;
8830
2.85k
            goto done;
8831
2.85k
        }
8832
333k
        p->mark = _mark;
8833
333k
        D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
8834
333k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "continue_stmt"));
8835
333k
    }
8836
333k
    _res = NULL;
8837
336k
  done:
8838
336k
    p->level--;
8839
336k
    return _res;
8840
333k
}
8841
8842
// _tmp_117: '=' | ':='
8843
static void *
8844
_tmp_117_rule(Parser *p)
8845
106
{
8846
106
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8847
0
        _Pypegen_stack_overflow(p);
8848
0
    }
8849
106
    if (p->error_indicator) {
8850
0
        p->level--;
8851
0
        return NULL;
8852
0
    }
8853
106
    void * _res = NULL;
8854
106
    int _mark = p->mark;
8855
106
    { // '='
8856
106
        if (p->error_indicator) {
8857
0
            p->level--;
8858
0
            return NULL;
8859
0
        }
8860
106
        D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
8861
106
        Token * _literal;
8862
106
        if (
8863
106
            (_literal = _PyPegen_expect_token(p, 22))  // token='='
8864
106
        )
8865
60
        {
8866
60
            D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
8867
60
            _res = _literal;
8868
60
            goto done;
8869
60
        }
8870
46
        p->mark = _mark;
8871
46
        D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
8872
46
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
8873
46
    }
8874
0
    { // ':='
8875
46
        if (p->error_indicator) {
8876
0
            p->level--;
8877
0
            return NULL;
8878
0
        }
8879
46
        D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
8880
46
        Token * _literal;
8881
46
        if (
8882
46
            (_literal = _PyPegen_expect_token(p, 53))  // token=':='
8883
46
        )
8884
5
        {
8885
5
            D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
8886
5
            _res = _literal;
8887
5
            goto done;
8888
5
        }
8889
41
        p->mark = _mark;
8890
41
        D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
8891
41
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
8892
41
    }
8893
41
    _res = NULL;
8894
106
  done:
8895
106
    p->level--;
8896
106
    return _res;
8897
41
}
8898
8899
// _tmp_118: list | tuple | genexp | 'True' | 'None' | 'False'
8900
static void *
8901
_tmp_118_rule(Parser *p)
8902
151k
{
8903
151k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
8904
0
        _Pypegen_stack_overflow(p);
8905
0
    }
8906
151k
    if (p->error_indicator) {
8907
0
        p->level--;
8908
0
        return NULL;
8909
0
    }
8910
151k
    void * _res = NULL;
8911
151k
    int _mark = p->mark;
8912
151k
    { // list
8913
151k
        if (p->error_indicator) {
8914
0
            p->level--;
8915
0
            return NULL;
8916
0
        }
8917
151k
        D(fprintf(stderr, "%*c> _tmp_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
8918
151k
        expr_ty list_var;
8919
151k
        if (
8920
151k
            (list_var = list_rule(p))  // list
8921
151k
        )
8922
988
        {
8923
988
            D(fprintf(stderr, "%*c+ _tmp_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
8924
988
            _res = list_var;
8925
988
            goto done;
8926
988
        }
8927
150k
        p->mark = _mark;
8928
150k
        D(fprintf(stderr, "%*c%s _tmp_118[%d-%d]: %s failed!\n", p->level, ' ',
8929
150k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
8930
150k
    }
8931
0
    { // tuple
8932
150k
        if (p->error_indicator) {
8933
292
            p->level--;
8934
292
            return NULL;
8935
292
        }
8936
150k
        D(fprintf(stderr, "%*c> _tmp_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
8937
150k
        expr_ty tuple_var;
8938
150k
        if (
8939
150k
            (tuple_var = tuple_rule(p))  // tuple
8940
150k
        )
8941
3.26k
        {
8942
3.26k
            D(fprintf(stderr, "%*c+ _tmp_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
8943
3.26k
            _res = tuple_var;
8944
3.26k
            goto done;
8945
3.26k
        }
8946
146k
        p->mark = _mark;
8947
146k
        D(fprintf(stderr, "%*c%s _tmp_118[%d-%d]: %s failed!\n", p->level, ' ',
8948
146k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
8949
146k
    }
8950
0
    { // genexp
8951
146k
        if (p->error_indicator) {
8952
242
            p->level--;
8953
242
            return NULL;
8954
242
        }
8955
146k
        D(fprintf(stderr, "%*c> _tmp_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
8956
146k
        expr_ty genexp_var;
8957
146k
        if (
8958
146k
            (genexp_var = genexp_rule(p))  // genexp
8959
146k
        )
8960
229
        {
8961
229
            D(fprintf(stderr, "%*c+ _tmp_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
8962
229
            _res = genexp_var;
8963
229
            goto done;
8964
229
        }
8965
146k
        p->mark = _mark;
8966
146k
        D(fprintf(stderr, "%*c%s _tmp_118[%d-%d]: %s failed!\n", p->level, ' ',
8967
146k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
8968
146k
    }
8969
0
    { // 'True'
8970
146k
        if (p->error_indicator) {
8971
197
            p->level--;
8972
197
            return NULL;
8973
197
        }
8974
146k
        D(fprintf(stderr, "%*c> _tmp_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
8975
146k
        Token * _keyword;
8976
146k
        if (
8977
146k
            (_keyword = _PyPegen_expect_token(p, 527))  // token='True'
8978
146k
        )
8979
197
        {
8980
197
            D(fprintf(stderr, "%*c+ _tmp_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
8981
197
            _res = _keyword;
8982
197
            goto done;
8983
197
        }
8984
145k
        p->mark = _mark;
8985
145k
        D(fprintf(stderr, "%*c%s _tmp_118[%d-%d]: %s failed!\n", p->level, ' ',
8986
145k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
8987
145k
    }
8988
0
    { // 'None'
8989
145k
        if (p->error_indicator) {
8990
0
            p->level--;
8991
0
            return NULL;
8992
0
        }
8993
145k
        D(fprintf(stderr, "%*c> _tmp_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
8994
145k
        Token * _keyword;
8995
145k
        if (
8996
145k
            (_keyword = _PyPegen_expect_token(p, 526))  // token='None'
8997
145k
        )
8998
239
        {
8999
239
            D(fprintf(stderr, "%*c+ _tmp_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
9000
239
            _res = _keyword;
9001
239
            goto done;
9002
239
        }
9003
145k
        p->mark = _mark;
9004
145k
        D(fprintf(stderr, "%*c%s _tmp_118[%d-%d]: %s failed!\n", p->level, ' ',
9005
145k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
9006
145k
    }
9007
0
    { // 'False'
9008
145k
        if (p->error_indicator) {
9009
0
            p->level--;
9010
0
            return NULL;
9011
0
        }
9012
145k
        D(fprintf(stderr, "%*c> _tmp_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
9013
145k
        Token * _keyword;
9014
145k
        if (
9015
145k
            (_keyword = _PyPegen_expect_token(p, 528))  // token='False'
9016
145k
        )
9017
200
        {
9018
200
            D(fprintf(stderr, "%*c+ _tmp_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
9019
200
            _res = _keyword;
9020
200
            goto done;
9021
200
        }
9022
145k
        p->mark = _mark;
9023
145k
        D(fprintf(stderr, "%*c%s _tmp_118[%d-%d]: %s failed!\n", p->level, ' ',
9024
145k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
9025
145k
    }
9026
145k
    _res = NULL;
9027
150k
  done:
9028
150k
    p->level--;
9029
150k
    return _res;
9030
145k
}
9031
9032
// _loop0_119: star_named_expressions
9033
static asdl_seq *
9034
_loop0_119_rule(Parser *p)
9035
1.57k
{
9036
1.57k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9037
0
        _Pypegen_stack_overflow(p);
9038
0
    }
9039
1.57k
    if (p->error_indicator) {
9040
0
        p->level--;
9041
0
        return NULL;
9042
0
    }
9043
1.57k
    void *_res = NULL;
9044
1.57k
    int _mark = p->mark;
9045
1.57k
    void **_children = NULL;
9046
1.57k
    Py_ssize_t _children_capacity = 0;
9047
1.57k
    Py_ssize_t _n = 0;
9048
1.57k
    { // star_named_expressions
9049
1.57k
        if (p->error_indicator) {
9050
0
            p->level--;
9051
0
            return NULL;
9052
0
        }
9053
1.57k
        D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
9054
1.57k
        asdl_expr_seq* star_named_expressions_var;
9055
1.57k
        while (
9056
5.46k
            (star_named_expressions_var = star_named_expressions_rule(p))  // star_named_expressions
9057
1.57k
        )
9058
3.88k
        {
9059
3.88k
            _res = star_named_expressions_var;
9060
3.88k
            if (_n == _children_capacity) {
9061
1.38k
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
9062
0
                    p->error_indicator = 1;
9063
0
                    PyErr_NoMemory();
9064
0
                    PyMem_Free(_children);
9065
0
                    p->level--;
9066
0
                    return NULL;
9067
0
                }
9068
1.38k
            }
9069
3.88k
            _children[_n++] = _res;
9070
3.88k
            _mark = p->mark;
9071
3.88k
        }
9072
1.57k
        p->mark = _mark;
9073
1.57k
        D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
9074
1.57k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
9075
1.57k
    }
9076
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
9077
1.57k
    if (!_seq) {
9078
0
        p->error_indicator = 1;
9079
0
        PyErr_NoMemory();
9080
0
        PyMem_Free(_children);
9081
0
        p->level--;
9082
0
        return NULL;
9083
0
    }
9084
5.46k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
9085
1.57k
    PyMem_Free(_children);
9086
1.57k
    p->level--;
9087
1.57k
    return _seq;
9088
1.57k
}
9089
9090
// _loop0_120: (star_targets '=')
9091
static asdl_seq *
9092
_loop0_120_rule(Parser *p)
9093
197k
{
9094
197k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9095
0
        _Pypegen_stack_overflow(p);
9096
0
    }
9097
197k
    if (p->error_indicator) {
9098
0
        p->level--;
9099
0
        return NULL;
9100
0
    }
9101
197k
    void *_res = NULL;
9102
197k
    int _mark = p->mark;
9103
197k
    void **_children = NULL;
9104
197k
    Py_ssize_t _children_capacity = 0;
9105
197k
    Py_ssize_t _n = 0;
9106
197k
    { // (star_targets '=')
9107
197k
        if (p->error_indicator) {
9108
0
            p->level--;
9109
0
            return NULL;
9110
0
        }
9111
197k
        D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
9112
197k
        void *_tmp_192_var;
9113
197k
        while (
9114
198k
            (_tmp_192_var = _tmp_192_rule(p))  // star_targets '='
9115
197k
        )
9116
909
        {
9117
909
            _res = _tmp_192_var;
9118
909
            if (_n == _children_capacity) {
9119
327
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
9120
0
                    p->error_indicator = 1;
9121
0
                    PyErr_NoMemory();
9122
0
                    PyMem_Free(_children);
9123
0
                    p->level--;
9124
0
                    return NULL;
9125
0
                }
9126
327
            }
9127
909
            _children[_n++] = _res;
9128
909
            _mark = p->mark;
9129
909
        }
9130
197k
        p->mark = _mark;
9131
197k
        D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
9132
197k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
9133
197k
    }
9134
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
9135
197k
    if (!_seq) {
9136
0
        p->error_indicator = 1;
9137
0
        PyErr_NoMemory();
9138
0
        PyMem_Free(_children);
9139
0
        p->level--;
9140
0
        return NULL;
9141
0
    }
9142
198k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
9143
197k
    PyMem_Free(_children);
9144
197k
    p->level--;
9145
197k
    return _seq;
9146
197k
}
9147
9148
// _tmp_121: '[' | '{'
9149
static void *
9150
_tmp_121_rule(Parser *p)
9151
630k
{
9152
630k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9153
1
        _Pypegen_stack_overflow(p);
9154
1
    }
9155
630k
    if (p->error_indicator) {
9156
1
        p->level--;
9157
1
        return NULL;
9158
1
    }
9159
630k
    void * _res = NULL;
9160
630k
    int _mark = p->mark;
9161
630k
    { // '['
9162
630k
        if (p->error_indicator) {
9163
0
            p->level--;
9164
0
            return NULL;
9165
0
        }
9166
630k
        D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
9167
630k
        Token * _literal;
9168
630k
        if (
9169
630k
            (_literal = _PyPegen_expect_token(p, 9))  // token='['
9170
630k
        )
9171
38.1k
        {
9172
38.1k
            D(fprintf(stderr, "%*c+ _tmp_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
9173
38.1k
            _res = _literal;
9174
38.1k
            goto done;
9175
38.1k
        }
9176
592k
        p->mark = _mark;
9177
592k
        D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ',
9178
592k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
9179
592k
    }
9180
0
    { // '{'
9181
592k
        if (p->error_indicator) {
9182
0
            p->level--;
9183
0
            return NULL;
9184
0
        }
9185
592k
        D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
9186
592k
        Token * _literal;
9187
592k
        if (
9188
592k
            (_literal = _PyPegen_expect_token(p, 25))  // token='{'
9189
592k
        )
9190
20.7k
        {
9191
20.7k
            D(fprintf(stderr, "%*c+ _tmp_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
9192
20.7k
            _res = _literal;
9193
20.7k
            goto done;
9194
20.7k
        }
9195
571k
        p->mark = _mark;
9196
571k
        D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ',
9197
571k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
9198
571k
    }
9199
571k
    _res = NULL;
9200
630k
  done:
9201
630k
    p->level--;
9202
630k
    return _res;
9203
571k
}
9204
9205
// _tmp_122: slash_no_default | slash_with_default
9206
static void *
9207
_tmp_122_rule(Parser *p)
9208
9.68k
{
9209
9.68k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9210
0
        _Pypegen_stack_overflow(p);
9211
0
    }
9212
9.68k
    if (p->error_indicator) {
9213
0
        p->level--;
9214
0
        return NULL;
9215
0
    }
9216
9.68k
    void * _res = NULL;
9217
9.68k
    int _mark = p->mark;
9218
9.68k
    { // slash_no_default
9219
9.68k
        if (p->error_indicator) {
9220
0
            p->level--;
9221
0
            return NULL;
9222
0
        }
9223
9.68k
        D(fprintf(stderr, "%*c> _tmp_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default"));
9224
9.68k
        asdl_arg_seq* slash_no_default_var;
9225
9.68k
        if (
9226
9.68k
            (slash_no_default_var = slash_no_default_rule(p))  // slash_no_default
9227
9.68k
        )
9228
523
        {
9229
523
            D(fprintf(stderr, "%*c+ _tmp_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default"));
9230
523
            _res = slash_no_default_var;
9231
523
            goto done;
9232
523
        }
9233
9.15k
        p->mark = _mark;
9234
9.15k
        D(fprintf(stderr, "%*c%s _tmp_122[%d-%d]: %s failed!\n", p->level, ' ',
9235
9.15k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default"));
9236
9.15k
    }
9237
0
    { // slash_with_default
9238
9.15k
        if (p->error_indicator) {
9239
1
            p->level--;
9240
1
            return NULL;
9241
1
        }
9242
9.15k
        D(fprintf(stderr, "%*c> _tmp_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
9243
9.15k
        SlashWithDefault* slash_with_default_var;
9244
9.15k
        if (
9245
9.15k
            (slash_with_default_var = slash_with_default_rule(p))  // slash_with_default
9246
9.15k
        )
9247
690
        {
9248
690
            D(fprintf(stderr, "%*c+ _tmp_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
9249
690
            _res = slash_with_default_var;
9250
690
            goto done;
9251
690
        }
9252
8.46k
        p->mark = _mark;
9253
8.46k
        D(fprintf(stderr, "%*c%s _tmp_122[%d-%d]: %s failed!\n", p->level, ' ',
9254
8.46k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
9255
8.46k
    }
9256
8.46k
    _res = NULL;
9257
9.67k
  done:
9258
9.67k
    p->level--;
9259
9.67k
    return _res;
9260
8.46k
}
9261
9262
// _loop0_123: param_maybe_default
9263
static asdl_seq *
9264
_loop0_123_rule(Parser *p)
9265
7.26k
{
9266
7.26k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9267
0
        _Pypegen_stack_overflow(p);
9268
0
    }
9269
7.26k
    if (p->error_indicator) {
9270
0
        p->level--;
9271
0
        return NULL;
9272
0
    }
9273
7.26k
    void *_res = NULL;
9274
7.26k
    int _mark = p->mark;
9275
7.26k
    void **_children = NULL;
9276
7.26k
    Py_ssize_t _children_capacity = 0;
9277
7.26k
    Py_ssize_t _n = 0;
9278
7.26k
    { // param_maybe_default
9279
7.26k
        if (p->error_indicator) {
9280
0
            p->level--;
9281
0
            return NULL;
9282
0
        }
9283
7.26k
        D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
9284
7.26k
        NameDefaultPair* param_maybe_default_var;
9285
7.26k
        while (
9286
18.2k
            (param_maybe_default_var = param_maybe_default_rule(p))  // param_maybe_default
9287
7.26k
        )
9288
10.9k
        {
9289
10.9k
            _res = param_maybe_default_var;
9290
10.9k
            if (_n == _children_capacity) {
9291
2.90k
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
9292
0
                    p->error_indicator = 1;
9293
0
                    PyErr_NoMemory();
9294
0
                    PyMem_Free(_children);
9295
0
                    p->level--;
9296
0
                    return NULL;
9297
0
                }
9298
2.90k
            }
9299
10.9k
            _children[_n++] = _res;
9300
10.9k
            _mark = p->mark;
9301
10.9k
        }
9302
7.26k
        p->mark = _mark;
9303
7.26k
        D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
9304
7.26k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
9305
7.26k
    }
9306
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
9307
7.26k
    if (!_seq) {
9308
0
        p->error_indicator = 1;
9309
0
        PyErr_NoMemory();
9310
0
        PyMem_Free(_children);
9311
0
        p->level--;
9312
0
        return NULL;
9313
0
    }
9314
18.2k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
9315
7.26k
    PyMem_Free(_children);
9316
7.26k
    p->level--;
9317
7.26k
    return _seq;
9318
7.26k
}
9319
9320
// _loop0_124: param_no_default
9321
static asdl_seq *
9322
_loop0_124_rule(Parser *p)
9323
9.68k
{
9324
9.68k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9325
0
        _Pypegen_stack_overflow(p);
9326
0
    }
9327
9.68k
    if (p->error_indicator) {
9328
0
        p->level--;
9329
0
        return NULL;
9330
0
    }
9331
9.68k
    void *_res = NULL;
9332
9.68k
    int _mark = p->mark;
9333
9.68k
    void **_children = NULL;
9334
9.68k
    Py_ssize_t _children_capacity = 0;
9335
9.68k
    Py_ssize_t _n = 0;
9336
9.68k
    { // param_no_default
9337
9.68k
        if (p->error_indicator) {
9338
0
            p->level--;
9339
0
            return NULL;
9340
0
        }
9341
9.68k
        D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
9342
9.68k
        arg_ty param_no_default_var;
9343
9.68k
        while (
9344
12.5k
            (param_no_default_var = param_no_default_rule(p))  // param_no_default
9345
9.68k
        )
9346
2.91k
        {
9347
2.91k
            _res = param_no_default_var;
9348
2.91k
            if (_n == _children_capacity) {
9349
1.84k
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
9350
0
                    p->error_indicator = 1;
9351
0
                    PyErr_NoMemory();
9352
0
                    PyMem_Free(_children);
9353
0
                    p->level--;
9354
0
                    return NULL;
9355
0
                }
9356
1.84k
            }
9357
2.91k
            _children[_n++] = _res;
9358
2.91k
            _mark = p->mark;
9359
2.91k
        }
9360
9.68k
        p->mark = _mark;
9361
9.68k
        D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
9362
9.68k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
9363
9.68k
    }
9364
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
9365
9.68k
    if (!_seq) {
9366
0
        p->error_indicator = 1;
9367
0
        PyErr_NoMemory();
9368
0
        PyMem_Free(_children);
9369
0
        p->level--;
9370
0
        return NULL;
9371
0
    }
9372
12.5k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
9373
9.68k
    PyMem_Free(_children);
9374
9.68k
    p->level--;
9375
9.68k
    return _seq;
9376
9.68k
}
9377
9378
// _loop1_125: param_no_default
9379
static asdl_seq *
9380
_loop1_125_rule(Parser *p)
9381
46
{
9382
46
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9383
0
        _Pypegen_stack_overflow(p);
9384
0
    }
9385
46
    if (p->error_indicator) {
9386
0
        p->level--;
9387
0
        return NULL;
9388
0
    }
9389
46
    void *_res = NULL;
9390
46
    int _mark = p->mark;
9391
46
    void **_children = NULL;
9392
46
    Py_ssize_t _children_capacity = 0;
9393
46
    Py_ssize_t _n = 0;
9394
46
    { // param_no_default
9395
46
        if (p->error_indicator) {
9396
0
            p->level--;
9397
0
            return NULL;
9398
0
        }
9399
46
        D(fprintf(stderr, "%*c> _loop1_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
9400
46
        arg_ty param_no_default_var;
9401
46
        while (
9402
415
            (param_no_default_var = param_no_default_rule(p))  // param_no_default
9403
46
        )
9404
369
        {
9405
369
            _res = param_no_default_var;
9406
369
            if (_n == _children_capacity) {
9407
135
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
9408
0
                    p->error_indicator = 1;
9409
0
                    PyErr_NoMemory();
9410
0
                    PyMem_Free(_children);
9411
0
                    p->level--;
9412
0
                    return NULL;
9413
0
                }
9414
135
            }
9415
369
            _children[_n++] = _res;
9416
369
            _mark = p->mark;
9417
369
        }
9418
46
        p->mark = _mark;
9419
46
        D(fprintf(stderr, "%*c%s _loop1_125[%d-%d]: %s failed!\n", p->level, ' ',
9420
46
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
9421
46
    }
9422
46
    if (_n == 0 || p->error_indicator) {
9423
11
        PyMem_Free(_children);
9424
11
        p->level--;
9425
11
        return NULL;
9426
11
    }
9427
35
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
9428
35
    if (!_seq) {
9429
0
        p->error_indicator = 1;
9430
0
        PyErr_NoMemory();
9431
0
        PyMem_Free(_children);
9432
0
        p->level--;
9433
0
        return NULL;
9434
0
    }
9435
394
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
9436
35
    PyMem_Free(_children);
9437
35
    p->level--;
9438
35
    return _seq;
9439
35
}
9440
9441
// _tmp_126: ',' | param_no_default
9442
static void *
9443
_tmp_126_rule(Parser *p)
9444
1.61k
{
9445
1.61k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9446
0
        _Pypegen_stack_overflow(p);
9447
0
    }
9448
1.61k
    if (p->error_indicator) {
9449
0
        p->level--;
9450
0
        return NULL;
9451
0
    }
9452
1.61k
    void * _res = NULL;
9453
1.61k
    int _mark = p->mark;
9454
1.61k
    { // ','
9455
1.61k
        if (p->error_indicator) {
9456
0
            p->level--;
9457
0
            return NULL;
9458
0
        }
9459
1.61k
        D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
9460
1.61k
        Token * _literal;
9461
1.61k
        if (
9462
1.61k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
9463
1.61k
        )
9464
497
        {
9465
497
            D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
9466
497
            _res = _literal;
9467
497
            goto done;
9468
497
        }
9469
1.11k
        p->mark = _mark;
9470
1.11k
        D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
9471
1.11k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
9472
1.11k
    }
9473
0
    { // param_no_default
9474
1.11k
        if (p->error_indicator) {
9475
1
            p->level--;
9476
1
            return NULL;
9477
1
        }
9478
1.11k
        D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
9479
1.11k
        arg_ty param_no_default_var;
9480
1.11k
        if (
9481
1.11k
            (param_no_default_var = param_no_default_rule(p))  // param_no_default
9482
1.11k
        )
9483
419
        {
9484
419
            D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default"));
9485
419
            _res = param_no_default_var;
9486
419
            goto done;
9487
419
        }
9488
694
        p->mark = _mark;
9489
694
        D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
9490
694
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
9491
694
    }
9492
694
    _res = NULL;
9493
1.61k
  done:
9494
1.61k
    p->level--;
9495
1.61k
    return _res;
9496
694
}
9497
9498
// _loop1_127: param_maybe_default
9499
static asdl_seq *
9500
_loop1_127_rule(Parser *p)
9501
4.82k
{
9502
4.82k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9503
0
        _Pypegen_stack_overflow(p);
9504
0
    }
9505
4.82k
    if (p->error_indicator) {
9506
0
        p->level--;
9507
0
        return NULL;
9508
0
    }
9509
4.82k
    void *_res = NULL;
9510
4.82k
    int _mark = p->mark;
9511
4.82k
    void **_children = NULL;
9512
4.82k
    Py_ssize_t _children_capacity = 0;
9513
4.82k
    Py_ssize_t _n = 0;
9514
4.82k
    { // param_maybe_default
9515
4.82k
        if (p->error_indicator) {
9516
0
            p->level--;
9517
0
            return NULL;
9518
0
        }
9519
4.82k
        D(fprintf(stderr, "%*c> _loop1_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
9520
4.82k
        NameDefaultPair* param_maybe_default_var;
9521
4.82k
        while (
9522
7.94k
            (param_maybe_default_var = param_maybe_default_rule(p))  // param_maybe_default
9523
4.82k
        )
9524
3.12k
        {
9525
3.12k
            _res = param_maybe_default_var;
9526
3.12k
            if (_n == _children_capacity) {
9527
2.14k
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
9528
0
                    p->error_indicator = 1;
9529
0
                    PyErr_NoMemory();
9530
0
                    PyMem_Free(_children);
9531
0
                    p->level--;
9532
0
                    return NULL;
9533
0
                }
9534
2.14k
            }
9535
3.12k
            _children[_n++] = _res;
9536
3.12k
            _mark = p->mark;
9537
3.12k
        }
9538
4.82k
        p->mark = _mark;
9539
4.82k
        D(fprintf(stderr, "%*c%s _loop1_127[%d-%d]: %s failed!\n", p->level, ' ',
9540
4.82k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
9541
4.82k
    }
9542
4.82k
    if (_n == 0 || p->error_indicator) {
9543
3.12k
        PyMem_Free(_children);
9544
3.12k
        p->level--;
9545
3.12k
        return NULL;
9546
3.12k
    }
9547
1.69k
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
9548
1.69k
    if (!_seq) {
9549
0
        p->error_indicator = 1;
9550
0
        PyErr_NoMemory();
9551
0
        PyMem_Free(_children);
9552
0
        p->level--;
9553
0
        return NULL;
9554
0
    }
9555
4.82k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
9556
1.69k
    PyMem_Free(_children);
9557
1.69k
    p->level--;
9558
1.69k
    return _seq;
9559
1.69k
}
9560
9561
// _tmp_128: ')' | ','
9562
static void *
9563
_tmp_128_rule(Parser *p)
9564
14.4k
{
9565
14.4k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9566
0
        _Pypegen_stack_overflow(p);
9567
0
    }
9568
14.4k
    if (p->error_indicator) {
9569
0
        p->level--;
9570
0
        return NULL;
9571
0
    }
9572
14.4k
    void * _res = NULL;
9573
14.4k
    int _mark = p->mark;
9574
14.4k
    { // ')'
9575
14.4k
        if (p->error_indicator) {
9576
0
            p->level--;
9577
0
            return NULL;
9578
0
        }
9579
14.4k
        D(fprintf(stderr, "%*c> _tmp_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
9580
14.4k
        Token * _literal;
9581
14.4k
        if (
9582
14.4k
            (_literal = _PyPegen_expect_token(p, 8))  // token=')'
9583
14.4k
        )
9584
1
        {
9585
1
            D(fprintf(stderr, "%*c+ _tmp_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
9586
1
            _res = _literal;
9587
1
            goto done;
9588
1
        }
9589
14.4k
        p->mark = _mark;
9590
14.4k
        D(fprintf(stderr, "%*c%s _tmp_128[%d-%d]: %s failed!\n", p->level, ' ',
9591
14.4k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
9592
14.4k
    }
9593
0
    { // ','
9594
14.4k
        if (p->error_indicator) {
9595
0
            p->level--;
9596
0
            return NULL;
9597
0
        }
9598
14.4k
        D(fprintf(stderr, "%*c> _tmp_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
9599
14.4k
        Token * _literal;
9600
14.4k
        if (
9601
14.4k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
9602
14.4k
        )
9603
17
        {
9604
17
            D(fprintf(stderr, "%*c+ _tmp_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
9605
17
            _res = _literal;
9606
17
            goto done;
9607
17
        }
9608
14.3k
        p->mark = _mark;
9609
14.3k
        D(fprintf(stderr, "%*c%s _tmp_128[%d-%d]: %s failed!\n", p->level, ' ',
9610
14.3k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
9611
14.3k
    }
9612
14.3k
    _res = NULL;
9613
14.4k
  done:
9614
14.4k
    p->level--;
9615
14.4k
    return _res;
9616
14.3k
}
9617
9618
// _tmp_129: ')' | ',' (')' | '**')
9619
static void *
9620
_tmp_129_rule(Parser *p)
9621
1.60k
{
9622
1.60k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9623
0
        _Pypegen_stack_overflow(p);
9624
0
    }
9625
1.60k
    if (p->error_indicator) {
9626
0
        p->level--;
9627
0
        return NULL;
9628
0
    }
9629
1.60k
    void * _res = NULL;
9630
1.60k
    int _mark = p->mark;
9631
1.60k
    { // ')'
9632
1.60k
        if (p->error_indicator) {
9633
0
            p->level--;
9634
0
            return NULL;
9635
0
        }
9636
1.60k
        D(fprintf(stderr, "%*c> _tmp_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
9637
1.60k
        Token * _literal;
9638
1.60k
        if (
9639
1.60k
            (_literal = _PyPegen_expect_token(p, 8))  // token=')'
9640
1.60k
        )
9641
2
        {
9642
2
            D(fprintf(stderr, "%*c+ _tmp_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
9643
2
            _res = _literal;
9644
2
            goto done;
9645
2
        }
9646
1.60k
        p->mark = _mark;
9647
1.60k
        D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ',
9648
1.60k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
9649
1.60k
    }
9650
0
    { // ',' (')' | '**')
9651
1.60k
        if (p->error_indicator) {
9652
0
            p->level--;
9653
0
            return NULL;
9654
0
        }
9655
1.60k
        D(fprintf(stderr, "%*c> _tmp_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
9656
1.60k
        Token * _literal;
9657
1.60k
        void *_tmp_193_var;
9658
1.60k
        if (
9659
1.60k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
9660
495
            &&
9661
495
            (_tmp_193_var = _tmp_193_rule(p))  // ')' | '**'
9662
1.60k
        )
9663
2
        {
9664
2
            D(fprintf(stderr, "%*c+ _tmp_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
9665
2
            _res = _PyPegen_dummy_name(p, _literal, _tmp_193_var);
9666
2
            goto done;
9667
2
        }
9668
1.60k
        p->mark = _mark;
9669
1.60k
        D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ',
9670
1.60k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
9671
1.60k
    }
9672
1.60k
    _res = NULL;
9673
1.60k
  done:
9674
1.60k
    p->level--;
9675
1.60k
    return _res;
9676
1.60k
}
9677
9678
// _tmp_130: param_no_default | ','
9679
static void *
9680
_tmp_130_rule(Parser *p)
9681
1.61k
{
9682
1.61k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9683
0
        _Pypegen_stack_overflow(p);
9684
0
    }
9685
1.61k
    if (p->error_indicator) {
9686
0
        p->level--;
9687
0
        return NULL;
9688
0
    }
9689
1.61k
    void * _res = NULL;
9690
1.61k
    int _mark = p->mark;
9691
1.61k
    { // param_no_default
9692
1.61k
        if (p->error_indicator) {
9693
0
            p->level--;
9694
0
            return NULL;
9695
0
        }
9696
1.61k
        D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
9697
1.61k
        arg_ty param_no_default_var;
9698
1.61k
        if (
9699
1.61k
            (param_no_default_var = param_no_default_rule(p))  // param_no_default
9700
1.61k
        )
9701
418
        {
9702
418
            D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default"));
9703
418
            _res = param_no_default_var;
9704
418
            goto done;
9705
418
        }
9706
1.19k
        p->mark = _mark;
9707
1.19k
        D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
9708
1.19k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
9709
1.19k
    }
9710
0
    { // ','
9711
1.19k
        if (p->error_indicator) {
9712
2
            p->level--;
9713
2
            return NULL;
9714
2
        }
9715
1.19k
        D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
9716
1.19k
        Token * _literal;
9717
1.19k
        if (
9718
1.19k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
9719
1.19k
        )
9720
496
        {
9721
496
            D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
9722
496
            _res = _literal;
9723
496
            goto done;
9724
496
        }
9725
701
        p->mark = _mark;
9726
701
        D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
9727
701
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
9728
701
    }
9729
701
    _res = NULL;
9730
1.61k
  done:
9731
1.61k
    p->level--;
9732
1.61k
    return _res;
9733
701
}
9734
9735
// _tmp_131: '*' | '**' | '/'
9736
static void *
9737
_tmp_131_rule(Parser *p)
9738
275
{
9739
275
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9740
0
        _Pypegen_stack_overflow(p);
9741
0
    }
9742
275
    if (p->error_indicator) {
9743
0
        p->level--;
9744
0
        return NULL;
9745
0
    }
9746
275
    void * _res = NULL;
9747
275
    int _mark = p->mark;
9748
275
    { // '*'
9749
275
        if (p->error_indicator) {
9750
0
            p->level--;
9751
0
            return NULL;
9752
0
        }
9753
275
        D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
9754
275
        Token * _literal;
9755
275
        if (
9756
275
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
9757
275
        )
9758
2
        {
9759
2
            D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
9760
2
            _res = _literal;
9761
2
            goto done;
9762
2
        }
9763
273
        p->mark = _mark;
9764
273
        D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
9765
273
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
9766
273
    }
9767
0
    { // '**'
9768
273
        if (p->error_indicator) {
9769
0
            p->level--;
9770
0
            return NULL;
9771
0
        }
9772
273
        D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
9773
273
        Token * _literal;
9774
273
        if (
9775
273
            (_literal = _PyPegen_expect_token(p, 35))  // token='**'
9776
273
        )
9777
1
        {
9778
1
            D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
9779
1
            _res = _literal;
9780
1
            goto done;
9781
1
        }
9782
272
        p->mark = _mark;
9783
272
        D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
9784
272
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
9785
272
    }
9786
0
    { // '/'
9787
272
        if (p->error_indicator) {
9788
0
            p->level--;
9789
0
            return NULL;
9790
0
        }
9791
272
        D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'"));
9792
272
        Token * _literal;
9793
272
        if (
9794
272
            (_literal = _PyPegen_expect_token(p, 17))  // token='/'
9795
272
        )
9796
1
        {
9797
1
            D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'"));
9798
1
            _res = _literal;
9799
1
            goto done;
9800
1
        }
9801
271
        p->mark = _mark;
9802
271
        D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
9803
271
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'"));
9804
271
    }
9805
271
    _res = NULL;
9806
275
  done:
9807
275
    p->level--;
9808
275
    return _res;
9809
271
}
9810
9811
// _loop1_132: param_with_default
9812
static asdl_seq *
9813
_loop1_132_rule(Parser *p)
9814
4.50k
{
9815
4.50k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9816
0
        _Pypegen_stack_overflow(p);
9817
0
    }
9818
4.50k
    if (p->error_indicator) {
9819
0
        p->level--;
9820
0
        return NULL;
9821
0
    }
9822
4.50k
    void *_res = NULL;
9823
4.50k
    int _mark = p->mark;
9824
4.50k
    void **_children = NULL;
9825
4.50k
    Py_ssize_t _children_capacity = 0;
9826
4.50k
    Py_ssize_t _n = 0;
9827
4.50k
    { // param_with_default
9828
4.50k
        if (p->error_indicator) {
9829
0
            p->level--;
9830
0
            return NULL;
9831
0
        }
9832
4.50k
        D(fprintf(stderr, "%*c> _loop1_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
9833
4.50k
        NameDefaultPair* param_with_default_var;
9834
4.50k
        while (
9835
5.68k
            (param_with_default_var = param_with_default_rule(p))  // param_with_default
9836
4.50k
        )
9837
1.18k
        {
9838
1.18k
            _res = param_with_default_var;
9839
1.18k
            if (_n == _children_capacity) {
9840
766
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
9841
0
                    p->error_indicator = 1;
9842
0
                    PyErr_NoMemory();
9843
0
                    PyMem_Free(_children);
9844
0
                    p->level--;
9845
0
                    return NULL;
9846
0
                }
9847
766
            }
9848
1.18k
            _children[_n++] = _res;
9849
1.18k
            _mark = p->mark;
9850
1.18k
        }
9851
4.50k
        p->mark = _mark;
9852
4.50k
        D(fprintf(stderr, "%*c%s _loop1_132[%d-%d]: %s failed!\n", p->level, ' ',
9853
4.50k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
9854
4.50k
    }
9855
4.50k
    if (_n == 0 || p->error_indicator) {
9856
3.89k
        PyMem_Free(_children);
9857
3.89k
        p->level--;
9858
3.89k
        return NULL;
9859
3.89k
    }
9860
608
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
9861
608
    if (!_seq) {
9862
0
        p->error_indicator = 1;
9863
0
        PyErr_NoMemory();
9864
0
        PyMem_Free(_children);
9865
0
        p->level--;
9866
0
        return NULL;
9867
0
    }
9868
1.79k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
9869
608
    PyMem_Free(_children);
9870
608
    p->level--;
9871
608
    return _seq;
9872
608
}
9873
9874
// _tmp_133: lambda_slash_no_default | lambda_slash_with_default
9875
static void *
9876
_tmp_133_rule(Parser *p)
9877
332k
{
9878
332k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9879
0
        _Pypegen_stack_overflow(p);
9880
0
    }
9881
332k
    if (p->error_indicator) {
9882
0
        p->level--;
9883
0
        return NULL;
9884
0
    }
9885
332k
    void * _res = NULL;
9886
332k
    int _mark = p->mark;
9887
332k
    { // lambda_slash_no_default
9888
332k
        if (p->error_indicator) {
9889
0
            p->level--;
9890
0
            return NULL;
9891
0
        }
9892
332k
        D(fprintf(stderr, "%*c> _tmp_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default"));
9893
332k
        asdl_arg_seq* lambda_slash_no_default_var;
9894
332k
        if (
9895
332k
            (lambda_slash_no_default_var = lambda_slash_no_default_rule(p))  // lambda_slash_no_default
9896
332k
        )
9897
952
        {
9898
952
            D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default"));
9899
952
            _res = lambda_slash_no_default_var;
9900
952
            goto done;
9901
952
        }
9902
331k
        p->mark = _mark;
9903
331k
        D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ',
9904
331k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default"));
9905
331k
    }
9906
0
    { // lambda_slash_with_default
9907
331k
        if (p->error_indicator) {
9908
2
            p->level--;
9909
2
            return NULL;
9910
2
        }
9911
331k
        D(fprintf(stderr, "%*c> _tmp_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
9912
331k
        SlashWithDefault* lambda_slash_with_default_var;
9913
331k
        if (
9914
331k
            (lambda_slash_with_default_var = lambda_slash_with_default_rule(p))  // lambda_slash_with_default
9915
331k
        )
9916
1.79k
        {
9917
1.79k
            D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
9918
1.79k
            _res = lambda_slash_with_default_var;
9919
1.79k
            goto done;
9920
1.79k
        }
9921
329k
        p->mark = _mark;
9922
329k
        D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ',
9923
329k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
9924
329k
    }
9925
329k
    _res = NULL;
9926
332k
  done:
9927
332k
    p->level--;
9928
332k
    return _res;
9929
329k
}
9930
9931
// _loop0_134: lambda_param_maybe_default
9932
static asdl_seq *
9933
_loop0_134_rule(Parser *p)
9934
172k
{
9935
172k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9936
0
        _Pypegen_stack_overflow(p);
9937
0
    }
9938
172k
    if (p->error_indicator) {
9939
0
        p->level--;
9940
0
        return NULL;
9941
0
    }
9942
172k
    void *_res = NULL;
9943
172k
    int _mark = p->mark;
9944
172k
    void **_children = NULL;
9945
172k
    Py_ssize_t _children_capacity = 0;
9946
172k
    Py_ssize_t _n = 0;
9947
172k
    { // lambda_param_maybe_default
9948
172k
        if (p->error_indicator) {
9949
0
            p->level--;
9950
0
            return NULL;
9951
0
        }
9952
172k
        D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
9953
172k
        NameDefaultPair* lambda_param_maybe_default_var;
9954
172k
        while (
9955
339k
            (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p))  // lambda_param_maybe_default
9956
172k
        )
9957
167k
        {
9958
167k
            _res = lambda_param_maybe_default_var;
9959
167k
            if (_n == _children_capacity) {
9960
162k
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
9961
0
                    p->error_indicator = 1;
9962
0
                    PyErr_NoMemory();
9963
0
                    PyMem_Free(_children);
9964
0
                    p->level--;
9965
0
                    return NULL;
9966
0
                }
9967
162k
            }
9968
167k
            _children[_n++] = _res;
9969
167k
            _mark = p->mark;
9970
167k
        }
9971
172k
        p->mark = _mark;
9972
172k
        D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
9973
172k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
9974
172k
    }
9975
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
9976
172k
    if (!_seq) {
9977
0
        p->error_indicator = 1;
9978
0
        PyErr_NoMemory();
9979
0
        PyMem_Free(_children);
9980
0
        p->level--;
9981
0
        return NULL;
9982
0
    }
9983
339k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
9984
172k
    PyMem_Free(_children);
9985
172k
    p->level--;
9986
172k
    return _seq;
9987
172k
}
9988
9989
// _loop0_135: lambda_param_no_default
9990
static asdl_seq *
9991
_loop0_135_rule(Parser *p)
9992
331k
{
9993
331k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
9994
0
        _Pypegen_stack_overflow(p);
9995
0
    }
9996
331k
    if (p->error_indicator) {
9997
0
        p->level--;
9998
0
        return NULL;
9999
0
    }
10000
331k
    void *_res = NULL;
10001
331k
    int _mark = p->mark;
10002
331k
    void **_children = NULL;
10003
331k
    Py_ssize_t _children_capacity = 0;
10004
331k
    Py_ssize_t _n = 0;
10005
331k
    { // lambda_param_no_default
10006
331k
        if (p->error_indicator) {
10007
0
            p->level--;
10008
0
            return NULL;
10009
0
        }
10010
331k
        D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
10011
331k
        arg_ty lambda_param_no_default_var;
10012
331k
        while (
10013
657k
            (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
10014
331k
        )
10015
325k
        {
10016
325k
            _res = lambda_param_no_default_var;
10017
325k
            if (_n == _children_capacity) {
10018
318k
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
10019
0
                    p->error_indicator = 1;
10020
0
                    PyErr_NoMemory();
10021
0
                    PyMem_Free(_children);
10022
0
                    p->level--;
10023
0
                    return NULL;
10024
0
                }
10025
318k
            }
10026
325k
            _children[_n++] = _res;
10027
325k
            _mark = p->mark;
10028
325k
        }
10029
331k
        p->mark = _mark;
10030
331k
        D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
10031
331k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
10032
331k
    }
10033
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
10034
331k
    if (!_seq) {
10035
0
        p->error_indicator = 1;
10036
0
        PyErr_NoMemory();
10037
0
        PyMem_Free(_children);
10038
0
        p->level--;
10039
0
        return NULL;
10040
0
    }
10041
657k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
10042
331k
    PyMem_Free(_children);
10043
331k
    p->level--;
10044
331k
    return _seq;
10045
331k
}
10046
10047
// _loop0_136: ',' lambda_param
10048
static asdl_seq *
10049
_loop0_136_rule(Parser *p)
10050
64
{
10051
64
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10052
0
        _Pypegen_stack_overflow(p);
10053
0
    }
10054
64
    if (p->error_indicator) {
10055
0
        p->level--;
10056
0
        return NULL;
10057
0
    }
10058
64
    void *_res = NULL;
10059
64
    int _mark = p->mark;
10060
64
    void **_children = NULL;
10061
64
    Py_ssize_t _children_capacity = 0;
10062
64
    Py_ssize_t _n = 0;
10063
64
    { // ',' lambda_param
10064
64
        if (p->error_indicator) {
10065
0
            p->level--;
10066
0
            return NULL;
10067
0
        }
10068
64
        D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' lambda_param"));
10069
64
        Token * _literal;
10070
64
        arg_ty elem;
10071
64
        while (
10072
2.46k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
10073
2.41k
            &&
10074
2.41k
            (elem = lambda_param_rule(p))  // lambda_param
10075
64
        )
10076
2.40k
        {
10077
2.40k
            _res = elem;
10078
2.40k
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
10079
0
                p->error_indicator = 1;
10080
0
                PyMem_Free(_children);
10081
0
                p->level--;
10082
0
                return NULL;
10083
0
            }
10084
2.40k
            if (_n == _children_capacity) {
10085
212
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
10086
0
                    p->error_indicator = 1;
10087
0
                    PyErr_NoMemory();
10088
0
                    PyMem_Free(_children);
10089
0
                    p->level--;
10090
0
                    return NULL;
10091
0
                }
10092
212
            }
10093
2.40k
            _children[_n++] = _res;
10094
2.40k
            _mark = p->mark;
10095
2.40k
        }
10096
64
        p->mark = _mark;
10097
64
        D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ',
10098
64
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' lambda_param"));
10099
64
    }
10100
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
10101
64
    if (!_seq) {
10102
0
        p->error_indicator = 1;
10103
0
        PyErr_NoMemory();
10104
0
        PyMem_Free(_children);
10105
0
        p->level--;
10106
0
        return NULL;
10107
0
    }
10108
2.46k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
10109
64
    PyMem_Free(_children);
10110
64
    p->level--;
10111
64
    return _seq;
10112
64
}
10113
10114
// _gather_137: lambda_param _loop0_136
10115
static asdl_seq *
10116
_gather_137_rule(Parser *p)
10117
83
{
10118
83
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10119
0
        _Pypegen_stack_overflow(p);
10120
0
    }
10121
83
    if (p->error_indicator) {
10122
0
        p->level--;
10123
0
        return NULL;
10124
0
    }
10125
83
    asdl_seq * _res = NULL;
10126
83
    int _mark = p->mark;
10127
83
    { // lambda_param _loop0_136
10128
83
        if (p->error_indicator) {
10129
0
            p->level--;
10130
0
            return NULL;
10131
0
        }
10132
83
        D(fprintf(stderr, "%*c> _gather_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_136"));
10133
83
        arg_ty elem;
10134
83
        asdl_seq * seq;
10135
83
        if (
10136
83
            (elem = lambda_param_rule(p))  // lambda_param
10137
64
            &&
10138
64
            (seq = _loop0_136_rule(p))  // _loop0_136
10139
83
        )
10140
64
        {
10141
64
            D(fprintf(stderr, "%*c+ _gather_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_136"));
10142
64
            _res = _PyPegen_seq_insert_in_front(p, elem, seq);
10143
64
            goto done;
10144
64
        }
10145
19
        p->mark = _mark;
10146
19
        D(fprintf(stderr, "%*c%s _gather_137[%d-%d]: %s failed!\n", p->level, ' ',
10147
19
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param _loop0_136"));
10148
19
    }
10149
19
    _res = NULL;
10150
83
  done:
10151
83
    p->level--;
10152
83
    return _res;
10153
19
}
10154
10155
// _tmp_138: ',' | lambda_param_no_default
10156
static void *
10157
_tmp_138_rule(Parser *p)
10158
3.12k
{
10159
3.12k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10160
0
        _Pypegen_stack_overflow(p);
10161
0
    }
10162
3.12k
    if (p->error_indicator) {
10163
0
        p->level--;
10164
0
        return NULL;
10165
0
    }
10166
3.12k
    void * _res = NULL;
10167
3.12k
    int _mark = p->mark;
10168
3.12k
    { // ','
10169
3.12k
        if (p->error_indicator) {
10170
0
            p->level--;
10171
0
            return NULL;
10172
0
        }
10173
3.12k
        D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
10174
3.12k
        Token * _literal;
10175
3.12k
        if (
10176
3.12k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
10177
3.12k
        )
10178
1.48k
        {
10179
1.48k
            D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
10180
1.48k
            _res = _literal;
10181
1.48k
            goto done;
10182
1.48k
        }
10183
1.64k
        p->mark = _mark;
10184
1.64k
        D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
10185
1.64k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
10186
1.64k
    }
10187
0
    { // lambda_param_no_default
10188
1.64k
        if (p->error_indicator) {
10189
1
            p->level--;
10190
1
            return NULL;
10191
1
        }
10192
1.64k
        D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
10193
1.64k
        arg_ty lambda_param_no_default_var;
10194
1.64k
        if (
10195
1.64k
            (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
10196
1.64k
        )
10197
1.12k
        {
10198
1.12k
            D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
10199
1.12k
            _res = lambda_param_no_default_var;
10200
1.12k
            goto done;
10201
1.12k
        }
10202
520
        p->mark = _mark;
10203
520
        D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
10204
520
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
10205
520
    }
10206
520
    _res = NULL;
10207
3.12k
  done:
10208
3.12k
    p->level--;
10209
3.12k
    return _res;
10210
520
}
10211
10212
// _loop1_139: lambda_param_maybe_default
10213
static asdl_seq *
10214
_loop1_139_rule(Parser *p)
10215
165k
{
10216
165k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10217
0
        _Pypegen_stack_overflow(p);
10218
0
    }
10219
165k
    if (p->error_indicator) {
10220
0
        p->level--;
10221
0
        return NULL;
10222
0
    }
10223
165k
    void *_res = NULL;
10224
165k
    int _mark = p->mark;
10225
165k
    void **_children = NULL;
10226
165k
    Py_ssize_t _children_capacity = 0;
10227
165k
    Py_ssize_t _n = 0;
10228
165k
    { // lambda_param_maybe_default
10229
165k
        if (p->error_indicator) {
10230
0
            p->level--;
10231
0
            return NULL;
10232
0
        }
10233
165k
        D(fprintf(stderr, "%*c> _loop1_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
10234
165k
        NameDefaultPair* lambda_param_maybe_default_var;
10235
165k
        while (
10236
331k
            (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p))  // lambda_param_maybe_default
10237
165k
        )
10238
165k
        {
10239
165k
            _res = lambda_param_maybe_default_var;
10240
165k
            if (_n == _children_capacity) {
10241
161k
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
10242
0
                    p->error_indicator = 1;
10243
0
                    PyErr_NoMemory();
10244
0
                    PyMem_Free(_children);
10245
0
                    p->level--;
10246
0
                    return NULL;
10247
0
                }
10248
161k
            }
10249
165k
            _children[_n++] = _res;
10250
165k
            _mark = p->mark;
10251
165k
        }
10252
165k
        p->mark = _mark;
10253
165k
        D(fprintf(stderr, "%*c%s _loop1_139[%d-%d]: %s failed!\n", p->level, ' ',
10254
165k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
10255
165k
    }
10256
165k
    if (_n == 0 || p->error_indicator) {
10257
4.69k
        PyMem_Free(_children);
10258
4.69k
        p->level--;
10259
4.69k
        return NULL;
10260
4.69k
    }
10261
160k
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
10262
160k
    if (!_seq) {
10263
0
        p->error_indicator = 1;
10264
0
        PyErr_NoMemory();
10265
0
        PyMem_Free(_children);
10266
0
        p->level--;
10267
0
        return NULL;
10268
0
    }
10269
326k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
10270
160k
    PyMem_Free(_children);
10271
160k
    p->level--;
10272
160k
    return _seq;
10273
160k
}
10274
10275
// _loop1_140: lambda_param_with_default
10276
static asdl_seq *
10277
_loop1_140_rule(Parser *p)
10278
164k
{
10279
164k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10280
0
        _Pypegen_stack_overflow(p);
10281
0
    }
10282
164k
    if (p->error_indicator) {
10283
0
        p->level--;
10284
0
        return NULL;
10285
0
    }
10286
164k
    void *_res = NULL;
10287
164k
    int _mark = p->mark;
10288
164k
    void **_children = NULL;
10289
164k
    Py_ssize_t _children_capacity = 0;
10290
164k
    Py_ssize_t _n = 0;
10291
164k
    { // lambda_param_with_default
10292
164k
        if (p->error_indicator) {
10293
0
            p->level--;
10294
0
            return NULL;
10295
0
        }
10296
164k
        D(fprintf(stderr, "%*c> _loop1_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
10297
164k
        NameDefaultPair* lambda_param_with_default_var;
10298
164k
        while (
10299
166k
            (lambda_param_with_default_var = lambda_param_with_default_rule(p))  // lambda_param_with_default
10300
164k
        )
10301
1.79k
        {
10302
1.79k
            _res = lambda_param_with_default_var;
10303
1.79k
            if (_n == _children_capacity) {
10304
1.26k
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
10305
0
                    p->error_indicator = 1;
10306
0
                    PyErr_NoMemory();
10307
0
                    PyMem_Free(_children);
10308
0
                    p->level--;
10309
0
                    return NULL;
10310
0
                }
10311
1.26k
            }
10312
1.79k
            _children[_n++] = _res;
10313
1.79k
            _mark = p->mark;
10314
1.79k
        }
10315
164k
        p->mark = _mark;
10316
164k
        D(fprintf(stderr, "%*c%s _loop1_140[%d-%d]: %s failed!\n", p->level, ' ',
10317
164k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
10318
164k
    }
10319
164k
    if (_n == 0 || p->error_indicator) {
10320
163k
        PyMem_Free(_children);
10321
163k
        p->level--;
10322
163k
        return NULL;
10323
163k
    }
10324
1.06k
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
10325
1.06k
    if (!_seq) {
10326
0
        p->error_indicator = 1;
10327
0
        PyErr_NoMemory();
10328
0
        PyMem_Free(_children);
10329
0
        p->level--;
10330
0
        return NULL;
10331
0
    }
10332
2.85k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
10333
1.06k
    PyMem_Free(_children);
10334
1.06k
    p->level--;
10335
1.06k
    return _seq;
10336
1.06k
}
10337
10338
// _tmp_141: ':' | ',' (':' | '**')
10339
static void *
10340
_tmp_141_rule(Parser *p)
10341
2.90k
{
10342
2.90k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10343
0
        _Pypegen_stack_overflow(p);
10344
0
    }
10345
2.90k
    if (p->error_indicator) {
10346
0
        p->level--;
10347
0
        return NULL;
10348
0
    }
10349
2.90k
    void * _res = NULL;
10350
2.90k
    int _mark = p->mark;
10351
2.90k
    { // ':'
10352
2.90k
        if (p->error_indicator) {
10353
0
            p->level--;
10354
0
            return NULL;
10355
0
        }
10356
2.90k
        D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
10357
2.90k
        Token * _literal;
10358
2.90k
        if (
10359
2.90k
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
10360
2.90k
        )
10361
3
        {
10362
3
            D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
10363
3
            _res = _literal;
10364
3
            goto done;
10365
3
        }
10366
2.89k
        p->mark = _mark;
10367
2.89k
        D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
10368
2.89k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
10369
2.89k
    }
10370
0
    { // ',' (':' | '**')
10371
2.89k
        if (p->error_indicator) {
10372
0
            p->level--;
10373
0
            return NULL;
10374
0
        }
10375
2.89k
        D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
10376
2.89k
        Token * _literal;
10377
2.89k
        void *_tmp_194_var;
10378
2.89k
        if (
10379
2.89k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
10380
1.26k
            &&
10381
1.26k
            (_tmp_194_var = _tmp_194_rule(p))  // ':' | '**'
10382
2.89k
        )
10383
2
        {
10384
2
            D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
10385
2
            _res = _PyPegen_dummy_name(p, _literal, _tmp_194_var);
10386
2
            goto done;
10387
2
        }
10388
2.89k
        p->mark = _mark;
10389
2.89k
        D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
10390
2.89k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
10391
2.89k
    }
10392
2.89k
    _res = NULL;
10393
2.90k
  done:
10394
2.90k
    p->level--;
10395
2.90k
    return _res;
10396
2.89k
}
10397
10398
// _tmp_142: lambda_param_no_default | ','
10399
static void *
10400
_tmp_142_rule(Parser *p)
10401
2.96k
{
10402
2.96k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10403
0
        _Pypegen_stack_overflow(p);
10404
0
    }
10405
2.96k
    if (p->error_indicator) {
10406
0
        p->level--;
10407
0
        return NULL;
10408
0
    }
10409
2.96k
    void * _res = NULL;
10410
2.96k
    int _mark = p->mark;
10411
2.96k
    { // lambda_param_no_default
10412
2.96k
        if (p->error_indicator) {
10413
0
            p->level--;
10414
0
            return NULL;
10415
0
        }
10416
2.96k
        D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
10417
2.96k
        arg_ty lambda_param_no_default_var;
10418
2.96k
        if (
10419
2.96k
            (lambda_param_no_default_var = lambda_param_no_default_rule(p))  // lambda_param_no_default
10420
2.96k
        )
10421
1.11k
        {
10422
1.11k
            D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
10423
1.11k
            _res = lambda_param_no_default_var;
10424
1.11k
            goto done;
10425
1.11k
        }
10426
1.84k
        p->mark = _mark;
10427
1.84k
        D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
10428
1.84k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
10429
1.84k
    }
10430
0
    { // ','
10431
1.84k
        if (p->error_indicator) {
10432
3
            p->level--;
10433
3
            return NULL;
10434
3
        }
10435
1.84k
        D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
10436
1.84k
        Token * _literal;
10437
1.84k
        if (
10438
1.84k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
10439
1.84k
        )
10440
1.26k
        {
10441
1.26k
            D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
10442
1.26k
            _res = _literal;
10443
1.26k
            goto done;
10444
1.26k
        }
10445
579
        p->mark = _mark;
10446
579
        D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
10447
579
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
10448
579
    }
10449
579
    _res = NULL;
10450
2.96k
  done:
10451
2.96k
    p->level--;
10452
2.96k
    return _res;
10453
579
}
10454
10455
// _tmp_143: ',' | ')' | ':'
10456
static void *
10457
_tmp_143_rule(Parser *p)
10458
5
{
10459
5
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10460
0
        _Pypegen_stack_overflow(p);
10461
0
    }
10462
5
    if (p->error_indicator) {
10463
0
        p->level--;
10464
0
        return NULL;
10465
0
    }
10466
5
    void * _res = NULL;
10467
5
    int _mark = p->mark;
10468
5
    { // ','
10469
5
        if (p->error_indicator) {
10470
0
            p->level--;
10471
0
            return NULL;
10472
0
        }
10473
5
        D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
10474
5
        Token * _literal;
10475
5
        if (
10476
5
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
10477
5
        )
10478
1
        {
10479
1
            D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
10480
1
            _res = _literal;
10481
1
            goto done;
10482
1
        }
10483
4
        p->mark = _mark;
10484
4
        D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
10485
4
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
10486
4
    }
10487
0
    { // ')'
10488
4
        if (p->error_indicator) {
10489
0
            p->level--;
10490
0
            return NULL;
10491
0
        }
10492
4
        D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
10493
4
        Token * _literal;
10494
4
        if (
10495
4
            (_literal = _PyPegen_expect_token(p, 8))  // token=')'
10496
4
        )
10497
1
        {
10498
1
            D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
10499
1
            _res = _literal;
10500
1
            goto done;
10501
1
        }
10502
3
        p->mark = _mark;
10503
3
        D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
10504
3
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
10505
3
    }
10506
0
    { // ':'
10507
3
        if (p->error_indicator) {
10508
0
            p->level--;
10509
0
            return NULL;
10510
0
        }
10511
3
        D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
10512
3
        Token * _literal;
10513
3
        if (
10514
3
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
10515
3
        )
10516
1
        {
10517
1
            D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
10518
1
            _res = _literal;
10519
1
            goto done;
10520
1
        }
10521
2
        p->mark = _mark;
10522
2
        D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
10523
2
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
10524
2
    }
10525
2
    _res = NULL;
10526
5
  done:
10527
5
    p->level--;
10528
5
    return _res;
10529
2
}
10530
10531
// _tmp_144: bitwise_or ((',' bitwise_or))* ','?
10532
static void *
10533
_tmp_144_rule(Parser *p)
10534
2.09k
{
10535
2.09k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10536
0
        _Pypegen_stack_overflow(p);
10537
0
    }
10538
2.09k
    if (p->error_indicator) {
10539
0
        p->level--;
10540
0
        return NULL;
10541
0
    }
10542
2.09k
    void * _res = NULL;
10543
2.09k
    int _mark = p->mark;
10544
2.09k
    { // bitwise_or ((',' bitwise_or))* ','?
10545
2.09k
        if (p->error_indicator) {
10546
0
            p->level--;
10547
0
            return NULL;
10548
0
        }
10549
2.09k
        D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or ((',' bitwise_or))* ','?"));
10550
2.09k
        asdl_seq * _loop0_195_var;
10551
2.09k
        void *_opt_var;
10552
2.09k
        UNUSED(_opt_var); // Silence compiler warnings
10553
2.09k
        expr_ty bitwise_or_var;
10554
2.09k
        if (
10555
2.09k
            (bitwise_or_var = bitwise_or_rule(p))  // bitwise_or
10556
627
            &&
10557
627
            (_loop0_195_var = _loop0_195_rule(p))  // ((',' bitwise_or))*
10558
627
            &&
10559
627
            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
10560
2.09k
        )
10561
309
        {
10562
309
            D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or ((',' bitwise_or))* ','?"));
10563
309
            _res = _PyPegen_dummy_name(p, bitwise_or_var, _loop0_195_var, _opt_var);
10564
309
            goto done;
10565
309
        }
10566
1.79k
        p->mark = _mark;
10567
1.79k
        D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
10568
1.79k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or ((',' bitwise_or))* ','?"));
10569
1.79k
    }
10570
1.79k
    _res = NULL;
10571
2.09k
  done:
10572
2.09k
    p->level--;
10573
2.09k
    return _res;
10574
1.79k
}
10575
10576
// _loop0_145: ',' dotted_name
10577
static asdl_seq *
10578
_loop0_145_rule(Parser *p)
10579
856
{
10580
856
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10581
0
        _Pypegen_stack_overflow(p);
10582
0
    }
10583
856
    if (p->error_indicator) {
10584
0
        p->level--;
10585
0
        return NULL;
10586
0
    }
10587
856
    void *_res = NULL;
10588
856
    int _mark = p->mark;
10589
856
    void **_children = NULL;
10590
856
    Py_ssize_t _children_capacity = 0;
10591
856
    Py_ssize_t _n = 0;
10592
856
    { // ',' dotted_name
10593
856
        if (p->error_indicator) {
10594
0
            p->level--;
10595
0
            return NULL;
10596
0
        }
10597
856
        D(fprintf(stderr, "%*c> _loop0_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_name"));
10598
856
        Token * _literal;
10599
856
        expr_ty elem;
10600
856
        while (
10601
2.24k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
10602
1.41k
            &&
10603
1.41k
            (elem = dotted_name_rule(p))  // dotted_name
10604
856
        )
10605
1.38k
        {
10606
1.38k
            _res = elem;
10607
1.38k
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
10608
0
                p->error_indicator = 1;
10609
0
                PyMem_Free(_children);
10610
0
                p->level--;
10611
0
                return NULL;
10612
0
            }
10613
1.38k
            if (_n == _children_capacity) {
10614
672
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
10615
0
                    p->error_indicator = 1;
10616
0
                    PyErr_NoMemory();
10617
0
                    PyMem_Free(_children);
10618
0
                    p->level--;
10619
0
                    return NULL;
10620
0
                }
10621
672
            }
10622
1.38k
            _children[_n++] = _res;
10623
1.38k
            _mark = p->mark;
10624
1.38k
        }
10625
856
        p->mark = _mark;
10626
856
        D(fprintf(stderr, "%*c%s _loop0_145[%d-%d]: %s failed!\n", p->level, ' ',
10627
856
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_name"));
10628
856
    }
10629
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
10630
856
    if (!_seq) {
10631
0
        p->error_indicator = 1;
10632
0
        PyErr_NoMemory();
10633
0
        PyMem_Free(_children);
10634
0
        p->level--;
10635
0
        return NULL;
10636
0
    }
10637
2.24k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
10638
856
    PyMem_Free(_children);
10639
856
    p->level--;
10640
856
    return _seq;
10641
856
}
10642
10643
// _gather_146: dotted_name _loop0_145
10644
static asdl_seq *
10645
_gather_146_rule(Parser *p)
10646
868
{
10647
868
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10648
0
        _Pypegen_stack_overflow(p);
10649
0
    }
10650
868
    if (p->error_indicator) {
10651
0
        p->level--;
10652
0
        return NULL;
10653
0
    }
10654
868
    asdl_seq * _res = NULL;
10655
868
    int _mark = p->mark;
10656
868
    { // dotted_name _loop0_145
10657
868
        if (p->error_indicator) {
10658
0
            p->level--;
10659
0
            return NULL;
10660
0
        }
10661
868
        D(fprintf(stderr, "%*c> _gather_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name _loop0_145"));
10662
868
        expr_ty elem;
10663
868
        asdl_seq * seq;
10664
868
        if (
10665
868
            (elem = dotted_name_rule(p))  // dotted_name
10666
856
            &&
10667
856
            (seq = _loop0_145_rule(p))  // _loop0_145
10668
868
        )
10669
856
        {
10670
856
            D(fprintf(stderr, "%*c+ _gather_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name _loop0_145"));
10671
856
            _res = _PyPegen_seq_insert_in_front(p, elem, seq);
10672
856
            goto done;
10673
856
        }
10674
12
        p->mark = _mark;
10675
12
        D(fprintf(stderr, "%*c%s _gather_146[%d-%d]: %s failed!\n", p->level, ' ',
10676
12
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name _loop0_145"));
10677
12
    }
10678
12
    _res = NULL;
10679
868
  done:
10680
868
    p->level--;
10681
868
    return _res;
10682
12
}
10683
10684
// _tmp_147: NAME (',' | ')' | ';' | NEWLINE)
10685
static void *
10686
_tmp_147_rule(Parser *p)
10687
1.07k
{
10688
1.07k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10689
0
        _Pypegen_stack_overflow(p);
10690
0
    }
10691
1.07k
    if (p->error_indicator) {
10692
0
        p->level--;
10693
0
        return NULL;
10694
0
    }
10695
1.07k
    void * _res = NULL;
10696
1.07k
    int _mark = p->mark;
10697
1.07k
    { // NAME (',' | ')' | ';' | NEWLINE)
10698
1.07k
        if (p->error_indicator) {
10699
0
            p->level--;
10700
0
            return NULL;
10701
0
        }
10702
1.07k
        D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME (',' | ')' | ';' | NEWLINE)"));
10703
1.07k
        void *_tmp_196_var;
10704
1.07k
        expr_ty name_var;
10705
1.07k
        if (
10706
1.07k
            (name_var = _PyPegen_name_token(p))  // NAME
10707
882
            &&
10708
882
            (_tmp_196_var = _tmp_196_rule(p))  // ',' | ')' | ';' | NEWLINE
10709
1.07k
        )
10710
698
        {
10711
698
            D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME (',' | ')' | ';' | NEWLINE)"));
10712
698
            _res = _PyPegen_dummy_name(p, name_var, _tmp_196_var);
10713
698
            goto done;
10714
698
        }
10715
374
        p->mark = _mark;
10716
374
        D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
10717
374
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME (',' | ')' | ';' | NEWLINE)"));
10718
374
    }
10719
374
    _res = NULL;
10720
1.07k
  done:
10721
1.07k
    p->level--;
10722
1.07k
    return _res;
10723
374
}
10724
10725
// _loop0_148: ('.' | '...')
10726
static asdl_seq *
10727
_loop0_148_rule(Parser *p)
10728
2.34k
{
10729
2.34k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10730
0
        _Pypegen_stack_overflow(p);
10731
0
    }
10732
2.34k
    if (p->error_indicator) {
10733
0
        p->level--;
10734
0
        return NULL;
10735
0
    }
10736
2.34k
    void *_res = NULL;
10737
2.34k
    int _mark = p->mark;
10738
2.34k
    void **_children = NULL;
10739
2.34k
    Py_ssize_t _children_capacity = 0;
10740
2.34k
    Py_ssize_t _n = 0;
10741
2.34k
    { // ('.' | '...')
10742
2.34k
        if (p->error_indicator) {
10743
0
            p->level--;
10744
0
            return NULL;
10745
0
        }
10746
2.34k
        D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
10747
2.34k
        void *_tmp_197_var;
10748
2.34k
        while (
10749
6.71k
            (_tmp_197_var = _tmp_197_rule(p))  // '.' | '...'
10750
2.34k
        )
10751
4.36k
        {
10752
4.36k
            _res = _tmp_197_var;
10753
4.36k
            if (_n == _children_capacity) {
10754
2.36k
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
10755
0
                    p->error_indicator = 1;
10756
0
                    PyErr_NoMemory();
10757
0
                    PyMem_Free(_children);
10758
0
                    p->level--;
10759
0
                    return NULL;
10760
0
                }
10761
2.36k
            }
10762
4.36k
            _children[_n++] = _res;
10763
4.36k
            _mark = p->mark;
10764
4.36k
        }
10765
2.34k
        p->mark = _mark;
10766
2.34k
        D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ',
10767
2.34k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
10768
2.34k
    }
10769
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
10770
2.34k
    if (!_seq) {
10771
0
        p->error_indicator = 1;
10772
0
        PyErr_NoMemory();
10773
0
        PyMem_Free(_children);
10774
0
        p->level--;
10775
0
        return NULL;
10776
0
    }
10777
6.71k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
10778
2.34k
    PyMem_Free(_children);
10779
2.34k
    p->level--;
10780
2.34k
    return _seq;
10781
2.34k
}
10782
10783
// _loop0_149: ',' (expression ['as' star_target])
10784
static asdl_seq *
10785
_loop0_149_rule(Parser *p)
10786
2.18k
{
10787
2.18k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10788
0
        _Pypegen_stack_overflow(p);
10789
0
    }
10790
2.18k
    if (p->error_indicator) {
10791
0
        p->level--;
10792
0
        return NULL;
10793
0
    }
10794
2.18k
    void *_res = NULL;
10795
2.18k
    int _mark = p->mark;
10796
2.18k
    void **_children = NULL;
10797
2.18k
    Py_ssize_t _children_capacity = 0;
10798
2.18k
    Py_ssize_t _n = 0;
10799
2.18k
    { // ',' (expression ['as' star_target])
10800
2.18k
        if (p->error_indicator) {
10801
0
            p->level--;
10802
0
            return NULL;
10803
0
        }
10804
2.18k
        D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
10805
2.18k
        Token * _literal;
10806
2.18k
        void *elem;
10807
2.18k
        while (
10808
5.14k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
10809
3.01k
            &&
10810
3.01k
            (elem = _tmp_198_rule(p))  // expression ['as' star_target]
10811
2.18k
        )
10812
2.96k
        {
10813
2.96k
            _res = elem;
10814
2.96k
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
10815
0
                p->error_indicator = 1;
10816
0
                PyMem_Free(_children);
10817
0
                p->level--;
10818
0
                return NULL;
10819
0
            }
10820
2.96k
            if (_n == _children_capacity) {
10821
904
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
10822
0
                    p->error_indicator = 1;
10823
0
                    PyErr_NoMemory();
10824
0
                    PyMem_Free(_children);
10825
0
                    p->level--;
10826
0
                    return NULL;
10827
0
                }
10828
904
            }
10829
2.96k
            _children[_n++] = _res;
10830
2.96k
            _mark = p->mark;
10831
2.96k
        }
10832
2.18k
        p->mark = _mark;
10833
2.18k
        D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
10834
2.18k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
10835
2.18k
    }
10836
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
10837
2.18k
    if (!_seq) {
10838
0
        p->error_indicator = 1;
10839
0
        PyErr_NoMemory();
10840
0
        PyMem_Free(_children);
10841
0
        p->level--;
10842
0
        return NULL;
10843
0
    }
10844
5.14k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
10845
2.18k
    PyMem_Free(_children);
10846
2.18k
    p->level--;
10847
2.18k
    return _seq;
10848
2.18k
}
10849
10850
// _gather_150: (expression ['as' star_target]) _loop0_149
10851
static asdl_seq *
10852
_gather_150_rule(Parser *p)
10853
2.57k
{
10854
2.57k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10855
0
        _Pypegen_stack_overflow(p);
10856
0
    }
10857
2.57k
    if (p->error_indicator) {
10858
0
        p->level--;
10859
0
        return NULL;
10860
0
    }
10861
2.57k
    asdl_seq * _res = NULL;
10862
2.57k
    int _mark = p->mark;
10863
2.57k
    { // (expression ['as' star_target]) _loop0_149
10864
2.57k
        if (p->error_indicator) {
10865
0
            p->level--;
10866
0
            return NULL;
10867
0
        }
10868
2.57k
        D(fprintf(stderr, "%*c> _gather_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_149"));
10869
2.57k
        void *elem;
10870
2.57k
        asdl_seq * seq;
10871
2.57k
        if (
10872
2.57k
            (elem = _tmp_198_rule(p))  // expression ['as' star_target]
10873
2.18k
            &&
10874
2.18k
            (seq = _loop0_149_rule(p))  // _loop0_149
10875
2.57k
        )
10876
2.18k
        {
10877
2.18k
            D(fprintf(stderr, "%*c+ _gather_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_149"));
10878
2.18k
            _res = _PyPegen_seq_insert_in_front(p, elem, seq);
10879
2.18k
            goto done;
10880
2.18k
        }
10881
391
        p->mark = _mark;
10882
391
        D(fprintf(stderr, "%*c%s _gather_150[%d-%d]: %s failed!\n", p->level, ' ',
10883
391
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_149"));
10884
391
    }
10885
391
    _res = NULL;
10886
2.57k
  done:
10887
2.57k
    p->level--;
10888
2.57k
    return _res;
10889
391
}
10890
10891
// _loop0_151: ',' (expressions ['as' star_target])
10892
static asdl_seq *
10893
_loop0_151_rule(Parser *p)
10894
1.44k
{
10895
1.44k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10896
0
        _Pypegen_stack_overflow(p);
10897
0
    }
10898
1.44k
    if (p->error_indicator) {
10899
0
        p->level--;
10900
0
        return NULL;
10901
0
    }
10902
1.44k
    void *_res = NULL;
10903
1.44k
    int _mark = p->mark;
10904
1.44k
    void **_children = NULL;
10905
1.44k
    Py_ssize_t _children_capacity = 0;
10906
1.44k
    Py_ssize_t _n = 0;
10907
1.44k
    { // ',' (expressions ['as' star_target])
10908
1.44k
        if (p->error_indicator) {
10909
0
            p->level--;
10910
0
            return NULL;
10911
0
        }
10912
1.44k
        D(fprintf(stderr, "%*c> _loop0_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
10913
1.44k
        Token * _literal;
10914
1.44k
        void *elem;
10915
1.44k
        while (
10916
2.59k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
10917
1.19k
            &&
10918
1.19k
            (elem = _tmp_199_rule(p))  // expressions ['as' star_target]
10919
1.44k
        )
10920
1.15k
        {
10921
1.15k
            _res = elem;
10922
1.15k
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
10923
0
                p->error_indicator = 1;
10924
0
                PyMem_Free(_children);
10925
0
                p->level--;
10926
0
                return NULL;
10927
0
            }
10928
1.15k
            if (_n == _children_capacity) {
10929
260
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
10930
0
                    p->error_indicator = 1;
10931
0
                    PyErr_NoMemory();
10932
0
                    PyMem_Free(_children);
10933
0
                    p->level--;
10934
0
                    return NULL;
10935
0
                }
10936
260
            }
10937
1.15k
            _children[_n++] = _res;
10938
1.15k
            _mark = p->mark;
10939
1.15k
        }
10940
1.44k
        p->mark = _mark;
10941
1.44k
        D(fprintf(stderr, "%*c%s _loop0_151[%d-%d]: %s failed!\n", p->level, ' ',
10942
1.44k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
10943
1.44k
    }
10944
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
10945
1.44k
    if (!_seq) {
10946
0
        p->error_indicator = 1;
10947
0
        PyErr_NoMemory();
10948
0
        PyMem_Free(_children);
10949
0
        p->level--;
10950
0
        return NULL;
10951
0
    }
10952
2.59k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
10953
1.44k
    PyMem_Free(_children);
10954
1.44k
    p->level--;
10955
1.44k
    return _seq;
10956
1.44k
}
10957
10958
// _gather_152: (expressions ['as' star_target]) _loop0_151
10959
static asdl_seq *
10960
_gather_152_rule(Parser *p)
10961
1.88k
{
10962
1.88k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
10963
0
        _Pypegen_stack_overflow(p);
10964
0
    }
10965
1.88k
    if (p->error_indicator) {
10966
0
        p->level--;
10967
0
        return NULL;
10968
0
    }
10969
1.88k
    asdl_seq * _res = NULL;
10970
1.88k
    int _mark = p->mark;
10971
1.88k
    { // (expressions ['as' star_target]) _loop0_151
10972
1.88k
        if (p->error_indicator) {
10973
0
            p->level--;
10974
0
            return NULL;
10975
0
        }
10976
1.88k
        D(fprintf(stderr, "%*c> _gather_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_151"));
10977
1.88k
        void *elem;
10978
1.88k
        asdl_seq * seq;
10979
1.88k
        if (
10980
1.88k
            (elem = _tmp_199_rule(p))  // expressions ['as' star_target]
10981
1.44k
            &&
10982
1.44k
            (seq = _loop0_151_rule(p))  // _loop0_151
10983
1.88k
        )
10984
1.44k
        {
10985
1.44k
            D(fprintf(stderr, "%*c+ _gather_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_151"));
10986
1.44k
            _res = _PyPegen_seq_insert_in_front(p, elem, seq);
10987
1.44k
            goto done;
10988
1.44k
        }
10989
443
        p->mark = _mark;
10990
443
        D(fprintf(stderr, "%*c%s _gather_152[%d-%d]: %s failed!\n", p->level, ' ',
10991
443
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_151"));
10992
443
    }
10993
443
    _res = NULL;
10994
1.88k
  done:
10995
1.88k
    p->level--;
10996
1.88k
    return _res;
10997
443
}
10998
10999
// _tmp_153: 'except' | 'finally'
11000
static void *
11001
_tmp_153_rule(Parser *p)
11002
1.76k
{
11003
1.76k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11004
0
        _Pypegen_stack_overflow(p);
11005
0
    }
11006
1.76k
    if (p->error_indicator) {
11007
0
        p->level--;
11008
0
        return NULL;
11009
0
    }
11010
1.76k
    void * _res = NULL;
11011
1.76k
    int _mark = p->mark;
11012
1.76k
    { // 'except'
11013
1.76k
        if (p->error_indicator) {
11014
0
            p->level--;
11015
0
            return NULL;
11016
0
        }
11017
1.76k
        D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
11018
1.76k
        Token * _keyword;
11019
1.76k
        if (
11020
1.76k
            (_keyword = _PyPegen_expect_token(p, 524))  // token='except'
11021
1.76k
        )
11022
1.39k
        {
11023
1.39k
            D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
11024
1.39k
            _res = _keyword;
11025
1.39k
            goto done;
11026
1.39k
        }
11027
365
        p->mark = _mark;
11028
365
        D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
11029
365
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'"));
11030
365
    }
11031
0
    { // 'finally'
11032
365
        if (p->error_indicator) {
11033
1
            p->level--;
11034
1
            return NULL;
11035
1
        }
11036
364
        D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
11037
364
        Token * _keyword;
11038
364
        if (
11039
364
            (_keyword = _PyPegen_expect_token(p, 525))  // token='finally'
11040
364
        )
11041
333
        {
11042
333
            D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
11043
333
            _res = _keyword;
11044
333
            goto done;
11045
333
        }
11046
31
        p->mark = _mark;
11047
31
        D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
11048
31
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'"));
11049
31
    }
11050
31
    _res = NULL;
11051
1.76k
  done:
11052
1.76k
    p->level--;
11053
1.76k
    return _res;
11054
31
}
11055
11056
// _loop0_154: block
11057
static asdl_seq *
11058
_loop0_154_rule(Parser *p)
11059
3.64k
{
11060
3.64k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11061
0
        _Pypegen_stack_overflow(p);
11062
0
    }
11063
3.64k
    if (p->error_indicator) {
11064
0
        p->level--;
11065
0
        return NULL;
11066
0
    }
11067
3.64k
    void *_res = NULL;
11068
3.64k
    int _mark = p->mark;
11069
3.64k
    void **_children = NULL;
11070
3.64k
    Py_ssize_t _children_capacity = 0;
11071
3.64k
    Py_ssize_t _n = 0;
11072
3.64k
    { // block
11073
3.64k
        if (p->error_indicator) {
11074
0
            p->level--;
11075
0
            return NULL;
11076
0
        }
11077
3.64k
        D(fprintf(stderr, "%*c> _loop0_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block"));
11078
3.64k
        asdl_stmt_seq* block_var;
11079
3.64k
        while (
11080
7.07k
            (block_var = block_rule(p))  // block
11081
3.64k
        )
11082
3.43k
        {
11083
3.43k
            _res = block_var;
11084
3.43k
            if (_n == _children_capacity) {
11085
3.43k
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
11086
0
                    p->error_indicator = 1;
11087
0
                    PyErr_NoMemory();
11088
0
                    PyMem_Free(_children);
11089
0
                    p->level--;
11090
0
                    return NULL;
11091
0
                }
11092
3.43k
            }
11093
3.43k
            _children[_n++] = _res;
11094
3.43k
            _mark = p->mark;
11095
3.43k
        }
11096
3.64k
        p->mark = _mark;
11097
3.64k
        D(fprintf(stderr, "%*c%s _loop0_154[%d-%d]: %s failed!\n", p->level, ' ',
11098
3.64k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "block"));
11099
3.64k
    }
11100
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
11101
3.64k
    if (!_seq) {
11102
0
        p->error_indicator = 1;
11103
0
        PyErr_NoMemory();
11104
0
        PyMem_Free(_children);
11105
0
        p->level--;
11106
0
        return NULL;
11107
0
    }
11108
7.07k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
11109
3.64k
    PyMem_Free(_children);
11110
3.64k
    p->level--;
11111
3.64k
    return _seq;
11112
3.64k
}
11113
11114
// _loop1_155: except_block
11115
static asdl_seq *
11116
_loop1_155_rule(Parser *p)
11117
1.84k
{
11118
1.84k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11119
0
        _Pypegen_stack_overflow(p);
11120
0
    }
11121
1.84k
    if (p->error_indicator) {
11122
0
        p->level--;
11123
0
        return NULL;
11124
0
    }
11125
1.84k
    void *_res = NULL;
11126
1.84k
    int _mark = p->mark;
11127
1.84k
    void **_children = NULL;
11128
1.84k
    Py_ssize_t _children_capacity = 0;
11129
1.84k
    Py_ssize_t _n = 0;
11130
1.84k
    { // except_block
11131
1.84k
        if (p->error_indicator) {
11132
0
            p->level--;
11133
0
            return NULL;
11134
0
        }
11135
1.84k
        D(fprintf(stderr, "%*c> _loop1_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
11136
1.84k
        excepthandler_ty except_block_var;
11137
1.84k
        while (
11138
3.49k
            (except_block_var = except_block_rule(p))  // except_block
11139
1.84k
        )
11140
1.64k
        {
11141
1.64k
            _res = except_block_var;
11142
1.64k
            if (_n == _children_capacity) {
11143
1.14k
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
11144
0
                    p->error_indicator = 1;
11145
0
                    PyErr_NoMemory();
11146
0
                    PyMem_Free(_children);
11147
0
                    p->level--;
11148
0
                    return NULL;
11149
0
                }
11150
1.14k
            }
11151
1.64k
            _children[_n++] = _res;
11152
1.64k
            _mark = p->mark;
11153
1.64k
        }
11154
1.84k
        p->mark = _mark;
11155
1.84k
        D(fprintf(stderr, "%*c%s _loop1_155[%d-%d]: %s failed!\n", p->level, ' ',
11156
1.84k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
11157
1.84k
    }
11158
1.84k
    if (_n == 0 || p->error_indicator) {
11159
1.00k
        PyMem_Free(_children);
11160
1.00k
        p->level--;
11161
1.00k
        return NULL;
11162
1.00k
    }
11163
842
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
11164
842
    if (!_seq) {
11165
0
        p->error_indicator = 1;
11166
0
        PyErr_NoMemory();
11167
0
        PyMem_Free(_children);
11168
0
        p->level--;
11169
0
        return NULL;
11170
0
    }
11171
2.45k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
11172
842
    PyMem_Free(_children);
11173
842
    p->level--;
11174
842
    return _seq;
11175
842
}
11176
11177
// _tmp_156: 'as' NAME
11178
static void *
11179
_tmp_156_rule(Parser *p)
11180
4.23k
{
11181
4.23k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11182
0
        _Pypegen_stack_overflow(p);
11183
0
    }
11184
4.23k
    if (p->error_indicator) {
11185
0
        p->level--;
11186
0
        return NULL;
11187
0
    }
11188
4.23k
    void * _res = NULL;
11189
4.23k
    int _mark = p->mark;
11190
4.23k
    { // 'as' NAME
11191
4.23k
        if (p->error_indicator) {
11192
0
            p->level--;
11193
0
            return NULL;
11194
0
        }
11195
4.23k
        D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
11196
4.23k
        Token * _keyword;
11197
4.23k
        expr_ty name_var;
11198
4.23k
        if (
11199
4.23k
            (_keyword = _PyPegen_expect_token(p, 520))  // token='as'
11200
510
            &&
11201
510
            (name_var = _PyPegen_name_token(p))  // NAME
11202
4.23k
        )
11203
478
        {
11204
478
            D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
11205
478
            _res = _PyPegen_dummy_name(p, _keyword, name_var);
11206
478
            goto done;
11207
478
        }
11208
3.76k
        p->mark = _mark;
11209
3.76k
        D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
11210
3.76k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
11211
3.76k
    }
11212
3.76k
    _res = NULL;
11213
4.23k
  done:
11214
4.23k
    p->level--;
11215
4.23k
    return _res;
11216
3.76k
}
11217
11218
// _loop1_157: except_star_block
11219
static asdl_seq *
11220
_loop1_157_rule(Parser *p)
11221
1.79k
{
11222
1.79k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11223
0
        _Pypegen_stack_overflow(p);
11224
0
    }
11225
1.79k
    if (p->error_indicator) {
11226
0
        p->level--;
11227
0
        return NULL;
11228
0
    }
11229
1.79k
    void *_res = NULL;
11230
1.79k
    int _mark = p->mark;
11231
1.79k
    void **_children = NULL;
11232
1.79k
    Py_ssize_t _children_capacity = 0;
11233
1.79k
    Py_ssize_t _n = 0;
11234
1.79k
    { // except_star_block
11235
1.79k
        if (p->error_indicator) {
11236
0
            p->level--;
11237
0
            return NULL;
11238
0
        }
11239
1.79k
        D(fprintf(stderr, "%*c> _loop1_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_star_block"));
11240
1.79k
        excepthandler_ty except_star_block_var;
11241
1.79k
        while (
11242
3.04k
            (except_star_block_var = except_star_block_rule(p))  // except_star_block
11243
1.79k
        )
11244
1.24k
        {
11245
1.24k
            _res = except_star_block_var;
11246
1.24k
            if (_n == _children_capacity) {
11247
606
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
11248
0
                    p->error_indicator = 1;
11249
0
                    PyErr_NoMemory();
11250
0
                    PyMem_Free(_children);
11251
0
                    p->level--;
11252
0
                    return NULL;
11253
0
                }
11254
606
            }
11255
1.24k
            _children[_n++] = _res;
11256
1.24k
            _mark = p->mark;
11257
1.24k
        }
11258
1.79k
        p->mark = _mark;
11259
1.79k
        D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ',
11260
1.79k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_star_block"));
11261
1.79k
    }
11262
1.79k
    if (_n == 0 || p->error_indicator) {
11263
1.33k
        PyMem_Free(_children);
11264
1.33k
        p->level--;
11265
1.33k
        return NULL;
11266
1.33k
    }
11267
462
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
11268
462
    if (!_seq) {
11269
0
        p->error_indicator = 1;
11270
0
        PyErr_NoMemory();
11271
0
        PyMem_Free(_children);
11272
0
        p->level--;
11273
0
        return NULL;
11274
0
    }
11275
1.66k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
11276
462
    PyMem_Free(_children);
11277
462
    p->level--;
11278
462
    return _seq;
11279
462
}
11280
11281
// _tmp_158: expression ['as' NAME]
11282
static void *
11283
_tmp_158_rule(Parser *p)
11284
18
{
11285
18
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11286
0
        _Pypegen_stack_overflow(p);
11287
0
    }
11288
18
    if (p->error_indicator) {
11289
0
        p->level--;
11290
0
        return NULL;
11291
0
    }
11292
18
    void * _res = NULL;
11293
18
    int _mark = p->mark;
11294
18
    { // expression ['as' NAME]
11295
18
        if (p->error_indicator) {
11296
0
            p->level--;
11297
0
            return NULL;
11298
0
        }
11299
18
        D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]"));
11300
18
        void *_opt_var;
11301
18
        UNUSED(_opt_var); // Silence compiler warnings
11302
18
        expr_ty expression_var;
11303
18
        if (
11304
18
            (expression_var = expression_rule(p))  // expression
11305
2
            &&
11306
2
            (_opt_var = _tmp_156_rule(p), !p->error_indicator)  // ['as' NAME]
11307
18
        )
11308
1
        {
11309
1
            D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]"));
11310
1
            _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
11311
1
            goto done;
11312
1
        }
11313
17
        p->mark = _mark;
11314
17
        D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
11315
17
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' NAME]"));
11316
17
    }
11317
17
    _res = NULL;
11318
18
  done:
11319
18
    p->level--;
11320
18
    return _res;
11321
17
}
11322
11323
// _tmp_159: NEWLINE | ':'
11324
static void *
11325
_tmp_159_rule(Parser *p)
11326
93
{
11327
93
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11328
0
        _Pypegen_stack_overflow(p);
11329
0
    }
11330
93
    if (p->error_indicator) {
11331
0
        p->level--;
11332
0
        return NULL;
11333
0
    }
11334
93
    void * _res = NULL;
11335
93
    int _mark = p->mark;
11336
93
    { // NEWLINE
11337
93
        if (p->error_indicator) {
11338
0
            p->level--;
11339
0
            return NULL;
11340
0
        }
11341
93
        D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
11342
93
        Token * newline_var;
11343
93
        if (
11344
93
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
11345
93
        )
11346
3
        {
11347
3
            D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
11348
3
            _res = newline_var;
11349
3
            goto done;
11350
3
        }
11351
90
        p->mark = _mark;
11352
90
        D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
11353
90
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
11354
90
    }
11355
0
    { // ':'
11356
90
        if (p->error_indicator) {
11357
0
            p->level--;
11358
0
            return NULL;
11359
0
        }
11360
90
        D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
11361
90
        Token * _literal;
11362
90
        if (
11363
90
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
11364
90
        )
11365
1
        {
11366
1
            D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
11367
1
            _res = _literal;
11368
1
            goto done;
11369
1
        }
11370
89
        p->mark = _mark;
11371
89
        D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
11372
89
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
11373
89
    }
11374
89
    _res = NULL;
11375
93
  done:
11376
93
    p->level--;
11377
93
    return _res;
11378
89
}
11379
11380
// _tmp_160: items_pattern ','
11381
static void *
11382
_tmp_160_rule(Parser *p)
11383
2.31k
{
11384
2.31k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11385
0
        _Pypegen_stack_overflow(p);
11386
0
    }
11387
2.31k
    if (p->error_indicator) {
11388
0
        p->level--;
11389
0
        return NULL;
11390
0
    }
11391
2.31k
    void * _res = NULL;
11392
2.31k
    int _mark = p->mark;
11393
2.31k
    { // items_pattern ','
11394
2.31k
        if (p->error_indicator) {
11395
0
            p->level--;
11396
0
            return NULL;
11397
0
        }
11398
2.31k
        D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "items_pattern ','"));
11399
2.31k
        Token * _literal;
11400
2.31k
        asdl_seq* items_pattern_var;
11401
2.31k
        if (
11402
2.31k
            (items_pattern_var = items_pattern_rule(p))  // items_pattern
11403
957
            &&
11404
957
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
11405
2.31k
        )
11406
564
        {
11407
564
            D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "items_pattern ','"));
11408
564
            _res = _PyPegen_dummy_name(p, items_pattern_var, _literal);
11409
564
            goto done;
11410
564
        }
11411
1.74k
        p->mark = _mark;
11412
1.74k
        D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
11413
1.74k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "items_pattern ','"));
11414
1.74k
    }
11415
1.74k
    _res = NULL;
11416
2.31k
  done:
11417
2.31k
    p->level--;
11418
2.31k
    return _res;
11419
1.74k
}
11420
11421
// _tmp_161: positional_patterns ','
11422
static void *
11423
_tmp_161_rule(Parser *p)
11424
2.85k
{
11425
2.85k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11426
0
        _Pypegen_stack_overflow(p);
11427
0
    }
11428
2.85k
    if (p->error_indicator) {
11429
0
        p->level--;
11430
0
        return NULL;
11431
0
    }
11432
2.85k
    void * _res = NULL;
11433
2.85k
    int _mark = p->mark;
11434
2.85k
    { // positional_patterns ','
11435
2.85k
        if (p->error_indicator) {
11436
0
            p->level--;
11437
0
            return NULL;
11438
0
        }
11439
2.85k
        D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
11440
2.85k
        Token * _literal;
11441
2.85k
        asdl_pattern_seq* positional_patterns_var;
11442
2.85k
        if (
11443
2.85k
            (positional_patterns_var = positional_patterns_rule(p))  // positional_patterns
11444
1.51k
            &&
11445
1.51k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
11446
2.85k
        )
11447
957
        {
11448
957
            D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
11449
957
            _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal);
11450
957
            goto done;
11451
957
        }
11452
1.89k
        p->mark = _mark;
11453
1.89k
        D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
11454
1.89k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','"));
11455
1.89k
    }
11456
1.89k
    _res = NULL;
11457
2.85k
  done:
11458
2.85k
    p->level--;
11459
2.85k
    return _res;
11460
1.89k
}
11461
11462
// _tmp_162: '->' expression
11463
static void *
11464
_tmp_162_rule(Parser *p)
11465
4.31k
{
11466
4.31k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11467
0
        _Pypegen_stack_overflow(p);
11468
0
    }
11469
4.31k
    if (p->error_indicator) {
11470
0
        p->level--;
11471
0
        return NULL;
11472
0
    }
11473
4.31k
    void * _res = NULL;
11474
4.31k
    int _mark = p->mark;
11475
4.31k
    { // '->' expression
11476
4.31k
        if (p->error_indicator) {
11477
0
            p->level--;
11478
0
            return NULL;
11479
0
        }
11480
4.31k
        D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
11481
4.31k
        Token * _literal;
11482
4.31k
        expr_ty expression_var;
11483
4.31k
        if (
11484
4.31k
            (_literal = _PyPegen_expect_token(p, 51))  // token='->'
11485
185
            &&
11486
185
            (expression_var = expression_rule(p))  // expression
11487
4.31k
        )
11488
182
        {
11489
182
            D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
11490
182
            _res = _PyPegen_dummy_name(p, _literal, expression_var);
11491
182
            goto done;
11492
182
        }
11493
4.13k
        p->mark = _mark;
11494
4.13k
        D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
11495
4.13k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
11496
4.13k
    }
11497
4.13k
    _res = NULL;
11498
4.31k
  done:
11499
4.31k
    p->level--;
11500
4.31k
    return _res;
11501
4.13k
}
11502
11503
// _tmp_163: '(' arguments? ')'
11504
static void *
11505
_tmp_163_rule(Parser *p)
11506
1.90k
{
11507
1.90k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11508
0
        _Pypegen_stack_overflow(p);
11509
0
    }
11510
1.90k
    if (p->error_indicator) {
11511
0
        p->level--;
11512
0
        return NULL;
11513
0
    }
11514
1.90k
    void * _res = NULL;
11515
1.90k
    int _mark = p->mark;
11516
1.90k
    { // '(' arguments? ')'
11517
1.90k
        if (p->error_indicator) {
11518
0
            p->level--;
11519
0
            return NULL;
11520
0
        }
11521
1.90k
        D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
11522
1.90k
        Token * _literal;
11523
1.90k
        Token * _literal_1;
11524
1.90k
        void *_opt_var;
11525
1.90k
        UNUSED(_opt_var); // Silence compiler warnings
11526
1.90k
        if (
11527
1.90k
            (_literal = _PyPegen_expect_token(p, 7))  // token='('
11528
428
            &&
11529
428
            (_opt_var = arguments_rule(p), !p->error_indicator)  // arguments?
11530
427
            &&
11531
427
            (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
11532
1.90k
        )
11533
425
        {
11534
425
            D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
11535
425
            _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
11536
425
            goto done;
11537
425
        }
11538
1.47k
        p->mark = _mark;
11539
1.47k
        D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ',
11540
1.47k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
11541
1.47k
    }
11542
1.47k
    _res = NULL;
11543
1.90k
  done:
11544
1.90k
    p->level--;
11545
1.90k
    return _res;
11546
1.47k
}
11547
11548
// _loop0_164: ',' double_starred_kvpair
11549
static asdl_seq *
11550
_loop0_164_rule(Parser *p)
11551
2.55k
{
11552
2.55k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11553
0
        _Pypegen_stack_overflow(p);
11554
0
    }
11555
2.55k
    if (p->error_indicator) {
11556
0
        p->level--;
11557
0
        return NULL;
11558
0
    }
11559
2.55k
    void *_res = NULL;
11560
2.55k
    int _mark = p->mark;
11561
2.55k
    void **_children = NULL;
11562
2.55k
    Py_ssize_t _children_capacity = 0;
11563
2.55k
    Py_ssize_t _n = 0;
11564
2.55k
    { // ',' double_starred_kvpair
11565
2.55k
        if (p->error_indicator) {
11566
0
            p->level--;
11567
0
            return NULL;
11568
0
        }
11569
2.55k
        D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
11570
2.55k
        Token * _literal;
11571
2.55k
        KeyValuePair* elem;
11572
2.55k
        while (
11573
3.61k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
11574
2.92k
            &&
11575
2.92k
            (elem = double_starred_kvpair_rule(p))  // double_starred_kvpair
11576
2.55k
        )
11577
1.05k
        {
11578
1.05k
            _res = elem;
11579
1.05k
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
11580
0
                p->error_indicator = 1;
11581
0
                PyMem_Free(_children);
11582
0
                p->level--;
11583
0
                return NULL;
11584
0
            }
11585
1.05k
            if (_n == _children_capacity) {
11586
730
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
11587
0
                    p->error_indicator = 1;
11588
0
                    PyErr_NoMemory();
11589
0
                    PyMem_Free(_children);
11590
0
                    p->level--;
11591
0
                    return NULL;
11592
0
                }
11593
730
            }
11594
1.05k
            _children[_n++] = _res;
11595
1.05k
            _mark = p->mark;
11596
1.05k
        }
11597
2.55k
        p->mark = _mark;
11598
2.55k
        D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ',
11599
2.55k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
11600
2.55k
    }
11601
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
11602
2.55k
    if (!_seq) {
11603
0
        p->error_indicator = 1;
11604
0
        PyErr_NoMemory();
11605
0
        PyMem_Free(_children);
11606
0
        p->level--;
11607
0
        return NULL;
11608
0
    }
11609
3.61k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
11610
2.55k
    PyMem_Free(_children);
11611
2.55k
    p->level--;
11612
2.55k
    return _seq;
11613
2.55k
}
11614
11615
// _gather_165: double_starred_kvpair _loop0_164
11616
static asdl_seq *
11617
_gather_165_rule(Parser *p)
11618
12.8k
{
11619
12.8k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11620
0
        _Pypegen_stack_overflow(p);
11621
0
    }
11622
12.8k
    if (p->error_indicator) {
11623
0
        p->level--;
11624
0
        return NULL;
11625
0
    }
11626
12.8k
    asdl_seq * _res = NULL;
11627
12.8k
    int _mark = p->mark;
11628
12.8k
    { // double_starred_kvpair _loop0_164
11629
12.8k
        if (p->error_indicator) {
11630
0
            p->level--;
11631
0
            return NULL;
11632
0
        }
11633
12.8k
        D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_164"));
11634
12.8k
        KeyValuePair* elem;
11635
12.8k
        asdl_seq * seq;
11636
12.8k
        if (
11637
12.8k
            (elem = double_starred_kvpair_rule(p))  // double_starred_kvpair
11638
2.55k
            &&
11639
2.55k
            (seq = _loop0_164_rule(p))  // _loop0_164
11640
12.8k
        )
11641
2.55k
        {
11642
2.55k
            D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_164"));
11643
2.55k
            _res = _PyPegen_seq_insert_in_front(p, elem, seq);
11644
2.55k
            goto done;
11645
2.55k
        }
11646
10.3k
        p->mark = _mark;
11647
10.3k
        D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ',
11648
10.3k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_164"));
11649
10.3k
    }
11650
10.3k
    _res = NULL;
11651
12.8k
  done:
11652
12.8k
    p->level--;
11653
12.8k
    return _res;
11654
10.3k
}
11655
11656
// _tmp_166: invalid_kvpair | invalid_kvpair_unpacking
11657
static void *
11658
_tmp_166_rule(Parser *p)
11659
1.86k
{
11660
1.86k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11661
0
        _Pypegen_stack_overflow(p);
11662
0
    }
11663
1.86k
    if (p->error_indicator) {
11664
0
        p->level--;
11665
0
        return NULL;
11666
0
    }
11667
1.86k
    void * _res = NULL;
11668
1.86k
    int _mark = p->mark;
11669
1.86k
    if (p->call_invalid_rules) { // invalid_kvpair
11670
974
        if (p->error_indicator) {
11671
0
            p->level--;
11672
0
            return NULL;
11673
0
        }
11674
974
        D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kvpair"));
11675
974
        void *invalid_kvpair_var;
11676
974
        if (
11677
974
            (invalid_kvpair_var = invalid_kvpair_rule(p))  // invalid_kvpair
11678
974
        )
11679
0
        {
11680
0
            D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kvpair"));
11681
0
            _res = invalid_kvpair_var;
11682
0
            goto done;
11683
0
        }
11684
974
        p->mark = _mark;
11685
974
        D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ',
11686
974
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kvpair"));
11687
974
    }
11688
1.86k
    if (p->call_invalid_rules) { // invalid_kvpair_unpacking
11689
974
        if (p->error_indicator) {
11690
280
            p->level--;
11691
280
            return NULL;
11692
280
        }
11693
694
        D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kvpair_unpacking"));
11694
694
        void *invalid_kvpair_unpacking_var;
11695
694
        if (
11696
694
            (invalid_kvpair_unpacking_var = invalid_kvpair_unpacking_rule(p))  // invalid_kvpair_unpacking
11697
694
        )
11698
0
        {
11699
0
            D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kvpair_unpacking"));
11700
0
            _res = invalid_kvpair_unpacking_var;
11701
0
            goto done;
11702
0
        }
11703
694
        p->mark = _mark;
11704
694
        D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ',
11705
694
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kvpair_unpacking"));
11706
694
    }
11707
1.58k
    _res = NULL;
11708
1.58k
  done:
11709
1.58k
    p->level--;
11710
1.58k
    return _res;
11711
1.58k
}
11712
11713
// _tmp_167: '}' | ','
11714
static void *
11715
_tmp_167_rule(Parser *p)
11716
2.61k
{
11717
2.61k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11718
0
        _Pypegen_stack_overflow(p);
11719
0
    }
11720
2.61k
    if (p->error_indicator) {
11721
0
        p->level--;
11722
0
        return NULL;
11723
0
    }
11724
2.61k
    void * _res = NULL;
11725
2.61k
    int _mark = p->mark;
11726
2.61k
    { // '}'
11727
2.61k
        if (p->error_indicator) {
11728
0
            p->level--;
11729
0
            return NULL;
11730
0
        }
11731
2.61k
        D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
11732
2.61k
        Token * _literal;
11733
2.61k
        if (
11734
2.61k
            (_literal = _PyPegen_expect_token(p, 26))  // token='}'
11735
2.61k
        )
11736
5
        {
11737
5
            D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
11738
5
            _res = _literal;
11739
5
            goto done;
11740
5
        }
11741
2.61k
        p->mark = _mark;
11742
2.61k
        D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ',
11743
2.61k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
11744
2.61k
    }
11745
0
    { // ','
11746
2.61k
        if (p->error_indicator) {
11747
0
            p->level--;
11748
0
            return NULL;
11749
0
        }
11750
2.61k
        D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
11751
2.61k
        Token * _literal;
11752
2.61k
        if (
11753
2.61k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
11754
2.61k
        )
11755
2
        {
11756
2
            D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
11757
2
            _res = _literal;
11758
2
            goto done;
11759
2
        }
11760
2.61k
        p->mark = _mark;
11761
2.61k
        D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ',
11762
2.61k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
11763
2.61k
    }
11764
2.61k
    _res = NULL;
11765
2.61k
  done:
11766
2.61k
    p->level--;
11767
2.61k
    return _res;
11768
2.61k
}
11769
11770
// _tmp_168: '=' | '!' | ':' | '}'
11771
static void *
11772
_tmp_168_rule(Parser *p)
11773
234
{
11774
234
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11775
0
        _Pypegen_stack_overflow(p);
11776
0
    }
11777
234
    if (p->error_indicator) {
11778
0
        p->level--;
11779
0
        return NULL;
11780
0
    }
11781
234
    void * _res = NULL;
11782
234
    int _mark = p->mark;
11783
234
    { // '='
11784
234
        if (p->error_indicator) {
11785
0
            p->level--;
11786
0
            return NULL;
11787
0
        }
11788
234
        D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
11789
234
        Token * _literal;
11790
234
        if (
11791
234
            (_literal = _PyPegen_expect_token(p, 22))  // token='='
11792
234
        )
11793
34
        {
11794
34
            D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
11795
34
            _res = _literal;
11796
34
            goto done;
11797
34
        }
11798
200
        p->mark = _mark;
11799
200
        D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ',
11800
200
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
11801
200
    }
11802
0
    { // '!'
11803
200
        if (p->error_indicator) {
11804
0
            p->level--;
11805
0
            return NULL;
11806
0
        }
11807
200
        D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'"));
11808
200
        Token * _literal;
11809
200
        if (
11810
200
            (_literal = _PyPegen_expect_token(p, 54))  // token='!'
11811
200
        )
11812
20
        {
11813
20
            D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'"));
11814
20
            _res = _literal;
11815
20
            goto done;
11816
20
        }
11817
180
        p->mark = _mark;
11818
180
        D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ',
11819
180
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!'"));
11820
180
    }
11821
0
    { // ':'
11822
180
        if (p->error_indicator) {
11823
0
            p->level--;
11824
0
            return NULL;
11825
0
        }
11826
180
        D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
11827
180
        Token * _literal;
11828
180
        if (
11829
180
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
11830
180
        )
11831
104
        {
11832
104
            D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
11833
104
            _res = _literal;
11834
104
            goto done;
11835
104
        }
11836
76
        p->mark = _mark;
11837
76
        D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ',
11838
76
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
11839
76
    }
11840
0
    { // '}'
11841
76
        if (p->error_indicator) {
11842
0
            p->level--;
11843
0
            return NULL;
11844
0
        }
11845
76
        D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
11846
76
        Token * _literal;
11847
76
        if (
11848
76
            (_literal = _PyPegen_expect_token(p, 26))  // token='}'
11849
76
        )
11850
0
        {
11851
0
            D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
11852
0
            _res = _literal;
11853
0
            goto done;
11854
0
        }
11855
76
        p->mark = _mark;
11856
76
        D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ',
11857
76
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
11858
76
    }
11859
76
    _res = NULL;
11860
234
  done:
11861
234
    p->level--;
11862
234
    return _res;
11863
76
}
11864
11865
// _tmp_169: '!' | ':' | '}'
11866
static void *
11867
_tmp_169_rule(Parser *p)
11868
34
{
11869
34
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11870
0
        _Pypegen_stack_overflow(p);
11871
0
    }
11872
34
    if (p->error_indicator) {
11873
0
        p->level--;
11874
0
        return NULL;
11875
0
    }
11876
34
    void * _res = NULL;
11877
34
    int _mark = p->mark;
11878
34
    { // '!'
11879
34
        if (p->error_indicator) {
11880
0
            p->level--;
11881
0
            return NULL;
11882
0
        }
11883
34
        D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'"));
11884
34
        Token * _literal;
11885
34
        if (
11886
34
            (_literal = _PyPegen_expect_token(p, 54))  // token='!'
11887
34
        )
11888
1
        {
11889
1
            D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'"));
11890
1
            _res = _literal;
11891
1
            goto done;
11892
1
        }
11893
33
        p->mark = _mark;
11894
33
        D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
11895
33
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!'"));
11896
33
    }
11897
0
    { // ':'
11898
33
        if (p->error_indicator) {
11899
0
            p->level--;
11900
0
            return NULL;
11901
0
        }
11902
33
        D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
11903
33
        Token * _literal;
11904
33
        if (
11905
33
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
11906
33
        )
11907
4
        {
11908
4
            D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
11909
4
            _res = _literal;
11910
4
            goto done;
11911
4
        }
11912
29
        p->mark = _mark;
11913
29
        D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
11914
29
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
11915
29
    }
11916
0
    { // '}'
11917
29
        if (p->error_indicator) {
11918
0
            p->level--;
11919
0
            return NULL;
11920
0
        }
11921
29
        D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
11922
29
        Token * _literal;
11923
29
        if (
11924
29
            (_literal = _PyPegen_expect_token(p, 26))  // token='}'
11925
29
        )
11926
0
        {
11927
0
            D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
11928
0
            _res = _literal;
11929
0
            goto done;
11930
0
        }
11931
29
        p->mark = _mark;
11932
29
        D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
11933
29
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
11934
29
    }
11935
29
    _res = NULL;
11936
34
  done:
11937
34
    p->level--;
11938
34
    return _res;
11939
29
}
11940
11941
// _tmp_170: '!' NAME
11942
static void *
11943
_tmp_170_rule(Parser *p)
11944
234
{
11945
234
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11946
0
        _Pypegen_stack_overflow(p);
11947
0
    }
11948
234
    if (p->error_indicator) {
11949
0
        p->level--;
11950
0
        return NULL;
11951
0
    }
11952
234
    void * _res = NULL;
11953
234
    int _mark = p->mark;
11954
234
    { // '!' NAME
11955
234
        if (p->error_indicator) {
11956
0
            p->level--;
11957
0
            return NULL;
11958
0
        }
11959
234
        D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' NAME"));
11960
234
        Token * _literal;
11961
234
        expr_ty name_var;
11962
234
        if (
11963
234
            (_literal = _PyPegen_expect_token(p, 54))  // token='!'
11964
18
            &&
11965
18
            (name_var = _PyPegen_name_token(p))  // NAME
11966
234
        )
11967
18
        {
11968
18
            D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' NAME"));
11969
18
            _res = _PyPegen_dummy_name(p, _literal, name_var);
11970
18
            goto done;
11971
18
        }
11972
216
        p->mark = _mark;
11973
216
        D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
11974
216
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' NAME"));
11975
216
    }
11976
216
    _res = NULL;
11977
234
  done:
11978
234
    p->level--;
11979
234
    return _res;
11980
216
}
11981
11982
// _tmp_171: ':' | '}'
11983
static void *
11984
_tmp_171_rule(Parser *p)
11985
141
{
11986
141
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
11987
0
        _Pypegen_stack_overflow(p);
11988
0
    }
11989
141
    if (p->error_indicator) {
11990
0
        p->level--;
11991
0
        return NULL;
11992
0
    }
11993
141
    void * _res = NULL;
11994
141
    int _mark = p->mark;
11995
141
    { // ':'
11996
141
        if (p->error_indicator) {
11997
0
            p->level--;
11998
0
            return NULL;
11999
0
        }
12000
141
        D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
12001
141
        Token * _literal;
12002
141
        if (
12003
141
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
12004
141
        )
12005
114
        {
12006
114
            D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
12007
114
            _res = _literal;
12008
114
            goto done;
12009
114
        }
12010
27
        p->mark = _mark;
12011
27
        D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
12012
27
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
12013
27
    }
12014
0
    { // '}'
12015
27
        if (p->error_indicator) {
12016
0
            p->level--;
12017
0
            return NULL;
12018
0
        }
12019
27
        D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
12020
27
        Token * _literal;
12021
27
        if (
12022
27
            (_literal = _PyPegen_expect_token(p, 26))  // token='}'
12023
27
        )
12024
3
        {
12025
3
            D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
12026
3
            _res = _literal;
12027
3
            goto done;
12028
3
        }
12029
24
        p->mark = _mark;
12030
24
        D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
12031
24
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
12032
24
    }
12033
24
    _res = NULL;
12034
141
  done:
12035
141
    p->level--;
12036
141
    return _res;
12037
24
}
12038
12039
// _loop0_172: fstring_format_spec
12040
static asdl_seq *
12041
_loop0_172_rule(Parser *p)
12042
114
{
12043
114
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
12044
0
        _Pypegen_stack_overflow(p);
12045
0
    }
12046
114
    if (p->error_indicator) {
12047
0
        p->level--;
12048
0
        return NULL;
12049
0
    }
12050
114
    void *_res = NULL;
12051
114
    int _mark = p->mark;
12052
114
    void **_children = NULL;
12053
114
    Py_ssize_t _children_capacity = 0;
12054
114
    Py_ssize_t _n = 0;
12055
114
    { // fstring_format_spec
12056
114
        if (p->error_indicator) {
12057
0
            p->level--;
12058
0
            return NULL;
12059
0
        }
12060
114
        D(fprintf(stderr, "%*c> _loop0_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring_format_spec"));
12061
114
        expr_ty fstring_format_spec_var;
12062
114
        while (
12063
872
            (fstring_format_spec_var = fstring_format_spec_rule(p))  // fstring_format_spec
12064
114
        )
12065
758
        {
12066
758
            _res = fstring_format_spec_var;
12067
758
            if (_n == _children_capacity) {
12068
175
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
12069
0
                    p->error_indicator = 1;
12070
0
                    PyErr_NoMemory();
12071
0
                    PyMem_Free(_children);
12072
0
                    p->level--;
12073
0
                    return NULL;
12074
0
                }
12075
175
            }
12076
758
            _children[_n++] = _res;
12077
758
            _mark = p->mark;
12078
758
        }
12079
114
        p->mark = _mark;
12080
114
        D(fprintf(stderr, "%*c%s _loop0_172[%d-%d]: %s failed!\n", p->level, ' ',
12081
114
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_format_spec"));
12082
114
    }
12083
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
12084
114
    if (!_seq) {
12085
0
        p->error_indicator = 1;
12086
0
        PyErr_NoMemory();
12087
0
        PyMem_Free(_children);
12088
0
        p->level--;
12089
0
        return NULL;
12090
0
    }
12091
872
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
12092
114
    PyMem_Free(_children);
12093
114
    p->level--;
12094
114
    return _seq;
12095
114
}
12096
12097
// _loop1_173: (fstring | string)
12098
static asdl_seq *
12099
_loop1_173_rule(Parser *p)
12100
33.3k
{
12101
33.3k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
12102
1
        _Pypegen_stack_overflow(p);
12103
1
    }
12104
33.3k
    if (p->error_indicator) {
12105
1
        p->level--;
12106
1
        return NULL;
12107
1
    }
12108
33.3k
    void *_res = NULL;
12109
33.3k
    int _mark = p->mark;
12110
33.3k
    void **_children = NULL;
12111
33.3k
    Py_ssize_t _children_capacity = 0;
12112
33.3k
    Py_ssize_t _n = 0;
12113
33.3k
    { // (fstring | string)
12114
33.3k
        if (p->error_indicator) {
12115
0
            p->level--;
12116
0
            return NULL;
12117
0
        }
12118
33.3k
        D(fprintf(stderr, "%*c> _loop1_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(fstring | string)"));
12119
33.3k
        void *_tmp_175_var;
12120
33.3k
        while (
12121
45.4k
            (_tmp_175_var = _tmp_175_rule(p))  // fstring | string
12122
33.3k
        )
12123
12.1k
        {
12124
12.1k
            _res = _tmp_175_var;
12125
12.1k
            if (_n == _children_capacity) {
12126
9.95k
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
12127
0
                    p->error_indicator = 1;
12128
0
                    PyErr_NoMemory();
12129
0
                    PyMem_Free(_children);
12130
0
                    p->level--;
12131
0
                    return NULL;
12132
0
                }
12133
9.95k
            }
12134
12.1k
            _children[_n++] = _res;
12135
12.1k
            _mark = p->mark;
12136
12.1k
        }
12137
33.3k
        p->mark = _mark;
12138
33.3k
        D(fprintf(stderr, "%*c%s _loop1_173[%d-%d]: %s failed!\n", p->level, ' ',
12139
33.3k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(fstring | string)"));
12140
33.3k
    }
12141
33.3k
    if (_n == 0 || p->error_indicator) {
12142
26.4k
        PyMem_Free(_children);
12143
26.4k
        p->level--;
12144
26.4k
        return NULL;
12145
26.4k
    }
12146
6.83k
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
12147
6.83k
    if (!_seq) {
12148
0
        p->error_indicator = 1;
12149
0
        PyErr_NoMemory();
12150
0
        PyMem_Free(_children);
12151
0
        p->level--;
12152
0
        return NULL;
12153
0
    }
12154
18.4k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
12155
6.83k
    PyMem_Free(_children);
12156
6.83k
    p->level--;
12157
6.83k
    return _seq;
12158
6.83k
}
12159
12160
// _loop1_174: tstring
12161
static asdl_seq *
12162
_loop1_174_rule(Parser *p)
12163
29.2k
{
12164
29.2k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
12165
0
        _Pypegen_stack_overflow(p);
12166
0
    }
12167
29.2k
    if (p->error_indicator) {
12168
0
        p->level--;
12169
0
        return NULL;
12170
0
    }
12171
29.2k
    void *_res = NULL;
12172
29.2k
    int _mark = p->mark;
12173
29.2k
    void **_children = NULL;
12174
29.2k
    Py_ssize_t _children_capacity = 0;
12175
29.2k
    Py_ssize_t _n = 0;
12176
29.2k
    { // tstring
12177
29.2k
        if (p->error_indicator) {
12178
0
            p->level--;
12179
0
            return NULL;
12180
0
        }
12181
29.2k
        D(fprintf(stderr, "%*c> _loop1_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tstring"));
12182
29.2k
        expr_ty tstring_var;
12183
29.2k
        while (
12184
30.6k
            (tstring_var = tstring_rule(p))  // tstring
12185
29.2k
        )
12186
1.35k
        {
12187
1.35k
            _res = tstring_var;
12188
1.35k
            if (_n == _children_capacity) {
12189
942
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
12190
0
                    p->error_indicator = 1;
12191
0
                    PyErr_NoMemory();
12192
0
                    PyMem_Free(_children);
12193
0
                    p->level--;
12194
0
                    return NULL;
12195
0
                }
12196
942
            }
12197
1.35k
            _children[_n++] = _res;
12198
1.35k
            _mark = p->mark;
12199
1.35k
        }
12200
29.2k
        p->mark = _mark;
12201
29.2k
        D(fprintf(stderr, "%*c%s _loop1_174[%d-%d]: %s failed!\n", p->level, ' ',
12202
29.2k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tstring"));
12203
29.2k
    }
12204
29.2k
    if (_n == 0 || p->error_indicator) {
12205
28.6k
        PyMem_Free(_children);
12206
28.6k
        p->level--;
12207
28.6k
        return NULL;
12208
28.6k
    }
12209
571
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
12210
571
    if (!_seq) {
12211
0
        p->error_indicator = 1;
12212
0
        PyErr_NoMemory();
12213
0
        PyMem_Free(_children);
12214
0
        p->level--;
12215
0
        return NULL;
12216
0
    }
12217
1.67k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
12218
571
    PyMem_Free(_children);
12219
571
    p->level--;
12220
571
    return _seq;
12221
571
}
12222
12223
// _tmp_175: fstring | string
12224
static void *
12225
_tmp_175_rule(Parser *p)
12226
46.0k
{
12227
46.0k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
12228
1
        _Pypegen_stack_overflow(p);
12229
1
    }
12230
46.0k
    if (p->error_indicator) {
12231
1
        p->level--;
12232
1
        return NULL;
12233
1
    }
12234
46.0k
    void * _res = NULL;
12235
46.0k
    int _mark = p->mark;
12236
46.0k
    { // fstring
12237
46.0k
        if (p->error_indicator) {
12238
0
            p->level--;
12239
0
            return NULL;
12240
0
        }
12241
46.0k
        D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring"));
12242
46.0k
        expr_ty fstring_var;
12243
46.0k
        if (
12244
46.0k
            (fstring_var = fstring_rule(p))  // fstring
12245
46.0k
        )
12246
2.78k
        {
12247
2.78k
            D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "fstring"));
12248
2.78k
            _res = fstring_var;
12249
2.78k
            goto done;
12250
2.78k
        }
12251
43.2k
        p->mark = _mark;
12252
43.2k
        D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
12253
43.2k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring"));
12254
43.2k
    }
12255
0
    { // string
12256
43.2k
        if (p->error_indicator) {
12257
4.01k
            p->level--;
12258
4.01k
            return NULL;
12259
4.01k
        }
12260
39.2k
        D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "string"));
12261
39.2k
        expr_ty string_var;
12262
39.2k
        if (
12263
39.2k
            (string_var = string_rule(p))  // string
12264
39.2k
        )
12265
9.36k
        {
12266
9.36k
            D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "string"));
12267
9.36k
            _res = string_var;
12268
9.36k
            goto done;
12269
9.36k
        }
12270
29.8k
        p->mark = _mark;
12271
29.8k
        D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
12272
29.8k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "string"));
12273
29.8k
    }
12274
29.8k
    _res = NULL;
12275
41.9k
  done:
12276
41.9k
    p->level--;
12277
41.9k
    return _res;
12278
29.8k
}
12279
12280
// _tmp_176: '+' | '-' | '*' | '/' | '%' | '//' | '@'
12281
static void *
12282
_tmp_176_rule(Parser *p)
12283
101k
{
12284
101k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
12285
0
        _Pypegen_stack_overflow(p);
12286
0
    }
12287
101k
    if (p->error_indicator) {
12288
0
        p->level--;
12289
0
        return NULL;
12290
0
    }
12291
101k
    void * _res = NULL;
12292
101k
    int _mark = p->mark;
12293
101k
    { // '+'
12294
101k
        if (p->error_indicator) {
12295
0
            p->level--;
12296
0
            return NULL;
12297
0
        }
12298
101k
        D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
12299
101k
        Token * _literal;
12300
101k
        if (
12301
101k
            (_literal = _PyPegen_expect_token(p, 14))  // token='+'
12302
101k
        )
12303
493
        {
12304
493
            D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
12305
493
            _res = _literal;
12306
493
            goto done;
12307
493
        }
12308
101k
        p->mark = _mark;
12309
101k
        D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
12310
101k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
12311
101k
    }
12312
0
    { // '-'
12313
101k
        if (p->error_indicator) {
12314
0
            p->level--;
12315
0
            return NULL;
12316
0
        }
12317
101k
        D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
12318
101k
        Token * _literal;
12319
101k
        if (
12320
101k
            (_literal = _PyPegen_expect_token(p, 15))  // token='-'
12321
101k
        )
12322
518
        {
12323
518
            D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
12324
518
            _res = _literal;
12325
518
            goto done;
12326
518
        }
12327
100k
        p->mark = _mark;
12328
100k
        D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
12329
100k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
12330
100k
    }
12331
0
    { // '*'
12332
100k
        if (p->error_indicator) {
12333
0
            p->level--;
12334
0
            return NULL;
12335
0
        }
12336
100k
        D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
12337
100k
        Token * _literal;
12338
100k
        if (
12339
100k
            (_literal = _PyPegen_expect_token(p, 16))  // token='*'
12340
100k
        )
12341
744
        {
12342
744
            D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
12343
744
            _res = _literal;
12344
744
            goto done;
12345
744
        }
12346
100k
        p->mark = _mark;
12347
100k
        D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
12348
100k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
12349
100k
    }
12350
0
    { // '/'
12351
100k
        if (p->error_indicator) {
12352
0
            p->level--;
12353
0
            return NULL;
12354
0
        }
12355
100k
        D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'"));
12356
100k
        Token * _literal;
12357
100k
        if (
12358
100k
            (_literal = _PyPegen_expect_token(p, 17))  // token='/'
12359
100k
        )
12360
263
        {
12361
263
            D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'"));
12362
263
            _res = _literal;
12363
263
            goto done;
12364
263
        }
12365
99.9k
        p->mark = _mark;
12366
99.9k
        D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
12367
99.9k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'"));
12368
99.9k
    }
12369
0
    { // '%'
12370
99.9k
        if (p->error_indicator) {
12371
0
            p->level--;
12372
0
            return NULL;
12373
0
        }
12374
99.9k
        D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%'"));
12375
99.9k
        Token * _literal;
12376
99.9k
        if (
12377
99.9k
            (_literal = _PyPegen_expect_token(p, 24))  // token='%'
12378
99.9k
        )
12379
316
        {
12380
316
            D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%'"));
12381
316
            _res = _literal;
12382
316
            goto done;
12383
316
        }
12384
99.6k
        p->mark = _mark;
12385
99.6k
        D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
12386
99.6k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%'"));
12387
99.6k
    }
12388
0
    { // '//'
12389
99.6k
        if (p->error_indicator) {
12390
0
            p->level--;
12391
0
            return NULL;
12392
0
        }
12393
99.6k
        D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//'"));
12394
99.6k
        Token * _literal;
12395
99.6k
        if (
12396
99.6k
            (_literal = _PyPegen_expect_token(p, 47))  // token='//'
12397
99.6k
        )
12398
272
        {
12399
272
            D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//'"));
12400
272
            _res = _literal;
12401
272
            goto done;
12402
272
        }
12403
99.3k
        p->mark = _mark;
12404
99.3k
        D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
12405
99.3k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//'"));
12406
99.3k
    }
12407
0
    { // '@'
12408
99.3k
        if (p->error_indicator) {
12409
0
            p->level--;
12410
0
            return NULL;
12411
0
        }
12412
99.3k
        D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
12413
99.3k
        Token * _literal;
12414
99.3k
        if (
12415
99.3k
            (_literal = _PyPegen_expect_token(p, 49))  // token='@'
12416
99.3k
        )
12417
322
        {
12418
322
            D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
12419
322
            _res = _literal;
12420
322
            goto done;
12421
322
        }
12422
99.0k
        p->mark = _mark;
12423
99.0k
        D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
12424
99.0k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
12425
99.0k
    }
12426
99.0k
    _res = NULL;
12427
101k
  done:
12428
101k
    p->level--;
12429
101k
    return _res;
12430
99.0k
}
12431
12432
// _tmp_177: '+' | '-' | '~'
12433
static void *
12434
_tmp_177_rule(Parser *p)
12435
174k
{
12436
174k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
12437
0
        _Pypegen_stack_overflow(p);
12438
0
    }
12439
174k
    if (p->error_indicator) {
12440
0
        p->level--;
12441
0
        return NULL;
12442
0
    }
12443
174k
    void * _res = NULL;
12444
174k
    int _mark = p->mark;
12445
174k
    { // '+'
12446
174k
        if (p->error_indicator) {
12447
0
            p->level--;
12448
0
            return NULL;
12449
0
        }
12450
174k
        D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
12451
174k
        Token * _literal;
12452
174k
        if (
12453
174k
            (_literal = _PyPegen_expect_token(p, 14))  // token='+'
12454
174k
        )
12455
740
        {
12456
740
            D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
12457
740
            _res = _literal;
12458
740
            goto done;
12459
740
        }
12460
173k
        p->mark = _mark;
12461
173k
        D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
12462
173k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
12463
173k
    }
12464
0
    { // '-'
12465
173k
        if (p->error_indicator) {
12466
0
            p->level--;
12467
0
            return NULL;
12468
0
        }
12469
173k
        D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
12470
173k
        Token * _literal;
12471
173k
        if (
12472
173k
            (_literal = _PyPegen_expect_token(p, 15))  // token='-'
12473
173k
        )
12474
824
        {
12475
824
            D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
12476
824
            _res = _literal;
12477
824
            goto done;
12478
824
        }
12479
172k
        p->mark = _mark;
12480
172k
        D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
12481
172k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
12482
172k
    }
12483
0
    { // '~'
12484
172k
        if (p->error_indicator) {
12485
0
            p->level--;
12486
0
            return NULL;
12487
0
        }
12488
172k
        D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~'"));
12489
172k
        Token * _literal;
12490
172k
        if (
12491
172k
            (_literal = _PyPegen_expect_token(p, 31))  // token='~'
12492
172k
        )
12493
1.34k
        {
12494
1.34k
            D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~'"));
12495
1.34k
            _res = _literal;
12496
1.34k
            goto done;
12497
1.34k
        }
12498
171k
        p->mark = _mark;
12499
171k
        D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
12500
171k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~'"));
12501
171k
    }
12502
171k
    _res = NULL;
12503
174k
  done:
12504
174k
    p->level--;
12505
174k
    return _res;
12506
171k
}
12507
12508
// _tmp_189:
12509
//     | ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs
12510
static void *
12511
_tmp_189_rule(Parser *p)
12512
8.66k
{
12513
8.66k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
12514
0
        _Pypegen_stack_overflow(p);
12515
0
    }
12516
8.66k
    if (p->error_indicator) {
12517
0
        p->level--;
12518
0
        return NULL;
12519
0
    }
12520
8.66k
    void * _res = NULL;
12521
8.66k
    int _mark = p->mark;
12522
8.66k
    { // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs
12523
8.66k
        if (p->error_indicator) {
12524
0
            p->level--;
12525
0
            return NULL;
12526
0
        }
12527
8.66k
        D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs"));
12528
8.66k
        asdl_seq * _gather_202_var;
12529
8.66k
        Token * _literal;
12530
8.66k
        asdl_seq* kwargs_var;
12531
8.66k
        if (
12532
8.66k
            (_gather_202_var = _gather_202_rule(p))  // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+
12533
3.42k
            &&
12534
3.42k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
12535
619
            &&
12536
619
            (kwargs_var = kwargs_rule(p))  // kwargs
12537
8.66k
        )
12538
312
        {
12539
312
            D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs"));
12540
312
            _res = _PyPegen_dummy_name(p, _gather_202_var, _literal, kwargs_var);
12541
312
            goto done;
12542
312
        }
12543
8.35k
        p->mark = _mark;
12544
8.35k
        D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
12545
8.35k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs"));
12546
8.35k
    }
12547
8.35k
    _res = NULL;
12548
8.66k
  done:
12549
8.66k
    p->level--;
12550
8.66k
    return _res;
12551
8.35k
}
12552
12553
// _tmp_190: starred_expression !'='
12554
static void *
12555
_tmp_190_rule(Parser *p)
12556
3.14k
{
12557
3.14k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
12558
0
        _Pypegen_stack_overflow(p);
12559
0
    }
12560
3.14k
    if (p->error_indicator) {
12561
0
        p->level--;
12562
0
        return NULL;
12563
0
    }
12564
3.14k
    void * _res = NULL;
12565
3.14k
    int _mark = p->mark;
12566
3.14k
    { // starred_expression !'='
12567
3.14k
        if (p->error_indicator) {
12568
0
            p->level--;
12569
0
            return NULL;
12570
0
        }
12571
3.14k
        D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression !'='"));
12572
3.14k
        expr_ty starred_expression_var;
12573
3.14k
        if (
12574
3.14k
            (starred_expression_var = starred_expression_rule(p))  // starred_expression
12575
1.67k
            &&
12576
1.67k
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22)  // token='='
12577
3.14k
        )
12578
1.67k
        {
12579
1.67k
            D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression !'='"));
12580
1.67k
            _res = starred_expression_var;
12581
1.67k
            goto done;
12582
1.67k
        }
12583
1.47k
        p->mark = _mark;
12584
1.47k
        D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
12585
1.47k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression !'='"));
12586
1.47k
    }
12587
1.47k
    _res = NULL;
12588
3.14k
  done:
12589
3.14k
    p->level--;
12590
3.14k
    return _res;
12591
1.47k
}
12592
12593
// _tmp_191: !STRING expression_without_invalid
12594
static void *
12595
_tmp_191_rule(Parser *p)
12596
5.84k
{
12597
5.84k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
12598
0
        _Pypegen_stack_overflow(p);
12599
0
    }
12600
5.84k
    if (p->error_indicator) {
12601
0
        p->level--;
12602
0
        return NULL;
12603
0
    }
12604
5.84k
    void * _res = NULL;
12605
5.84k
    int _mark = p->mark;
12606
5.84k
    { // !STRING expression_without_invalid
12607
5.84k
        if (p->error_indicator) {
12608
0
            p->level--;
12609
0
            return NULL;
12610
0
        }
12611
5.84k
        D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!STRING expression_without_invalid"));
12612
5.84k
        expr_ty expression_without_invalid_var;
12613
5.84k
        if (
12614
5.84k
            _PyPegen_lookahead(0, _PyPegen_string_token, p)
12615
5.37k
            &&
12616
5.37k
            (expression_without_invalid_var = expression_without_invalid_rule(p))  // expression_without_invalid
12617
5.84k
        )
12618
2.87k
        {
12619
2.87k
            D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!STRING expression_without_invalid"));
12620
2.87k
            _res = expression_without_invalid_var;
12621
2.87k
            goto done;
12622
2.87k
        }
12623
2.96k
        p->mark = _mark;
12624
2.96k
        D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
12625
2.96k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!STRING expression_without_invalid"));
12626
2.96k
    }
12627
2.96k
    _res = NULL;
12628
5.84k
  done:
12629
5.84k
    p->level--;
12630
5.84k
    return _res;
12631
2.96k
}
12632
12633
// _tmp_192: star_targets '='
12634
static void *
12635
_tmp_192_rule(Parser *p)
12636
198k
{
12637
198k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
12638
0
        _Pypegen_stack_overflow(p);
12639
0
    }
12640
198k
    if (p->error_indicator) {
12641
0
        p->level--;
12642
0
        return NULL;
12643
0
    }
12644
198k
    void * _res = NULL;
12645
198k
    int _mark = p->mark;
12646
198k
    { // star_targets '='
12647
198k
        if (p->error_indicator) {
12648
0
            p->level--;
12649
0
            return NULL;
12650
0
        }
12651
198k
        D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
12652
198k
        Token * _literal;
12653
198k
        expr_ty star_targets_var;
12654
198k
        if (
12655
198k
            (star_targets_var = star_targets_rule(p))  // star_targets
12656
43.5k
            &&
12657
43.5k
            (_literal = _PyPegen_expect_token(p, 22))  // token='='
12658
198k
        )
12659
909
        {
12660
909
            D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
12661
909
            _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
12662
909
            goto done;
12663
909
        }
12664
197k
        p->mark = _mark;
12665
197k
        D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
12666
197k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
12667
197k
    }
12668
197k
    _res = NULL;
12669
198k
  done:
12670
198k
    p->level--;
12671
198k
    return _res;
12672
197k
}
12673
12674
// _tmp_193: ')' | '**'
12675
static void *
12676
_tmp_193_rule(Parser *p)
12677
495
{
12678
495
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
12679
0
        _Pypegen_stack_overflow(p);
12680
0
    }
12681
495
    if (p->error_indicator) {
12682
0
        p->level--;
12683
0
        return NULL;
12684
0
    }
12685
495
    void * _res = NULL;
12686
495
    int _mark = p->mark;
12687
495
    { // ')'
12688
495
        if (p->error_indicator) {
12689
0
            p->level--;
12690
0
            return NULL;
12691
0
        }
12692
495
        D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
12693
495
        Token * _literal;
12694
495
        if (
12695
495
            (_literal = _PyPegen_expect_token(p, 8))  // token=')'
12696
495
        )
12697
1
        {
12698
1
            D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
12699
1
            _res = _literal;
12700
1
            goto done;
12701
1
        }
12702
494
        p->mark = _mark;
12703
494
        D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
12704
494
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
12705
494
    }
12706
0
    { // '**'
12707
494
        if (p->error_indicator) {
12708
0
            p->level--;
12709
0
            return NULL;
12710
0
        }
12711
494
        D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
12712
494
        Token * _literal;
12713
494
        if (
12714
494
            (_literal = _PyPegen_expect_token(p, 35))  // token='**'
12715
494
        )
12716
1
        {
12717
1
            D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
12718
1
            _res = _literal;
12719
1
            goto done;
12720
1
        }
12721
493
        p->mark = _mark;
12722
493
        D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
12723
493
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
12724
493
    }
12725
493
    _res = NULL;
12726
495
  done:
12727
495
    p->level--;
12728
495
    return _res;
12729
493
}
12730
12731
// _tmp_194: ':' | '**'
12732
static void *
12733
_tmp_194_rule(Parser *p)
12734
1.26k
{
12735
1.26k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
12736
0
        _Pypegen_stack_overflow(p);
12737
0
    }
12738
1.26k
    if (p->error_indicator) {
12739
0
        p->level--;
12740
0
        return NULL;
12741
0
    }
12742
1.26k
    void * _res = NULL;
12743
1.26k
    int _mark = p->mark;
12744
1.26k
    { // ':'
12745
1.26k
        if (p->error_indicator) {
12746
0
            p->level--;
12747
0
            return NULL;
12748
0
        }
12749
1.26k
        D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
12750
1.26k
        Token * _literal;
12751
1.26k
        if (
12752
1.26k
            (_literal = _PyPegen_expect_token(p, 11))  // token=':'
12753
1.26k
        )
12754
1
        {
12755
1
            D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
12756
1
            _res = _literal;
12757
1
            goto done;
12758
1
        }
12759
1.26k
        p->mark = _mark;
12760
1.26k
        D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
12761
1.26k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
12762
1.26k
    }
12763
0
    { // '**'
12764
1.26k
        if (p->error_indicator) {
12765
0
            p->level--;
12766
0
            return NULL;
12767
0
        }
12768
1.26k
        D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
12769
1.26k
        Token * _literal;
12770
1.26k
        if (
12771
1.26k
            (_literal = _PyPegen_expect_token(p, 35))  // token='**'
12772
1.26k
        )
12773
1
        {
12774
1
            D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
12775
1
            _res = _literal;
12776
1
            goto done;
12777
1
        }
12778
1.26k
        p->mark = _mark;
12779
1.26k
        D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
12780
1.26k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
12781
1.26k
    }
12782
1.26k
    _res = NULL;
12783
1.26k
  done:
12784
1.26k
    p->level--;
12785
1.26k
    return _res;
12786
1.26k
}
12787
12788
// _loop0_195: (',' bitwise_or)
12789
static asdl_seq *
12790
_loop0_195_rule(Parser *p)
12791
627
{
12792
627
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
12793
0
        _Pypegen_stack_overflow(p);
12794
0
    }
12795
627
    if (p->error_indicator) {
12796
0
        p->level--;
12797
0
        return NULL;
12798
0
    }
12799
627
    void *_res = NULL;
12800
627
    int _mark = p->mark;
12801
627
    void **_children = NULL;
12802
627
    Py_ssize_t _children_capacity = 0;
12803
627
    Py_ssize_t _n = 0;
12804
627
    { // (',' bitwise_or)
12805
627
        if (p->error_indicator) {
12806
0
            p->level--;
12807
0
            return NULL;
12808
0
        }
12809
627
        D(fprintf(stderr, "%*c> _loop0_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' bitwise_or)"));
12810
627
        void *_tmp_203_var;
12811
627
        while (
12812
1.92k
            (_tmp_203_var = _tmp_203_rule(p))  // ',' bitwise_or
12813
627
        )
12814
1.29k
        {
12815
1.29k
            _res = _tmp_203_var;
12816
1.29k
            if (_n == _children_capacity) {
12817
803
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
12818
0
                    p->error_indicator = 1;
12819
0
                    PyErr_NoMemory();
12820
0
                    PyMem_Free(_children);
12821
0
                    p->level--;
12822
0
                    return NULL;
12823
0
                }
12824
803
            }
12825
1.29k
            _children[_n++] = _res;
12826
1.29k
            _mark = p->mark;
12827
1.29k
        }
12828
627
        p->mark = _mark;
12829
627
        D(fprintf(stderr, "%*c%s _loop0_195[%d-%d]: %s failed!\n", p->level, ' ',
12830
627
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' bitwise_or)"));
12831
627
    }
12832
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
12833
627
    if (!_seq) {
12834
0
        p->error_indicator = 1;
12835
0
        PyErr_NoMemory();
12836
0
        PyMem_Free(_children);
12837
0
        p->level--;
12838
0
        return NULL;
12839
0
    }
12840
1.92k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
12841
627
    PyMem_Free(_children);
12842
627
    p->level--;
12843
627
    return _seq;
12844
627
}
12845
12846
// _tmp_196: ',' | ')' | ';' | NEWLINE
12847
static void *
12848
_tmp_196_rule(Parser *p)
12849
882
{
12850
882
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
12851
0
        _Pypegen_stack_overflow(p);
12852
0
    }
12853
882
    if (p->error_indicator) {
12854
0
        p->level--;
12855
0
        return NULL;
12856
0
    }
12857
882
    void * _res = NULL;
12858
882
    int _mark = p->mark;
12859
882
    { // ','
12860
882
        if (p->error_indicator) {
12861
0
            p->level--;
12862
0
            return NULL;
12863
0
        }
12864
882
        D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
12865
882
        Token * _literal;
12866
882
        if (
12867
882
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
12868
882
        )
12869
370
        {
12870
370
            D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
12871
370
            _res = _literal;
12872
370
            goto done;
12873
370
        }
12874
512
        p->mark = _mark;
12875
512
        D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
12876
512
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
12877
512
    }
12878
0
    { // ')'
12879
512
        if (p->error_indicator) {
12880
5
            p->level--;
12881
5
            return NULL;
12882
5
        }
12883
507
        D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
12884
507
        Token * _literal;
12885
507
        if (
12886
507
            (_literal = _PyPegen_expect_token(p, 8))  // token=')'
12887
507
        )
12888
131
        {
12889
131
            D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
12890
131
            _res = _literal;
12891
131
            goto done;
12892
131
        }
12893
376
        p->mark = _mark;
12894
376
        D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
12895
376
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
12896
376
    }
12897
0
    { // ';'
12898
376
        if (p->error_indicator) {
12899
0
            p->level--;
12900
0
            return NULL;
12901
0
        }
12902
376
        D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
12903
376
        Token * _literal;
12904
376
        if (
12905
376
            (_literal = _PyPegen_expect_token(p, 13))  // token=';'
12906
376
        )
12907
66
        {
12908
66
            D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
12909
66
            _res = _literal;
12910
66
            goto done;
12911
66
        }
12912
310
        p->mark = _mark;
12913
310
        D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
12914
310
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
12915
310
    }
12916
0
    { // NEWLINE
12917
310
        if (p->error_indicator) {
12918
0
            p->level--;
12919
0
            return NULL;
12920
0
        }
12921
310
        D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
12922
310
        Token * newline_var;
12923
310
        if (
12924
310
            (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
12925
310
        )
12926
131
        {
12927
131
            D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
12928
131
            _res = newline_var;
12929
131
            goto done;
12930
131
        }
12931
179
        p->mark = _mark;
12932
179
        D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
12933
179
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
12934
179
    }
12935
179
    _res = NULL;
12936
877
  done:
12937
877
    p->level--;
12938
877
    return _res;
12939
179
}
12940
12941
// _tmp_197: '.' | '...'
12942
static void *
12943
_tmp_197_rule(Parser *p)
12944
6.71k
{
12945
6.71k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
12946
0
        _Pypegen_stack_overflow(p);
12947
0
    }
12948
6.71k
    if (p->error_indicator) {
12949
0
        p->level--;
12950
0
        return NULL;
12951
0
    }
12952
6.71k
    void * _res = NULL;
12953
6.71k
    int _mark = p->mark;
12954
6.71k
    { // '.'
12955
6.71k
        if (p->error_indicator) {
12956
0
            p->level--;
12957
0
            return NULL;
12958
0
        }
12959
6.71k
        D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
12960
6.71k
        Token * _literal;
12961
6.71k
        if (
12962
6.71k
            (_literal = _PyPegen_expect_token(p, 23))  // token='.'
12963
6.71k
        )
12964
2.98k
        {
12965
2.98k
            D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
12966
2.98k
            _res = _literal;
12967
2.98k
            goto done;
12968
2.98k
        }
12969
3.73k
        p->mark = _mark;
12970
3.73k
        D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
12971
3.73k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
12972
3.73k
    }
12973
0
    { // '...'
12974
3.73k
        if (p->error_indicator) {
12975
1
            p->level--;
12976
1
            return NULL;
12977
1
        }
12978
3.72k
        D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
12979
3.72k
        Token * _literal;
12980
3.72k
        if (
12981
3.72k
            (_literal = _PyPegen_expect_token(p, 52))  // token='...'
12982
3.72k
        )
12983
1.38k
        {
12984
1.38k
            D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
12985
1.38k
            _res = _literal;
12986
1.38k
            goto done;
12987
1.38k
        }
12988
2.34k
        p->mark = _mark;
12989
2.34k
        D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
12990
2.34k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
12991
2.34k
    }
12992
2.34k
    _res = NULL;
12993
6.71k
  done:
12994
6.71k
    p->level--;
12995
6.71k
    return _res;
12996
2.34k
}
12997
12998
// _tmp_198: expression ['as' star_target]
12999
static void *
13000
_tmp_198_rule(Parser *p)
13001
5.59k
{
13002
5.59k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
13003
0
        _Pypegen_stack_overflow(p);
13004
0
    }
13005
5.59k
    if (p->error_indicator) {
13006
0
        p->level--;
13007
0
        return NULL;
13008
0
    }
13009
5.59k
    void * _res = NULL;
13010
5.59k
    int _mark = p->mark;
13011
5.59k
    { // expression ['as' star_target]
13012
5.59k
        if (p->error_indicator) {
13013
0
            p->level--;
13014
0
            return NULL;
13015
0
        }
13016
5.59k
        D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
13017
5.59k
        void *_opt_var;
13018
5.59k
        UNUSED(_opt_var); // Silence compiler warnings
13019
5.59k
        expr_ty expression_var;
13020
5.59k
        if (
13021
5.59k
            (expression_var = expression_rule(p))  // expression
13022
5.14k
            &&
13023
5.14k
            (_opt_var = _tmp_204_rule(p), !p->error_indicator)  // ['as' star_target]
13024
5.59k
        )
13025
5.14k
        {
13026
5.14k
            D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
13027
5.14k
            _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
13028
5.14k
            goto done;
13029
5.14k
        }
13030
448
        p->mark = _mark;
13031
448
        D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
13032
448
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
13033
448
    }
13034
448
    _res = NULL;
13035
5.59k
  done:
13036
5.59k
    p->level--;
13037
5.59k
    return _res;
13038
448
}
13039
13040
// _tmp_199: expressions ['as' star_target]
13041
static void *
13042
_tmp_199_rule(Parser *p)
13043
3.08k
{
13044
3.08k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
13045
0
        _Pypegen_stack_overflow(p);
13046
0
    }
13047
3.08k
    if (p->error_indicator) {
13048
0
        p->level--;
13049
0
        return NULL;
13050
0
    }
13051
3.08k
    void * _res = NULL;
13052
3.08k
    int _mark = p->mark;
13053
3.08k
    { // expressions ['as' star_target]
13054
3.08k
        if (p->error_indicator) {
13055
0
            p->level--;
13056
0
            return NULL;
13057
0
        }
13058
3.08k
        D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
13059
3.08k
        void *_opt_var;
13060
3.08k
        UNUSED(_opt_var); // Silence compiler warnings
13061
3.08k
        expr_ty expressions_var;
13062
3.08k
        if (
13063
3.08k
            (expressions_var = expressions_rule(p))  // expressions
13064
2.59k
            &&
13065
2.59k
            (_opt_var = _tmp_204_rule(p), !p->error_indicator)  // ['as' star_target]
13066
3.08k
        )
13067
2.59k
        {
13068
2.59k
            D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
13069
2.59k
            _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
13070
2.59k
            goto done;
13071
2.59k
        }
13072
485
        p->mark = _mark;
13073
485
        D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
13074
485
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
13075
485
    }
13076
485
    _res = NULL;
13077
3.08k
  done:
13078
3.08k
    p->level--;
13079
3.08k
    return _res;
13080
485
}
13081
13082
// _loop0_201: ',' (starred_expression | (assignment_expression | expression !':=') !'=')
13083
static asdl_seq *
13084
_loop0_201_rule(Parser *p)
13085
3.42k
{
13086
3.42k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
13087
0
        _Pypegen_stack_overflow(p);
13088
0
    }
13089
3.42k
    if (p->error_indicator) {
13090
0
        p->level--;
13091
0
        return NULL;
13092
0
    }
13093
3.42k
    void *_res = NULL;
13094
3.42k
    int _mark = p->mark;
13095
3.42k
    void **_children = NULL;
13096
3.42k
    Py_ssize_t _children_capacity = 0;
13097
3.42k
    Py_ssize_t _n = 0;
13098
3.42k
    { // ',' (starred_expression | (assignment_expression | expression !':=') !'=')
13099
3.42k
        if (p->error_indicator) {
13100
0
            p->level--;
13101
0
            return NULL;
13102
0
        }
13103
3.42k
        D(fprintf(stderr, "%*c> _loop0_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
13104
3.42k
        Token * _literal;
13105
3.42k
        void *elem;
13106
3.42k
        while (
13107
4.86k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
13108
2.06k
            &&
13109
2.06k
            (elem = _tmp_205_rule(p))  // starred_expression | (assignment_expression | expression !':=') !'='
13110
3.42k
        )
13111
1.44k
        {
13112
1.44k
            _res = elem;
13113
1.44k
            if ((_res == NULL || p->error_indicator) && PyErr_Occurred()) {
13114
0
                p->error_indicator = 1;
13115
0
                PyMem_Free(_children);
13116
0
                p->level--;
13117
0
                return NULL;
13118
0
            }
13119
1.44k
            if (_n == _children_capacity) {
13120
1.12k
                if (_PyPegen_grow_loop_buffer(&_children, &_children_capacity) < 0) {
13121
0
                    p->error_indicator = 1;
13122
0
                    PyErr_NoMemory();
13123
0
                    PyMem_Free(_children);
13124
0
                    p->level--;
13125
0
                    return NULL;
13126
0
                }
13127
1.12k
            }
13128
1.44k
            _children[_n++] = _res;
13129
1.44k
            _mark = p->mark;
13130
1.44k
        }
13131
3.42k
        p->mark = _mark;
13132
3.42k
        D(fprintf(stderr, "%*c%s _loop0_201[%d-%d]: %s failed!\n", p->level, ' ',
13133
3.42k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
13134
3.42k
    }
13135
0
    asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
13136
3.42k
    if (!_seq) {
13137
0
        p->error_indicator = 1;
13138
0
        PyErr_NoMemory();
13139
0
        PyMem_Free(_children);
13140
0
        p->level--;
13141
0
        return NULL;
13142
0
    }
13143
4.86k
    for (Py_ssize_t i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
13144
3.42k
    PyMem_Free(_children);
13145
3.42k
    p->level--;
13146
3.42k
    return _seq;
13147
3.42k
}
13148
13149
// _gather_202:
13150
//     | (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_201
13151
static asdl_seq *
13152
_gather_202_rule(Parser *p)
13153
8.66k
{
13154
8.66k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
13155
0
        _Pypegen_stack_overflow(p);
13156
0
    }
13157
8.66k
    if (p->error_indicator) {
13158
0
        p->level--;
13159
0
        return NULL;
13160
0
    }
13161
8.66k
    asdl_seq * _res = NULL;
13162
8.66k
    int _mark = p->mark;
13163
8.66k
    { // (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_201
13164
8.66k
        if (p->error_indicator) {
13165
0
            p->level--;
13166
0
            return NULL;
13167
0
        }
13168
8.66k
        D(fprintf(stderr, "%*c> _gather_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_201"));
13169
8.66k
        void *elem;
13170
8.66k
        asdl_seq * seq;
13171
8.66k
        if (
13172
8.66k
            (elem = _tmp_205_rule(p))  // starred_expression | (assignment_expression | expression !':=') !'='
13173
3.42k
            &&
13174
3.42k
            (seq = _loop0_201_rule(p))  // _loop0_201
13175
8.66k
        )
13176
3.42k
        {
13177
3.42k
            D(fprintf(stderr, "%*c+ _gather_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_201"));
13178
3.42k
            _res = _PyPegen_seq_insert_in_front(p, elem, seq);
13179
3.42k
            goto done;
13180
3.42k
        }
13181
5.24k
        p->mark = _mark;
13182
5.24k
        D(fprintf(stderr, "%*c%s _gather_202[%d-%d]: %s failed!\n", p->level, ' ',
13183
5.24k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_201"));
13184
5.24k
    }
13185
5.24k
    _res = NULL;
13186
8.66k
  done:
13187
8.66k
    p->level--;
13188
8.66k
    return _res;
13189
5.24k
}
13190
13191
// _tmp_203: ',' bitwise_or
13192
static void *
13193
_tmp_203_rule(Parser *p)
13194
1.92k
{
13195
1.92k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
13196
0
        _Pypegen_stack_overflow(p);
13197
0
    }
13198
1.92k
    if (p->error_indicator) {
13199
0
        p->level--;
13200
0
        return NULL;
13201
0
    }
13202
1.92k
    void * _res = NULL;
13203
1.92k
    int _mark = p->mark;
13204
1.92k
    { // ',' bitwise_or
13205
1.92k
        if (p->error_indicator) {
13206
0
            p->level--;
13207
0
            return NULL;
13208
0
        }
13209
1.92k
        D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' bitwise_or"));
13210
1.92k
        Token * _literal;
13211
1.92k
        expr_ty bitwise_or_var;
13212
1.92k
        if (
13213
1.92k
            (_literal = _PyPegen_expect_token(p, 12))  // token=','
13214
1.63k
            &&
13215
1.63k
            (bitwise_or_var = bitwise_or_rule(p))  // bitwise_or
13216
1.92k
        )
13217
1.29k
        {
13218
1.29k
            D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' bitwise_or"));
13219
1.29k
            _res = _PyPegen_dummy_name(p, _literal, bitwise_or_var);
13220
1.29k
            goto done;
13221
1.29k
        }
13222
627
        p->mark = _mark;
13223
627
        D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
13224
627
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' bitwise_or"));
13225
627
    }
13226
627
    _res = NULL;
13227
1.92k
  done:
13228
1.92k
    p->level--;
13229
1.92k
    return _res;
13230
627
}
13231
13232
// _tmp_204: 'as' star_target
13233
static void *
13234
_tmp_204_rule(Parser *p)
13235
7.74k
{
13236
7.74k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
13237
0
        _Pypegen_stack_overflow(p);
13238
0
    }
13239
7.74k
    if (p->error_indicator) {
13240
0
        p->level--;
13241
0
        return NULL;
13242
0
    }
13243
7.74k
    void * _res = NULL;
13244
7.74k
    int _mark = p->mark;
13245
7.74k
    { // 'as' star_target
13246
7.74k
        if (p->error_indicator) {
13247
0
            p->level--;
13248
0
            return NULL;
13249
0
        }
13250
7.74k
        D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
13251
7.74k
        Token * _keyword;
13252
7.74k
        expr_ty star_target_var;
13253
7.74k
        if (
13254
7.74k
            (_keyword = _PyPegen_expect_token(p, 520))  // token='as'
13255
895
            &&
13256
895
            (star_target_var = star_target_rule(p))  // star_target
13257
7.74k
        )
13258
880
        {
13259
880
            D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
13260
880
            _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
13261
880
            goto done;
13262
880
        }
13263
6.86k
        p->mark = _mark;
13264
6.86k
        D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ',
13265
6.86k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
13266
6.86k
    }
13267
6.86k
    _res = NULL;
13268
7.74k
  done:
13269
7.74k
    p->level--;
13270
7.74k
    return _res;
13271
6.86k
}
13272
13273
// _tmp_205: starred_expression | (assignment_expression | expression !':=') !'='
13274
static void *
13275
_tmp_205_rule(Parser *p)
13276
10.7k
{
13277
10.7k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
13278
0
        _Pypegen_stack_overflow(p);
13279
0
    }
13280
10.7k
    if (p->error_indicator) {
13281
0
        p->level--;
13282
0
        return NULL;
13283
0
    }
13284
10.7k
    void * _res = NULL;
13285
10.7k
    int _mark = p->mark;
13286
10.7k
    { // starred_expression
13287
10.7k
        if (p->error_indicator) {
13288
0
            p->level--;
13289
0
            return NULL;
13290
0
        }
13291
10.7k
        D(fprintf(stderr, "%*c> _tmp_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
13292
10.7k
        expr_ty starred_expression_var;
13293
10.7k
        if (
13294
10.7k
            (starred_expression_var = starred_expression_rule(p))  // starred_expression
13295
10.7k
        )
13296
630
        {
13297
630
            D(fprintf(stderr, "%*c+ _tmp_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
13298
630
            _res = starred_expression_var;
13299
630
            goto done;
13300
630
        }
13301
10.1k
        p->mark = _mark;
13302
10.1k
        D(fprintf(stderr, "%*c%s _tmp_205[%d-%d]: %s failed!\n", p->level, ' ',
13303
10.1k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
13304
10.1k
    }
13305
0
    { // (assignment_expression | expression !':=') !'='
13306
10.1k
        if (p->error_indicator) {
13307
0
            p->level--;
13308
0
            return NULL;
13309
0
        }
13310
10.1k
        D(fprintf(stderr, "%*c> _tmp_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
13311
10.1k
        void *_tmp_206_var;
13312
10.1k
        if (
13313
10.1k
            (_tmp_206_var = _tmp_206_rule(p))  // assignment_expression | expression !':='
13314
5.64k
            &&
13315
5.64k
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22)  // token='='
13316
10.1k
        )
13317
4.23k
        {
13318
4.23k
            D(fprintf(stderr, "%*c+ _tmp_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
13319
4.23k
            _res = _tmp_206_var;
13320
4.23k
            goto done;
13321
4.23k
        }
13322
5.86k
        p->mark = _mark;
13323
5.86k
        D(fprintf(stderr, "%*c%s _tmp_205[%d-%d]: %s failed!\n", p->level, ' ',
13324
5.86k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
13325
5.86k
    }
13326
5.86k
    _res = NULL;
13327
10.7k
  done:
13328
10.7k
    p->level--;
13329
10.7k
    return _res;
13330
5.86k
}
13331
13332
// _tmp_206: assignment_expression | expression !':='
13333
static void *
13334
_tmp_206_rule(Parser *p)
13335
10.1k
{
13336
10.1k
    if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {
13337
0
        _Pypegen_stack_overflow(p);
13338
0
    }
13339
10.1k
    if (p->error_indicator) {
13340
0
        p->level--;
13341
0
        return NULL;
13342
0
    }
13343
10.1k
    void * _res = NULL;
13344
10.1k
    int _mark = p->mark;
13345
10.1k
    { // assignment_expression
13346
10.1k
        if (p->error_indicator) {
13347
0
            p->level--;
13348
0
            return NULL;
13349
0
        }
13350
10.1k
        D(fprintf(stderr, "%*c> _tmp_206[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
13351
10.1k
        expr_ty assignment_expression_var;
13352
10.1k
        if (
13353
10.1k
            (assignment_expression_var = assignment_expression_rule(p))  // assignment_expression
13354
10.1k
        )
13355
235
        {
13356
235
            D(fprintf(stderr, "%*c+ _tmp_206[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
13357
235
            _res = assignment_expression_var;
13358
235
            goto done;
13359
235
        }
13360
9.86k
        p->mark = _mark;
13361
9.86k
        D(fprintf(stderr, "%*c%s _tmp_206[%d-%d]: %s failed!\n", p->level, ' ',
13362
9.86k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
13363
9.86k
    }
13364
0
    { // expression !':='
13365
9.86k
        if (p->error_indicator) {
13366
0
            p->level--;
13367
0
            return NULL;
13368
0
        }
13369
9.86k
        D(fprintf(stderr, "%*c> _tmp_206[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
13370
9.86k
        expr_ty expression_var;
13371
9.86k
        if (
13372
9.86k
            (expression_var = expression_rule(p))  // expression
13373
5.50k
            &&
13374
5.50k
            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53)  // token=':='
13375
9.86k
        )
13376
5.40k
        {
13377
5.40k
            D(fprintf(stderr, "%*c+ _tmp_206[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
13378
5.40k
            _res = expression_var;
13379
5.40k
            goto done;
13380
5.40k
        }
13381
4.45k
        p->mark = _mark;
13382
4.45k
        D(fprintf(stderr, "%*c%s _tmp_206[%d-%d]: %s failed!\n", p->level, ' ',
13383
4.45k
                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
13384
4.45k
    }
13385
4.45k
    _res = NULL;
13386
10.1k
  done:
13387
10.1k
    p->level--;
13388
10.1k
    return _res;
13389
4.45k
}